Browse Source

Item below Container

pull/18/head
PeterForstmeier 14 years ago
parent
commit
991759fa1c
  1. 55
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs

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

@ -85,23 +85,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -85,23 +85,22 @@ namespace ICSharpCode.Reports.Core.Exporter
protected ExporterCollection ConvertSection (BaseSection section,int dataRow)
{
Point currentBottom = Point.Empty;
FireSectionRenderEvent (section ,dataRow);
PrintHelper.AdjustParent(section,section.Items);
PrintHelper.AdjustSectionLocation(section);
bool isContainer = false;
PrepareSection(section, dataRow);
var convertedSection = new ExporterCollection();
Offset = SectionBounds.Offset;
Point startOffset = Offset;
if (section.Items.Count > 0)
{
Size sectionSize = section.Size;
Rectangle desiredRectangle = LayoutHelper.CalculateSectionLayout(this.Graphics,section);
LayoutHelper.FixSectionLayout(desiredRectangle,section);
section.Items.SortByLocation();
GapList gapCalculator = new GapList();
gapCalculator.CalculateGapList(section);
int i = 0;
foreach (BaseReportItem item in section.Items)
@ -110,6 +109,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -110,6 +109,7 @@ namespace ICSharpCode.Reports.Core.Exporter
if (simpleContainer != null)
{
isContainer = true;
Offset = new Point(Offset.X,Offset.Y + gapCalculator.GapBetweenItems[i] );
var containerSize = simpleContainer.Size;
@ -117,44 +117,34 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -117,44 +117,34 @@ namespace ICSharpCode.Reports.Core.Exporter
var layouter = (ILayouter)ServiceContainer.GetService(typeof(ILayouter));
LayoutHelper.SetLayoutForRow(Graphics,layouter, simpleContainer);
/*
* */
/*
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;
}
else
{
var converteditem = ExportHelper.ConvertLineItem(item,Offset);
if (converteditem != null) {
if (converteditem.StyleDecorator.DisplayRectangle.Bottom > currentBottom.Y) {
currentBottom = new Point(converteditem.StyleDecorator.Location.X,converteditem.StyleDecorator.DisplayRectangle.Bottom);
IBaseExportColumn converteditem = null;
if (isContainer)
{
item.Location = new Point(item.Location.X,Offset.Y + gapCalculator.GapBetweenItems[i]);
converteditem = ExportHelper.ConvertLineItem(item,new Point(item.Location.X,gapCalculator.GapBetweenItems[i]));
isContainer = false;
} else
{
converteditem = ExportHelper.ConvertLineItem(item,Offset);
}
convertedSection.Add((BaseExportColumn)converteditem );
if (converteditem.StyleDecorator.DisplayRectangle.Bottom > currentBottom.Y)
{
currentBottom = new Point(converteditem.StyleDecorator.Location.X,converteditem.StyleDecorator.DisplayRectangle.Bottom);
}
// if (converteditem.StyleDecorator.DisplayRectangle.Bottom > currentBottom.Y) {
// currentBottom = new Point(converteditem.StyleDecorator.Location.X,converteditem.StyleDecorator.DisplayRectangle.Bottom);
// }
//
// convertedSection.Add((BaseExportColumn)converteditem );
convertedSection.Add((BaseExportColumn)converteditem );
}
i ++;
}
Offset = new Point (Offset.X,Offset.Y + gapCalculator.LastGap);
// Offset = new Point (Offset.X,Offset.Y + 5);
if (currentBottom.Y > Offset.Y) {
Offset = new Point (Offset.X,currentBottom.Y);
@ -163,6 +153,13 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -163,6 +153,13 @@ namespace ICSharpCode.Reports.Core.Exporter
SectionBounds.Offset = Offset;
return convertedSection;
}
void PrepareSection(BaseSection section, int dataRow)
{
FireSectionRenderEvent(section, dataRow);
PrintHelper.AdjustParent(section, section.Items);
PrintHelper.AdjustSectionLocation(section);
}
public static BaseRectangleItem CreateDebugItem (BaseReportItem item)

Loading…
Cancel
Save