Crystal Reports: Créer un Tableau ou d'obtenir des valeurs d'une colonne
Dire que je suis en train de travailler sur un rapport, sur une colonne appelée someTable.someColumn
. Ce dont j'ai besoin est d'avoir toutes les valeurs de la ReportHeader. Je sais que je pouvait créer un sous-rapport, de les transmettre cette colonne et de le parcourir dans les détails, mais je voudrais savoir si il est possible de le faire sans un sous-rapport.
Si j'utilise la suite, j'obtiens le bon résultat, ce qui dans mon cas est de 9:
COUNT(someTable.someColumn)
J'ai aussi essayé la suivante, mais elle ne fonctionne pas - il suffit d'une seule des 9 valeurs au hasard.
Local NumberVar i := 0;
Local StringVar Array items := {someTable.someColumn};
Local StringVar output := "";
while (i < count(items)) do (
i := i+1;
output := output + items[i];
);
output;
Est-il possible d'itérer sur une colonne afin d'obtenir les valeurs?
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas le faire dans l'en-tête du rapport. Vous devez utiliser la section détail de lire chaque valeur.
La seule solution qui me vient à l'esprit est à l'aide d'un sous-rapport. Bien que vous ne seriez pas
pass them this column and iterate it in the details
. Car il ne serait que de passer la première valeur de la colonne. Vous transmettre les paramètres du rapport dont il pourrait utiliser pour obtenir les valeurs de la colonne à partir de la base de données de la même manière que votre rapport principal n'.Je n'ai pas trouvé un moyen de le faire dans l'en-tête de rapport, mais vous pouvez le mettre dans votre rapport pied de page avec la formule suivante:
Cela permettra d'exécuter à chaque fois
someTable.someColumn
changements au cours de la génération de rapports, et l'ajouter à la variable globale. Malheureusement, ce n'est pas de garder toutes les instances jusqu'à ce jour - par exemple, si vous l'inclure dans le rapport les détails quelque part, vous serez en mesure de voir l'évolution deoutput
au cours du rapport. Dans l'en-tête, il n'affiche que la première valeur.Remarque: Vous ne souhaitez pas définir
output := ""
dans cette formule, car cela va réinitialiser la valeur à chaque fois. Il semble, cependant, que le Cristal automatiquement initialise la variable au moment de sa création, et je n'ai pas couru dans toutes les erreurs avec seulement la formule ci-dessus (j'.e, je n'ai pas besoin de créer un deuxième formule pour initialiseroutput
). J'ai aussi inclus un délimiteur (+ ","
), pour aider à séparer chacune des valeurs, mais vous pouvez facilement le supprimer.