Browse Source

Rectangle and Circle can be used as Containers

pull/15/head^2
peterforstmeier 15 years ago
parent
commit
b4495932ac
  1. 6
      samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs
  2. 27
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs
  3. 27
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
  4. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs
  5. 29
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs
  6. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs

6
samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs

@ -153,6 +153,9 @@ namespace SharpReportSamples @@ -153,6 +153,9 @@ namespace SharpReportSamples
private void RunContributors (string fileName)
{
ReportModel model = ReportEngine.LoadReportModel(fileName);
Console.WriteLine(model.ReportSettings.PageSize);
model.ReportSettings.PageSize = new Size(model.ReportSettings.PageSize.Width,400);
Console.WriteLine(model.ReportSettings.PageSize);
// sorting is done here, but, be carefull, misspelled fieldnames will cause an exception
@ -302,7 +305,7 @@ namespace SharpReportSamples @@ -302,7 +305,7 @@ namespace SharpReportSamples
private void PushPrinting (object sender, SectionRenderEventArgs e )
{
string sectionName = e.Section.Name;
/*
if (sectionName == ReportSectionNames.ReportHeader) {
Console.WriteLine("PushPrinting :" + ReportSectionNames.ReportHeader);
}
@ -372,6 +375,7 @@ namespace SharpReportSamples @@ -372,6 +375,7 @@ namespace SharpReportSamples
else{
throw new WrongSectionException(sectionName);
}
*/
}

27
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseSection.cs

@ -132,10 +132,31 @@ namespace ICSharpCode.Reports.Core @@ -132,10 +132,31 @@ namespace ICSharpCode.Reports.Core
public virtual bool PageBreakAfter {get;set;}
#endregion
public Size MeasureOverride (Size size)
//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)
{
return Size.Empty;
Size resultSize = new Size(0,0);
Console.WriteLine("MeasureOverride");
foreach (var item in Items) {
Console.WriteLine("{0} - {1}",item.Location,item.Size);
resultSize.Width = Math.Max(resultSize.Width, item.Size.Width);
resultSize.Height = Math.Max(resultSize.Height, item.Size.Height);
}
// resultSize.Width = double.IsPositiveInfinity(availableSize.Width) ?
// resultSize.Width : availableSize.Width;
//
// resultSize.Height = double.IsPositiveInfinity(availableSize.Height) ?
// resultSize.Height : availableSize.Height;
resultSize.Width = double.IsPositiveInfinity(availableSize.Width) ?
resultSize.Width : availableSize.Width;
var b = double.IsPositiveInfinity(availableSize.Height);
resultSize.Height = double.IsPositiveInfinity(availableSize.Height) ?
resultSize.Height : availableSize.Height;
return resultSize;
}
#region System.IDisposable interface implementation

27
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs

@ -89,21 +89,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -89,21 +89,6 @@ namespace ICSharpCode.Reports.Core.Exporter
if (section.Items.Count > 0)
{
Size sectionSize = section.Size;
foreach (var element in section.Items) {
Console.WriteLine(element.Location);
}
section.Items.SortByLocation();
Console.WriteLine("--");
foreach (var element in section.Items) {
Console.WriteLine(element.Location);
}
section.Items.ForEach(delegate(BaseReportItem item)
{
Console.WriteLine(item.Location);
});
var h = section.Items.FindHighestElement();
IExpressionEvaluatorFacade evaluator = EvaluationHelper.CreateEvaluator(this.SinglePage,this.SinglePage.IDataNavigator);
@ -129,6 +114,18 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -129,6 +114,18 @@ namespace ICSharpCode.Reports.Core.Exporter
var layouter = (ILayouter)ServiceContainer.GetService(typeof(ILayouter));
LayoutHelper.SetLayoutForRow(Graphics,layouter, simpleContainer);
/*
* */
Console.WriteLine("--");
section.Items.ForEach(delegate(BaseReportItem aitem)
{
Console.WriteLine(item.Location);
});
var h = section.Items.FindHighestElement();
section.MeasureOverride(section.Size);
/*
* */
Offset = BaseConverter.ConvertContainer(convertedSection,simpleContainer,Offset.X,Offset);
simpleContainer.Size = containerSize;
}

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportContainer.cs

@ -37,6 +37,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -37,6 +37,7 @@ namespace ICSharpCode.Reports.Core.Exporter
}
base.DrawItem(graphics);
base.Decorate(graphics);
foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in items)
{
baseExportColumn.DrawItem(graphics);

29
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphicContainer.cs

@ -10,12 +10,13 @@ using System; @@ -10,12 +10,13 @@ using System;
using System.Drawing;
using ICSharpCode.Reports.Core.Globals;
using iTextSharp.text.pdf;
using System.Linq;
namespace ICSharpCode.Reports.Core.Exporter
{
public class ExportGraphicContainer :ExportContainer
{
// public ExportGraphicContainer (IExportContainer itemStyle,bool isContainer):base(itemStyle as BaseStyleDecorator)
public ExportGraphicContainer (IBaseStyleDecorator itemStyle,bool isContainer):base(itemStyle as BaseStyleDecorator)
{
@ -25,8 +26,9 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -25,8 +26,9 @@ namespace ICSharpCode.Reports.Core.Exporter
{
base.DrawItem(graphics);
ILineDecorator lineDecorator = base.StyleDecorator as LineDecorator;
if (lineDecorator != null) {
GraphicsLineDrawer (graphics);
if (lineDecorator != null)
{
throw new ArgumentException("Line is not a valid Container");
}
else
{
@ -43,6 +45,10 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -43,6 +45,10 @@ namespace ICSharpCode.Reports.Core.Exporter
baseLine,
style.DisplayRectangle);
}
foreach (ICSharpCode.Reports.Core.Exporter.BaseExportColumn baseExportColumn in Items)
{
baseExportColumn.DrawItem(graphics);
}
}
}
@ -58,6 +64,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -58,6 +64,7 @@ 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);
@ -65,21 +72,5 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -65,21 +72,5 @@ namespace ICSharpCode.Reports.Core.Exporter
}
private void GraphicsLineDrawer (Graphics graphics)
{
LineDecorator lineStyle = base.StyleDecorator as LineDecorator;
BaseLine baseLine = null;
baseLine = new BaseLine (lineStyle.ForeColor,lineStyle.DashStyle,lineStyle.Thickness);
Point from = new Point(lineStyle.DisplayRectangle.Left + lineStyle.From.X,
lineStyle.DisplayRectangle.Top + lineStyle.From.Y);
Point to = new Point(lineStyle.DisplayRectangle.Left + lineStyle.To.X,
lineStyle.DisplayRectangle.Top + lineStyle.To.Y);
lineStyle.Shape.DrawShape(graphics,
baseLine,
from,
to);
}
}
}

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs

