diff --git a/Report/DefaultReportCreator.cs b/Report/DefaultReportCreator.cs index 213093662..6bfa500e4 100644 --- a/Report/DefaultReportCreator.cs +++ b/Report/DefaultReportCreator.cs @@ -1425,11 +1425,36 @@ namespace BeWo.Report public override XtraReport CreatePersonListReport(List oids) { - var ro = PersonListRO.Create(oids); - IBeWoReport report = FindReportImp(); - report.SetReportDataSource(ro); + + var queryReport = FindReportImp(null, "Personen"); + var helper = PluginLoader.FindClass(); - return report as XtraReport; + string[] lHeaderCaption = helper.PrepareHeaderArrayForPersonExport(); + string[][] lContent = helper.PrepareContentArrayForPersonExport(oids.ToArray()); + + + DataTable table = new DataTable(); + int columnNumber = lHeaderCaption.Count(); + for (int i = 0; i < columnNumber; i++) + table.Columns.Add(lHeaderCaption[i], typeof(string)); + + + int rowNumber = lContent.GetLength(0); + for (int i = 0; i < rowNumber; i++) + { + DataRow row = table.NewRow(); + for (int j = 0; j < columnNumber; j++) + { + row[j] = lContent[i][j]; + } + table.Rows.Add(row); + } + + var queryReportObject = QueryRO.Create(new Query() { Title = "Personen" }, table); + queryReportObject.Name = "Personen"; + queryReport.SetReportDataSource(queryReportObject); + + return queryReport as XtraReport; } public override XtraReport CreateUserListReport(List oids) diff --git a/Service/Reporting/ExportAndPrintHelper.cs b/Service/Reporting/ExportAndPrintHelper.cs index ff20edda8..cd5540656 100644 --- a/Service/Reporting/ExportAndPrintHelper.cs +++ b/Service/Reporting/ExportAndPrintHelper.cs @@ -348,7 +348,8 @@ namespace BeWo.Service.Reporting "Mobil", // 9 "Mail", // 10 "Fax", // 11 - "Bemerkung" // 12 + "Organisationen", // 12 + "Bemerkung" // 13 }; } @@ -414,7 +415,23 @@ namespace BeWo.Service.Reporting } } - lContent[iRowCount][12] = lPersons[iRowCount].Notice; + string orgas = ""; + if (lPersons[iRowCount].Organisation2Persons != null) + { + foreach (var orga in lPersons[iRowCount].Organisation2Persons) + { + if (orga.Organisation != null && !orga.Organisation.Name.IsNullOrEmpty()) + { + if (lPersons[iRowCount].Organisation2Persons.Last() == orga) + orgas += orga.Organisation.Name; + else + orgas += orga.Organisation.Name + ", "; + } + } + } + lContent[iRowCount][12] = orgas; + + lContent[iRowCount][13] = lPersons[iRowCount].Notice; } return lContent;