diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
index fedbdb982e..aa07fe14dc 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
@@ -166,7 +166,7 @@
Component
-
+
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
index cd3cf734cc..3fb6ec3ab3 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
@@ -8,18 +8,15 @@
*/
using System;
using System.Collections;
-using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Drawing.Design;
using System.IO;
-using System.Linq;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Designer;
-using ICSharpCode.Reports.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs
index 4a23ee0a58..7f912f7fa5 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ExplorerTree.cs
@@ -5,12 +5,13 @@
// $Revision$
//
-using ICSharpCode.Core.WinForms;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
+
using ICSharpCode.Core;
+using ICSharpCode.Core.WinForms;
using ICSharpCode.Reports.Core;
using ICSharpCode.SharpDevelop;
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs
index 816189e0de..5b3d7b557d 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs
@@ -5,14 +5,13 @@
// $Revision$
//
-using ICSharpCode.Core.WinForms;
using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
-using ICSharpCode.Core;
+
+using ICSharpCode.Core.WinForms;
using ICSharpCode.Reports.Core;
-using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.Reports.Addin
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/GroupedRow.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseGroupedRow.cs
similarity index 90%
rename from src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/GroupedRow.cs
rename to src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseGroupedRow.cs
index 005de8d3a7..980a23edc4 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/GroupedRow.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseGroupedRow.cs
@@ -13,23 +13,23 @@ using System.Drawing;
using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Core;
+
namespace ICSharpCode.Reports.Addin
{
///
/// Description of GroupedRow.
///
[Designer(typeof(ICSharpCode.Reports.Addin.Designer.GroupedRowDesigner))]
- public class BaseGroupedRowItem:BaseRowItem
+ public class BaseGroupedRow:BaseRowItem
{
- public BaseGroupedRowItem()
+ public BaseGroupedRow()
{
-// http://www.cetix.de/DotNetNews/Thread188109-Schlankes_Grid.aspx
-// http://msdn.microsoft.com/en-us/library/t9abe4ab(vs.71).aspx
- TypeDescriptor.AddProvider(new GroupedRowTypeProvider(), typeof(BaseGroupedRowItem));
+ TypeDescriptor.AddProvider(new GroupedRowTypeProvider(), typeof(BaseGroupedRow));
}
}
+
internal class GroupedRowTypeProvider : TypeDescriptionProvider
{
public GroupedRowTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Toolbox/ToolboxProvider.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Toolbox/ToolboxProvider.cs
index b30b49ffcb..46ab54cf56 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Toolbox/ToolboxProvider.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Toolbox/ToolboxProvider.cs
@@ -77,15 +77,13 @@ namespace ICSharpCode.Reports.Addin
//Group
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseGroupItem));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
-// tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
- tb.DisplayName = "GroupHeader";
+ tb.DisplayName = "SimpleGroupItem";
sideTab.Items.Add(new SideTabItemDesigner(tb));
//Group
- tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseGroupedRowItem));
+ tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseGroupedRow));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
-// tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
- tb.DisplayName = "GroupRow";
+ tb.DisplayName = "GroupHeaderRow";
sideTab.Items.Add(new SideTabItemDesigner(tb));
//BaseTable
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
index ae720859f3..fd0f62e4f3 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
@@ -86,6 +86,7 @@
+
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseGroupeRow.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseGroupeRow.cs
new file mode 100644
index 0000000000..0ebdab4e74
--- /dev/null
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseGroupeRow.cs
@@ -0,0 +1,23 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 24.08.2010
+ * Time: 20:14
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+
+namespace ICSharpCode.Reports.Core
+{
+ ///
+ /// Description of BaseGroupeRow.
+ ///
+ public class BaseGroupedRow:BaseRowItem
+ {
+ public BaseGroupedRow():base()
+ {
+ Console.WriteLine("Constr baseGroupedrow");
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
index 2cb1d120c1..5b84cdf667 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
@@ -155,8 +155,11 @@ namespace ICSharpCode.Reports.Core.Exporter
- protected void PrepareContainerForConverting(ISimpleContainer simpleContainer)
+ protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer)
{
+ if (section != null) {
+ FireSectionRendering(section);
+ }
LayoutRow(simpleContainer);
}
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
index 791c91bb4b..078206be4b 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
@@ -67,6 +67,68 @@ namespace ICSharpCode.Reports.Core.Exporter
int defaultLeftPos = parent.Location.X;
+ do {
+
+ PrintHelper.AdjustSectionLocation (section);
+ section.Size = this.SectionBounds.DetailSectionRectangle.Size;
+ base.SaveSize(section.Items[0].Size);
+
+
+
+ if (section.Items.HasGroupColumns) {
+
+ // Convert Grouping Header
+ currentPosition = ConvertGroupHeader(mylist,section,simpleContainer,defaultLeftPos,currentPosition);
+
+ //Convert children
+
+ if (base.DataNavigator.HasChildren) {
+
+ StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
+ base.DataNavigator.SwitchGroup();
+ do {
+ currentPosition = ConvertGroupChilds (mylist,section,simpleContainer,defaultLeftPos,currentPosition);
+ }
+ while ( base.DataNavigator.ChildMoveNext());
+ }
+
+ }
+ else
+ {
+ // No Grouping
+ currentPosition = ConvertStandardRow (mylist,section,simpleContainer,defaultLeftPos,currentPosition);
+ }
+
+
+ if (PrintHelper.IsPageFull(new Rectangle(new Point (simpleContainer.Location.X,currentPosition.Y), section.Size),base.SectionBounds)) {
+ base.FirePageFull(mylist);
+ section.SectionOffset = base.SinglePage.SectionBounds.PageHeaderRectangle.Location.Y;
+ currentPosition = new Point(base.SectionBounds.PageHeaderRectangle.X,base.SectionBounds.PageHeaderRectangle.Y);
+ mylist.Clear();
+ }
+
+ ShouldDrawBorder (section,mylist);
+
+ }
+ while (base.DataNavigator.MoveNext());
+
+ SectionBounds.ReportFooterRectangle = new Rectangle(SectionBounds.ReportFooterRectangle.Left,
+ section.Location.Y + section.Size.Height,
+ SectionBounds.ReportFooterRectangle.Width,
+ SectionBounds.ReportFooterRectangle.Height);
+ return mylist;
+ }
+
+
+
+ private ExporterCollection old_ConvertDataRow (ISimpleContainer simpleContainer)
+ {
+ ExporterCollection mylist = new ExporterCollection();
+ Point currentPosition = new Point(base.SectionBounds.DetailStart.X,base.SectionBounds.DetailStart.Y);
+ BaseSection section = parent as BaseSection;
+
+ int defaultLeftPos = parent.Location.X;
+
do {
PrintHelper.AdjustSectionLocation (section);
@@ -92,7 +154,7 @@ namespace ICSharpCode.Reports.Core.Exporter
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
base.DataNavigator.SwitchGroup();
do {
- currentPosition = ConvertGroupChilds (mylist,section,simpleContainer,defaultLeftPos,currentPosition);
+// currentPosition = ConvertGroupChilds (mylist,section,simpleContainer,defaultLeftPos,currentPosition);
}
while ( base.DataNavigator.ChildMoveNext());
}
@@ -120,36 +182,50 @@ namespace ICSharpCode.Reports.Core.Exporter
-
- private void AfterConverting (BaseSection section)
+ private Point ConvertGroupHeader(ExporterCollection mylist,BaseSection section,ISimpleContainer simpleContainer,int leftPos,Point offset)
{
- section.Items[0].Size = base.RestoreSize;
- section.SectionOffset += section.Size.Height + 3 * GlobalValues.GapBetweenContainer;
+ Point retVal = Point.Empty;
+ ReportItemCollection groupCollection = null;
+ var grh = new Collection(section.Items.OfType().ToList());
+ if (grh.Count == 0) {
+ groupCollection = section.Items.ExtractGroupedColumns();
+ base.DataNavigator.Fill(groupCollection);
+ base.FireSectionRendering(section);
+ ExporterCollection list = StandardPrinter.ConvertPlainCollection(groupCollection,offset);
+// StandardPrinter.EvaluateRow(base.Evaluator,list);
+ mylist.AddRange(list);
+ AfterConverting (section,list);
+ retVal = new Point (leftPos,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
+ } else {
+ retVal = ConvertStandardRow(mylist,section,grh[0],leftPos,offset);
+ }
+ return retVal;
}
+
-
- private Point ConvertGroupHeader(ExporterCollection mylist,BaseSection section,ISimpleContainer simpleContainer,int leftPos,Point offset)
- {
+ private Point old_ConvertGroupHeader(ExporterCollection mylist,BaseSection section,ISimpleContainer simpleContainer,int leftPos,Point offset)
+ {
var groupCollection = section.Items.ExtractGroupedColumns();
base.DataNavigator.Fill(groupCollection);
base.FireSectionRendering(section);
ExporterCollection list = StandardPrinter.ConvertPlainCollection(groupCollection,offset);
- StandardPrinter.EvaluateRow(base.Evaluator,list);
+// StandardPrinter.EvaluateRow(base.Evaluator,list);
mylist.AddRange(list);
- AfterConverting (section);
+ AfterConverting (section,list);
+
return new Point (leftPos,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
}
-
+
private Point ConvertGroupChilds(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer, int defaultLeftPos, Point currentPosition)
{
base.DataNavigator.FillChild(simpleContainer.Items);
- PrepareContainerForConverting(simpleContainer);
- base.FireSectionRendering(section);
+ PrepareContainerForConverting(section,simpleContainer);
+// base.FireSectionRendering(section);
Point curPos = BaseConverter.BaseConvert(mylist,simpleContainer,defaultLeftPos,currentPosition);
- StandardPrinter.EvaluateRow(base.Evaluator,mylist);
- AfterConverting (section);
+// StandardPrinter.EvaluateRow(base.Evaluator,mylist);
+ AfterConverting (section,mylist);
return curPos;
}
@@ -157,15 +233,23 @@ namespace ICSharpCode.Reports.Core.Exporter
private Point ConvertStandardRow(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer, int defaultLeftPos, Point currentPosition)
{
base.FillRow(simpleContainer);
- PrepareContainerForConverting(simpleContainer);
- base.FireSectionRendering(section);
+ PrepareContainerForConverting(section,simpleContainer);
+// base.FireSectionRendering(section);
Point curPos = BaseConverter.BaseConvert(mylist,simpleContainer,defaultLeftPos,currentPosition);
- StandardPrinter.EvaluateRow(base.Evaluator,mylist);
- AfterConverting (section);
+// StandardPrinter.EvaluateRow(base.Evaluator,mylist);
+ AfterConverting (section,mylist);
return curPos;
}
+ private void AfterConverting (BaseSection section,ExporterCollection mylist)
+ {
+ StandardPrinter.EvaluateRow(base.Evaluator,mylist);
+
+ section.Items[0].Size = base.RestoreSize;
+ section.SectionOffset += section.Size.Height + 3 * GlobalValues.GapBetweenContainer;
+ }
+
private static void ShouldDrawBorder (BaseSection section,ExporterCollection list)
{
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/TableConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/TableConverter.cs
index eee4589c66..6a0509ba37 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/TableConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/TableConverter.cs
@@ -88,7 +88,7 @@ namespace ICSharpCode.Reports.Core.Exporter
StandardPrinter.EvaluateRow(base.Evaluator,mylist);
- base.PrepareContainerForConverting(simpleContainer);
+ base.PrepareContainerForConverting(null,simpleContainer);
if (PrintHelper.IsPageFull(new Rectangle(new Point (simpleContainer.Location.X,currentPosition.Y),simpleContainer.Size),base.SectionBounds)) {
base.FirePageFull(mylist);
diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/old_GroupedRowConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/old_GroupedRowConverter.cs
index 53a3207565..8dc7a2a9bb 100644
--- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/old_GroupedRowConverter.cs
+++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/old_GroupedRowConverter.cs
@@ -79,9 +79,9 @@ namespace ICSharpCode.Reports.Core.Exporter
base.FillRow(simpleContainer);
- base.PrepareContainerForConverting(simpleContainer);
-
- base.FireSectionRendering(section);
+// base.PrepareContainerForConverting(simpleContainer);
+//
+// base.FireSectionRendering(section);
currentPosition = BaseConverter.BaseConvert(mylist,simpleContainer,defaultLeftPos,currentPosition);