diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseImageItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseImageItem.cs index 141668d1bd..324f9d3784 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseImageItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseImageItem.cs @@ -12,7 +12,6 @@ using System.ComponentModel; using System.Drawing; using System.Xml.Serialization; -using ICSharpCode.Reporting.Addin.Globals; using ICSharpCode.Reports.Addin.TypeProviders; namespace ICSharpCode.Reporting.Addin.DesignableItems { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ImageDesigner.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ImageDesigner.cs index e93957d89f..49167158a4 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ImageDesigner.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ImageDesigner.cs @@ -10,7 +10,6 @@ using System; using System.ComponentModel; using System.ComponentModel.Design; using System.Windows.Forms.Design; -using ICSharpCode.Reporting.Addin.Globals; using ICSharpCode.Reporting.Addin.TypeProvider; namespace ICSharpCode.Reporting.Addin.Designer diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 1bc4c69e47..6025b6c10a 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -147,8 +147,10 @@ + + @@ -164,6 +166,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 5dc7646d62..d6adb5c0f3 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 @@ -66,6 +66,10 @@ namespace ICSharpCode.Reporting.Exporter.Visitors } + public virtual void Visit (ExportImage exportImage) { + + } + public virtual void Visit(ExportLine exportGraphics){ } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs index 1da0365574..10135f66b2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs @@ -29,5 +29,6 @@ namespace ICSharpCode.Reporting.Exporter.Visitors void Visit(ExportLine exportGraphics); void Visit (ExportRectangle exportRectangle); void Visit (ExportCircle exportCircle); + void Visit (ExportImage exportImage); } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs index 30b4f34422..bede3ebe95 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs @@ -25,9 +25,8 @@ namespace ICSharpCode.Reporting.Factories /// /// Description of ExportColumnFactory. /// - class ExportColumnFactory - { - + static class ExportColumnFactory{ + public static IExportColumn CreateItem (IPrintableObject item) { var export = item.CreateExportColumn(); return export; 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 d589485bed..49240ed51e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs @@ -31,14 +31,16 @@ namespace ICSharpCode.Reporting.Items 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 - }; + var er = new ExportRow(); + er.ToExportItem(this); +// 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/Items/BaseTextItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs index beeb3f39c3..b1431549c3 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs @@ -80,22 +80,15 @@ namespace ICSharpCode.Reporting.Items public override IExportColumn CreateExportColumn() { - var ex = new ExportText(); - ex.Name = Name; - ex.Location = Location; - ex.ForeColor = ForeColor; - ex.BackColor = BackColor; - ex.FrameColor = FrameColor; - ex.Size = Size; - ex.Font = Font; - ex.Text = Text; - ex.FormatString = FormatString; - ex.ContentAlignment = ContentAlignment; - ex.TextAlignment = TextAlignment; - ex.DataType = DataType; - ex.CanGrow = CanGrow; - ex.DrawBorder = DrawBorder; - return ex; + var export = new ExportText(); + export.ToExportItem(this); + export.Font = Font; + export.Text = Text; + export.FormatString = FormatString; + export.ContentAlignment = ContentAlignment; + export.TextAlignment = TextAlignment; + export.DataType = DataType; + return export; } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ExportExtension.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ExportExtension.cs new file mode 100644 index 0000000000..0b5725b66d --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ExportExtension.cs @@ -0,0 +1,30 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.06.2015 + * Time: 17:01 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of ExportExtension. + /// + public static class ExportExtension + { + public static void ToExportItem (this ExportColumn export, PrintableItem item) { + export.Name = item.Name; + export.Location = item.Location; + export.Size = item.Size; + export.ForeColor = item.ForeColor; + export.FrameColor = item.FrameColor; + export.BackColor = item.BackColor; + export.CanGrow = item.CanGrow; + export.DrawBorder = item.DrawBorder; + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseImageItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseImageItem.cs new file mode 100644 index 0000000000..3742296506 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseImageItem.cs @@ -0,0 +1,73 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.06.2015 + * Time: 11:54 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of BaseImageItem. + /// + public class BaseImageItem:PrintableItem + { + Image image; + + public BaseImageItem() + { + } + + #region IExportColumnBuilder implementation + + public override IExportColumn CreateExportColumn(){ + var export = new ExportImage(); + export.ToExportItem(this); + + export.Image = Image; + export.ScaleImageToSize = ScaleImageToSize; + return export; + } + + #endregion + + static Bitmap FakeImage(Size size, string text){ + + var b = new Bitmap (size.Width,size.Height); + using (Graphics g = Graphics.FromImage (b)){ + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; + g.DrawRectangle (new Pen(Color.Black, 1), + 1,1,size.Width -2,size.Height -2); + + g.DrawString(text,new Font("Microsoft Sans Serif", + 16, + FontStyle.Regular, + GraphicsUnit.Point), + new SolidBrush(Color.Gray), + new RectangleF(2,2,size.Width,size.Height) ); + } + return b; + } + + + public Image Image { + get { + string text = ""; + this.image = FakeImage(Size, text); + return this.image; + } + + set { + this.image = value; + } + } + + public bool ScaleImageToSize {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs index 4be5b87cf5..f0875a9898 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs @@ -18,7 +18,6 @@ using System; using System.Drawing; -using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; @@ -39,11 +38,6 @@ namespace ICSharpCode.Reporting.Items public Size Size { get; set; } - public virtual IExportColumn CreateExportColumn() - { - return null; - } - public Color ForeColor {get;set;} public Color BackColor {get;set;} @@ -54,5 +48,10 @@ namespace ICSharpCode.Reporting.Items public bool DrawBorder {get;set;} + + public virtual IExportColumn CreateExportColumn(){ + return null; + } + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs index 127522cee3..e3c4ced02c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs @@ -44,14 +44,17 @@ namespace ICSharpCode.Reporting.Items public override IExportColumn CreateExportColumn() { - return new ExportContainer(){ - Name = this.Name, - Size = this.Size, - Location = this.Location, - CanGrow = this.CanGrow, - BackColor = this.BackColor, - DesiredSize = this.Size - }; + var export = new ExportContainer(); + export.ToExportItem(this); + return export; +// return new ExportContainer(){ +// Name = this.Name, +// Size = this.Size, +// Location = this.Location, +// CanGrow = this.CanGrow, +// BackColor = this.BackColor, +// DesiredSize = this.Size +// }; } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs index b0b6c927a1..6e7bdca34b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs @@ -20,7 +20,6 @@ using System; using System.ComponentModel; using System.Drawing; using System.IO; -using System.Xml.Serialization; using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; @@ -46,9 +45,7 @@ namespace ICSharpCode.Reporting.Items } - void BaseValues() - { - + void BaseValues(){ // this.UseStandardPrinter = true; // this.GraphicsUnit = GraphicsUnit.Pixel; // this.Padding = new Padding(5); @@ -80,10 +77,9 @@ namespace ICSharpCode.Reporting.Items string reportName; - [Category("Base Settings")] - [DefaultValueAttribute ("")] - public string ReportName - { +// [Category("Base Settings")] +// [DefaultValueAttribute ("")] + public string ReportName{ get { if (string.IsNullOrEmpty(reportName)) { reportName = GlobalValues.DefaultReportName; @@ -97,10 +93,9 @@ namespace ICSharpCode.Reporting.Items string fileName; - [Category("Base Settings")] - [XmlIgnoreAttribute] - public string FileName - { +// [Category("Base Settings")] +// [XmlIgnoreAttribute] + public string FileName{ get { if (String.IsNullOrEmpty(fileName)) { fileName = GlobalValues.PlainFileName; @@ -112,40 +107,35 @@ namespace ICSharpCode.Reporting.Items } } -// -// [Browsable(true), Category("Base Settings")] -// public ReportType ReportType {get;set;} -// - + [Browsable(true), Category("Base Settings")] public PushPullModel DataModel {get;set;} #endregion - #region Pagesettings - [Category("Page Settings")] +// [Category("Page Settings")] public int BottomMargin {get;set;} - [Category("Page Settings")] +// [Category("Page Settings")] public int TopMargin {get;set;} - [Category("Page Settings")] +// [Category("Page Settings")] public int LeftMargin {get;set;} - [Category("Page Settings")] +// [Category("Page Settings")] public int RightMargin {get;set;} Size pageSize; - [Category("Page Settings")] +// [Category("Page Settings")] public Size PageSize { get { return !Landscape ? pageSize : new Size(pageSize.Height, pageSize.Width); @@ -154,7 +144,7 @@ namespace ICSharpCode.Reporting.Items } - [Category("Page Settings")] +// [Category("Page Settings")] public bool Landscape {get;set;} @@ -162,12 +152,6 @@ namespace ICSharpCode.Reporting.Items #region -// [Category("Data")] - -// [Category("Parameters")] -// [EditorAttribute ( typeof(ParameterCollectionEditor), -// typeof(System.Drawing.Design.UITypeEditor) )] - public ParameterCollection ParameterCollection {get; private set;} public SortColumnCollection SortColumnsCollection {get;private set;} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs index 27c203c6b8..382e8c371f 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs @@ -48,11 +48,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter public List CreateConvertedList(List items){ var itemsList = new List(); -// var aa = items.OrderBy(x => x.Location.Y); -// foreach (var el in aa) { -// Console.WriteLine("{0} - {1}",el.Name,el.Location); -// } -// foreach (var element in aa) { + foreach (var element in items) { var exportColumn = ExportColumnFactory.CreateItem(element); var ec = element as IReportContainer; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs index e0911e4684..62f0384ba8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs @@ -34,18 +34,12 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns BackColor = Color.White; } - public string Name {get;set;} public Size Size {get;set;} public Point Location {get;set;} - public virtual IArrangeStrategy GetArrangeStrategy () - { - return null; - } - public Size DesiredSize {get;set;} public Color ForeColor {get;set;} @@ -66,6 +60,11 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns } } + public virtual IArrangeStrategy GetArrangeStrategy () + { + return null; + } + public virtual IMeasurementStrategy MeasurementStrategy() { throw new NotImplementedException(); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportImage.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportImage.cs new file mode 100644 index 0000000000..909a13f508 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportImage.cs @@ -0,0 +1,34 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.06.2015 + * Time: 11:57 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using ICSharpCode.Reporting.Exporter.Visitors; + +namespace ICSharpCode.Reporting.PageBuilder.ExportColumns +{ + /// + /// Description of ExportImage. + /// + public class ExportImage:ExportColumn,IAcceptor + { + public ExportImage() + { + } + + #region IAcceptor implementation + public void Accept(IVisitor visitor){ + visitor.Visit(this); + } + #endregion + + public Image Image {get;set;} + + public bool ScaleImageToSize {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs index 1b9d89c9f5..459f016175 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs @@ -47,6 +47,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns { } + public void Accept(IVisitor visitor) { visitor.Visit(this); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs index 9bff455041..ec02ac9c33 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs @@ -18,11 +18,14 @@ using System; using System.Collections.Generic; +using System.Drawing.Imaging; +using System.IO; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Media; +using System.Windows.Media.Imaging; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Exporter.Visitors; using ICSharpCode.Reporting.Interfaces.Export; @@ -146,6 +149,36 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor } + public override void Visit(ExportImage exportImage) + { + var visual = new DrawingVisual(); + using (var dc = visual.RenderOpen()){ + var iss = ToBitmapSource(exportImage.Image); + + dc.DrawImage(iss,new Rect(exportImage.Location.ToWpf(), + new Size(exportImage.DesiredSize.Width,exportImage.DesiredSize.Height))); + } + var drawingElement = new DrawingElement(visual); + UIElement = drawingElement; + } + + + static BitmapSource ToBitmapSource(System.Drawing.Image source){ + using (MemoryStream stream = new MemoryStream()) { + source.Save(stream, ImageFormat.Bmp); + + stream.Position = 0; + BitmapImage result = new BitmapImage(); + result.BeginInit(); + + result.CacheOption = BitmapCacheOption.OnLoad; + result.StreamSource = stream; + result.EndInit(); + result.Freeze(); + return result; + } + } + public override void Visit(ExportLine exportLine){ var pen = FixedDocumentCreator.CreateWpfPen(exportLine);