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 @@ -18,13 +18,15 @@ namespace ICSharpCode.Reporting
{
public SectionEventArgs(IReportContainer section){
public SectionEventArgs(IReportContainer section,int pageCount){
if (section == null)
throw new ArgumentNullException("section");
Section = section;
PageCount = pageCount;
}
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 @@ -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) {
var container = element as ExportContainer;
if (container != null) {

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

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

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

@ -75,6 +75,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -75,6 +75,7 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuildPageHeader(){
var pageHeader = CreateSection(ReportModel.PageHeader,CurrentLocation);
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);
}
@ -121,7 +122,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -121,7 +122,7 @@ namespace ICSharpCode.Reporting.PageBuilder
#endregion
protected IExportContainer CreateSection(IReportContainer container,Point location){
var sea = new SectionEventArgs(container);
var sea = new SectionEventArgs(container,Pages.Count);
Raise<SectionEventArgs> (SectionRendering,this,sea);
var containerConverter = new ContainerConverter(location);
var convertedContainer = containerConverter.ConvertToExportContainer(container);
@ -129,6 +130,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -129,6 +130,7 @@ namespace ICSharpCode.Reporting.PageBuilder
var list = containerConverter.CreateConvertedList(container.Items);
containerConverter.SetParent(convertedContainer,list);
convertedContainer.ExportedItems.AddRange(list);
//Run ExpressionEvaluator for every section, otherwise measure don't work
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 @@ -73,6 +73,7 @@ namespace ICSharpCode.Reporting.PageBuilder
}
}
/*
void NewMethod(IContainerConverter converter, ref Point pagePosition, ref Point sectionPosition, IGrouping<object, object> grouping, ExportContainer sectionContainer)
{
foreach (var child in grouping) {
@ -91,6 +92,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -91,6 +92,7 @@ namespace ICSharpCode.Reporting.PageBuilder
sectionContainer.Size = new Size(sectionContainer.Size.Width, sectionContainer.Size.Height + convertedItems[0].Size.Height);
}
}
*/
void BuildGroupedDetails (IContainerConverter converter,Point startPosition) {
var pagePosition = startPosition;
@ -98,22 +100,22 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -98,22 +100,22 @@ namespace ICSharpCode.Reporting.PageBuilder
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);
DataSource.Fill(groupHeader.Items,grouping.FirstOrDefault());
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);
converter.SetParent(sectionContainer, headerItems);
headerRow.ExportedItems.AddRange(headerItems);
headerRow.Parent = sectionContainer;
sectionContainer.ExportedItems.Add(headerRow);
@ -128,7 +130,13 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -128,7 +130,13 @@ namespace ICSharpCode.Reporting.PageBuilder
//Childs
foreach (var child in grouping) {
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);
@ -242,9 +250,14 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -242,9 +250,14 @@ namespace ICSharpCode.Reporting.PageBuilder
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