protected ExporterCollection ConvertSection (BaseSection section,int dataRow) { Point currentBottom = Point.Empty; bool isContainer = false; PrepareSection(section, dataRow); var convertedSection = new ExporterCollection(); Offset = SectionBounds.Offset; if (section.Items.Count > 0) { 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) { ISimpleContainer simpleContainer = item as ISimpleContainer; if (simpleContainer != null) { isContainer = true; Offset = new Point(Offset.X,Offset.Y + gapCalculator.GapBetweenItems[i] ); var containerSize = simpleContainer.Size; EvaluationHelper.EvaluateReportItems(EvaluatorFacade,simpleContainer.Items); var layouter = (ILayouter)ServiceContainer.GetService(typeof(ILayouter)); LayoutHelper.SetLayoutForRow(Graphics,layouter, simpleContainer); section.MeasureOverride(section.Size); Offset = BaseConverter.ConvertContainer(convertedSection,simpleContainer,Offset.X,Offset); simpleContainer.Size = containerSize; } else { 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); } if (converteditem.StyleDecorator.DisplayRectangle.Bottom > currentBottom.Y) { currentBottom = new Point(converteditem.StyleDecorator.Location.X,converteditem.StyleDecorator.DisplayRectangle.Bottom); } convertedSection.Add((BaseExportColumn)converteditem ); } i ++; } Offset = new Point (Offset.X,Offset.Y + gapCalculator.LastGap); if (currentBottom.Y > Offset.Y) { Offset = new Point (Offset.X,currentBottom.Y); } } SectionBounds.Offset = Offset; return convertedSection; }
protected ExporterCollection ConvertSection (BaseSection section,int dataRow) { Point currentBottom = Point.Empty; FireSectionRenderEvent (section ,dataRow); PrintHelper.AdjustParent(section,section.Items); PrintHelper.AdjustSectionLocation(section); 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) { ISimpleContainer simpleContainer = item as ISimpleContainer; if (simpleContainer != null) { Offset = new Point(Offset.X,Offset.Y + gapCalculator.GapBetweenItems[i] ); var containerSize = simpleContainer.Size; EvaluationHelper.EvaluateReportItems(EvaluatorFacade,simpleContainer.Items); 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); } convertedSection.Add((BaseExportColumn)converteditem ); } // if (converteditem.StyleDecorator.DisplayRectangle.Bottom > currentBottom.Y) { // currentBottom = new Point(converteditem.StyleDecorator.Location.X,converteditem.StyleDecorator.DisplayRectangle.Bottom); // } // // 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); } // Offset = new Point (Offset.X,Offset.Y + gapCalculator.LastGap); } SectionBounds.Offset = Offset; return convertedSection; }
protected ExporterCollection ConvertSection(BaseSection section, int dataRow) { Point currentBottom = Point.Empty; bool isContainer = false; PrepareSection(section, dataRow); var convertedSection = new ExporterCollection(); Offset = SectionBounds.Offset; if (section.Items.Count > 0) { 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) { ISimpleContainer simpleContainer = item as ISimpleContainer; if (simpleContainer != null) { isContainer = true; Offset = new Point(Offset.X, Offset.Y + gapCalculator.GapBetweenItems[i]); var containerSize = simpleContainer.Size; EvaluationHelper.EvaluateReportItems(EvaluatorFacade, simpleContainer.Items); var layouter = (ILayouter)ServiceContainer.GetService(typeof(ILayouter)); LayoutHelper.SetLayoutForRow(Graphics, layouter, simpleContainer); section.MeasureOverride(section.Size); Offset = BaseConverter.ConvertContainer(convertedSection, simpleContainer, Offset.X, Offset); simpleContainer.Size = containerSize; } else { 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); } if (converteditem.StyleDecorator.DisplayRectangle.Bottom > currentBottom.Y) { currentBottom = new Point(converteditem.StyleDecorator.Location.X, converteditem.StyleDecorator.DisplayRectangle.Bottom); } convertedSection.Add((BaseExportColumn)converteditem); } i++; } Offset = new Point(Offset.X, Offset.Y + gapCalculator.LastGap); if (currentBottom.Y > Offset.Y) { Offset = new Point(Offset.X, currentBottom.Y); } } SectionBounds.Offset = Offset; return(convertedSection); }