2010-02-18 26 views
3

J'ai une section dans un rapport Crystal que je veux supprimer. Je dois le supprimer s'il y a 0 lignes dans une table particulière dans l'ensemble de données que j'utilise. Comment ferais-je cela? Le champ spécial Numéro d'enregistrement fourni semble être un nombre interne d'enregistrements dans le rapport et ne correspond pas aux lignes de la table de données sous-jacente.Supprimer la section Crystal Reports s'il n'y a pas de lignes dans une datable

Je crée le rapport à partir de C#, mais je ne peux pas supprimer la section du code (elle ne correspond pas à la structure du projet) - Je dois pouvoir le faire à partir du rapport lui-même. La table concernée est définitivement transmise au rapport dans l'ensemble de données, mais elle contient 0 ligne. Il doit y avoir un moyen d'établir cela dans le rapport lui-même .....

Quelqu'un peut-il me diriger dans la bonne direction?

Répondre

6

Dans le concepteur de Crystal Reports, affichez les propriétés de votre section et vous devriez avoir une option à supprimer, que vous pouvez lui donner une formule pour renvoyer la valeur booléenne appropriée.

Vous pouvez ensuite utiliser la fonction Count() dans cette formule et (je crois) vous pouvez transmettre le nom de votre dataset à la fonction Count() pour obtenir le nombre de lignes dans cet ensemble de données. J'ai fait la même chose sur un rapport complexe il y a environ 3 mois mais je n'ai plus accès au rapport ayant changé d'emploi donc je suis désolé je ne peux pas être plus précis, mais cela vous donne un bon départ point.

Juste eu un rapide Google - try this.

+0

Merci - ça a fonctionné, mais maintenant j'ai un autre problème à cause de cela. Lorsqu'il y a des enregistrements dans la table en question, le rapport répète maintenant toute la section des détails autant de fois qu'il y a de lignes dans cette table .... J'ai également essayé de jouer avec un NumberVar partagé dans un sous-rapport pour compter les lignes dans la table, et je peux supprimer avec succès la section que je veux dans le rapport principal, mais cette technique échoue alors quand il existe des enregistrements - il supprime toujours la section. J'ai un certain nombre de tables utilisées au niveau du détail, ce qui n'aide probablement pas .... – JamesW

+0

J'ai dû ajouter une formule pour supprimer les lignes suivantes que je ne veux pas voir. Cet ajout était purement à la conception de mon rapport, donc je vais heureusement marquer votre réponse comme la réponse. Merci encore. – JamesW

+0

Si vous obtenez une section pour chaque enregistrement de votre rapport, mais que vous souhaitez plutôt un résumé des enregistrements, vous devez utiliser l'en-tête du groupe et supprimer les détails. Merci :) –

3

Si la section ne contient que des champs de base de données et f.e. pas de champs de texte, vous pouvez utiliser le paramètre "Supprimer la section vierge" dans la section "Exportation" (section de droite) pour cette section.

Comme alternative, vous pouvez utiliser la formule suivante dans le « Suppress » dans la section « Exporter » pour cette section:

IsNull({table.field}) 

« {table.field} » est l'un des champs dans l'ensemble de données .

Espérons que cela aide.

1

Aller à "Section Expert" et cliquez sur "Supress (No Drill-Down)" et essayez d'ajouter ceci:

IF {"DragYourFieldHere"} = "" then true else false 
0

Créer un groupe fictif, vérifier son en-tête pour chaque page, ajoutez l'en-tête l'en-tête de groupe du groupe factice.