Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
GetDataSet method and mutltiple result sets
Message
De
09/08/2009 12:14:25
 
 
Information générale
Forum:
ASP.NET
Catégorie:
The Mere Mortals .NET Framework
Versions des environnements
Environment:
C# 3.0
OS:
Windows XP
Network:
Windows 2003 Server
Database:
MS SQL Server
Divers
Thread ID:
01416914
Message ID:
01416927
Vues:
64
This message has been marked as the solution to the initial question of the thread.
Naomi, if I understand your question correctly, here's a common routine I've used for years.

Let's say you build a CR report against a dataset (or an XML schema representation of a typed dataset), you can "push" the data into the CR report object.

I wrote a generate push method that would take any report object and any dataset - here were the 2 main functions:
      public ReportDocument PushReportData
              (DataSet DsReportData, ReportDocument oReport)
      {
      // Call when a report is generated
      //   Calls SetData for the main report object
      //   Also calls SetData for any subreport objects

         this.SetData(DsReportData,oReport);

         foreach(ReportDocument oSubReport in  oReport.Subreports) 
            this.SetData(DsReportData,oSubReport);
 
         return oReport;

      }

        private void SetData
                   (DataSet DsReportData, ReportDocument oReport)
        {
        // receives a DataSet and a report object (could be the 
                                       // main object, could be a subreport object)

        // loops through the report object's tables collection, 
        // matches up the table name with the corresponding table
        // name in the dataset, and sets the datasource accordingly

        // This function eliminates the need for a developer to 
        // know the specific table order in the report

            foreach (Table oTable in oReport.Database.Tables)
               oTable.SetDataSource
             (DsReportData.Tables[oTable.Name.ToString()]);

        } 
And then here's an example that would create an instance of a new report (e.g. a TimeSheet report), and then push a dataset called dsData into the report.

Obviously, dsData needs to have the same structure as the original dataset structure that was used when the report was created.
ccCrystalManager oCrystalManager = new ccCrystalManager();
RPT_TimeSheet oTimeSheetReport = new RPT_TimeSheet();

oTimeSheetReport = oCrystalManager.PushReportData(dsData, 
                                   oTimeSheetReport);

// and then use the report object to preview or print or export
Let me know if this helps...
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform