Rapport Crystal, en Combinant des lignes de données dans une seule valeur
J'ai des données dans les lignes de ce genre pour id 1
id1 a1
id1 b2
id1 c3
id1 d4
id1 e5
J'aime combiner comme "a1b2c3d4e5" en une valeur unique pour id1. Merci à l'avance.
Vous devez vous connecter pour publier un commentaire.
Une approche est la "Formule 3" la méthode. Vous configurez une initialisation de la formule dans chaque en-tête, avec l'évaluation de la directive sur le temps de "WhilePrintingRecords". Cette approche a été le seul disponible pour faire des totaux en cours d'exécution dans le "bon vieux temps", avant RunningTotal objets étaient disponibles.
Par exemple:
Dans l'en-Tête de Groupe :- vous Avez une Formule @InitiliseRT
Dans la Section Détails :- vous Avez une Formule @UpdateRT
Enfin, dans le Pied de page de Groupe, vous pouvez voir le résultat :- Formule @ShowRT
Cela devrait vous donner votre chaîne finale de "a1b2c3d4e5".
Si vous le souhaitez, vous pouvez ajouter des formules supplémentaires pour plus de groupes, les variables de chaque groupe (par exemple, ConcatenatedIDGroup1, ConcatenatedIDGroup2). La clé est de toujours obtenir le nom de droit entre les groupes, et de l'initialiser la variable dans l'en-tête de groupe.
Il y a des limites à l'utilisation de ces formules. Construit dans le résumé des fonctions (Somme, Max, Count, ...) ou RunningTotals ne peut pas les utiliser, et vous ne pouvez pas groupe sur eux.
Donc, vous voulez concaténer des données à partir de plusieurs lignes en une seule ligne pour l'affichage? Crystal Reports n'est vraiment pas faite pour ce genre de chose. Même si tu le pouvais, je serais encore suggère de faire que côté serveur en premier, puis l'introduire dans le Cristal.
Il ne sera pas trop difficile, une simple boucle à travers les données dans la langue de votre choix. Mais le Cristal est construit pour l'affichage et la mise en forme des données, avec un décent (mais pas exhaustif) de l'ensemble des données des outils de manipulation. Je ne pense pas que c'est la meilleure façon d'aller.
Il dépendra du type de données pour les colonnes a1-e5 et ce que vous essayez de faire avec la seule valeur.
Si vous êtes juste essayer d'afficher la valeur, vous pouvez créer une formule qui utilise des cristaux ToText() la fonction d'abord les convertir en chaînes et puis concaténer avec un '+'.
ToText({id1.a1}) + ToText({id1.b2}) + ToText({id1.c3}) + ToText({id1.d4}) + ToText({id1.e5})
Vous pourriez faire la même chose sur le SGBD côté, aussi.
Si vous pouvez fournir de plus amples informations, nous pourrons peut-être trouver une meilleure solution.