2009-09-02 8 views
3

J'utilise Reportviewer pour générer une facture de vente à imprimer par l'utilisateur. Comment puis-je obtenir des champs de données à imprimer sur chaque page d'une facture de plusieurs pages?Visual Studio ReportViewer répétant le bloc de données sur chaque page

La facture est imprimée sur un formulaire pré-imprimé. Je veux que la forme imprimée à regarder à peu près comme:

page 1
client john smith
123 rue principale.
ville , CA 90000

certains ITEM1 100 $
certains ITEM2 150 $
certains ITEM3 150 $


page 2
client john smith
123 rue principale.
ville, CA 90000

certains ITEM4 500 $
certains item5 250 $
certains item6 950 $
total 2100 $

En utilisant 1 liste qui contient des champs de zone de texte databound pour les informations des clients, et une table pour la articles. Le problème est que s'il y a beaucoup d'éléments tels que les éléments passent à la page 2, la page suivante ne contient que des éléments, et non pas les informations client qui doivent également être imprimées sur la deuxième page.

J'ai essayé d'utiliser l'en-tête de page, mais je ne peux pas utiliser les éléments de la base de données dans l'en-tête de la page. S'il vous plaît aidez!

Répondre

0

Je suppose que vous utilisez le tableau dans le corps du rapport qui vient d'ajouter le regroupement par poste et dans l'en-tête de groupe mis l'information à la clientèle et vient de mettre RepeatOnNewPage à Treu pour l'en-tête du rapport ligne Cordialement, Iordan

0

Un très ressource précieuse est le site GotReportViewer, ils ont un échantillon appelé Invoice Maker qui vaut le coup d'oeil. Une astuce que vous pouvez utiliser est décrite sur this MSDN page, elle consiste à ajouter les champs que vous voulez dans l'en-tête de page au corps de votre rapport, puis à masquer le champ, puis dans votre en-tête de page en vous référant au champ de texte caché, par ex. = Premier (ReportItems! TxtHiddenFieldName.Value)

+0

Merci pour votre réponse. J'ai vérifié le projet d'exemple de facture fabricant, il fonctionne fondamentalement le même était comme le mien. Lorsque j'ai ajouté beaucoup d'éléments, la page 2 montre uniquement les éléments. Je vais vérifier la page MSDN, sonne comme ce dont j'ai besoin. – muhan

+0

Le site GotReportViewer est une bonne ressource générale pour les informations Report Viewer, l'article de la page MSDN montre comment résoudre votre problème réel. –

3

Ouvrez le document RDLC en mode XML. Recherchez le bloc de code juste en dessous de l'arborescence TablixColumnHierarchy et modifiez-le de manière appropriée. La clé consiste à définir RepeatOnNewPage tag = true entre la balise TablixMember.

Espérons que cela empêche des heures de lutte avec cela pour les autres!

Voir extraits ci-dessous:

... 
    <TablixColumnHierarchy> 
     <TablixMembers> 
     <TablixMember /> 
     <TablixMember /> 
     <TablixMember /> 
     <TablixMember /> 
     <TablixMember /> 
     <TablixMember /> 
     <TablixMember /> 
     <TablixMember /> 
     <TablixMember /> 
     <TablixMember /> 
     </TablixMembers> 
    </TablixColumnHierarchy> 
    <TablixRowHierarchy> 
     <TablixMembers> 
     <TablixMember> 
      <KeepWithGroup>After</KeepWithGroup> 
      <RepeatOnNewPage>true</RepeatOnNewPage> 
     </TablixMember> 
     <TablixMember> 
      <KeepWithGroup>After</KeepWithGroup> 
      <RepeatOnNewPage>true</RepeatOnNewPage> 
     </TablixMember> 
     <TablixMember> 
      <Group Name="Details" /> 
      <RepeatOnNewPage>true</RepeatOnNewPage> 
     </TablixMember> 
     </TablixMembers> 
    </TablixRowHierarchy> 
    <RepeatColumnHeaders>true</RepeatColumnHeaders> 
    <RepeatRowHeaders>true</RepeatRowHeaders> 
    <FixedColumnHeaders>true</FixedColumnHeaders> 
    <FixedRowHeaders>true</FixedRowHeaders> 
    <KeepTogether>true</KeepTogether> 
    <DataSetName>ds_Triangulation</DataSetName> 
    ... 
Questions connexes