Okazuje się, że dzięki doskonałej dokumentacji na stronach SCN SAP można stworzyć programik, który przejdzie po obiektach raportu i jego podraportów i “zaraportuje” swoje wyniki:
1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: using CrystalDecisions.CrystalReports.Engine;
6: using CrystalDecisions.Shared;
7: // How to find the ReportObjects in the Crystal Report using Crystal reports .NET SDK? Saurabh Pathak (SCN Community)
8: namespace PrzeszukiwanieObiektowRaportuCR
9: {
10: class PrzeszukiwanieObiektowRaportuCR
11: {
12: static void Main(string[] args)
13: {
14: string raport = "dokumentydostawyekkw.rpt";
15: raport = "Listprzewozowy.rpt";
16: ReportDocument rpDok = new ReportDocument();
17: rpDok.Load(raport);
18: Console.WriteLine("Opis definicji raportu "+ raport);
19: foreach (ReportObject obiekt in rpDok.ReportDefinition.ReportObjects)
20: {
21: Console.WriteLine("1"+ obiekt.Name + "\t"+ obiekt.Kind.ToString() + "\t" + obiekt.ObjectFormat.ToString());
22: }
23: if (rpDok.Subreports.Count > 0)
24: {
25: Console.WriteLine("Podraporty...");
26: foreach (ReportDocument rdok in rpDok.Subreports)
27: {
28: Console.WriteLine(" 2 " + rdok.Name);
29: foreach (ReportObject obiekt in rdok.ReportDefinition.ReportObjects)
30: {
31: Console.WriteLine(" 3" + obiekt.Name + "\t" + obiekt.Kind.ToString() + "\t" + obiekt.ObjectFormat.ToString());
32: }
33: }
34: }
35: else
36: {
37: Console.WriteLine("Ten raport nie ma zagnieżdżonych raportów");
38: }
39: Console.ReadLine();
40: }
41: }
42: }
Nie jest to wcale trudne jak widać!
Brak komentarzy:
Prześlij komentarz