diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj
index d4c8110ff0..8851d497d5 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj
@@ -99,8 +99,10 @@
+
+
@@ -113,6 +115,7 @@
+
@@ -140,8 +143,10 @@
+
+
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseDataItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseDataItem.cs
index f60f3ebc21..5cb1eff806 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseDataItem.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseDataItem.cs
@@ -33,9 +33,6 @@ namespace ICSharpCode.Reporting.Addin.DesignableItems
public string ColumnName {get;set;}
-// [Category("Databinding"), Description(tableName)]
-// public string BaseTableName {get;set;}
-
[Category("Databinding"), Description(showIfColumnvalueIsEmpty)]
public string NullValue {get;set;}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseGroupHeader.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseGroupHeader.cs
new file mode 100644
index 0000000000..505806cbfb
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseGroupHeader.cs
@@ -0,0 +1,33 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 04.05.2014
+ * Time: 17:18
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.ComponentModel;
+using ICSharpCode.Reporting.Addin.Designer;
+using ICSharpCode.Reporting.Addin.TypeProvider;
+
+namespace ICSharpCode.Reporting.Addin.DesignableItems
+{
+ ///
+ /// Description of BaseGroupHeader.
+ ///
+ [Designer(typeof(GroupedRowDesigner))]
+ public class BaseGroupHeader:BaseRowItem
+ {
+
+ public BaseGroupHeader()
+ {
+ TypeDescriptor.AddProvider(new GroupedRowTypeProvider(), typeof(BaseGroupHeader));
+ }
+
+
+
+ [Category("Behavior")]
+ public bool PageBreakOnGroupChange {get;set;}
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseRowItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseRowItem.cs
new file mode 100644
index 0000000000..b5f71a3990
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseRowItem.cs
@@ -0,0 +1,56 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 04.05.2014
+ * Time: 17:31
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.ComponentModel;
+using System.Drawing;
+using ICSharpCode.Reporting.Globals;
+using ICSharpCode.Reporting.Addin.Designer;
+using ICSharpCode.Reporting.Addin.TypeProvider;
+
+namespace ICSharpCode.Reporting.Addin.DesignableItems
+{
+ ///
+ /// Description of BaseRowItem.
+ ///
+ ///
+ [Designer(typeof(ContainerDesigner))]
+ public class BaseRowItem:AbstractItem
+ {
+
+ public BaseRowItem():base()
+ {
+ var size = new Size((GlobalValues.PreferedSize.Width * 3) + 10,
+ GlobalValues.PreferedSize.Height + 10);
+ DefaultSize = size;
+ Size = size;
+ BackColor = Color.White;
+ TypeDescriptor.AddProvider(new RowItemTypeProvider(), typeof(BaseRowItem));
+ }
+
+
+ protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
+ {
+ base.OnPaint(e);
+ Draw(e.Graphics);
+ }
+
+
+ public override void Draw(Graphics graphics)
+ {
+ if (graphics == null) {
+ throw new ArgumentNullException("graphics");
+ }
+ using (Brush b = new SolidBrush(this.BackColor)){
+ graphics.FillRectangle(b, DrawingRectangle);
+ }
+ DrawControl(graphics, base.DrawingRectangle);
+ }
+
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ContainerDesigner.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ContainerDesigner.cs
index bb449e9676..6d86af9cb4 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ContainerDesigner.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ContainerDesigner.cs
@@ -46,20 +46,6 @@ namespace ICSharpCode.Reporting.Addin.Designer{
toolboxService.SetSelectedToolboxItem(null);
}
-// public override bool CanBeParentedTo(IDesigner parentDesigner)
-// {
-// base.CanBeParentedTo(parentDesigner);
-// }
-
- public override bool CanParent(Control control)
- {
- return base.CanParent(control);
- }
-
- public override bool CanParent(ControlDesigner controlDesigner)
- {
- return base.CanParent(controlDesigner);
- }
void OnSelectionChanged(object sender, EventArgs e){
Control.Invalidate( );
@@ -85,7 +71,6 @@ namespace ICSharpCode.Reporting.Addin.Designer{
if (componentChangeService != null) {
componentChangeService.ComponentRename += OnComponentRename;
componentChangeService.ComponentAdding += (sender, e) => {
-
};
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/GroupedRowDesigner.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/GroupedRowDesigner.cs
new file mode 100644
index 0000000000..9e3eb10fd6
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/GroupedRowDesigner.cs
@@ -0,0 +1,83 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 04.05.2014
+ * Time: 17:22
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.ComponentModel;
+using System.ComponentModel.Design;
+using ICSharpCode.Reporting.Addin.TypeProvider;
+
+namespace ICSharpCode.Reporting.Addin.Designer
+{
+ ///
+ /// Description of GroupedRowDesigner.
+ ///
+ public class GroupedRowDesigner:ContainerDesigner
+ {
+ ISelectionService selectionService;
+ IComponentChangeService componentChangeService;
+
+
+ public override void Initialize(IComponent component)
+ {
+ base.Initialize(component);
+ GetService();
+ }
+
+
+ protected override void PostFilterProperties(System.Collections.IDictionary properties)
+ {
+ TypeProviderHelper.RemoveProperties(properties);
+ base.PostFilterProperties(properties);
+ }
+
+
+ void GetService ()
+ {
+ selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
+ if (selectionService != null)
+ {
+ selectionService.SelectionChanged += OnSelectionChanged;
+
+ }
+
+ componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));
+ if (componentChangeService != null) {
+ componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename);
+ }
+
+ }
+
+
+ void OnSelectionChanged(object sender, EventArgs e)
+ {
+ Control.Invalidate( );
+ }
+
+
+ void OnComponentRename(object sender,ComponentRenameEventArgs e) {
+ if (e.Component == this.Component) {
+ Control.Name = e.NewName;
+ Control.Text = e.NewName;
+ Control.Invalidate();
+ }
+ }
+
+
+ protected override void Dispose(bool disposing)
+ {
+ if (this.selectionService != null) {
+ selectionService.SelectionChanged -= OnSelectionChanged;
+ }
+
+ if (componentChangeService != null) {
+ componentChangeService.ComponentRename -= OnComponentRename;
+ }
+ base.Dispose(disposing);
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Toolbox/ToolboxProvider.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Toolbox/ToolboxProvider.cs
index 23db0c9f03..f7ca89884a 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Toolbox/ToolboxProvider.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Toolbox/ToolboxProvider.cs
@@ -93,14 +93,22 @@ namespace ICSharpCode.Reporting.Addin.Toolbox
};
sideTab.Items.Add(new SideTabItemDesigner(toolboxItem));
- /*
+
//GroupHeader
- tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupHeader));
- tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
- tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupHeader");
- sideTab.Items.Add(new SideTabItemDesigner(tb));
+ toolboxItem = new ToolboxItem(typeof(BaseGroupHeader));
+ toolboxItem.Bitmap = IconService.GetBitmap("Icons.16x16.NameSpace");
+ toolboxItem.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupHeader");
+
+ sideTab.Items.Add(new SideTabItemDesigner(toolboxItem));
+ // Row
+ toolboxItem = new ToolboxItem(typeof(BaseRowItem));
+ toolboxItem.Bitmap = IconService.GetBitmap("Icons.16x16.SharpQuery.Table");
+ toolboxItem.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
+ sideTab.Items.Add(new SideTabItemDesigner(toolboxItem));
+ /*
+
//GroupFooter
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupFooter));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/GroupedRowTypeProvider.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/GroupedRowTypeProvider.cs
new file mode 100644
index 0000000000..d1e32d1ee2
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/GroupedRowTypeProvider.cs
@@ -0,0 +1,85 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 04.05.2014
+ * Time: 17:19
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using ICSharpCode.Reporting.Addin.DesignableItems;
+
+namespace ICSharpCode.Reporting.Addin.TypeProvider
+{
+ ///
+ /// Description of GroupedRowTypeProvider.
+ ///
+ class GroupedRowTypeProvider : TypeDescriptionProvider
+ {
+ public GroupedRowTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
+ {
+ }
+
+
+ public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
+ {
+ ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
+ return new GroupedRowItemTypeDescriptor(td, instance);
+ }
+ }
+
+
+ class GroupedRowItemTypeDescriptor : CustomTypeDescriptor
+ {
+ public GroupedRowItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
+ : base(parent)
+ {
+ }
+
+
+ public override PropertyDescriptorCollection GetProperties()
+ {
+ return GetProperties(null);
+ }
+
+
+ public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+ {
+ PropertyDescriptorCollection props = base.GetProperties(attributes);
+ List allProperties = new List();
+
+ TypeProviderHelper.AddDefaultProperties(allProperties,props);
+
+ PropertyDescriptor prop = null;
+
+ prop = props.Find("DrawBorder",true);
+ allProperties.Add(prop);
+
+ prop = props.Find("ForeColor",true);
+ allProperties.Add(prop);
+
+ prop = props.Find("Visible",true);
+ allProperties.Add(prop);
+
+ prop = props.Find("FrameColor",true);
+ allProperties.Add(prop);
+
+ prop = props.Find("Controls",true);
+ allProperties.Add(prop);
+
+// prop = props.Find("AlternateBackColor",true);
+// allProperties.Add(prop);
+//
+// prop = props.Find("ChangeBackColorEveryNRow",true);
+// allProperties.Add(prop);
+
+ prop = props.Find("PageBreakOnGroupChange",true);
+ allProperties.Add(prop);
+
+
+ return new PropertyDescriptorCollection(allProperties.ToArray());
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/RowItemTypeProvider.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/RowItemTypeProvider.cs
new file mode 100644
index 0000000000..1eeec71092
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/RowItemTypeProvider.cs
@@ -0,0 +1,81 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 04.05.2014
+ * Time: 17:33
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using ICSharpCode.Reporting.Addin.DesignableItems;
+
+namespace ICSharpCode.Reporting.Addin.TypeProvider
+{
+ ///
+ /// Description of RowItemTypeProvider.
+ ///
+ class RowItemTypeProvider : TypeDescriptionProvider
+ {
+ public RowItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
+ {
+ }
+
+
+ public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
+ {
+ ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
+ return new RowItemTypeDescriptor(td, instance);
+ }
+ }
+
+
+ internal class RowItemTypeDescriptor : CustomTypeDescriptor
+ {
+ public RowItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
+ : base(parent)
+ {
+ }
+
+
+ public override PropertyDescriptorCollection GetProperties()
+ {
+ return GetProperties(null);
+ }
+
+
+ public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
+ {
+ PropertyDescriptorCollection props = base.GetProperties(attributes);
+ List allProperties = new List();
+
+ TypeProviderHelper.AddDefaultProperties(allProperties,props);
+
+ PropertyDescriptor prop = null;
+
+ prop = props.Find("DrawBorder",true);
+ allProperties.Add(prop);
+
+ prop = props.Find("ForeColor",true);
+ allProperties.Add(prop);
+
+ prop = props.Find("Visible",true);
+ allProperties.Add(prop);
+
+ prop = props.Find("FrameColor",true);
+ allProperties.Add(prop);
+
+ prop = props.Find("Controls",true);
+ allProperties.Add(prop);
+
+// prop = props.Find("AlternateBackColor",true);
+// allProperties.Add(prop);
+//
+// prop = props.Find("ChangeBackColorEveryNRow",true);
+// allProperties.Add(prop);
+
+ return new PropertyDescriptorCollection(allProperties.ToArray());
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
index 5895220cbc..1c743c111d 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
@@ -144,6 +144,7 @@
+
@@ -169,6 +170,7 @@
+
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
index 48842dd1cd..2c20438422 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
@@ -58,22 +58,21 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
}
- public virtual void Visit(ExportText exportColumn)
- {
+ public virtual void Visit(ExportText exportColumn){
}
+ public virtual void Visit (ExportRow exportRow) {
+
+ }
- public virtual void Visit(ExportLine exportGraphics)
- {
+ public virtual void Visit(ExportLine exportGraphics){
}
- public virtual void Visit (ExportRectangle exportRectangle) {
-
+ public virtual void Visit (ExportRectangle exportRectangle) {
}
- public virtual void Visit (ExportCircle exportCircle) {
-
+ public virtual void Visit (ExportCircle exportCircle) {
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseGroupHeader.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseGroupHeader.cs
new file mode 100644
index 0000000000..d105b628a9
--- /dev/null
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseGroupHeader.cs
@@ -0,0 +1,27 @@
+/*
+ * Created by SharpDevelop.
+ * User: Peter Forstmeier
+ * Date: 04.05.2014
+ * Time: 17:41
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+
+namespace ICSharpCode.Reporting.Items
+{
+ ///
+ /// Description of BaseGroupHeader.
+ ///
+ public class BaseGroupHeader:BaseRowItem
+ {
+ public BaseGroupHeader()
+ {
+ }
+
+
+
+
+ public bool PageBreakOnGroupChange {get;set;}
+ }
+}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs
index a54ad72d41..2bce8e3201 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs
@@ -16,6 +16,8 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
+using ICSharpCode.Reporting.Interfaces.Export;
+using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Items
{
///
@@ -26,11 +28,20 @@ namespace ICSharpCode.Reporting.Items
public BaseRowItem()
{
}
- }
-
- public class GroupHeader :BaseRowItem
- {
- public GroupHeader() {
+
+ public override IExportColumn CreateExportColumn()
+ {
+ var er = new ExportRow(){
+ Name = this.Name,
+ Size = this.Size,
+ Location = this.Location,
+ CanGrow = this.CanGrow,
+ BackColor = this.BackColor,
+ DesiredSize = this.Size
+ };
+ return er;
}
+
+
}
}
diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
index 98ca29edc3..fac7c9dfa9 100644
--- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
+++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
@@ -84,7 +84,7 @@ namespace ICSharpCode.Reporting.PageBuilder
foreach (IGrouping