2010-02-13 1 views
1

J'ai un rapport Crystal qui doit afficher les données du premier enregistrement quel que soit le nombre d'enregistrements (généralement 1 à 13 enregistrements). Ce champ est placé au bas du rapport et sans aucun contrôle, il affichera toujours le dernier enregistrement. Ce champ indique le numéro de conteneur utilisé pour le transport du sang et le premier enregistrement sera toujours l'enregistrement le plus récent.Crystal - Comment spécifier une valeur d'enregistrement spécifique à afficher (généralement en premier) lorsqu'il y a plusieurs enregistrements

Répondre

1

bienvenue à SO.

Quelle est votre source de données? (Base de données Access, SQL Server, etc.)

La solution idéale serait de modifier la requête de base de données:

  1. Trier les enregistrements d'une certaine façon significative.

  2. Ne ramenez qu'un seul résultat à votre rapport Crystal.

Exécution des travaux de cette manière ne peut faire une grande différence pour ce rapport, mais si vous exécutez plusieurs des rapports commencera à devenir importante.

Meilleures salutations,

+0

Merci Adam, La base de données est un SQL Server. Les enregistrements particuliers qui me préoccupent sont les numéros de conteneurs dans un champ de chaîne. L'enregistrement que je veux afficher est celui qui présente l'activité la plus récente. Puisque ces données sont déjà présentes près du haut du formulaire, je veux simplement l'afficher au bas de la page. Existe-t-il un bon moyen d'affecter une variable aux données de l'enregistrement 1, puis de l'afficher ailleurs, en ignorant les enregistrements 2, 3, etc.? Merci. – Byron

+0

@Byron: Si la modification de la requête de base de données n'est pas possible, vous pouvez également créer un champ de formule et utiliser 'MIN()' ou 'MAX()' pour déterminer quel est votre enregistrement le plus récent. Vous pouvez ensuite afficher uniquement le résultat du champ de formule et masquer les autres enregistrements. Je déteste même dire cela, car cela rend le problème beaucoup plus complexe que nécessaire. Peut-être que cela n'a pas d'importance maintenant, mais pourrait commencer à prendre de l'importance à mesure que vous écrivez et maintenez plus de code. – bernie

+0

Adam, j'ai utilisé min(), max() avant, mais votre suggestion me fait réfléchir. La combinaison de l'enregistrement avec le temps d'enregistrement relavent, puis le tri pour l'enregistrement le plus récent peut le faire. J'espérais vraiment une formule facile où je pourrais juste définir le numéro d'enregistrement que je voulais. Merci de votre aide. – Byron

0

Mettez une formule dans votre tête de rapport qui contient: shared numbervar myVar := {MyTable.Field};. Dupliquez cette ligne pour chaque champ que vous souhaitez afficher (avec le type de données approprié). Dans le pied du rapport, pour chaque champ, créez une formule contenant shared numbervar myVar;

Questions connexes