J'ai un rapport avec plusieurs ensembles de données. Différents champs de différents ensembles de données sont utilisés à différents endroits du rapport.
Dans une partie du rapport, je dois effectuer un calcul en utilisant des champs de deux ensembles de données différents. Est-ce possible dans une expression?
Puis-je en quelque sorte référencer le jeu de données dans lequel se trouve le champ, dans l'expression?
Par exemple, j'aimerais faire quelque chose comme ceci:
=Fields.Dataset1.Field / Fields.Dataset2.Field
Vous pouvez y parvenir en spécifiant la portée de vos champs comme ceci:
=First(Fields!fieldName_A.Value, "Dataset1") / First(Fields!fieldName_B.Value, "Dataset2")
En supposant que A est 10 et B est 2 et qu'ils sont de type numérique, vous aurez le résultat 5 lorsque le rapport sera rendu.
Lorsque vous êtes dans le générateur d'expression, vous pouvez choisir la catégorie: Datasets, votre jeu de données souhaité mis en surbrillance sous Item: puis double-cliquer sur le champ souhaité sous Value: et il apparaîtra dans votre chaîne d'expression avec la portée ajoutée.
En utilisant la même logique, vous pouvez concaténer deux champs comme suit:
=First(Fields!fieldName_A.Value, "Dataset1") & “ “ & First(Fields!fieldName_B.Value, "Dataset2")
Au fur et à mesure que PerPlexSystem écrit, si vous souhaitez uniquement comparer la première valeur d'un jeu de données avec les valeurs d'un autre jeu de données, vous pouvez utiliser la fonction First.
Toutefois, si vous souhaitez comparer les valeurs de chaque ligne d'un jeu de données avec celles de chaque ligne d'un autre jeu de données, vous devez utiliser un sous-rapport - voir ici pour plus de détails.
Une autre option consiste à utiliser un paramètre en tant que variable. Ceci est utile si vous souhaitez créer un champ calculé dans l'un des jeux de données. Ceci est mieux appliqué lorsque la valeur du paramètre provient d'un jeu de données avec un seul enregistrement.