Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit a7924d9

Browse files
Formatter angepaßt, DataPageBuilder - Locatio für GroupItems
1 parent 202b5f1 commit a7924d9

5 files changed

Lines changed: 39 additions & 14 deletions

File tree

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,15 @@ public class SectionEventArgs : EventArgs
1818
{
1919

2020

21-
public SectionEventArgs(IReportContainer section){
21+
public SectionEventArgs(IReportContainer section,int pageCount){
2222
if (section == null)
2323
throw new ArgumentNullException("section");
2424
Section = section;
25+
PageCount = pageCount;
2526
}
2627

2728
public IReportContainer Section {get;private set;}
2829

30+
public int PageCount {get; private set;}
2931
}
3032
}

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ class FormatVisitor: AbstractVisitor
3030
{
3131

3232

33-
public override void Visit(ExportContainer exportContainer)
34-
{
33+
public override void Visit(ExportContainer exportContainer){
3534
foreach (var element in exportContainer.ExportedItems) {
3635
var container = element as ExportContainer;
3736
if (container != null) {

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,19 @@ public static void FormatOutput (IExportText textColumn) {
3131
if (String.IsNullOrWhiteSpace(textColumn.Text)) {
3232
return;
3333
}
34+
if (textColumn.Name == "xy") {
35+
Console.WriteLine("stop");
36+
}
3437
if (!String.IsNullOrEmpty(textColumn.FormatString)) {
3538
if (textColumn.DataType.ToLower().Contains("timespan")) {
3639
textColumn.Text = HandleTimeSpan(textColumn.Text,textColumn.FormatString);
3740

3841
} else {
3942
var typeCode = TypeHelper.TypeCodeFromString(textColumn.DataType);
4043
textColumn.Text = FormatItem(textColumn.Text,textColumn.FormatString,typeCode);
44+
if (textColumn.Name == "xy") {
45+
Console.WriteLine("stop {0}",textColumn.Text);
46+
}
4147
}
4248
}
4349
}
@@ -156,8 +162,11 @@ static string FormatDate(string toFormat, string format){
156162
DateTime date;
157163
if (DateTime.TryParse(toFormat, out date))
158164
{
165+
159166
string str = date.ToString(format,
160167
DateTimeFormatInfo.CurrentInfo);
168+
169+
Console.WriteLine("---------{0} - {1} - {2}",toFormat,format, str);
161170
return str.Trim();
162171
}
163172

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ void BuildReportHeader(){
7575
void BuildPageHeader(){
7676
var pageHeader = CreateSection(ReportModel.PageHeader,CurrentLocation);
7777
DetailStart = new Point(ReportModel.ReportSettings.LeftMargin,pageHeader.Location.Y + pageHeader.DesiredSize.Height +1);
78+
// var xx = pageHeader.ExportedItems.Where(x => x.Name.Contains("xy")).ToList();
7879
AddSectionToPage(pageHeader);
7980
}
8081

@@ -121,14 +122,15 @@ protected bool PageFull(IExportContainer container) {
121122
#endregion
122123

123124
protected IExportContainer CreateSection(IReportContainer container,Point location){
124-
var sea = new SectionEventArgs(container);
125+
var sea = new SectionEventArgs(container,Pages.Count);
125126
Raise<SectionEventArgs> (SectionRendering,this,sea);
126127
var containerConverter = new ContainerConverter(location);
127128
var convertedContainer = containerConverter.ConvertToExportContainer(container);
128129

129130
var list = containerConverter.CreateConvertedList(container.Items);
130131

131132
containerConverter.SetParent(convertedContainer,list);
133+
132134
convertedContainer.ExportedItems.AddRange(list);
133135
//Run ExpressionEvaluator for every section, otherwise measure don't work
134136
ExpressionRunner.Visitor.Visit(convertedContainer as ExportContainer);

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

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ void BuildDetail(){
7373
}
7474
}
7575

76+
/*
7677
void NewMethod(IContainerConverter converter, ref Point pagePosition, ref Point sectionPosition, IGrouping<object, object> grouping, ExportContainer sectionContainer)
7778
{
7879
foreach (var child in grouping) {
@@ -91,29 +92,30 @@ void NewMethod(IContainerConverter converter, ref Point pagePosition, ref Point
9192
sectionContainer.Size = new Size(sectionContainer.Size.Width, sectionContainer.Size.Height + convertedItems[0].Size.Height);
9293
}
9394
}
95+
*/
9496

9597
void BuildGroupedDetails (IContainerConverter converter,Point startPosition) {
9698
var pagePosition = startPosition;
9799
var sectionPosition = pagePosition;
98100

99101
foreach (IGrouping<object, object> grouping in DataSource.GroupedList) {
100102

101-
var groupHeader = (BaseRowItem)CurrentSection.Items.Where(p => p.GetType() == typeof(GroupHeader)).FirstOrDefault();
103+
// var groupHeader = (BaseRowItem)CurrentSection.Items.Where(p => p.GetType() == typeof(GroupHeader)).FirstOrDefault();
104+
var groupHeader = (BaseRowItem)CurrentSection
105+
.Items.
106+
FirstOrDefault(p => p.GetType() == typeof(GroupHeader));
102107

103108
var sectionContainer = CreateContainerForSection(CurrentPage, pagePosition);
104-
105109
DataSource.Fill(groupHeader.Items,grouping.FirstOrDefault());
106110

107111
var headerRow = converter.ConvertToExportContainer(groupHeader);
112+
headerRow.Location = groupHeader.Location;
113+
108114

109-
headerRow.Location = new Point(headerRow.Location.X,groupHeader.Location.Y);
110-
Console.WriteLine(headerRow.Location);
111115
var headerItems = converter.CreateConvertedList(groupHeader.Items);
112116
converter.SetParent(sectionContainer, headerItems);
113117

114-
115118
headerRow.ExportedItems.AddRange(headerItems);
116-
117119
headerRow.Parent = sectionContainer;
118120
sectionContainer.ExportedItems.Add(headerRow);
119121

@@ -128,7 +130,13 @@ void BuildGroupedDetails (IContainerConverter converter,Point startPosition) {
128130
//Childs
129131
foreach (var child in grouping) {
130132
var dataItems = ExtractDataItems(CurrentSection.Items);
131-
List<IExportColumn> convertedItems = FillAndConvert(sectionContainer, child, dataItems, converter);
133+
134+
var convertedItems = FillAndConvert(sectionContainer, child, dataItems, converter)
135+
.OrderBy(p => p.Location.X).ToList();
136+
137+
var xx = convertedItems.FirstOrDefault().Location;
138+
139+
Console.WriteLine(xx);
132140

133141
AdjustLocationInSection(sectionPosition, convertedItems);
134142

@@ -242,9 +250,14 @@ bool DataSourceContainsData () {
242250

243251

244252
static void AdjustLocationInSection(Point sectionPosition,List<IExportColumn> convertedItems){
245-
foreach (var element in convertedItems) {
246-
element.Location = new Point(element.Location.X + sectionPosition.X , sectionPosition.Y);
247-
}
253+
254+
convertedItems.ForEach(element => {element.Location = new Point(element.Location.X,sectionPosition.Y); });
255+
256+
257+
// foreach (var element in convertedItems) {
258+
//// element.Location = new Point(element.Location.X + sectionPosition.X , sectionPosition.Y);
259+
// element.Location = new Point(element.Location.X , sectionPosition.Y);
260+
// }
248261
}
249262

250263

0 commit comments

Comments
 (0)