Browse Source

Can display stacked Rows

pull/15/head^2
peterforstmeier 15 years ago
parent
commit
ddc28da84b
  1. 24
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
  2. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
  3. 55
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
  4. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  5. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
  6. 12
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
  7. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs

24
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs

@ -31,36 +31,22 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -31,36 +31,22 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
return Rectangle.Empty;
}
// Console.WriteLine("\tlayouter for container <{0}>",container.ToString());
// Console.WriteLine("\tLayouter for Container");
Rectangle desiredContainerRectangle = new Rectangle (container.Location,container.Size);
System.Collections.Generic.IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in container.Items where bt.CanGrow == true select bt;
if (canGrowShrinkCollection.Count() > 0 ) {
Rectangle surroundingRec = FindSurroundingRectangle(graphics,canGrowShrinkCollection);
// desiredContainerRectangle = new Rectangle(container.Location.X,
// container.Location.Y,
// container.Size.Width,
// surroundingRec.Size.Height + GlobalValues.ControlMargins.Top + GlobalValues.ControlMargins.Bottom);
//
desiredContainerRectangle = new Rectangle(container.Location.X,
container.Location.Y,
container.Size.Width,
surroundingRec.Size.Height);
// var r1 = new Rectangle(container.Location.X,
// container.Location.Y,
// container.Size.Width,
// surroundingRec.Size.Height);
//
// Console.WriteLine("Diff {0} - {1} dif {2}",desiredContainerRectangle,r1,desiredContainerRectangle.Height - r1.Height);
}
// Console.WriteLine("\tContainer : {0} - DesiredContainerRectangle {1} ",container.Size,desiredContainerRectangle.Size);
return desiredContainerRectangle;
}
public Rectangle Layout(Graphics graphics,BaseSection section)
{
if (graphics == null) {
@ -69,9 +55,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -69,9 +55,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
if (section == null) {
throw new ArgumentNullException("section");
}
// Console.WriteLine("\tLayouter for Container");Console.WriteLine("\tlayouter for section <{0}>",section.Name);
// Console.WriteLine("\tLayouter for Section");
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in section.Items where bt.CanGrow == true select bt;
Rectangle desiredSectionRectangle = new Rectangle(section.Location.X,
@ -91,11 +75,10 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -91,11 +75,10 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
surroundingRec.Size.Height);
}
}
// Console.WriteLine("\tSection : {0} - DesiredContainerRectangle {1} ",section.Size,desiredSectionRectangle.Size);
return desiredSectionRectangle;
}
private static Rectangle FindSurroundingRectangle (Graphics graphics,IEnumerable<BaseReportItem> canGrowShrinkCollection)
{
@ -107,7 +90,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -107,7 +90,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
canGrowShrinkCollection.First().Size.Height);
foreach (BaseTextItem elemToLayout in canGrowShrinkCollection) {
Console.WriteLine("ELEMTEXT {0}",elemToLayout.Text);
Size textSize = MeasurementService.MeasureReportItem (graphics,elemToLayout);
elemToLayout.Size = new Size(elemToLayout.Size.Width,textSize.Height);
rec = Rectangle.Union(rec,new Rectangle(elemToLayout.Location,elemToLayout.Size));

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

@ -30,8 +30,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -30,8 +30,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
}
}
public static void AdjustBackColor (ISimpleContainer container, Color defaultColor)
/*
public static void aaAdjustBackColor (ISimpleContainer container, Color defaultColor)
{
if (container.BackColor != defaultColor) {
foreach (var item in container.Items)
@ -40,7 +40,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -40,7 +40,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
}
}
}
*/
public static void FillBackground (Graphics graphics,BaseStyleDecorator decorator)
{
@ -224,10 +224,9 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -224,10 +224,9 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
lineItem.StyleDecorator.Size);
AdjustBackColor (container);
Console.WriteLine("\tstart container at {0}",lineItem.StyleDecorator.Location);
return lineItem;
return lineItem;
}
return null;
}

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

