2009-04-10 3 views
0

J'ai un rapport que je dois exécuter plusieurs fois, avec des données différentes à chaque fois. Chaque rapport comporte un en-tête de page qui l'identifie de manière unique, le corps de données réel, puis un pied de page contenant le nombre de pages au format [x de y]. Évidemment, je pourrais exécuter chaque rapport séparément, mais j'ai besoin des numéros de page pour tous les rapports. Donc, si je l'exécute deux fois, et la première fois qu'il a 3 pages, et la deuxième fois qu'il a deux pages, le pied de page montre [x de 5 pages] au bas de chaque rapport.ReportViewer: combiner plusieurs rapports en un seul rapport

J'ai essayé de créer un rapport principal et d'intégrer le rapport, mais il ne montre pas l'en-tête de la page, j'ai également envisagé de les exécuter séparément et de passer un paramètre pour ajuster le numéro de page. De toute évidence, vous devez rendre chaque rapport, trouver le total de la page, puis redéfinir chaque rapport pour avoir le total de page correct au pied de page.

Des suggestions? Quelque chose que je manque évidemment?

Répondre

0

Au cas où quelqu'un finit par courir dans une situation similaire, ici était ma solution:

d'abord d'expliquer mes jeux de données:

public Foo 
{ 
    string a; 
    List<Bar> subInfo; 
} 

public Bar 
{ 
    string b; 
    string c; 
} 

List<Foo> allFoos; 

Fondamentalement, au lieu d'avoir le allFoos objet que je passais à un maître rapport, puis essayer de passer l'objet de barre correspondant à la sous-état, j'ai créé un nouvel objet:

Public FooBar 
{ 
    string a; 
    string b; 
    string c; 
} 

List<FooBar> allFooBars; 

donc, fondamentalement, je pressai les données. De là, j'ai créé un seul rapport. J'ai ajouté une table qui avait "FooBar" comme c'est DataSet, et passé dans la collection de "allFooBars." J'ai également créé un pied de page sur le rapport, afin que j'aie une recherche cohérente sur toutes les pages. J'ai ensuite utilisé le regroupement pour conserver les objets "Foo" ensemble. Sur les groupes, je définis les options "Saut de page au démarrage" et "Inclure l'en-tête de groupe" et "Répéter l'en-tête de groupe" sur true. Ensuite, je viens de configurer les en-têtes de groupe pour fausser être mes en-têtes de page avec les en-têtes de groupe (essentiellement 5 lignes d'en-têtes de groupe, dont une était vide pour fournir de l'espace).

Et c'était fondamentalement cela.

Questions connexes