@ -46,7 +46,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -46,7 +46,6 @@ namespace ICSharpCode.Reports.Core.Exporter
{
if (base.Pages.Count == 0)
{
// this.ReportModel.ReportHeader.SectionOffset = base.SinglePage.SectionBounds.ReportHeaderRectangle.Top;
SectionBounds.Offset = new Point(base.SectionBounds.MarginBounds.Left,base.SectionBounds.MarginBounds.Top);
ExporterCollection convertedList = base.ConvertSection (base.ReportModel.ReportHeader,0);
base.SinglePage.Items.AddRange(convertedList);
@ -55,20 +54,17 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -55,20 +54,17 @@ namespace ICSharpCode.Reports.Core.Exporter
protected override void BuildPageHeader()
{
// this.ReportModel.PageHeader.SectionOffset = base.SinglePage.SectionBounds.PageHeaderRectangle.Top;
if (SectionBounds.Offset.Y < base.ReportModel.PageHeader.SectionOffset) {
SectionBounds.Offset = new Point(SectionBounds.Offset.X,base.ReportModel.PageHeader.SectionOffset);
}
ExporterCollection convertedList = base.ConvertSection (base.ReportModel.PageHeader,0);
base.SinglePage.Items.AddRange(convertedList);
base.SectionBounds.CalculatePageBounds(base.ReportModel);
// base.SectionBounds.MeasurePageHeader(base.ReportModel.PageHeader);
}
protected override void BuildDetailInternal(BaseSection section)
{
base.BuildDetailInternal(section);
// section.SectionOffset = base.SinglePage.SectionBounds.DetailArea.Top;
SectionBounds.Offset = new Point(SectionBounds.Offset.X,base.ReportModel.DetailSection.Location.Y);
ExporterCollection convertedList = base.ConvertSection (base.ReportModel.DetailSection,0);
base.SinglePage.Items.AddRange(convertedList);
@ -115,6 +111,5 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -115,6 +111,5 @@ namespace ICSharpCode.Reports.Core.Exporter
base.BuildExportList();
WritePages ();
}
}
}

Loading…
Cancel
Save