Browse Source

WpfVisitor - Row's in section

reports
Peter Forstmeier 12 years ago
parent
commit
491dbf612a
  1. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
  2. 15
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
  3. 48
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs
  4. 25
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Pdf/PdfVisitor.cs

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs

@ -58,11 +58,16 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -58,11 +58,16 @@ namespace ICSharpCode.Reporting.ExportRenderer
}
public TextBlock CreateTextBlock(ExportText exportText){
public TextBlock CreateTextBlock(ExportText exportText,bool setBackcolor){
var textBlock = new TextBlock();
textBlock.Foreground = ConvertBrush(exportText.ForeColor);
// textBlock.Background = ConvertBrush(exportText.BackColor);
textBlock.Background = ConvertBrush(System.Drawing.Color.LightGray);
if (setBackcolor) {
textBlock.Background = ConvertBrush(exportText.BackColor);
}
// textBlock.Background = ConvertBrush(System.Drawing.Color.LightGray);
SetFont(textBlock,exportText);

15
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs

@ -8,6 +8,8 @@ @@ -8,6 +8,8 @@
*/
using System;
using System.Collections.ObjectModel;
using System.Drawing;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Exporter.Visitors
@ -24,10 +26,10 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -24,10 +26,10 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
Pages = pages;
foreach (var page in pages) {
Visit(page);
Console.WriteLine("-----------AbstractVisitor - PageBreak---------");
}
}
public virtual void Visit (ExportPage page) {
foreach (var element in page.ExportedItems) {
@ -46,10 +48,17 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -46,10 +48,17 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
}
public virtual void Visit(ExportText exportColumn){
public virtual void Visit(ExportText exportColumn)
{
throw new NotImplementedException();
}
protected bool ShouldSetBackcolor (ExportColumn exportColumn) {
return exportColumn.BackColor != Color.White;
}
protected Collection<ExportPage> Pages {get; private set;}
}
}

48
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs

@ -12,6 +12,7 @@ using System.Windows.Controls; @@ -12,6 +12,7 @@ using System.Windows.Controls;
using System.Windows.Documents;
using ICSharpCode.Reporting.ExportRenderer;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Exporter.Visitors
@ -24,34 +25,65 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -24,34 +25,65 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
readonly FixedDocumentCreator documentCreator;
FixedPage fixedPage;
Canvas currentCanvas;
Canvas sectionCanvas;
public WpfVisitor()
{
documentCreator = new FixedDocumentCreator();
}
public override void Visit(ExportPage page){
fixedPage = FixedDocumentCreator.CreateFixedPage(page);
FixedPage = fixedPage;
base.Visit(page);
foreach (var element in page.ExportedItems) {
var acceptor = element as IAcceptor;
acceptor.Accept(this);
fixedPage.Children.Add(sectionCanvas);
}
}
public override void Visit(ExportContainer exportContainer){
currentCanvas = documentCreator.CreateContainer(exportContainer);
CanvasHelper.SetPosition(currentCanvas,new Point(exportContainer.Location.X,exportContainer.Location.Y));
base.Visit(exportContainer);
fixedPage.Children.Add(currentCanvas);
sectionCanvas = documentCreator.CreateContainer(exportContainer);
sectionCanvas.Name = exportContainer.Name;
CanvasHelper.SetPosition(sectionCanvas,new Point(exportContainer.Location.X,exportContainer.Location.Y));
PerformList(sectionCanvas,exportContainer.ExportedItems);
}
void PerformList(Canvas myCanvas, System.Collections.Generic.List<IExportColumn> exportedItems)
{
Console.WriteLine(myCanvas.Name);
foreach (var element in exportedItems) {
var container = element as ExportContainer;
if (container != null) {
// Console.WriteLine("recursive");
var containerCanvas = documentCreator.CreateContainer(container);
CanvasHelper.SetPosition(containerCanvas,new Point(container.Location.X,container.Location.Y));
myCanvas.Children.Add(containerCanvas);
// Console.WriteLine("call recursive");
PerformList(containerCanvas,container.ExportedItems);
} else {
var acceptor = element as IAcceptor;
acceptor.Accept(this);
myCanvas.Children.Add(UIElement);
}
}
}
public override void Visit(ExportText exportColumn){
var textBlock = documentCreator.CreateTextBlock((ExportText)exportColumn);
var textBlock = documentCreator.CreateTextBlock((ExportText)exportColumn,ShouldSetBackcolor(exportColumn));
CanvasHelper.SetPosition(textBlock,new Point(exportColumn.Location.X,exportColumn.Location.Y));
currentCanvas.Children.Add(textBlock);
UIElement = textBlock;
}
protected UIElement UIElement {get;private set;}
public FixedPage FixedPage {get; private set;}
}
}

25
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Pdf/PdfVisitor.cs

@ -38,12 +38,12 @@ namespace ICSharpCode.Reporting.Pdf @@ -38,12 +38,12 @@ namespace ICSharpCode.Reporting.Pdf
public override void Visit(ExportContainer exportContainer)
{
foreach (var element in exportContainer.ExportedItems) {
var con = element as ExportContainer;
if (con != null) {
containerLocation = PdfHelper.LocationRelToParent(con);
var r = new Rectangle(containerLocation,con.DisplayRectangle.Size);
PdfHelper.FillRectangle(r,con.BackColor,gfx);
Visit(con);
var container = element as ExportContainer;
if (container != null) {
containerLocation = PdfHelper.LocationRelToParent(container);
var r = new Rectangle(containerLocation,container.DisplayRectangle.Size);
PdfHelper.FillRectangle(r,container.BackColor,gfx);
Visit(container);
}
containerLocation = PdfHelper.LocationRelToParent(exportContainer);
var ac = element as IAcceptor;
@ -52,17 +52,16 @@ namespace ICSharpCode.Reporting.Pdf @@ -52,17 +52,16 @@ namespace ICSharpCode.Reporting.Pdf
}
public override void Visit(ExportText exportColumn)
public override void Visit(ExportText exportText)
{
var columnLocation = containerLocation;
columnLocation.Offset(exportColumn.Location);
if (exportColumn.BackColor != Color.White) {
var r = new Rectangle(columnLocation,exportColumn.DisplayRectangle.Size);
PdfHelper.FillRectangle(r,exportColumn.BackColor,gfx);
columnLocation.Offset(exportText.Location);
if (ShouldSetBackcolor(exportText)) {
var r = new Rectangle(columnLocation,exportText.DisplayRectangle.Size);
PdfHelper.FillRectangle(r,exportText.BackColor,gfx);
}
PdfHelper.WriteText(textFormatter,columnLocation, exportColumn);
PdfHelper.WriteText(textFormatter,columnLocation, exportText);
}

Loading…
Cancel
Save