@ -86,23 +86,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -86,23 +86,22 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Converters
//Point currentPosition = Point.Empty;
protected Point Offset {get;set;}
protected ExporterCollection ConvertSection (BaseSection section,int dataRow)
{
FireSectionRenderEvent (section ,dataRow);
Console.WriteLine("");
Console.WriteLine("section {0}",section.Name);
PrintHelper.AdjustParent((BaseSection)section,section.Items);
var list = new ExporterCollection();
Point startLocation = section.Location;
Offset = new Point(section.Location.X,section.SectionOffset);
if (section.Items.Count > 0) {
section.Items.SortByLocation();
section.Items.SortByLocation();
IExpressionEvaluatorFacade evaluator = EvaluationHelper.CreateEvaluator(this.SinglePage,this.SinglePage.IDataNavigator);
IExpressionEvaluatorFacade evaluator = EvaluationHelper.CreateEvaluator(this.SinglePage,this.SinglePage.IDataNavigator);
Rectangle desiredRectangle = LayoutHelper.CalculateSectionLayout(this.Graphics,section);
LayoutHelper.FixSectionLayout(desiredRectangle,section);
@ -113,43 +112,25 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -113,43 +112,25 @@ namespace ICSharpCode.Reports.Core.Exporter
if (simpleContainer != null)
{
EvaluationHelper.EvaluateReportItems(evaluator,simpleContainer.Items);
Size s = simpleContainer.Size;
var l = (ILayouter)ServiceContainer.GetService(typeof(ILayouter));
LayoutHelper.SetLayoutForRow(Graphics,l, simpleContainer);
ExportContainer exportContainer = StandardPrinter.ConvertToContainer(simpleContainer,Offset);
Console.WriteLine ("offset {0}",Offset);
Console.WriteLine("start exportContainer container at {0} with height {1}",exportContainer.StyleDecorator.Location,exportContainer.StyleDecorator.Size.Height);
s = simpleContainer.Size;
EvaluationHelper.EvaluateReportItems(evaluator,simpleContainer.Items);
var l = (ILayouter)ServiceContainer.GetService(typeof(ILayouter));
LayoutHelper.SetLayoutForRow(Graphics,l, simpleContainer);
ExportContainer exportContainer = StandardPrinter.ConvertToContainer(simpleContainer,Offset);
ExporterCollection clist = StandardPrinter.ConvertPlainCollection(simpleContainer.Items,exportContainer.StyleDecorator.Location);
exportContainer.Items.AddRange(clist);
list.Add(exportContainer);
Offset = new Point(Offset.X,Offset.Y + exportContainer.StyleDecorator.Size.Height);
Console.WriteLine ("new offset {0}",Offset);
// foreach (ExportText VARIABLE in clist)
// {
// Console.WriteLine("{0} - {1}",VARIABLE.Text,VARIABLE.StyleDecorator.Location);
// }
// Console.WriteLine(".......");
Offset = new Point(Offset.X,Offset.Y + exportContainer.StyleDecorator.Size.Height);
}
else
{
Console.WriteLine("start section {0} at {1}",section.Name,section.SectionOffset + section.Location.Y);
list = StandardPrinter.ConvertPlainCollection(section.Items,Offset);
Offset = new Point(Offset.X,Offset.Y + section.Size.Height);
}
section.Size = new Size(section.Size.Width,section.Size.Height);
section.Size = new Size(section.Size.Width,Offset.Y - section.SectionOffset);
}
Console.WriteLine ("\toffset {0} sectionoffset {1}",Offset,section.SectionOffset);
}
Console.WriteLine ("Cuurent location {0} section.botom {1}",Offset,section.Location.Y + section.Size.Height);
return list;
}
@ -291,8 +272,15 @@ Console.WriteLine ("new offset {0}",Offset); @@ -291,8 +272,15 @@ Console.WriteLine ("new offset {0}",Offset);
#region Property's
protected Point Offset {get;set;}
protected Graphics Graphics {get; private set;}
protected SectionBounds SectionBounds
{
get { return SinglePage.SectionBounds; }
}
public IReportModel ReportModel {get;set;}
protected ExporterPage SinglePage {get;set;}
@ -308,13 +296,6 @@ Console.WriteLine ("new offset {0}",Offset); @@ -308,13 +296,6 @@ Console.WriteLine ("new offset {0}",Offset);
}
}
}
protected SectionBounds SectionBounds
{
get { return SinglePage.SectionBounds; }
}
#endregion
}
}

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

