Browse Source

ReportFooter keep position

pull/14/head
peterforstmeier 15 years ago
parent
commit
6a2b27f0a6
  1. 17
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SectionBounds.cs
  2. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs
  3. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
  4. 42
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  5. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
  6. 17
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs
  7. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs

17
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SectionBounds.cs

@ -38,9 +38,9 @@ namespace ICSharpCode.Reports.Core.BaseClasses
bool firstPage; bool firstPage;
bool landscape; bool landscape;
// int gap = 1;
Rectangle printableArea; Rectangle printableArea;
#region Constructor #region Constructor
@ -103,13 +103,12 @@ namespace ICSharpCode.Reports.Core.BaseClasses
} }
//Test
public void MeasurePageFooter (IReportItem section) public void MeasurePageFooter (IReportItem section)
{ {
if (section == null) { if (section == null) {
throw new ArgumentNullException("section"); throw new ArgumentNullException("section");
} }
this.pageFooterRectangle = new Rectangle(this.printableArea.Location.X, this.pageFooterRectangle = new Rectangle(this.printableArea.Location.X,
this.marginBounds.Bottom - section.Size.Height, this.marginBounds.Bottom - section.Size.Height,
this.marginBounds.Width, this.marginBounds.Width,
@ -117,6 +116,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses
} }
//Test //Test
public void MeasureReportFooter (IReportItem section) public void MeasureReportFooter (IReportItem section)
{ {
@ -224,17 +224,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses
} }
} }
/// <summary>
/// gap between two Sections
/// </summary>
// public int Gap
// {
// get {
// return gap;
// }
// }
public Rectangle DetailSectionRectangle {get;set;} public Rectangle DetailSectionRectangle {get;set;}

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs

@ -37,15 +37,10 @@ namespace ICSharpCode.Reports.Core.BaseClasses
} }
sectionBounds.MeasureReportHeader(reportModel.ReportHeader); sectionBounds.MeasureReportHeader(reportModel.ReportHeader);
//PageHeader
this.sectionBounds.MeasurePageHeader(reportModel.PageHeader); this.sectionBounds.MeasurePageHeader(reportModel.PageHeader);
//PageFooter
this.sectionBounds.MeasurePageFooter(reportModel.PageFooter); this.sectionBounds.MeasurePageFooter(reportModel.PageFooter);
//ReportFooter
this.sectionBounds.MeasureReportFooter(reportModel.ReportFooter); this.sectionBounds.MeasureReportFooter(reportModel.ReportFooter);
this.sectionBounds.MeasureDetailArea(); this.sectionBounds.MeasureDetailArea();

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs

@ -112,12 +112,10 @@ namespace ICSharpCode.Reports.Core.Exporter
} else { } else {
Rectangle desiredRectangle = layouter.Layout(this.graphics,section); Rectangle desiredRectangle = layouter.Layout(this.graphics,section);
Rectangle sectionRectangle = new Rectangle(0,0,section.Size.Width,section.Size.Height); Rectangle sectionRectangle = new Rectangle(section.Location,section.Size);
if (!sectionRectangle.Contains(desiredRectangle)) { if (!sectionRectangle.Contains(desiredRectangle)) {
section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height + GlobalValues.ControlMargins.Top + GlobalValues.ControlMargins.Bottom); section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height + GlobalValues.ControlMargins.Top + GlobalValues.ControlMargins.Bottom);
} }
list = StandardPrinter.ConvertPlainCollection(section.Items,offset); list = StandardPrinter.ConvertPlainCollection(section.Items,offset);
} }
} }
@ -197,8 +195,8 @@ namespace ICSharpCode.Reports.Core.Exporter
private static void EvaluateRecursive (IExpressionEvaluatorFacade evaluatorFassade,ExporterCollection items) private static void EvaluateRecursive (IExpressionEvaluatorFacade evaluatorFassade,ExporterCollection items)
{ {
foreach (BaseExportColumn be in items) { foreach (BaseExportColumn be in items) {
IExportContainer ec = be as IExportContainer; IExportContainer ec = be as IExportContainer;
if (ec != null) if (ec != null)
{ {
@ -207,26 +205,16 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
} }
ExportText et = be as ExportText; ExportText et = be as ExportText;
if (et != null) {
try{
if (et.Text.StartsWith("=Globals!Page")) {
Console.WriteLine ("wxpression : {0}",evaluatorFassade.Evaluate(et.Text));
}
if (et != null) {
if (et.Text.StartsWith("=")) {
et.Text = evaluatorFassade.Evaluate(et.Text); et.Text = evaluatorFassade.Evaluate(et.Text);
} }
catch (UnknownFunctionException ufe)
{
et.Text = GlobalValues.UnkownFunctionMessage(ufe.Message);
}
finally
{
}
} }
} }
} }
#endregion #endregion

42
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

