From 5d5f6a987b1871dc714e556949a415ce3a436f47 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Fri, 20 Aug 2010 18:45:47 +0000 Subject: [PATCH] Implement IDataItem Interface to have easier access to Images, Images are displayed again git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6427 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../ICSharpCode.Reports.Core.csproj | 1 + .../Project/BaseItems/BaseDataItem.cs | 138 +++++++----------- .../BaseItems/Graphics/BaseImageItem.cs | 9 +- .../Project/BaseItems/IBaseDataItem.cs | 32 ++++ .../Project/DataManager/DataNavigator.cs | 6 +- .../ListStrategy/BaseListStrategy.cs | 5 +- .../ListStrategy/CollectionStrategy.cs | 11 +- .../DataManager/ListStrategy/TableStrategy.cs | 16 +- .../Project/Interfaces/IDataViewStrategy.cs | 16 +- 9 files changed, 110 insertions(+), 124 deletions(-) create mode 100644 src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IBaseDataItem.cs 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 49eeaa5c57..3483f78ee0 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 @@ -94,6 +94,7 @@ + diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseDataItem.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseDataItem.cs index de6de562c2..1dabe3f9b3 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseDataItem.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseDataItem.cs @@ -20,92 +20,80 @@ using ICSharpCode.Reports.Core.Exporter; /// created by - Forstmeier Peter /// created on - 22.08.2005 00:12:59 /// -namespace ICSharpCode.Reports.Core { - public class BaseDataItem : BaseTextItem,IDataRenderer,IExportColumnBuilder +namespace ICSharpCode.Reports.Core +{ + public class BaseDataItem : BaseTextItem, IDataRenderer, IExportColumnBuilder, IDataItem { - + private string columnName; - private string baseTableName; private string dbValue; - private string nullValue; - + + #region Constructor - - public BaseDataItem():base() + + public BaseDataItem() : base() { } - - public BaseDataItem(string columnName):base() + + public BaseDataItem(string columnName) : base() { this.columnName = columnName; } - + #endregion - + #region privates - - private string CheckForNullValue() + + private string CheckForNullValue() { if (String.IsNullOrEmpty(this.dbValue)) { - if (String.IsNullOrEmpty(this.nullValue)) { + if (String.IsNullOrEmpty(this.NullValue)) { return GlobalValues.UnboundName; } else - return this.nullValue; + return this.NullValue; } return this.dbValue; } - + #endregion - + #region IExportColumnBuilder implementation - - public new BaseExportColumn CreateExportColumn() + + public new BaseExportColumn CreateExportColumn() { string toPrint = CheckForNullValue(); TextStyleDecorator st = base.CreateItemStyle(); - ExportText item = new ExportText(st,false); - item.Text = StandardFormatter.FormatOutput(toPrint, - this.FormatString, - base.DataType, - this.nullValue); - + ExportText item = new ExportText(st, false); + item.Text = StandardFormatter.FormatOutput(toPrint, this.FormatString, base.DataType, this.NullValue); + return item; } - + #endregion - - public override void Render(ReportPageEventArgs rpea) + + public override void Render(ReportPageEventArgs rpea) { string toPrint = CheckForNullValue(); - base.Text = StandardFormatter.FormatOutput(toPrint, - this.FormatString, - base.DataType, - this.nullValue); - base.Render (rpea); + base.Text = StandardFormatter.FormatOutput(toPrint, this.FormatString, base.DataType, this.NullValue); + base.Render(rpea); } - - public override string ToString() + + public override string ToString() { return this.GetType().Name; } - + #region Properies - - [XmlIgnoreAttribute] + + [XmlIgnoreAttribute()] [Browsable(false)] - public virtual string DBValue - { - get { - return dbValue; - } - set { - dbValue = value; - } + public virtual string DBValue { + get { return dbValue; } + set { dbValue = value; } } - - - public virtual string ColumnName - { + + + public virtual string ColumnName { get { if (String.IsNullOrEmpty(columnName)) { this.columnName = GlobalValues.UnboundName; @@ -117,45 +105,29 @@ namespace ICSharpCode.Reports.Core { this.Text = this.columnName; } } - + /// /// Mappingname to Datasource /// /// - - [XmlIgnoreAttribute] - [Browsable(true),Category("Databinding"), - Description("Mapping Name to DataTable")] - public string MappingName - { - get { - return baseTableName + "." + columnName; - } - } - - - public string BaseTableName - { - get { - return baseTableName; - } - set { - baseTableName = value; - } + + [XmlIgnoreAttribute()] + [Browsable(true), Category("Databinding"), Description("Mapping Name to DataTable")] + public string MappingName { + get { return BaseTableName + "." + this.ColumnName; } } + + + public string BaseTableName {get;set;} + + [Browsable(true), + Category("Databinding"), + Description("Display Value for empty Field")] + public string NullValue {get;set;} - [Browsable(true),Category("Databinding"),Description("Display Value for empty Field")] - public string NullValue { - get { - return nullValue; - } - set { - nullValue = value; - } - } - + #endregion - + } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs index 4b951f3958..30a5cc423b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs @@ -21,7 +21,7 @@ using ICSharpCode.Reports.Core.Exporter; namespace ICSharpCode.Reports.Core { - public class BaseImageItem : BaseGraphicItem,IDataRenderer ,IExportColumnBuilder{ + public class BaseImageItem : BaseGraphicItem,IDataItem,IDataRenderer,IExportColumnBuilder{ /// /// Default constructor @@ -175,6 +175,13 @@ namespace ICSharpCode.Reports.Core { } + public string DBValue { + get{throw new NotImplementedException();} + set{throw new NotImplementedException();} + } + + + public virtual string ImageFileName { get { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IBaseDataItem.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IBaseDataItem.cs new file mode 100644 index 0000000000..3fd0959dd6 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/IBaseDataItem.cs @@ -0,0 +1,32 @@ +// +// +// +// +// $Revision: 6130 $ +// + +using System; +using System.ComponentModel; +using System.Drawing; +using System.Xml.Serialization; + +using ICSharpCode.Reports.Core.BaseClasses.Printing; +using ICSharpCode.Reports.Core.Exporter; + +/// +/// This Class is used for Databased items +/// +/// +/// created by - Forstmeier Peter +/// created on - 22.08.2005 00:12:59 +/// +namespace ICSharpCode.Reports.Core +{ + public interface IDataItem + { + string ColumnName { get; set; } + string MappingName { get; } + string BaseTableName { get; set; } + string DBValue {get;set;} + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs index 810f1ac08d..f98ec83801 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataNavigator.cs @@ -40,13 +40,11 @@ namespace ICSharpCode.Reports.Core return inheritedReportItems; } + #region IDataNavigator implementation public void Fill (ReportItemCollection collection) { - - Collection filteredCollection = ExtraxtDataItems(collection); - - foreach (BaseReportItem item in filteredCollection) { + foreach (IDataItem item in collection) { this.store.Fill(item); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs index 5ecc131b2d..4db53e2d78 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs @@ -113,7 +113,6 @@ namespace ICSharpCode.Reports.Core { Console.WriteLine("---- {0}",c.ObjectArray[0]); } } -// } } @@ -240,9 +239,9 @@ namespace ICSharpCode.Reports.Core { } - public virtual void Fill(IReportItem item) - { + public virtual void Fill(IDataItem item) + { } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs index 36ddad2c12..476f2ceca6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/CollectionStrategy.cs @@ -195,23 +195,14 @@ namespace ICSharpCode.Reports.Core { public override void Bind() { base.Bind(); - /* - if (base.ReportSettings.GroupColumnsCollection.Count > 0) { -// this.Group (); - Reset(); - return; - } - */ if (base.ReportSettings.SortColumnsCollection != null) { this.Sort (); } Reset(); } - public override void Fill(IReportItem item) + public override void Fill(IDataItem item) { - - base.Fill(item); if (current != null) { BaseDataItem baseDataItem = item as BaseDataItem; if (baseDataItem != null) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs index 0b56ada93c..408314b686 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/TableStrategy.cs @@ -44,19 +44,10 @@ namespace ICSharpCode.Reports.Core } - - public override void Fill(IReportItem item) + public override void Fill(IDataItem item) { - base.Fill(item); - DataRow row = this.Current as DataRow; - if (row != null) { - BaseDataItem baseDataItem = item as BaseDataItem; - if (baseDataItem != null) { - baseDataItem.DBValue = row[baseDataItem.ColumnName].ToString(); - return; - } BaseImageItem bi = item as BaseImageItem; if (bi != null) { using (System.IO.MemoryStream memStream = new System.IO.MemoryStream()){ @@ -71,6 +62,11 @@ namespace ICSharpCode.Reports.Core bi.Image = image; } } + } else { + if (item != null) { + item.DBValue = row[item.ColumnName].ToString(); + return; + } } } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataViewStrategy.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataViewStrategy.cs index b3001652af..83255c19c8 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataViewStrategy.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataViewStrategy.cs @@ -18,7 +18,7 @@ namespace ICSharpCode.Reports.Core{ void Bind(); - void Fill (IReportItem item); + void Fill (IDataItem item); //test CurrentItemsCollection FillDataRow(); // @@ -28,21 +28,11 @@ namespace ICSharpCode.Reports.Core{ int CurrentPosition {get;set;} - bool HasMoreData { - get; - } + bool HasMoreData {get;} bool IsSorted {get;} - /* - bool IsFiltered{get;} - */ bool IsGrouped {get;set;} - - /* - bool HasChildren {get;} - - IndexList ChildRows {get;} - */ + } }