@ -94,8 +94,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -94,8 +94,8 @@ namespace ICSharpCode.Reports.Core.Exporter
//Convert children
if (childNavigator != null) {
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
//Console.WriteLine("child start {0}",base.CurrentPosition);
// StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
StandardPrinter.AdjustBackColor(simpleContainer);
do
{
section.Size = base.RestoreSectionSize;

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs

@ -101,7 +101,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -101,7 +101,8 @@ namespace ICSharpCode.Reports.Core.Exporter
if (childNavigator != null) {
do
{
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
StandardPrinter.AdjustBackColor(simpleContainer);
// StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
simpleContainer = table.Items[2] as ISimpleContainer;
containerSize = simpleContainer.Size;

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

@ -78,12 +78,13 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -78,12 +78,13 @@ namespace ICSharpCode.Reports.Core.Exporter
protected override void BuildPageHeader ()
{
base.ReportModel.PageHeader.SectionOffset = base.AdjustPageHeader();
Console.WriteLine ("pageHeader {0}",base.ReportModel.PageHeader.Size);
// Console.WriteLine ("pageHeader at start {0}",base.ReportModel.PageHeader.Size);
ExporterCollection convertedList = base.ConvertSection (base.ReportModel.PageHeader,this.dataNavigator.CurrentRow);
Console.WriteLine ("pageHeader {0}",base.ReportModel.PageHeader.Size);
// Console.WriteLine ("pageHeader after convert {0}",base.ReportModel.PageHeader.Size);
// Console.WriteLine ("Offset from base {0}",base.Offset);
// base.ReportModel.PageHeader.Size = new Size(base.ReportModel.PageHeader.Size.Width,base.Offset.Y);
base.SectionBounds.MeasurePageHeader(base.ReportModel.PageHeader);
Console.WriteLine ("rect {0} detail {1}",base.SectionBounds.PageHeaderRectangle,base.SectionBounds.DetailStart);
// Console.WriteLine ("PageHeaderRectangle {0} DetailStart {1}",base.SectionBounds.PageHeaderRectangle,base.SectionBounds.DetailStart);
base.SinglePage.Items.AddRange(convertedList);
}
@ -159,29 +160,24 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -159,29 +160,24 @@ namespace ICSharpCode.Reports.Core.Exporter
void OnSectionRendering (object sender,SectionRenderEventArgs e)
{
// Console.WriteLine("Datapagebuilder : OnSectionRendering");
base.FireSectionRenderEvent(e.Section,e.RowNumber);
}
void OnGroupHeaderRendering (object sender, GroupHeaderEventArgs ghea)
{
// Console.WriteLine("Datapagebuilder : OnGroupHeaderRendering");
base.FireGroupHeaderEvent(ghea);
}
void OnGroupFooterRendering (object sender, GroupFooterEventArgs gfea)
{
// Console.WriteLine ("DatapageBuilder : OnGroupFooterEvent");
base.FireGroupFooterEvent(gfea);
}
void OnRowRendering (object sender,RowRenderEventArgs rrea)
{
// Console.WriteLine("Datapagebuilder : OnRowRendering");
base.FireRowRenderEvent(rrea);
}
#endregion

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs

@ -55,7 +55,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -55,7 +55,8 @@ namespace ICSharpCode.Reports.Core.Exporter
{
this.ReportModel.PageHeader.SectionOffset = base.SinglePage.SectionBounds.PageHeaderRectangle.Top;
ExporterCollection convertedList = base.ConvertSection (base.ReportModel.PageHeader,0);
base.SinglePage.Items.AddRange(convertedList);
base.SinglePage.Items.AddRange(convertedList);
base.SectionBounds.MeasurePageHeader(base.ReportModel.PageHeader);
}
protected override void BuildDetailInternal(BaseSection section)

Loading…
Cancel
Save