Browse Source

Print PageFooter

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6205 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 15 years ago
parent
commit
6143754747
  1. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs
  2. 28
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
  3. 16
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseReportItem.cs
  4. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs
  5. 8
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs
  6. 8
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs
  7. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderDataReport.cs
  8. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderFormSheetReport.cs
  9. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/ReportDocument.cs

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs

@ -64,6 +64,13 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -64,6 +64,13 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
#endregion
public static void AdjustChildLocation (BaseReportItem item,Point offset)
{
item.Location = new Point(item.Location.X + offset.X,
offset.Y + item.Location.Y);
}
public static Rectangle DrawingAreaRelativeToParent (BaseReportItem parent,ISimpleContainer item)
{
if ( parent == null) {

28
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs

@ -17,6 +17,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -17,6 +17,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
/// <summary>
/// Description of StandardPrinter.
/// </summary>
internal sealed class StandardPrinter
{
public StandardPrinter()
@ -98,31 +100,19 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -98,31 +100,19 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
}
private static void RenderLineItem (BaseReportItem item, Point offset,IExpressionEvaluatorFacade evaluator,ReportPageEventArgs rpea)
{
Point saveLocation = new Point (item.Location.X,item.Location.Y);
item.Location = new Point(item.Location.X,
offset.Y + item.Location.Y);
// item.Location = new Point(offset.X + item.Location.X,
// offset.Y + item.Location.Y);
//
var ss = MeasurementService.MeasureReportItem(rpea.PrintPageEventArgs.Graphics,item);
PrintHelper.AdjustChildLocation(item,offset);
BaseTextItem textItem = item as BaseTextItem;
if (textItem != null) {
string str = textItem.Text;
textItem.Text = evaluator.Evaluate(textItem.Text);
if (str != textItem.Text) {
var ss1 = MeasurementService.MeasureReportItem(rpea.PrintPageEventArgs.Graphics,item);
}
textItem.Render(rpea);
textItem.Text = str;
} else {
@ -177,13 +167,15 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -177,13 +167,15 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
public static Rectangle RenderContainer (ISimpleContainer simpleContainer,IExpressionEvaluatorFacade evaluator,Point offset,ReportPageEventArgs rpea)
{
BaseReportItem item = simpleContainer as BaseReportItem;
Rectangle retVal = new Rectangle(offset,item.Size);
Point loc = item.Location;
// item.Location = new Point (offset.X + item.Location.X,offset.Y + item.Location.Y);
item.Location = new Point (item.Location.X,offset.Y + item.Location.Y);
Point saveLocation = item.Location;
PrintHelper.AdjustChildLocation(item,offset);
item.Render(rpea);
if (simpleContainer.Items != null) {
retVal = StandardPrinter.RenderPlainCollection(item,simpleContainer.Items,evaluator,offset,rpea);
}
@ -191,7 +183,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -191,7 +183,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
retVal = new Rectangle (retVal.X,retVal.Y,
retVal.X + item.Size.Width,
item.Size.Height + 3 * GlobalValues.GapBetweenContainer);
item.Location = loc;
item.Location = saveLocation;
return retVal;
}

16
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseReportItem.cs

@ -106,21 +106,13 @@ namespace ICSharpCode.Reports.Core { @@ -106,21 +106,13 @@ namespace ICSharpCode.Reports.Core {
protected virtual Rectangle DisplayRectangle
{
get {
if (Parent != null) {
return new Rectangle(this.Parent.Location.X + this.Location.X ,
this.Location.Y + this.SectionOffset,
this.Size.Width,this.Size.Height);
} else {
return new Rectangle(this.Location.X ,
this.Location.Y + this.SectionOffset,
this.Size.Width,this.Size.Height);
}
return new Rectangle( this.Location.X ,
this.Location.Y + this.SectionOffset,
this.Size.Width,this.Size.Height);
}
}
#region Properties
public virtual bool Visible {get;set;}

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs

@ -55,7 +55,7 @@ namespace ICSharpCode.Reports.Core @@ -55,7 +55,7 @@ namespace ICSharpCode.Reports.Core
protected override Rectangle DisplayRectangle {
get {
return new Rectangle(Location.X + this.Location.X, this.Location.Y ,
return new Rectangle(Location.X , this.Location.Y ,
this.Size.Width,this.Size.Height);
}
}

8
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs

@ -113,11 +113,8 @@ namespace ICSharpCode.Reports.Core @@ -113,11 +113,8 @@ namespace ICSharpCode.Reports.Core
this.dataNavigator.Fill(row.Items);
Console.WriteLine("org row size {0}",row.Size);
PrintHelper.SetLayoutForRow(rpea.PrintPageEventArgs.Graphics,base.Layout,row);
Console.WriteLine("new row size {0}",row.Size);
Console.WriteLine("");
Rectangle r = StandardPrinter.RenderContainer(row,Evaluator,currentPosition,rpea);
currentPosition = PrintHelper.ConvertRectangleToCurentPosition (r);
@ -164,7 +161,6 @@ namespace ICSharpCode.Reports.Core @@ -164,7 +161,6 @@ namespace ICSharpCode.Reports.Core
{
Point currentPosition = new Point(section.Location.X + container.Location.X,offset.Y);
Console.WriteLine("start {0}",currentPosition);
if (section.Visible){
@ -186,7 +182,6 @@ namespace ICSharpCode.Reports.Core @@ -186,7 +182,6 @@ namespace ICSharpCode.Reports.Core
if (con != null) {
Rectangle r = StandardPrinter.RenderContainer(container,Evaluator,offset,rpea);
currentPosition = PrintHelper.ConvertRectangleToCurentPosition(r);
Console.WriteLine("layoutrec {0} - currpos {1} ",r,currentPosition);
}
else
@ -207,12 +202,9 @@ namespace ICSharpCode.Reports.Core @@ -207,12 +202,9 @@ namespace ICSharpCode.Reports.Core
rpea.LocationAfterDraw = new Point (rpea.LocationAfterDraw.X,section.SectionOffset + section.Size.Height);
Console.WriteLine ("locafter {0}",rpea.LocationAfterDraw);
}
section.Items[0].Size = containerSize;
Console.WriteLine("ret val {0}",currentPosition);
Console.WriteLine("--");
return currentPosition;
}

8
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs

@ -86,7 +86,7 @@ namespace ICSharpCode.Reports.Core @@ -86,7 +86,7 @@ namespace ICSharpCode.Reports.Core
this.reportDocument.RenderReportHeader += new EventHandler<ReportPageEventArgs> (PrintReportHeader);
this.reportDocument.RenderPageHeader += new EventHandler<ReportPageEventArgs> (PrintPageHeader);
this.reportDocument.RenderDetails += new EventHandler<ReportPageEventArgs> (PrintDetail);
this.reportDocument.RenderPageEnd += new EventHandler<ReportPageEventArgs> (PrintPageEnd);
this.reportDocument.RenderPageEnd += new EventHandler<ReportPageEventArgs> (PrintPageFooter);
this.reportDocument.RenderReportEnd += new EventHandler<ReportPageEventArgs> (PrintReportFooter);
this.Evaluator = PrintHelper.SetupEvaluator();
@ -169,9 +169,9 @@ namespace ICSharpCode.Reports.Core @@ -169,9 +169,9 @@ namespace ICSharpCode.Reports.Core
}
internal virtual void PrintPageEnd (object sender,ReportPageEventArgs rpea)
internal virtual void PrintPageFooter (object sender,ReportPageEventArgs rpea)
{
this.CurrentSection = this.reportModel.ReportFooter;
this.CurrentSection = this.reportModel.PageFooter;
this.AddSectionEvents();
}
@ -214,7 +214,7 @@ namespace ICSharpCode.Reports.Core @@ -214,7 +214,7 @@ namespace ICSharpCode.Reports.Core
this.CurrentSection.Render (rpea);
Evaluator.SinglePage = this.reportDocument.SinglePage;
if (this.CurrentSection.Items.Count > 0) {

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderDataReport.cs

@ -51,7 +51,7 @@ namespace ICSharpCode.Reports.Core { @@ -51,7 +51,7 @@ namespace ICSharpCode.Reports.Core {
private void PageEnd (ReportPageEventArgs rpea)
private void PageFooter (ReportPageEventArgs rpea)
{
this.CurrentSection.SectionOffset = base.SectionBounds.PageFooterRectangle.Location.Y;
base.RenderSection (rpea);
@ -89,10 +89,10 @@ namespace ICSharpCode.Reports.Core { @@ -89,10 +89,10 @@ namespace ICSharpCode.Reports.Core {
}
internal override void PrintPageEnd(object sender, ReportPageEventArgs rpea)
internal override void PrintPageFooter(object sender, ReportPageEventArgs rpea)
{
base.PrintPageEnd(sender,rpea);
this.PageEnd (rpea);
base.PrintPageFooter(sender,rpea);
this.PageFooter (rpea);
base.RemoveSectionEvents();
}
@ -140,6 +140,14 @@ namespace ICSharpCode.Reports.Core { @@ -140,6 +140,14 @@ namespace ICSharpCode.Reports.Core {
}
internal override void PrintDetail(object sender, ReportPageEventArgs rpea)
{
base.PrintDetail(sender,rpea);
this.PrintDetailInternal (rpea,base.DataNavigator);
}
private void PrintDetailInternal (ReportPageEventArgs rpea,DataNavigator nav)
{
Rectangle sectionRect;
@ -236,12 +244,6 @@ namespace ICSharpCode.Reports.Core { @@ -236,12 +244,6 @@ namespace ICSharpCode.Reports.Core {
}
internal override void PrintDetail(object sender, ReportPageEventArgs rpea)
{
this.PrintDetailInternal (rpea,base.DataNavigator);
}
internal override void BodyEnd(object sender, ReportPageEventArgs rpea)
{
base.BodyEnd (sender,rpea);

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/RenderFormSheetReport.cs

@ -84,8 +84,8 @@ namespace ICSharpCode.Reports.Core { @@ -84,8 +84,8 @@ namespace ICSharpCode.Reports.Core {
/// <param name="sender"></param>
/// <param name="e"></param>
internal override void PrintPageEnd(object sender, ReportPageEventArgs rpea) {
base.PrintPageEnd(this,rpea);
internal override void PrintPageFooter(object sender, ReportPageEventArgs rpea) {
base.PrintPageFooter(this,rpea);
this.CurrentSection.SectionOffset = base.SectionBounds.PageFooterRectangle.Location.Y;
base.RenderSection (rpea);
}

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/ReportDocument.cs

@ -27,11 +27,9 @@ namespace ICSharpCode.Reports.Core { @@ -27,11 +27,9 @@ namespace ICSharpCode.Reports.Core {
/// </summary>
///
public event EventHandler<ReportPageEventArgs> BodyStart;
/// <summary>
/// Fired if all Details 8data) are printed
/// </summary>
public event EventHandler<ReportPageEventArgs> BodyEnd;
public event EventHandler<ReportPageEventArgs> RenderReportHeader;
public event EventHandler<ReportPageEventArgs> RenderPageHeader;
public event EventHandler<ReportPageEventArgs> RenderDetails;

Loading…
Cancel
Save