2009-10-25 12 views
1

Souvent, je crée des rapports dans Crystal Reports de Visual Studio et je veux avoir un type de détail principal ou 1-type. Quelque chose comme ceci:Comment faire un sous-rapport/master-detail dans les rapports VS Crystal sans qu'il soit cliquable?

Invoice Number 13245 
    Total: $1,000,000 
    Date Raised: 1-Jan-1989 
    Date Due: 1-Jan-2019 
Line items: 
    # Desc     Cost 
    1 Hat     23.00 
    2 Gloves    7.00 
    3 Walking Stick 999,970.00 

je pourrais utiliser un seul jeu de données pour quelque chose ce simple et groupe sur les valeurs « parents », mais en général j'avoir plusieurs types de lignes de détails ou si vous voulez un graphique pour les enregistrements de détail, ou pour une raison quelconque, je veux avoir deux ensembles de données: un pour les enregistrements parents et un pour l'enregistrement de l'enfant. La façon dont j'ai toujours abordé cela consiste à baser le rapport sur un jeu de données, à ajouter un sous-rapport au rapport et à utiliser un autre jeu de données pour les enregistrements enfants. Cela fonctionne bien et semble correct - c.-à-d. Quand j'exécute le rapport je vois toutes les données dans une vue, avec la section de détail développée pour adapter tous les dossiers. Cependant, le sous-rapport est toujours cliquable et c'est mon problème. Si un utilisateur clique sur le sous-rapport, c'est-à-dire sur les enregistrements d'enfant ou un graphique ou quoi que ce soit que j'ai ici, ils sont pris dans le sous-rapport. C'est bizarre pour eux parce qu'ils voient alors une nouvelle «page» qui contient juste les détails de cette section. Ce que je veux vraiment, c'est un moyen d'avoir mon rapport basé sur plusieurs jeux de données, comme je le fais maintenant avec des sous-rapports, mais pour que l'utilisateur ne puisse pas cliquer sur ces sous-rapports et les explorer. Je n'ai jamais compris comment faire ça. Est-ce parce que j'aborde tout faux ou juste une limitation de Crystal Reports, ou y a-t-il une solution?

J'utilise Crystal Reports qui est livré avec Visual Studio 2005.

Répondre

2

Double-cliquez sur un sous-état toujours ouvert onglet drill-down - c'est une caractéristique du produit.

Option 1: Adoptez la fonctionnalité de zoom avant et utilisez-la pour améliorer l'expérience de vos utilisateurs.

Option 2: Utilisez un jeu de données unique qui inclut les détails de la facture et de l'élément de ligne. Regroupez le rapport sur le numéro de facture et placez vos totaux dans la section En-tête du groupe. Utilisez la section Détails pour afficher les éléments de campagne. Rappelez-vous que vous pouvez avoir plusieurs sections, ce qui peut être utile pour afficher votre graphique (dans une deuxième section d'en-tête de groupe).

Vous pouvez envisager de générer la requête dans le rapport, plutôt que de le faire dans le code. Cela simplifiera énormément le rapport et votre code et facilitera la maintenance du rapport et du code.

+0

Pour moi, c'est quand ils font un simple clic, pas un double clic. Y a-t-il un moyen de changer cela? J'ai généralement plusieurs jeux de données enfants, donc l'option 2 n'est malheureusement pas réalisable. Je ne comprends pas vraiment pourquoi il n'y a aucun moyen de désactiver le drill-down; pourquoi voudriez-vous forer quelque chose seulement pour voir exactement la même information affichée. Il est certainement utile de forer pour voir plus d'informations, mais si le rapport est conçu pour être mis en page sur papier, cela n'a aucun sens. – Rory

+0

Pas moyen de désactiver cela. Si un utilisateur fore dans un sous-rapport (en créant un nouvel onglet), il peut ensuite explorer les détails du sous-rapport. Je soupçonne que cette fonctionnalité est présente. Malheureusement, les sous-rapports ne peuvent pas être imbriqués (c'est-à-dire, un sous-rapport dans un sous-rapport). – craig