poniedziałek, maja 14, 2012

Szukanie metadanych w Crystal Reports

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: