diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
index 20c50ddde8..46acd2dd98 100644
--- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
+++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
@@ -136,6 +136,7 @@
+
diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
index 05324a4a94..826b0372de 100644
--- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
+++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
@@ -33,7 +33,7 @@ namespace ICSharpCode.Reports.Core
}
BaseReportItem containerItem = container as BaseReportItem;
- container.Items.SortByLocation();
+// container.Items.SortByLocation();
Rectangle desiredContainerRectangle = new Rectangle (containerItem.Location,containerItem.Size);
System.Collections.Generic.IEnumerable canGrowShrinkCollection = from bt in container.Items where bt.CanGrow == true select bt;
@@ -62,7 +62,7 @@ namespace ICSharpCode.Reports.Core
if (section == null) {
throw new ArgumentNullException("section");
}
- section.Items.SortByLocation();
+ //section.Items.SortByLocation();
IEnumerable canGrowShrinkCollection = from bt in section.Items where bt.CanGrow == true select bt;
diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Collections/Collections.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Collections/Collections.cs
index 84754d5328..8f181cf9f5 100644
--- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Collections/Collections.cs
+++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Collections/Collections.cs
@@ -352,6 +352,10 @@ namespace ICSharpCode.Reports.Core{
public void AddRange (IEnumerable items){
foreach (var item in items) {
+ IExportContainer container = item as IExportContainer;
+ if (container != null) {
+ AddRange(container.Items);
+ }
this.Add (item);
}
}
diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
index f7e1104927..7bbd35cc70 100644
--- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
+++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
@@ -90,13 +90,14 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Converters
+ /*
protected void ConvertSection (BaseSection section,int currentRow)
{
this.FireSectionRenderEvent (section ,currentRow);
this.Convert(section);
}
-
-
+ */
+ /*
private void Convert (BaseSection section)
{
this.exportItemsConverter.Offset = section.SectionOffset;
@@ -146,58 +147,69 @@ namespace ICSharpCode.Reports.Core.Exporter
}
}
}
+ */
+
- protected ExporterCollection bak_Convert (BaseSection section)
+ protected ExporterCollection ConvertSection (BaseSection section,int dataRow)
{
+ FireSectionRenderEvent (section ,dataRow);
this.exportItemsConverter.Offset = section.SectionOffset;
PrintHelper.AdjustParent((BaseSection)section,section.Items);
- ExporterCollection list = null;
- /*
+
+ ExporterCollection list = new ExporterCollection();
+
if (section.DrawBorder == true) {
- BaseRectangleItem debugRectangle = new BaseRectangleItem();
- debugRectangle = new BaseRectangleItem();
- debugRectangle.Location = new Point (0 ,0);
- debugRectangle.Size = new Size(section.Size.Width,section.Size.Height);
- debugRectangle.FrameColor = section.FrameColor;
- section.Items.Insert(0,debugRectangle);
+ section.Items.Insert(0,CreateDebugItem(section));
}
- */
+
if (section.Items.Count > 0) {
- ISimpleContainer container = section.Items[0] as ISimpleContainer;
- if (container != null) {
+ foreach (IReportItem item in section.Items) {
- ExportContainer exportContainer = this.exportItemsConverter.ConvertToContainer(container);
- this.exportItemsConverter.ParentLocation = exportContainer.StyleDecorator.Location;
-
- AdjustBackColor (container);
-
- ExporterCollection clist = container.Items.ConvertAll (this.exportItemsConverter.ConvertToLineItem) as ExporterCollection;
-
- exportContainer.Items.AddRange(clist);
- list = new ExporterCollection();
- list.Add(exportContainer);
-
- } else {
- this.exportItemsConverter.ParentLocation = section.Location;
-
- Rectangle desiredRectangle = layouter.Layout(this.graphics,section);
- Rectangle sectionRectangle = new Rectangle(0,0,section.Size.Width,section.Size.Height);
-
- if (!sectionRectangle.Contains(desiredRectangle)) {
- section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height);
+ ISimpleContainer container = item as ISimpleContainer;
+ if (container != null) {
+ ExportContainer exportContainer = this.exportItemsConverter.ConvertToContainer(container);
+ this.exportItemsConverter.ParentLocation = exportContainer.StyleDecorator.Location;
+
+ AdjustBackColor (container);
+ ExporterCollection clist = container.Items.ConvertAll (this.exportItemsConverter.ConvertToLineItem);
+ exportContainer.Items.AddRange(clist);
+ list.Add(exportContainer);
+
+ } else {
+ this.exportItemsConverter.ParentLocation = section.Location;
+
+ Rectangle desiredRectangle = layouter.Layout(this.graphics,section);
+ Rectangle sectionRectangle = new Rectangle(0,0,section.Size.Width,section.Size.Height);
+
+ if (!sectionRectangle.Contains(desiredRectangle)) {
+ section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height);
+ }
+
+ list = section.Items.ConvertAll (this.exportItemsConverter.ConvertToLineItem);
}
-
- list = section.Items.ConvertAll (this.exportItemsConverter.ConvertToLineItem);
- }
- if ((list != null) && (list.Count) > 0) {
-// this.singlePage.Items.AddRange(list);
+// if ((list != null) && (list.Count) > 0) {
+ //// this.singlePage.Items.AddRange(list);
+// }
+// }
}
}
return list;
}
+
+ private static BaseRectangleItem CreateDebugItem (BaseReportItem item)
+ {
+ BaseRectangleItem debugRectangle = new BaseRectangleItem();
+ debugRectangle = new BaseRectangleItem();
+ debugRectangle.Location = new Point (0 ,0);
+ debugRectangle.Size = new Size(item.Size.Width,item.Size.Height);
+ debugRectangle.FrameColor = item.FrameColor;
+ return debugRectangle;
+ }
+
+
private static void AdjustBackColor (ISimpleContainer container)
{
BaseReportItem parent = container as BaseReportItem;
diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
index c9aa69a156..f69801d5da 100644
--- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
+++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
@@ -84,10 +84,11 @@ namespace ICSharpCode.Reports.Core.Exporter
protected override void BuildReportHeader ()
{
- if (base.Pages.Count == 0) {
+ if ((base.Pages.Count == 0) && (base.ReportModel.ReportHeader.Items.Count > 0)) {
+
base.ReportModel.ReportHeader.SectionOffset = base.SinglePage.SectionBounds.ReportHeaderRectangle.Top;
- base.ConvertSection (base.ReportModel.ReportHeader,
- this.dataNavigator.CurrentRow);
+ ExporterCollection convertedList = base.ConvertSection (base.ReportModel.ReportHeader,this.dataNavigator.CurrentRow);
+ base.SinglePage.Items.AddRange(convertedList);
}
}
@@ -95,40 +96,26 @@ namespace ICSharpCode.Reports.Core.Exporter
protected override void BuildPageHeader ()
{
base.ReportModel.PageHeader.SectionOffset = base.AdjustPageHeader();
- ExporterCollection convertedList = new ExporterCollection();
- /*
- IBaseConverter baseConverter = ConverterFactory.CreateConverter(base.ReportModel.PageHeader.Items[0],
- dataNavigator,
- this.SinglePage,this.ExportItemsConverter,
- base.Layouter);
- if (baseConverter != null) {
-
- convertedList = baseConverter.Convert(base.ReportModel.PageHeader,base.ReportModel.PageHeader.Items[0]);
-
- } else {
- convertedList = base.bak_Convert (base.ReportModel.PageHeader);
-
- }
- */
- convertedList = base.bak_Convert (base.ReportModel.PageHeader);
-
+ ExporterCollection convertedList = base.ConvertSection (base.ReportModel.PageHeader,this.dataNavigator.CurrentRow);
base.SinglePage.Items.AddRange(convertedList);
+ //orginal
+ //base.ConvertSection(base.ReportModel.PageHeader,0);
}
protected override void BuildReportFooter (Rectangle footerRectangle)
{
base.ReportModel.ReportFooter.SectionOffset = footerRectangle.Top;
- base.ConvertSection (base.ReportModel.ReportFooter,
- this.dataNavigator.CurrentRow);
+ ExporterCollection convertedList = base.ConvertSection (base.ReportModel.ReportFooter,this.dataNavigator.CurrentRow);
+ base.SinglePage.Items.AddRange(convertedList);
}
protected override void BuildPageFooter ()
{
base.ReportModel.PageFooter.SectionOffset = base.SinglePage.SectionBounds.PageFooterRectangle.Top;
- base.ConvertSection (base.ReportModel.PageFooter,
- this.dataNavigator.CurrentRow);
+ ExporterCollection convertedList = convertedList = base.ConvertSection (base.ReportModel.PageFooter,this.dataNavigator.CurrentRow);
+ base.SinglePage.Items.AddRange(convertedList);
}
@@ -155,7 +142,6 @@ namespace ICSharpCode.Reports.Core.Exporter
}
-
#endregion
private void WritePages ()
diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs
index 74fb03b054..a12f909d23 100644
--- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs
+++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs
@@ -13,45 +13,49 @@ namespace ICSharpCode.Reports.Core.Exporter
///
/// Description of ContainerItem.
///
- public class ExportContainer:BaseExportColumn
+ public class ExportContainer : BaseExportColumn, IExportContainer
{
ExporterCollection items;
-
+
#region Constructor
-
- public ExportContainer():base(){
+
+ public ExportContainer() : base()
+ {
base.IsContainer = true;
}
-
- public ExportContainer (BaseStyleDecorator itemStyle):base(itemStyle,true){
+
+ public ExportContainer(BaseStyleDecorator itemStyle) : base(itemStyle, true)
+ {
}
-
+
#endregion
-
+
#region overrides
-
-
- public override void DrawItem(System.Drawing.Graphics graphics){
+
+
+ public override void DrawItem(System.Drawing.Graphics graphics)
+ {
base.Decorate(graphics);
}
-
+
public override void DrawItem(PdfWriter pdfWriter, ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter converter)
{
base.DrawItem(pdfWriter, converter);
base.Decorate();
}
-
-
+
+
#endregion
-
- public void AddLineItem (BaseExportColumn item) {
+
+ public void AddLineItem(BaseExportColumn item)
+ {
if (item == null) {
throw new ArgumentNullException("item");
}
this.items.Add(item);
}
-
+
public ExporterCollection Items {
get {
if (this.items == null) {
diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/IExportContainer.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/IExportContainer.cs
new file mode 100644
index 0000000000..8e7dd74860
--- /dev/null
+++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/IExportContainer.cs
@@ -0,0 +1,20 @@
+//
+//
+//
+//
+// $Revision: 5369 $
+//
+
+using System;
+using iTextSharp.text.pdf;
+
+namespace ICSharpCode.Reports.Core.Exporter
+{
+ public interface IExportContainer
+ {
+ void DrawItem(System.Drawing.Graphics graphics);
+ void DrawItem(PdfWriter pdfWriter, ICSharpCode.Reports.Core.Exporter.ExportRenderer.PdfUnitConverter converter);
+ void AddLineItem(BaseExportColumn item);
+ ExporterCollection Items { get; }
+ }
+}
diff --git a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs
index 1f19ab1107..0441e1364e 100644
--- a/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs
+++ b/src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs
@@ -51,45 +51,39 @@ namespace ICSharpCode.Reports.Core.Exporter
protected override void BuildReportHeader()
{
- base.BuildReportHeader();
if (base.Pages.Count == 0) {
this.ReportModel.ReportHeader.SectionOffset = base.SinglePage.SectionBounds.ReportHeaderRectangle.Top;
- base.ConvertSection(this.ReportModel.ReportHeader,1);
+ ExporterCollection convertedList = base.ConvertSection (base.ReportModel.ReportHeader,0);
+ base.SinglePage.Items.AddRange(convertedList);
}
}
protected override void BuildPageHeader()
{
- base.BuildPageHeader();
this.ReportModel.PageHeader.SectionOffset = base.SinglePage.SectionBounds.PageHeaderRectangle.Top;
- base.ConvertSection(this.ReportModel.PageHeader,
-// base.SinglePage.SectionBounds.PageHeaderRectangle.Top,
- 1 );
+ ExporterCollection convertedList = base.ConvertSection (base.ReportModel.PageHeader,0);
+ base.SinglePage.Items.AddRange(convertedList);
}
protected override void BuildDetailInternal(BaseSection section)
{
base.BuildDetailInternal(section);
section.SectionOffset = base.SinglePage.SectionBounds.DetailStart.Y;
- base.ConvertSection (section,
-// base.SinglePage.SectionBounds.DetailStart.Y,
- 1);
}
protected override void BuildPageFooter()
{
- base.BuildPageFooter();
this.ReportModel.PageFooter.SectionOffset = base.SinglePage.SectionBounds.PageFooterRectangle.Top;
- base.ConvertSection(this.ReportModel.PageFooter,
-// base.SinglePage.SectionBounds.PageFooterRectangle.Top,
- 1 );
+ ExporterCollection convertedList = convertedList = base.ConvertSection (base.ReportModel.PageFooter,0);
+ base.SinglePage.Items.AddRange(convertedList);
}
protected override void BuildReportFooter(Rectangle footerRectangle)
{
- base.BuildReportFooter(footerRectangle);
+ ExporterCollection convertedList = base.ConvertSection (base.ReportModel.ReportFooter,0);
+ base.SinglePage.Items.AddRange(convertedList);
}