#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

110 lines
2.8 KiB

/*
* 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{
/// <summary>
/// Description of MultipageUnboundPullModel.
/// </summary>
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<SectionRenderEventArgs>(MultipagePrinting);
base.Engine.SectionRendered += new EventHandler<SectionRenderEventArgs>(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);
}
}
}
}
}