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 542a842523..5e1a205a7f 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 @@ -104,6 +104,7 @@ Project\Configuration\GlobalAssemblyInfo.cs + @@ -375,7 +376,6 @@ WpfReportViewer.xaml Code - diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/ExtensionMethodes.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs similarity index 87% rename from src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/ExtensionMethodes.cs rename to src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs index bb949953c1..3f68af3436 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/ExtensionMethodes.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/ExtensionMethodes.cs @@ -7,30 +7,33 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; -using System.Collections; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Text; -using System.Threading; using System.Windows; -using System.Windows.Controls; using System.Windows.Media; -using System.Windows.Documents; -using System.Windows.Forms; -using WinForms = System.Windows.Forms; - -namespace ICSharpCode.Reports.Core.WPF +namespace ICSharpCode.Reports.Core { /// /// Description of ExtensionMethodes. /// Copy from D:\git_Sharpdevelop_Reporting\src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\Project\WPF\ExtensionMethodes.cs /// /// (this IEnumerable input, Action action) + { + if (input == null) + throw new ArgumentNullException("input"); + foreach (T element in input) { + action(element); + } + } + + #endregion + #region system.drawing -> Wpf public static Point ToWpf(this System.Drawing.Point p) { @@ -52,7 +55,7 @@ namespace ICSharpCode.Reports.Core.WPF return System.Windows.Media.Color.FromArgb(c.A, c.R, c.G, c.B); } - + #endregion #region DPI independence public static Rect TransformToDevice(this Rect rect, Visual visual) @@ -91,5 +94,7 @@ namespace ICSharpCode.Reports.Core.WPF return new Point(point.X * matrix.M11, point.Y * matrix.M22); } #endregion + + } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs index 1d731a9e26..36df8ec8b5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs @@ -193,7 +193,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing f.Dispose(); } - + /* public static void Displaychain (ReportItemCollection items) { foreach(BaseReportItem i in items) @@ -207,7 +207,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing } } } - + */ public static void ShowLocations (ExporterCollection items) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs index 63056c51a4..aa273ee193 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs @@ -132,8 +132,8 @@ namespace ICSharpCode.Reports.Core public virtual bool PageBreakAfter {get;set;} #endregion - //http://www.switchonthecode.com/tutorials/wpf-tutorial-creating-a-custom-panel-control -// http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/607eba8c-6fa4-414c-82ae-23a527cdc5bf + + public Size MeasureOverride (Size availableSize) { Size resultSize = new Size(0,0); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs index 6c761685d7..e7c6f11a92 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs @@ -33,10 +33,11 @@ namespace ICSharpCode.Reports.Core.Exporter base.DrawItem(graphics); base.Decorate(graphics); - foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in items) - { - baseExportColumn.DrawItem(graphics); - } + items.ForEach(item =>item.DrawItem(graphics)); +// foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in items) +// { +// baseExportColumn.DrawItem(graphics); +// } } @@ -45,10 +46,12 @@ namespace ICSharpCode.Reports.Core.Exporter { base.DrawItem(pdfWriter, converter); base.Decorate(); - foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in this.Items) - { - baseExportColumn.DrawItem(pdfWriter,converter); - } + items.ForEach(item =>item.DrawItem(pdfWriter,converter)); + +// foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in this.Items) +// { +// baseExportColumn.DrawItem(pdfWriter,converter); +// } } #endregion diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs index 048cf7a39c..b9ab9f0e9c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs @@ -45,10 +45,11 @@ namespace ICSharpCode.Reports.Core.Exporter baseLine, style.DisplayRectangle); } - foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in Items) - { - baseExportColumn.DrawItem(graphics); - } + Items.ForEach(item =>item.DrawItem(graphics)); +// foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in Items) +// { +// baseExportColumn.DrawItem(graphics); +// } } } @@ -64,11 +65,11 @@ namespace ICSharpCode.Reports.Core.Exporter new BaseLine (style.ForeColor,style.DashStyle,style.Thickness), style, ConvertToPdfRectangle()); - - foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in this.Items) - { - baseExportColumn.DrawItem(pdfWriter,converter); - } + Items.ForEach(item =>item.DrawItem(pdfWriter,converter)); +// foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in this.Items) +// { +// baseExportColumn.DrawItem(pdfWriter,converter); +// } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs index 124a1edfa9..6394f958d5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/AggregateFunctions/AggregateFunction.cs @@ -118,7 +118,7 @@ namespace SimpleExpressionEvaluator.Compilation.Functions.AggregateFunctions if (currentItem != null) { object s1 = Convert.ToString(currentItem.Value.ToString(),CultureInfo.CurrentCulture); - Console.WriteLine("\tSetup DataSource value = {0}", s1.ToString()); +// Console.WriteLine("\tSetup DataSource value = {0}", s1.ToString()); if (IsNumeric(s1)) { list.Add(Convert.ToDouble(s1,System.Globalization.CultureInfo.CurrentCulture)); } else { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs index a4663bca17..9ababfd4fb 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs @@ -142,8 +142,6 @@ namespace ICSharpCode.Reports.Core.WPF #region Container UIElement CreateGraphicsContainer(ExportGraphicContainer container) { - - IGraphicStyleDecorator decorator = container.StyleDecorator as IGraphicStyleDecorator; UIElement shape = null; @@ -159,36 +157,34 @@ namespace ICSharpCode.Reports.Core.WPF } else { + var border = CreateBorder(decorator as BaseStyleDecorator); -// SetDimension(border,decorator); - border.Width = decorator.DisplayRectangle.Width + 2; - border.Height = decorator.DisplayRectangle.Height + 2; + RectangleShape rs = decorator.Shape as RectangleShape; border.CornerRadius = new CornerRadius(rs.CornerRadius); + border.BorderThickness = new Thickness(decorator.Thickness); border.BorderBrush = ConvertBrush(decorator.ForeColor); + border.Background = ConvertBrush(decorator.BackColor); + shape = border; var canvas = CreateCanvas(container); canvas.Width = decorator.DisplayRectangle.Width -1; - canvas.Height = decorator.DisplayRectangle.Height -1; - + canvas.Height = decorator.DisplayRectangle.Height -1 ; + canvas.Background = border.Background; AddItemsToCanvas(ref canvas, container); border.Child = canvas; -// border.Measure(container.StyleDecorator.Size); -// border.Arrange(new Rect(new System.Windows.Point(), container.StyleDecorator.Size)); - border.UpdateLayout(); } return shape; } - + private UIElement CreateContainer(ExportContainer container) { - Canvas canvas = CreateCanvas(container); - + var canvas = CreateCanvas(container); AddItemsToCanvas(ref canvas, container); canvas.Measure(PageSize); @@ -258,8 +254,20 @@ namespace ICSharpCode.Reports.Core.WPF TextBlock CreateTextBlock(ExportText exportText) { TextBlock textBlock = new TextBlock(); - textBlock.Text = exportText.Text; SetFont(textBlock, exportText.StyleDecorator); + textBlock.TextWrapping = TextWrapping.Wrap; + + string [] inlines = exportText.Text.Split(System.Environment.NewLine.ToCharArray()); + for (int i = 0; i < inlines.Length; i++) { + if (inlines[i].Length > 0) { + textBlock.Inlines.Add(new Run(inlines[i])); + textBlock.Inlines.Add(new LineBreak()); + } + } + var li = textBlock.Inlines.LastInline; + + textBlock.Inlines.Remove(li); + SetDimension(textBlock,exportText.StyleDecorator); return textBlock; } @@ -286,14 +294,14 @@ namespace ICSharpCode.Reports.Core.WPF } } + Brush ConvertBrush(System.Drawing.Color color) { - if (brushConverter.IsValid(color.Name)) { + if (brushConverter.IsValid(color.Name)) + { return brushConverter.ConvertFromString(color.Name) as SolidColorBrush; } else { - Console.WriteLine("FixedDocumentCreator"); - Console.WriteLine("\tcan't convert {0} to valid Color",color.Name); return brushConverter.ConvertFromString("Black") as SolidColorBrush; } }