Comment faites-vous référence à un champ dans le Code Embarqué d'un rapport SSRS
Est-il une bonne façon de référencer les champs d'un rapport ssrs du code embarqué d'un rapport ssrs?
Lorsque j'essaie d'utiliser Fields!Program.Value
j'obtiens l'erreur suivante --
Il y a une erreur à la ligne 3 de code personnalisé: [BC30469]
Référence à un non-membre partagé nécessite un objet de référence.
Sur google j'ai trouvé, vous pouvez référencer les Paramètres d'un rapport en ajoutant Report.
au début. J'ai donc essayé cette Report.Fields.Program.Value
.
Que les résultats dans le message d'erreur suivant...
Il y a une erreur à la ligne 3 de code personnalisé: [BC30456] "Champs" n'est pas un membre de 'Microsoft.ReportingServices.ReportProcessing.ExprHostObjectModel.IReportObjectModelProxyForCustomcode'.
Donc... en résumé, est-il un moyen de référencer les champs à partir du code embarqué. J'ai compris que je pouvais passer sur le terrain de vals à la fonction elle-même, mais je préfère de référence les champs directement.
Seth
OriginalL'auteur Seth Spearman | 2009-09-09
Vous devez vous connecter pour publier un commentaire.
Vous devez passer comme paramètre.
=Code.ToUSD(Champs!StandardCost.Valeur)
Il ne fait pas de sens pour moi que dans la déclaration de services, un paramètre peut être accessible directement, tandis qu'un champ doit être transmise. Il serait plus cohérent si un paramètre n'est pas accessible directement, ou un champ peut être accessible directement. Peu importe, @gbn Merci pour la réponse et @Seth Spearman vous remercie de la question.
Eakins: Il a un sens pour les ensembles de données. Un paramètre est unique, scalaire et discret, donc peut être accessible universellement. Si vous avez un 1000 lignes de données, comment savez-vous que la zone de texte en ligne qui appartient à des données en ligne? Cette syntaxe rend explicite et moins de risques d'erreurs
Je pensais à peu, votre scénario, il est clair. Merci!
OriginalL'auteur gbn
Vous avez deux autres solutions de rechange à en passant par paramètre, bien que ni est très jolie.
(Méfiez-vous! Après, j'ai écrit le paragraphe suivant, j'ai découvert par défaut à partir de requêtes ne sont pas pris en charge en mode de traitement local si cette première solution peut ne pas être viable pour vous que ce n'était pas pour moi.)
Vous pouvez créer un rapport masqué paramètre avec une valeur par défaut définie à partir d'un jeu de données, puis de référence de la ce avec le
Report.Parameters!MyParam.Value
de la syntaxe. Vous devez être prudent lors de l'essai de cela, comme (au moins en BI studio 2005) le rapport des paramètres ne semblent pas obtenir de manière fiable ré-initialisé à partir de la DB dans l'onglet Aperçu.Sinon, vous pouvez créer une zone de texte caché sur le rapport avec son texte à partir d'un jeu de données, puis de référence de la zone de texte de code. Dans ce cas, vous devez passer le
ReportItems
objet en tant que paramètre, mais le léger avantage, c'est qu'il n'est jamais un paramètre supplémentaire. Assurez-vous fortement, le type du paramètre lors de la déclaration:Le code fonctionne en BI studio sans la déclaration de type, mais pour moi, il a causé des erreurs avec la visionneuse de rapports de contrôle en mode de traitement local si '
as ReportItems
' n'était pas présent.Dans les deux cas, ce n'est vraiment utile pour les données de niveau de page, afin de fonctions à utiliser dans un tableau doit encore prendre des paramètres.
OriginalL'auteur OlduwanSteve