/* * Created by SharpDevelop. * User: Forstmeier Helmut * Date: 29.06.2006 * Time: 13:02 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Windows.Forms; using SharpReportCore; namespace ReportSamples{ /// /// Description of MultipageUnboundPullModel. /// public class MultiPageUnboundPullModel :BaseSample{ int rowNr; int rowsPerPage; System.DateTime startTime; System.DateTime endTime; public MultiPageUnboundPullModel(){ } public override void Run() { try{ base.Run(); if (!String.IsNullOrEmpty(base.ReportName)) { SharpReportCore.SharpReportEngine mn = new SharpReportCore.SharpReportEngine(); base.Engine.SectionRendering += new EventHandler(MultipagePrinting); base.Engine.SectionRendered += new EventHandler(MultipagePrinted); this.startTime = System.DateTime.Now; base.Engine.PreviewStandartReport(base.ReportName); } } catch(Exception er){ MessageBox.Show(er.ToString(),this.ToString()); } } private void MultipagePrinting (object sender,SectionRenderEventArgs e) { CheckItems(e.Section.Items); switch (e.CurrentSection) { case GlobalEnums.enmSection.ReportHeader: break; case GlobalEnums.enmSection.ReportPageHeader: System.Console.WriteLine(""); this.rowsPerPage = 0; break; case GlobalEnums.enmSection.ReportDetail: this.rowNr ++; this.rowsPerPage ++; RowItem ri = e.Section.Items[0] as RowItem; if (ri != null) { if (this.rowNr %2 == 0) { ri.DrawBorder = true; } else { ri.DrawBorder = false; } } break; case GlobalEnums.enmSection.ReportPageFooter: BaseDataItem bdi = e.Section.Items.Find("ItemsPerPage") as BaseDataItem; if (bdi != null) { bdi.DbValue = this.rowsPerPage.ToString(); } break; case GlobalEnums.enmSection.ReportFooter: this.endTime = System.DateTime.Now; BaseDataItem b = e.Section.Items.Find("reportDbTextItem1")as BaseDataItem; if (b != null) { b.FormatString = "t"; b.DbValue = (this.endTime - this.startTime).ToString(); } break; default: break; } } private void MultipagePrinted (object sender,SectionRenderEventArgs e) { // System.Console.WriteLine("---Rendering done <{0}>-----",e.CurrentSection); } private void CheckItems (ReportItemCollection items) { // System.Console.WriteLine("\t<{0}> Items",items.Count ); foreach (BaseReportItem i in items) { IContainerItem container = i as IContainerItem; if (container != null) { // System.Console.WriteLine("\t\tContainer found"); CheckItems (container.Items); } } } } }