Browse Source

Formatter angepaßt, DataPageBuilder - Locatio für GroupItems

pull/725/merge
Peter Forstmeier 10 years ago
parent
commit
a7924d9bfb
  1. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Events/SectionEvent.cs
  2. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/FormatVisitor.cs
  3. 9
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/StandardFormatter.cs
  4. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
  5. 33
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Events/SectionEvent.cs

@ -18,13 +18,15 @@ namespace ICSharpCode.Reporting
{ {
public SectionEventArgs(IReportContainer section){ public SectionEventArgs(IReportContainer section,int pageCount){
if (section == null) if (section == null)
throw new ArgumentNullException("section"); throw new ArgumentNullException("section");
Section = section; Section = section;
PageCount = pageCount;
} }
public IReportContainer Section {get;private set;} public IReportContainer Section {get;private set;}
public int PageCount {get; private set;}
} }
} }

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/FormatVisitor.cs

@ -30,8 +30,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
{ {
public override void Visit(ExportContainer exportContainer) public override void Visit(ExportContainer exportContainer){
{
foreach (var element in exportContainer.ExportedItems) { foreach (var element in exportContainer.ExportedItems) {
var container = element as ExportContainer; var container = element as ExportContainer;
if (container != null) { if (container != null) {

9
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/StandardFormatter.cs

@ -31,6 +31,9 @@ namespace ICSharpCode.Reporting.Globals
if (String.IsNullOrWhiteSpace(textColumn.Text)) { if (String.IsNullOrWhiteSpace(textColumn.Text)) {
return; return;
} }
if (textColumn.Name == "xy") {
Console.WriteLine("stop");
}
if (!String.IsNullOrEmpty(textColumn.FormatString)) { if (!String.IsNullOrEmpty(textColumn.FormatString)) {
if (textColumn.DataType.ToLower().Contains("timespan")) { if (textColumn.DataType.ToLower().Contains("timespan")) {
textColumn.Text = HandleTimeSpan(textColumn.Text,textColumn.FormatString); textColumn.Text = HandleTimeSpan(textColumn.Text,textColumn.FormatString);
@ -38,6 +41,9 @@ namespace ICSharpCode.Reporting.Globals
} else { } else {
var typeCode = TypeHelper.TypeCodeFromString(textColumn.DataType); var typeCode = TypeHelper.TypeCodeFromString(textColumn.DataType);
textColumn.Text = FormatItem(textColumn.Text,textColumn.FormatString,typeCode); textColumn.Text = FormatItem(textColumn.Text,textColumn.FormatString,typeCode);
if (textColumn.Name == "xy") {
Console.WriteLine("stop {0}",textColumn.Text);
}
} }
} }
} }
@ -156,8 +162,11 @@ namespace ICSharpCode.Reporting.Globals
DateTime date; DateTime date;
if (DateTime.TryParse(toFormat, out date)) if (DateTime.TryParse(toFormat, out date))
{ {
string str = date.ToString(format, string str = date.ToString(format,
DateTimeFormatInfo.CurrentInfo); DateTimeFormatInfo.CurrentInfo);
Console.WriteLine("---------{0} - {1} - {2}",toFormat,format, str);
return str.Trim(); return str.Trim();
} }

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs

@ -75,6 +75,7 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuildPageHeader(){ void BuildPageHeader(){
var pageHeader = CreateSection(ReportModel.PageHeader,CurrentLocation); var pageHeader = CreateSection(ReportModel.PageHeader,CurrentLocation);
DetailStart = new Point(ReportModel.ReportSettings.LeftMargin,pageHeader.Location.Y + pageHeader.DesiredSize.Height +1); DetailStart = new Point(ReportModel.ReportSettings.LeftMargin,pageHeader.Location.Y + pageHeader.DesiredSize.Height +1);
// var xx = pageHeader.ExportedItems.Where(x => x.Name.Contains("xy")).ToList();
AddSectionToPage(pageHeader); AddSectionToPage(pageHeader);
} }
@ -121,7 +122,7 @@ namespace ICSharpCode.Reporting.PageBuilder
#endregion #endregion
protected IExportContainer CreateSection(IReportContainer container,Point location){ protected IExportContainer CreateSection(IReportContainer container,Point location){
var sea = new SectionEventArgs(container); var sea = new SectionEventArgs(container,Pages.Count);
Raise<SectionEventArgs> (SectionRendering,this,sea); Raise<SectionEventArgs> (SectionRendering,this,sea);
var containerConverter = new ContainerConverter(location); var containerConverter = new ContainerConverter(location);
var convertedContainer = containerConverter.ConvertToExportContainer(container); var convertedContainer = containerConverter.ConvertToExportContainer(container);
@ -129,6 +130,7 @@ namespace ICSharpCode.Reporting.PageBuilder
var list = containerConverter.CreateConvertedList(container.Items); var list = containerConverter.CreateConvertedList(container.Items);
containerConverter.SetParent(convertedContainer,list); containerConverter.SetParent(convertedContainer,list);
convertedContainer.ExportedItems.AddRange(list); convertedContainer.ExportedItems.AddRange(list);
//Run ExpressionEvaluator for every section, otherwise measure don't work //Run ExpressionEvaluator for every section, otherwise measure don't work
ExpressionRunner.Visitor.Visit(convertedContainer as ExportContainer); ExpressionRunner.Visitor.Visit(convertedContainer as ExportContainer);

33
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

@ -73,6 +73,7 @@ namespace ICSharpCode.Reporting.PageBuilder
} }
} }
/*
void NewMethod(IContainerConverter converter, ref Point pagePosition, ref Point sectionPosition, IGrouping<object, object> grouping, ExportContainer sectionContainer) void NewMethod(IContainerConverter converter, ref Point pagePosition, ref Point sectionPosition, IGrouping<object, object> grouping, ExportContainer sectionContainer)
{ {
foreach (var child in grouping) { foreach (var child in grouping) {
@ -91,6 +92,7 @@ namespace ICSharpCode.Reporting.PageBuilder
sectionContainer.Size = new Size(sectionContainer.Size.Width, sectionContainer.Size.Height + convertedItems[0].Size.Height); sectionContainer.Size = new Size(sectionContainer.Size.Width, sectionContainer.Size.Height + convertedItems[0].Size.Height);
} }
} }
*/
void BuildGroupedDetails (IContainerConverter converter,Point startPosition) { void BuildGroupedDetails (IContainerConverter converter,Point startPosition) {
var pagePosition = startPosition; var pagePosition = startPosition;
@ -98,22 +100,22 @@ namespace ICSharpCode.Reporting.PageBuilder
foreach (IGrouping<object, object> grouping in DataSource.GroupedList) { foreach (IGrouping<object, object> grouping in DataSource.GroupedList) {
var groupHeader = (BaseRowItem)CurrentSection.Items.Where(p => p.GetType() == typeof(GroupHeader)).FirstOrDefault(); // var groupHeader = (BaseRowItem)CurrentSection.Items.Where(p => p.GetType() == typeof(GroupHeader)).FirstOrDefault();
var groupHeader = (BaseRowItem)CurrentSection
.Items.
FirstOrDefault(p => p.GetType() == typeof(GroupHeader));
var sectionContainer = CreateContainerForSection(CurrentPage, pagePosition); var sectionContainer = CreateContainerForSection(CurrentPage, pagePosition);
DataSource.Fill(groupHeader.Items,grouping.FirstOrDefault()); DataSource.Fill(groupHeader.Items,grouping.FirstOrDefault());
var headerRow = converter.ConvertToExportContainer(groupHeader); var headerRow = converter.ConvertToExportContainer(groupHeader);
headerRow.Location = groupHeader.Location;
headerRow.Location = new Point(headerRow.Location.X,groupHeader.Location.Y);
Console.WriteLine(headerRow.Location);
var headerItems = converter.CreateConvertedList(groupHeader.Items); var headerItems = converter.CreateConvertedList(groupHeader.Items);
converter.SetParent(sectionContainer, headerItems); converter.SetParent(sectionContainer, headerItems);
headerRow.ExportedItems.AddRange(headerItems); headerRow.ExportedItems.AddRange(headerItems);
headerRow.Parent = sectionContainer; headerRow.Parent = sectionContainer;
sectionContainer.ExportedItems.Add(headerRow); sectionContainer.ExportedItems.Add(headerRow);
@ -128,7 +130,13 @@ namespace ICSharpCode.Reporting.PageBuilder
//Childs //Childs
foreach (var child in grouping) { foreach (var child in grouping) {
var dataItems = ExtractDataItems(CurrentSection.Items); var dataItems = ExtractDataItems(CurrentSection.Items);
List<IExportColumn> convertedItems = FillAndConvert(sectionContainer, child, dataItems, converter);
var convertedItems = FillAndConvert(sectionContainer, child, dataItems, converter)
.OrderBy(p => p.Location.X).ToList();
var xx = convertedItems.FirstOrDefault().Location;
Console.WriteLine(xx);
AdjustLocationInSection(sectionPosition, convertedItems); AdjustLocationInSection(sectionPosition, convertedItems);
@ -242,9 +250,14 @@ namespace ICSharpCode.Reporting.PageBuilder
static void AdjustLocationInSection(Point sectionPosition,List<IExportColumn> convertedItems){ static void AdjustLocationInSection(Point sectionPosition,List<IExportColumn> convertedItems){
foreach (var element in convertedItems) {
element.Location = new Point(element.Location.X + sectionPosition.X , sectionPosition.Y); convertedItems.ForEach(element => {element.Location = new Point(element.Location.X,sectionPosition.Y); });
}
// foreach (var element in convertedItems) {
//// element.Location = new Point(element.Location.X + sectionPosition.X , sectionPosition.Y);
// element.Location = new Point(element.Location.X , sectionPosition.Y);
// }
} }

Loading…
Cancel
Save