Browse Source

LineHeight in GroupedRowConverter.cs

pull/14/head
peterforstmeier 15 years ago
parent
commit
faee583a32
  1. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs
  2. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  3. 47
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  4. 36
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/PrintHelper.cs

@ -23,7 +23,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -23,7 +23,6 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
public static void SetLayoutForRow (Graphics graphics, ILayouter layouter,ISimpleContainer row)
{
Console.WriteLine("{0}",row.Size);
Rectangle textRect = layouter.Layout(graphics,row);
if (textRect.Height > row.Size.Height) {
row.Size = new Size(row.Size.Width,textRect.Height + 5);

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

@ -188,7 +188,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -188,7 +188,7 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected Size RestoreSize
protected Size RestoreSectionSize
{
get {return this.saveSize;}
}
@ -215,12 +215,15 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -215,12 +215,15 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected Point ConvertStandardRow(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer, int defaultLeftPos, Point currentPosition)
{
var rowSize = simpleContainer.Size;
FillRow(simpleContainer);
PrepareContainerForConverting(section,simpleContainer);
Point curPos = BaseConverter.BaseConvert(mylist,simpleContainer,defaultLeftPos,currentPosition);
AfterConverting (section,mylist);
simpleContainer.Size = rowSize;
return curPos;
}

47
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

@ -63,19 +63,10 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -63,19 +63,10 @@ namespace ICSharpCode.Reports.Core.Exporter
Size groupSize = Size.Empty;
Size childSize = Size.Empty;
// Console.WriteLine("-------------------START");
//
// Console.WriteLine ("section {0}",section.Size);
//
// Console.WriteLine();
if (section.Items.IsGrouped)
{
groupSize = section.Items[0].Size;
childSize = section.Items[1].Size;
// Console.WriteLine ("group {0}",section.Items[0].Size);
// Console.WriteLine ("detail {0}",section.Items[1].Size);
}
Rectangle pageBreakRect = Rectangle.Empty;
@ -95,39 +86,30 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -95,39 +86,30 @@ namespace ICSharpCode.Reports.Core.Exporter
base.CurrentPosition = ConvertGroupHeader(exporterCollection,section,defaultLeftPos,base.CurrentPosition);
section.Size = base.RestoreSize;
section.Size = base.RestoreSectionSize;
section.Items[0].Size = groupSize;
section.Items[1].Size = childSize;
childNavigator.Reset();
childNavigator.MoveNext();
// Console.WriteLine("-------------------after group");
//
// Console.WriteLine ("section {0}",section.Size);
// Console.WriteLine ("group {0}",section.Items[0].Size);
// Console.WriteLine ("detail {0}",section.Items[1].Size);
// Console.WriteLine();
//Convert children
if (childNavigator != null) {
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
do
{
// Console.WriteLine("-----------------childs");
// Console.WriteLine ("section {0}",section.Size);
// Console.WriteLine ("group {0}",section.Items[0].Size);
// Console.WriteLine ("detail {0}",section.Items[1].Size);
// Console.WriteLine();
section.Size = base.RestoreSize;
section.Size = base.RestoreSectionSize;
section.Items[0].Size = groupSize;
section.Items[1].Size = childSize;
childNavigator.Fill(simpleContainer.Items);
// int p = base.CurrentPosition.Y;
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,
simpleContainer,defaultLeftPos,base.CurrentPosition);
// Console.WriteLine (" childs delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[1],base.CurrentPosition);
if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds )) {
@ -149,14 +131,16 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -149,14 +131,16 @@ namespace ICSharpCode.Reports.Core.Exporter
}
else
{
// No Grouping at all
Size dd = section.Items[0].Size;
// Console.WriteLine("---------NoGrouping");
// Console.WriteLine ("section {0}",section.Size);
// Console.WriteLine ("row {0}",dd);
// No Grouping at all, the first item in section.items is the DetailRow
Size containerSize = section.Items[0].Size;
// int p = base.CurrentPosition.Y;
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer,defaultLeftPos,base.CurrentPosition);
section.Size = base.RestoreSize;
section.Items[0].Size = dd;
// Console.WriteLine ("delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
section.Size = base.RestoreSectionSize;
section.Items[0].Size = containerSize;
}
pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)section.Items[0],base.CurrentPosition);
@ -194,6 +178,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -194,6 +178,7 @@ namespace ICSharpCode.Reports.Core.Exporter
private Point ConvertGroupHeader(ExporterCollection exportList,BaseSection section,int leftPos,Point offset)
{
var retVal = Point.Empty;
var rowSize = Size.Empty;
ReportItemCollection groupCollection = null;
var groupedRows = BaseConverter.FindGroups(section);
if (groupedRows.Count == 0) {
@ -208,7 +193,9 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -208,7 +193,9 @@ namespace ICSharpCode.Reports.Core.Exporter
AfterConverting (section,list);
retVal = new Point (leftPos,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else {
rowSize = groupedRows[0].Size;
retVal = ConvertStandardRow(exportList,section,groupedRows[0],leftPos,offset);
groupedRows[0].Size = rowSize;
}
return retVal;
}

36
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs

@ -62,16 +62,19 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -62,16 +62,19 @@ namespace ICSharpCode.Reports.Core.Exporter
// Header
var simpleContainer = table.Items[0] as ISimpleContainer;
Size containerSize = Size.Empty;
if (simpleContainer.Items.Count > 0)
{
simpleContainer.Location = new Point (simpleContainer.Location.X,simpleContainer.Location.Y);
simpleContainer.Parent = (BaseReportItem)this.table;
base.SaveSectionSize( new Size (simpleContainer.Size.Width,simpleContainer.Size.Height));
base.SaveSectionSize(section.Size);
containerSize = simpleContainer.Size;
if (PrintHelper.IsTextOnlyRow(simpleContainer) ) {
headerRow = simpleContainer;
base.CurrentPosition = BaseConverter.BaseConvert(exporterCollection,headerRow,defaultLeftPos,base.CurrentPosition);
}
@ -87,7 +90,6 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -87,7 +90,6 @@ namespace ICSharpCode.Reports.Core.Exporter
base.Evaluator.SinglePage.IDataNavigator = childNavigator;
// Convert Grouping Header
base.CurrentPosition = ConvertGroupHeader(exporterCollection,section,defaultLeftPos,base.CurrentPosition);
childNavigator.Reset();
@ -99,18 +101,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -99,18 +101,22 @@ namespace ICSharpCode.Reports.Core.Exporter
{
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
simpleContainer = table.Items[2] as ISimpleContainer;
containerSize = simpleContainer.Size;
childNavigator.Fill(simpleContainer.Items);
int p = base.CurrentPosition.Y;
// int p = base.CurrentPosition.Y;
base.CurrentPosition = ConvertGroupChilds (exporterCollection,
section,
simpleContainer,defaultLeftPos,base.CurrentPosition);
Console.WriteLine ("delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
// Console.WriteLine (" childs delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
simpleContainer.Size = containerSize;
pageBreakRect = PrintHelper.CalculatePageBreakRectangle((BaseReportItem)simpleContainer,base.CurrentPosition);
if (PrintHelper.IsPageFull(pageBreakRect,base.SectionBounds))
{
base.CurrentPosition = base.ForcePageBreak(exporterCollection,section);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,headerRow,defaultLeftPos,base.CurrentPosition);
}
}
@ -136,10 +142,13 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -136,10 +142,13 @@ namespace ICSharpCode.Reports.Core.Exporter
{
// No Grouping at all
base.SaveSectionSize(simpleContainer.Size);
simpleContainer = table.Items[1] as ISimpleContainer;
Console.WriteLine("startconversion");
Size containerSize = simpleContainer.Size;
// Console.WriteLine("startconversion");
base.SaveSectionSize(section.Size);
containerSize = simpleContainer.Size;
do {
PrintHelper.AdjustSectionLocation(section);
@ -151,11 +160,12 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -151,11 +160,12 @@ namespace ICSharpCode.Reports.Core.Exporter
base.CurrentPosition = ForcePageBreak(exporterCollection,section);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,headerRow,defaultLeftPos,base.CurrentPosition);
}
int p = base.CurrentPosition.Y;
// int p = base.CurrentPosition.Y;
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer,defaultLeftPos,base.CurrentPosition);
Console.WriteLine ("delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
// simpleContainer.Size = base.RestoreSize;
// Console.WriteLine ("delta {0} - container {1}",base.CurrentPosition.Y - p,simpleContainer.Size);
simpleContainer.Size = containerSize;
section.Size = base.RestoreSectionSize;
}
while (base.DataNavigator.MoveNext());
@ -180,11 +190,13 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -180,11 +190,13 @@ namespace ICSharpCode.Reports.Core.Exporter
private Point ConvertGroupHeader(ExporterCollection exportList,BaseSection section,int leftPos,Point offset)
{
var retVal = Point.Empty;
var rowSize = Size.Empty;
ReportItemCollection groupCollection = null;
var groupedRow = new Collection<BaseGroupedRow>(table.Items.OfType<BaseGroupedRow>().ToList());
if (groupedRow.Count == 0) {
groupCollection = section.Items.ExtractGroupedColumns();
base.DataNavigator.Fill(groupCollection);
base.FireSectionRendering(section);
@ -195,8 +207,12 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -195,8 +207,12 @@ namespace ICSharpCode.Reports.Core.Exporter
exportList.AddRange(list);
AfterConverting (section,list);
retVal = new Point (leftPos,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else {
rowSize = groupedRow[0].Size;
retVal = ConvertStandardRow(exportList,section,groupedRow[0],leftPos,offset);
groupedRow[0].Size = rowSize;
}
return retVal;
}

Loading…
Cancel
Save