Expression SSRS: l'expression de valeur de la zone de texte a un paramètre d'étendue qui n'est pas valide pour l'agrégat
je vais recevoir le message d'erreur suivant:
Error 1 [rsInvalidAggregateScope] The Value expression for the text box
‘Textbox2’ has a scope parameter that is not valid for an aggregate function.
The scope parameter must be set to a string constant that is equal to either
the name of a containing group, the name of a containing data region, or
the name of a dataset.
L'expression derrière mon Textbox2 (j'ai ajouté des espaces pour des raisons de lisibilité):
Iif(Parameters!ReportParameterPersoneelsNr.Value.Equals(String.Empty),
"Prestaties " + First(Fields!firmanaam.Value, "DataSetHrm") +
"(" + First(Fields!indienstfirmanr.Value, "DataSetHrm") + ")",
"Prestaties " + First(Fields!naam.Value, "DataSetHrm") + " " +
First(Fields!voornaam.Value, "DataSetHrm") +
"(" + First(Fields!personeelsnr.Value, "DataSetHrm") + ")")
Les champs:
ReportParameterPersoneelsNr = Reportparameter of type Text
firmanaam.Value = VARCHAR
indienstfirmanr.Value = Long
naam.Value = VARCHAR
voornaam.Value = VARCHAR
personeelsnr.Value = Long
Recherches sur Stackoverflow m'a apporté des résultats suivants. Mais jusqu'à présent, ils n'ont pas m'a aidé à résoudre mon problème
Quelqu'un pourrait-il point de ce que je fais de mal?
Note: Ajout tostring() partout n'a pas aider
Note 2: Remplacer la " + " par "& " n'a pas de résoudre le problème, soit
Note 3: Le datasetname est correcte et le jeu de données est le seul à présenter dans ce rapport SSRS:
Mise à jour: Les données contenues dans la base de données est valide et réinstallant le jeu de données ne fonctionne pas (essayé avec et sans les alias)
source d'informationauteur User999999
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas ce qui est mal, mais ils ont créé un rapport similaire qui fonctionne. Créer un nouveau rapport, puis de créer un jeu de données (SQL Server) avec la requête suivante:
Puis ajouter votre paramètre
Ajouter une zone de texte pour le rapport, avec le code:
Puis exécutez le rapport, avec ou sans valeur pour le paramètre:
Parfois cette erreur se produit alors que nous utilisons différents
DatasetName
dansExperssion
.Comme dans mon cas, j'ai résolu cette erreur en faisant en dessous de chose,
Avant c'était comme ci-dessous,
Après avoir changé de ci-dessous il fonctionne bien maintenant,
Remarque: Donc, ici, l'erreur a été, j'ai changé le Nom du jeu de données De
DataSet1
àLastChangedDataSetName
et est resté à changer ce nom en dernierExpression
que j'ai déjà écrit avant de changer Nom du jeu de données.Votre champ de référence n'est pas bonne ("DataSetHrm"). Comme le message d'erreur indique à partir d'une zone de texte ne peut un contenant portée référencé qui peut être un groupe dans une table (champ nom = nom du groupe), le tableau lui-même (région de données -> nom de l'étendue = données nom de la région) ou le jeu de données qui appartient à une région de données (champ nom = nom du jeu de données).
Lors de ces régions mentionnées ci-dessus sont intégrés en indiquant avec le jeu de données (dataset -> région de données -> groupe de données), ils peuvent être référencées à partir d'une zone de texte. Dans votre exemple, ce n'est pas le cas.
Si vous souhaitez utiliser un autre ensemble de données dans votre zone de texte qui diffère de votre base de données (qui est le jeu de données de votre table), vous devez utiliser le lookup() fonction.
J'ai fait face à un problème similaire récemment dans un de mes rapports. La raison pourquoi j'ai cette erreur est que le nom de l'ensemble de données et de l'expression dans le rapport ne correspondent pas.
J'ai un champ date qui est rempli avec les préférences de l'Utilisateur et l'expression est
First(Fields!column.Value, "datasetname")
. Le nom du jeu de données et le nom du jeu de données spécifié dans les rapports de données doivent correspondre.L'erreur que j'avais dans mon rapport était très similaire:
Je l'ai résolu en cliquant droit sur le fichier de rapport dans l'Explorateur de solutions + Afficher le Code (ouvre l'éditeur XML), à la recherche pour le nom de ce jeu de données et la modification de la ligne qui a provoqué le problème:
Dans ce cas, j'ai juste besoin de modifier l'expression à l'intérieur de la
<Hidden>
balise qui avait un nom d'une non-existence de Données (en raison de la copie à partir d'un autre rapport). Plus tard, il était plus facile pour retrouver la ligne dans l'interface qui a provoqué l'erreur.Donc si l'erreur se réfère à
Value
au lieu de cela, la recherche pour occurrences du rapport du nom du jeu de données dans le code XML et vérifiez les<Value>
balises pour les noms qui n'existent pas dans le rapport actuel.