@ -63,19 +63,19 @@ namespace ICSharpCode.Reports.Core.Exporter
Size groupSize = Size.Empty; Size groupSize = Size.Empty;
Size childSize = Size.Empty; Size childSize = Size.Empty;
Console.WriteLine("-------------------START"); // Console.WriteLine("-------------------START");
//
Console.WriteLine ("section {0}",section.Size); // Console.WriteLine ("section {0}",section.Size);
//
Console.WriteLine(); // Console.WriteLine();
if (section.Items.IsGrouped) if (section.Items.IsGrouped)
{ {
groupSize = section.Items[0].Size; groupSize = section.Items[0].Size;
childSize = section.Items[1].Size; childSize = section.Items[1].Size;
Console.WriteLine ("group {0}",section.Items[0].Size); // Console.WriteLine ("group {0}",section.Items[0].Size);
Console.WriteLine ("detail {0}",section.Items[1].Size); // Console.WriteLine ("detail {0}",section.Items[1].Size);
} }
Rectangle pageBreakRect = Rectangle.Empty; Rectangle pageBreakRect = Rectangle.Empty;
@ -102,23 +102,23 @@ namespace ICSharpCode.Reports.Core.Exporter
childNavigator.Reset(); childNavigator.Reset();
childNavigator.MoveNext(); childNavigator.MoveNext();
Console.WriteLine("-------------------after group"); // Console.WriteLine("-------------------after group");
//
Console.WriteLine ("section {0}",section.Size); // Console.WriteLine ("section {0}",section.Size);
Console.WriteLine ("group {0}",section.Items[0].Size); // Console.WriteLine ("group {0}",section.Items[0].Size);
Console.WriteLine ("detail {0}",section.Items[1].Size); // Console.WriteLine ("detail {0}",section.Items[1].Size);
Console.WriteLine(); // Console.WriteLine();
//Convert children //Convert children
if (childNavigator != null) { if (childNavigator != null) {
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor); StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
do do
{ {
Console.WriteLine("-----------------childs"); // Console.WriteLine("-----------------childs");
Console.WriteLine ("section {0}",section.Size); // Console.WriteLine ("section {0}",section.Size);
Console.WriteLine ("group {0}",section.Items[0].Size); // Console.WriteLine ("group {0}",section.Items[0].Size);
Console.WriteLine ("detail {0}",section.Items[1].Size); // Console.WriteLine ("detail {0}",section.Items[1].Size);
Console.WriteLine(); // Console.WriteLine();
section.Size = base.RestoreSize; section.Size = base.RestoreSize;
section.Items[0].Size = groupSize; section.Items[0].Size = groupSize;
section.Items[1].Size = childSize; section.Items[1].Size = childSize;
@ -151,9 +151,9 @@ namespace ICSharpCode.Reports.Core.Exporter
{ {
// No Grouping at all // No Grouping at all
Size dd = section.Items[0].Size; Size dd = section.Items[0].Size;
Console.WriteLine("---------NoGrouping"); // Console.WriteLine("---------NoGrouping");
Console.WriteLine ("section {0}",section.Size); // Console.WriteLine ("section {0}",section.Size);
Console.WriteLine ("row {0}",dd); // Console.WriteLine ("row {0}",dd);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer,defaultLeftPos,base.CurrentPosition); base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer,defaultLeftPos,base.CurrentPosition);
section.Size = base.RestoreSize; section.Size = base.RestoreSize;
section.Items[0].Size = dd; section.Items[0].Size = dd;

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs

@ -16,7 +16,6 @@ namespace ICSharpCode.Reports.Core.Exporter
readonly object addLock = new object(); readonly object addLock = new object();
//internal delegate ExporterCollection ConverterDelegate (BaseSection s);
#region Constructor #region Constructor
@ -103,7 +102,6 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
protected Point BuildDetail (BaseSection section,IDataNavigator dataNavigator) protected Point BuildDetail (BaseSection section,IDataNavigator dataNavigator)
{ {
ExporterCollection convertedList = new ExporterCollection(); ExporterCollection convertedList = new ExporterCollection();

17
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/ExpressionEvaluatorFacade.cs

@ -33,13 +33,20 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage
public string Evaluate (string expression) public string Evaluate (string expression)
{ {
if (CanEvaluate(expression)) { try {
IExpression compiled = compiler.CompileExpression<string>(expression); if (CanEvaluate(expression)) {
this.context.ContextObject = this.SinglePage; IExpression compiled = compiler.CompileExpression<string>(expression);
if (compiled != null) { this.context.ContextObject = this.SinglePage;
return (compiled.Evaluate(context)).ToString(); if (compiled != null) {
return (compiled.Evaluate(context)).ToString();
}
} }
} catch (Exception e) {
Console.WriteLine("error");
expression = e.Message;
} }
return expression; return expression;
} }

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs

@ -124,9 +124,10 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.AggregateFunctions
} else { } else {
list.Add(true); list.Add(true);
} }
} else { }
else {
string str = String.Format ("<{0}> not found in AggregateFunction",data.ToString()); string str = String.Format ("<{0}> not found in AggregateFunction",data.ToString());
// throw new FieldNotFoundException(str); throw new FieldNotFoundException(str);
} }
} }
return list; return list;

Loading…
Cancel
Save