Browse Source

ReportFooter keep position

pull/14/head
peterforstmeier 15 years ago
parent
commit
6a2b27f0a6
  1. 23
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SectionBounds.cs
  2. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SinglePage.cs
  3. 24
      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

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

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

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

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

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

@ -72,7 +72,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -72,7 +72,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected virtual void BuildNewPage ()
{
this.SinglePage = this.InitNewPage();
PrintHelper.InitPage(this.SinglePage,this.ReportModel.ReportSettings);
PrintHelper.InitPage(this.SinglePage,this.ReportModel.ReportSettings);
this.SinglePage.CalculatePageBounds(this.ReportModel);
}
@ -112,12 +112,10 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -112,12 +112,10 @@ namespace ICSharpCode.Reports.Core.Exporter
} else {
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)) {
section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height + GlobalValues.ControlMargins.Top + GlobalValues.ControlMargins.Bottom);
}
list = StandardPrinter.ConvertPlainCollection(section.Items,offset);
}
}
@ -197,8 +195,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -197,8 +195,8 @@ namespace ICSharpCode.Reports.Core.Exporter
private static void EvaluateRecursive (IExpressionEvaluatorFacade evaluatorFassade,ExporterCollection items)
{
foreach (BaseExportColumn be in items) {
IExportContainer ec = be as IExportContainer;
if (ec != null)
{
@ -207,26 +205,16 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -207,26 +205,16 @@ namespace ICSharpCode.Reports.Core.Exporter
}
}
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.Text.StartsWith("=")) {
et.Text = evaluatorFassade.Evaluate(et.Text);
}
catch (UnknownFunctionException ufe)
{
et.Text = GlobalValues.UnkownFunctionMessage(ufe.Message);
}
finally
{
}
}
}
}
#endregion

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

@ -63,19 +63,19 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -63,19 +63,19 @@ namespace ICSharpCode.Reports.Core.Exporter
Size groupSize = Size.Empty;
Size childSize = Size.Empty;
Console.WriteLine("-------------------START");
Console.WriteLine ("section {0}",section.Size);
Console.WriteLine();
// Console.WriteLine("-------------------START");
//
// Console.WriteLine ("section {0}",section.Size);
//
// Console.WriteLine();
if (section.Items.IsGrouped)
{
groupSize = section.Items[0].Size;
childSize = section.Items[1].Size;
Console.WriteLine ("group {0}",section.Items[0].Size);
Console.WriteLine ("detail {0}",section.Items[1].Size);
// Console.WriteLine ("group {0}",section.Items[0].Size);
// Console.WriteLine ("detail {0}",section.Items[1].Size);
}
Rectangle pageBreakRect = Rectangle.Empty;
@ -102,23 +102,23 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -102,23 +102,23 @@ namespace ICSharpCode.Reports.Core.Exporter
childNavigator.Reset();
childNavigator.MoveNext();
Console.WriteLine("-------------------after group");
Console.WriteLine ("section {0}",section.Size);
Console.WriteLine ("group {0}",section.Items[0].Size);
Console.WriteLine ("detail {0}",section.Items[1].Size);
Console.WriteLine();
// Console.WriteLine("-------------------after group");
//
// Console.WriteLine ("section {0}",section.Size);
// Console.WriteLine ("group {0}",section.Items[0].Size);
// Console.WriteLine ("detail {0}",section.Items[1].Size);
// Console.WriteLine();
//Convert children
if (childNavigator != null) {
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
do
{
Console.WriteLine("-----------------childs");
Console.WriteLine ("section {0}",section.Size);
Console.WriteLine ("group {0}",section.Items[0].Size);
Console.WriteLine ("detail {0}",section.Items[1].Size);
Console.WriteLine();
// Console.WriteLine("-----------------childs");
// Console.WriteLine ("section {0}",section.Size);
// Console.WriteLine ("group {0}",section.Items[0].Size);
// Console.WriteLine ("detail {0}",section.Items[1].Size);
// Console.WriteLine();
section.Size = base.RestoreSize;
section.Items[0].Size = groupSize;
section.Items[1].Size = childSize;
@ -151,9 +151,9 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -151,9 +151,9 @@ namespace ICSharpCode.Reports.Core.Exporter
{
// No Grouping at all
Size dd = section.Items[0].Size;
Console.WriteLine("---------NoGrouping");
Console.WriteLine ("section {0}",section.Size);
Console.WriteLine ("row {0}",dd);
// Console.WriteLine("---------NoGrouping");
// Console.WriteLine ("section {0}",section.Size);
// Console.WriteLine ("row {0}",dd);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer,defaultLeftPos,base.CurrentPosition);
section.Size = base.RestoreSize;
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 @@ -16,7 +16,6 @@ namespace ICSharpCode.Reports.Core.Exporter
readonly object addLock = new object();
//internal delegate ExporterCollection ConverterDelegate (BaseSection s);
#region Constructor
@ -103,7 +102,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -103,7 +102,6 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected Point BuildDetail (BaseSection section,IDataNavigator dataNavigator)
{
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 @@ -33,13 +33,20 @@ namespace ICSharpCode.Reports.Expressions.ReportingLanguage
public string Evaluate (string expression)
{
if (CanEvaluate(expression)) {
IExpression compiled = compiler.CompileExpression<string>(expression);
this.context.ContextObject = this.SinglePage;
if (compiled != null) {
return (compiled.Evaluate(context)).ToString();
try {
if (CanEvaluate(expression)) {
IExpression compiled = compiler.CompileExpression<string>(expression);
this.context.ContextObject = this.SinglePage;
if (compiled != null) {
return (compiled.Evaluate(context)).ToString();
}
}
} catch (Exception e) {
Console.WriteLine("error");
expression = e.Message;
}
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 @@ -124,9 +124,10 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.AggregateFunctions
} else {
list.Add(true);
}
} else {
}
else {
string str = String.Format ("<{0}> not found in AggregateFunction",data.ToString());
// throw new FieldNotFoundException(str);
throw new FieldNotFoundException(str);
}
}
return list;

Loading…
Cancel
Save