public void CreatePlakatListingsDependingOnAssignmentStatus(DataWrapper.SortOrder SortCriteria, Basics.DataSelection SpecialPhase, String[] SecurityGroupParameter, bool WithOrWithoutPlakate, bool WithOrWithoutActivities, bool WithOrWithoutTermine, String OutputFileName, String HeadLine, WSPlakatContentType wsPlakatContentType) { DocumentPrintOut.ActuallOutputType = DocumentPrintOut.OutputType.RTFDocument; DocumentPrintOut PlakatWriter = new DocumentPrintOut (System.IO.Path.Combine(DataWrapper.Instance.TargetDirectory, OutputFileName), false); bool PageBreakRequested = false; PlakatWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, HeadLine); foreach (Organisation Klasse in Data.DbServer3.WordUp.Organisationen.AktuelleKlassen.OrderBy(klasse => klasse.CodeName)) { int NumberOfPlakateDerKlasse = Data.DbServer3.WordUp.WSPlakate .Count(whe => whe.Organisation == Klasse); int NumberOfAssignedPlakateDerKlasse = Data.DbServer3.WordUp.WSPlakate .Count(whe => whe.Organisation == Klasse && whe.Projekt != null); int NumberOfUnAssignedPlakateDerKlasse = Data.DbServer3.WordUp.WSPlakate .Count(whe => whe.Organisation == Klasse && whe.Projekt == null); switch (wsPlakatContentType) { case WSPlakatContentType.alle: break; case WSPlakatContentType.Zugeordnet: if (NumberOfAssignedPlakateDerKlasse == 0) continue; break; case WSPlakatContentType.nichtZugeordnet: if (NumberOfUnAssignedPlakateDerKlasse == 0) continue; break; } if (PageBreakRequested) PlakatWriter.InsertPageBreak(); PageBreakRequested = false; IEnumerable<WSPlakat> PlakateAusKlasse = Klasse.WSPlakate; PlakatWriter.WriteLine(DocumentPrintOut.ElementType.Heading2, $"Plakate der Klasse {Klasse.CodeName} " + $"alle {NumberOfPlakateDerKlasse} nZug. {NumberOfUnAssignedPlakateDerKlasse} Zug. {NumberOfAssignedPlakateDerKlasse}"); Termin connectedWSTermin = Data.DbServer3.WordUp.OrganisationenZuTerminen .Where(whe => whe.Organisation == Klasse).Select(sel => sel.Termin) .Where(whe => whe.TermineTypId == TermineTypen.WS || whe.TermineTypId == TermineTypen.OeffWS).FirstOrDefault(); List<String> Betreuer = new List<string>(); foreach (PersonZuTermin personZuTermin in connectedWSTermin.PersonenZuTerminen) Betreuer.Add(personZuTermin.Person.VorName + " " + personZuTermin.Person.FamilienName); String BetreuerNamen = String.Join(", ", Betreuer); PlakatWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, $"Betreuer beim Workshop: {BetreuerNamen}"); if (PlakateAusKlasse.Count() == 0) { PlakatWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, "Bisher keine Plakate erfasst"); continue; } String OldPlakat = String.Empty; PageBreakRequested = true; //More than 0 Plakatlines available foreach (WSPlakat PlakatZeile in PlakateAusKlasse.OrderBy(plakat => plakat.ErfassungsId)) { String projektNumber = String.Empty; switch (wsPlakatContentType) { case WSPlakatContentType.alle: break; case WSPlakatContentType.nichtZugeordnet: if (PlakatZeile.Projekt != null) continue; break; case WSPlakatContentType.Zugeordnet: if (PlakatZeile.Projekt == null) continue; projektNumber = PlakatZeile.Projekt.NumericProjektId + " - "; break; } if (OldPlakat != PlakatZeile.PlakatID) { OldPlakat = PlakatZeile.PlakatID; PlakatWriter.WriteLine(DocumentPrintOut.ElementType.Heading2, "Plakat # " + OldPlakat); } PlakatWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, $"- {projektNumber}" + PlakatZeile.LangBeschreibung); PlakatWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel2, $" {PlakatZeile.Ort.Bezeichnung} - " + $"({PlakatZeile.OrtsHinweis})"); } } PlakatWriter.Close(); }
private void CreateDocumentation(String FileName) { if (DocumentationForPrintouts.Keys.Count == 0) { DocumentationForPrintouts["TMT"] = "Termine mit den einzuladenden Teilnehmern (Terminübersichten)"; DocumentationForPrintouts["O"] = "Liste der beteiligten Organisationen"; DocumentationForPrintouts["P"] = "Liste der beteiligten Personen"; DocumentationForPrintouts["PMT"] = "Personen mit deren Terminen (Terminübersicht pro Person)"; DocumentationForPrintouts["TIO"] = "Termine, die in Organisationen abgehalten werden (Was geschieht Wo und Wann)"; DocumentationForPrintouts["TVO"] = "Organisationen mit deren Personen und mit deren Terminen (Welche Organisation entsendet Ihre Mitarbeiter Wann Wohin)"; } DocumentPrintOut Writer = new DocumentPrintOut(FileName, false); foreach (String Doc in DocumentationForPrintouts.Keys) Writer.WriteLine(Doc + "\t" + DocumentationForPrintouts[Doc]); Writer.Close(); }
private void CreateProjectPrintoutforWholeTableWithCummulatedOrtsBezeichnung(DataTable SortableProjekte, String FileName, List<System.Guid> UpdatedSinceLastCheckPoint, bool ChangedOrUnChanged, String Description, bool BreakByArbeitsGruppenNameID = true, bool BreakByZustaendig = true, bool BreakByOrtsTeil = true, bool BreakByOrtsBezeichnung = true, bool WithOrWithoutPlakate = true, bool WithOrWithoutActivities = true, String PrintThisSecurityGroup = "ProfisFull") { DocumentPrintOut.ActuallOutputType = DocumentPrintOut.OutputType.RTFDocument; DocumentPrintOut ProjectWriter = new DocumentPrintOut(FileName, false); if (WithOrWithoutActivities == true) ProjectWriter.PrintThisSecurityGroup = PrintThisSecurityGroup; if (WithOrWithoutPlakate == true) ProjectWriter.WithOrWithoutPlakate = WithOrWithoutPlakate; if (String.IsNullOrEmpty(Description) == false) { ProjectWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, Description, "0, 0, 0, 0", 0); } String OldArbeitsGruppenNameID = String.Empty; bool PageBreakHasBeenSetBefore = false; String OldOrtsTeil = String.Empty; String OldZustaendig = String.Empty; String OldOrteBezeichnung = String.Empty; int RunningNumber = 0; foreach (DataRow ProjectEntry in SortableProjekte.Rows) { PageBreakHasBeenSetBefore = false; if ((BreakByArbeitsGruppenNameID == true) && (OldArbeitsGruppenNameID != ProjectEntry["ArbeitsGruppenNameID"].ToString())) { OldArbeitsGruppenNameID = ProjectEntry["ArbeitsGruppenNameID"].ToString(); if (PageBreakHasBeenSetBefore == false) { PageBreakHasBeenSetBefore = true; if (!String.IsNullOrEmpty(OldArbeitsGruppenNameID)) ProjectWriter.InsertPageBreak(); } if (String.IsNullOrEmpty(OldArbeitsGruppenNameID)) ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, "Arbeitsgruppe dzt. noch nicht definiert", "0, 0, 0, 0", -0); else ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, OldArbeitsGruppenNameID, "0, 0, 0, 0", 0); OldOrtsTeil = String.Empty; } if ((BreakByOrtsTeil == true) && (OldOrtsTeil != ProjectEntry["OrtsTeil"].ToString())) { OldOrtsTeil = ProjectEntry["OrtsTeil"].ToString(); if (PageBreakHasBeenSetBefore == false) { PageBreakHasBeenSetBefore = true; ProjectWriter.InsertPageBreak(); } if (String.IsNullOrEmpty(OldOrtsTeil)) ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, "Ortsteil dzt. noch nicht definiert", "0, 0, 0, 0", -0); else ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, OldOrtsTeil, "0, 0, 0, 0", 0); OldZustaendig = String.Empty; OldOrteBezeichnung = String.Empty; } if ((BreakByOrtsBezeichnung == true) && (OldOrteBezeichnung != DataWrapper.Instance.GetOrteBezeichnung(ProjectEntry))) { OldOrteBezeichnung = DataWrapper.Instance.GetOrteBezeichnung(ProjectEntry); ProjectWriter.InsertEmptyLine(); if (String.IsNullOrEmpty(OldOrteBezeichnung)) ProjectWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, "Ort dzt. noch nicht definiert", "10, 0, 0, 0", -5); else ProjectWriter.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, OldOrteBezeichnung, "10, 0, 0, 0", -5); OldZustaendig = String.Empty; } if ((BreakByZustaendig == true) && (OldZustaendig != ProjectEntry["ZustaendigID"].ToString())) { OldZustaendig = ProjectEntry["ZustaendigID"].ToString(); if (PageBreakHasBeenSetBefore == false) { PageBreakHasBeenSetBefore = true; ProjectWriter.InsertPageBreak(); } ProjectWriter.WriteLine(DocumentPrintOut.ElementType.Heading2, Basics.Instance.Zustaendig[OldZustaendig.ToLower()]["Beschreibung"].ToString(), "20, 0, 0, 0", -10); } if (UpdatedSinceLastCheckPoint != null) { if (UpdatedSinceLastCheckPoint.Contains((System.Guid) ProjectEntry["ID"]) == ChangedOrUnChanged) ProcessOneProjectToPrintout(ProjectWriter, ProjectEntry["ID"].ToString(), DocumentPrintOut.ElementType.ProjektDatenOhneOrtsBezeichnung, WithOrWithoutPlakate, WithOrWithoutActivities); } else { ProcessOneProjectToPrintout(ProjectWriter, ProjectEntry["ID"].ToString(), DocumentPrintOut.ElementType.ProjektDatenOhneOrtsBezeichnung, WithOrWithoutPlakate, WithOrWithoutActivities); } } ProjectWriter.Close(); }
private void CreateParticipantsList(DocumentPrintOut Writer, String TermineID, bool FullOrFirstNameOnly, List<System.Guid> AllPersonen) { DataTable TeilnehmerTable = WordUpWCFAccess.GetCommonDataSet("Select * from PersonenZuTermine where TermineID = '" + TermineID + "'").Tables["PersonenZuTermine"]; List<System.Guid> AllPersonenForThisTermin = new List<Guid>(); List<String> TeilnehmerEntries = new List<string>(); foreach (DataRow TeilnehmerRow in TeilnehmerTable.Rows) { if (AllPersonen.Contains((System.Guid) TeilnehmerRow["PersonenID"])) if (AllPersonenForThisTermin.Contains((System.Guid) TeilnehmerRow["PersonenID"]) == false) AllPersonenForThisTermin.Add((System.Guid) TeilnehmerRow["PersonenID"]); if (FullOrFirstNameOnly == false) TeilnehmerEntries.Add(Basics.Instance.Personen[TeilnehmerRow["PersonenID"].ToString()] ["VorName"].ToString()); else { List<String> FullTeilnehmerParts = new List<string>(); FullTeilnehmerParts.Add(Basics.Instance.Personen[TeilnehmerRow["PersonenID"].ToString()] ["NameID"].ToString()); FullTeilnehmerParts.Add(Basics.Instance.Personen[TeilnehmerRow["PersonenID"].ToString()] ["eMail"].ToString()); FullTeilnehmerParts.Add(Basics.Instance.Personen[TeilnehmerRow["PersonenID"].ToString()] ["Telefon"].ToString()); String OrganisationID = Basics.Instance.Personen[TeilnehmerRow["PersonenID"].ToString()] ["OrganisationID"].ToString(); FullTeilnehmerParts.Add(Basics.Instance.Organisationen[OrganisationID]["Beschreibung"].ToString()); TeilnehmerEntries.Add(String.Join("\t", FullTeilnehmerParts)); } } if (FullOrFirstNameOnly == false) { if (AllPersonenForThisTermin.Count == AllPersonen.Count) Writer.WriteLine(DocumentPrintOut.ElementType.TerminAttendee, "Alle"); else Writer.WriteLine(DocumentPrintOut.ElementType.TerminAttendee, String.Join(", ", TeilnehmerEntries)); } else { if (AllPersonenForThisTermin.Count == AllPersonen.Count) Writer.WriteLine(DocumentPrintOut.ElementType.TerminAttendee, "Alle"); else foreach (String Teilnehmer in TeilnehmerEntries) { Writer.WriteLine(DocumentPrintOut.ElementType.TerminAttendee, Teilnehmer); } } }
private void WriteHeadInfo(DocumentPrintOut Writer, List<String> TypListToSelect) { Writer.WriteLine(DocumentPrintOut.ElementType.Heading2, "Selektiert werden folgende Einträge:"); foreach (String Entry in Basics.Instance.GetTypSelectReadableString(TypListToSelect)) { Writer.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, Entry); } Writer.InsertEmptyLine(); }
private void CreateOrganisationen(List<String> TypListToSelect, String FileName) { String TypSelectPart = Data.DbServer3.WordUp.Typen.TypSelectionString(TypListToSelect, "OrganisationenTypID"); String OrganisationenSelectStatement = "Select * from Organisationen where ID in " + "(Select OrganisationenID from OrganisationenZuWordUpID where WordUpID = '" + Basics.Instance.WordUpID + "') and " + TypSelectPart + " order by Typ, Beschreibung"; DataTable OrganisationenTable = WordUpWCFAccess.GetCommonDataSet(OrganisationenSelectStatement).Tables["Organisationen"]; DocumentPrintOut Writer = new DocumentPrintOut(FileName, false); WriteHeadInfo(Writer, TypListToSelect); foreach (DataRow OrganisationenRow in OrganisationenTable.Rows) { List<String> Elements = new List<string>(); Elements.Add(OrganisationenRow["Beschreibung"].ToString()); Elements.Add(OrganisationenRow["KontaktPerson"].ToString()); Elements.Add(OrganisationenRow["eMail"].ToString()); Elements.Add(OrganisationenRow["Tel"].ToString()); Writer.WriteLine(String.Join("\v", Elements)); } Writer.Close(); }
private void CreatePersonenTermineAlsAttachments(List<String> TypListToSelect, String FileName) { String TypSelectPart = Data.DbServer3.WordUp.Typen.TypSelectionString(TypListToSelect, "PersonenTypID"); String PersonenSelectStatement = "Select * from PersonenOrganisationenOrte where ID in " + "(Select PersonenID from PersonenZuWordUpID where WordUpID = '" + Basics.Instance.WordUpID + "') and " + TypSelectPart + " order by FamilienName"; DataTable PersonenTable = WordUpWCFAccess.GetCommonDataSet(PersonenSelectStatement).Tables["PersonenOrganisationenOrte"]; List<System.Guid> AllPersonen = GetAllPersonenIDs(TypListToSelect); foreach (DataRow PersonenRow in PersonenTable.Rows) { DataTable TermineProPerson = WordUpWCFAccess.GetCommonDataSet ("Select * from TermineZuFullPersonen where PersonenID = '" + PersonenRow["ID"].ToString() + "' and WordUpRootID = '" + Basics.Instance.WordUpID + "' order by Von").Tables["TermineZuFullPersonen"]; if (TermineProPerson.Rows.Count == 0) continue; String PersonenFileName = FileName.Replace (".txt", "_eMailTo_" + PersonenRow["eMail"].ToString().Replace(" ", "_") + ".txt"); DocumentPrintOut PersonenWriter = new DocumentPrintOut(PersonenFileName, false); PersonenWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, "Terminübersicht mit Stand " + DateTime.Now.ToString("dd. MMM yyyy") + " für:"); PersonenWriter.InsertEmptyLine(); PersonenWriter.WriteData(PersonenRow, DocumentPrintOut.ElementType.FullPersonenDaten); PersonenWriter.InsertEmptyLine(); foreach (DataRow TerminRow in TermineProPerson.Rows) { PersonenWriter.WriteData(TerminRow, DocumentPrintOut.ElementType.SimpleTerminDaten); CreateParticipantsList(PersonenWriter, TerminRow["TermineID"].ToString(), false, AllPersonen); } PersonenWriter.InsertEmptyLine(); PersonenWriter.WriteLine(DocumentPrintOut.ElementType.Heading1, "Kontaktdaten aller Beteiligten"); PersonenWriter.InsertEmptyLine(); CreatePersonen(TypListToSelect, PersonenWriter); PersonenWriter.Close(); } }
private void CreatePersonenMitTerminen(List<String> TypListToSelect, String FileName) { String TypSelectPart = Data.DbServer3.WordUp.Typen.TypSelectionString(TypListToSelect, "PersonenTypID"); String PersonenSelectStatement = "Select * from PersonenOrganisationenOrte where ID in " + "(Select PersonenID from PersonenZuWordUpID where WordUpID = '" + Basics.Instance.WordUpID + "') and " + TypSelectPart + " order by FamilienName"; DataTable PersonenTable = WordUpWCFAccess.GetCommonDataSet(PersonenSelectStatement).Tables["PersonenOrganisationenOrte"]; DocumentPrintOut Writer = new DocumentPrintOut(FileName, false); WriteHeadInfo(Writer, TypListToSelect); foreach (DataRow PersonenRow in PersonenTable.Rows) { List<String> Elements = new List<string>(); Elements.Add(PersonenRow["NameID"].ToString()); Elements.Add(PersonenRow["OrganisationenBeschreibung"].ToString()); Elements.Add(PersonenRow["eMail"].ToString()); Elements.Add(PersonenRow["Telefon"].ToString()); DataTable TermineProPerson = WordUpWCFAccess.GetCommonDataSet ("Select * from TermineZuFullPersonen where PersonenID = '" + PersonenRow["ID"].ToString() + "' and WordUpRootID = '" + Basics.Instance.WordUpID + "' order by Von").Tables["TermineZuFullPersonen"]; if (TermineProPerson.Rows.Count == 0) continue; String PersonenFileName = FileName.Replace (".txt", "_" + PersonenRow["NameID"].ToString().Replace(" ", "_") + ".txt"); DocumentPrintOut PersonenWriter = new DocumentPrintOut(PersonenFileName, false); Writer.WriteLine(String.Join("\t", Elements)); PersonenWriter.WriteLine(String.Join("\t", Elements)); foreach (DataRow TerminRow in TermineProPerson.Rows) { List<String> TerminElements = WordUp23.Basics.GetTerminEntries(TerminRow); TerminElements.Add(Basics.Instance.GetTypeBeschreibung(TerminRow["TermineTypID"].ToString())); TerminElements.Add(Basics.Instance.Orte[TerminRow["OrteID"].ToString()]["NameID"].ToString()); String TerminEntry = "\t" + String.Join(", ", TerminElements); Writer.WriteLine("\t" + String.Join(", ", TerminElements)); PersonenWriter.WriteLine("\t" + String.Join(", ", TerminElements)); } PersonenWriter.Close(); } Writer.Close(); }
private void CreateTermineInOrganisationen(List<String> TypListToSelect, String FileName) { String TypSelectPart = Data.DbServer3.WordUp.Typen.TypSelectionString(TypListToSelect, "OrganisationenTypID"); String OrganisationenSelectStatement = "Select * from OrganisationenMitOrte where ID in " + "(Select PersonenID from PersonenZuWordUpID where WordUpID = '" + Basics.Instance.WordUpID + "') and " + TypSelectPart + " order by NameID"; DataTable OrganisationenTable = WordUpWCFAccess.GetCommonDataSet(OrganisationenSelectStatement).Tables["OrganisationenMitOrte"]; DocumentPrintOut Writer = new DocumentPrintOut(FileName, false); WriteHeadInfo(Writer, TypListToSelect); foreach (DataRow OrganisationenRow in OrganisationenTable.Rows) { List<String> Elements = new List<string>(); Elements.Add(OrganisationenRow["Beschreibung"].ToString()); Elements.Add(OrganisationenRow["KontaktPerson"].ToString()); Elements.Add(OrganisationenRow["eMail"].ToString()); Elements.Add(OrganisationenRow["Tel"].ToString()); DataTable TermineProOrt = WordUpWCFAccess.GetCommonDataSet ("Select * from TerminPlan where OrteID = '" + OrganisationenRow["OrtsID"].ToString() + "' and WordUpRootID = '" + Basics.Instance.WordUpID + "' order by Von").Tables["TerminPlan"]; if (TermineProOrt.Rows.Count == 0) continue; Writer.WriteLine(DocumentPrintOut.ElementType.Heading2, String.Join("\t", Elements)); foreach (DataRow TerminRow in TermineProOrt.Rows) { List<String> TerminElements = WordUp23.Basics.GetTerminEntries(TerminRow); TerminElements.Add(Basics.Instance.GetTypeBeschreibung(TerminRow["TermineTypID"].ToString())); Writer.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, String.Join("\t", TerminElements)); DataTable TeilnehmerTable = WordUpWCFAccess.GetCommonDataSet("Select * from PersonenZuTermine where TermineID = '" + TerminRow["ID"].ToString() + "'").Tables[ "PersonenZuTermine"]; if (TeilnehmerTable.Rows.Count == 0) continue; foreach (DataRow TeilnehmerRow in TeilnehmerTable.Rows) { List<String> TeilnehmerEntries = new List<string>(); TeilnehmerEntries.Add(Basics.Instance.Personen[TeilnehmerRow["PersonenID"].ToString()] ["NameID"].ToString()); TeilnehmerEntries.Add(Basics.Instance.Personen[TeilnehmerRow["PersonenID"].ToString()] ["eMail"].ToString()); TeilnehmerEntries.Add(Basics.Instance.Personen[TeilnehmerRow["PersonenID"].ToString()] ["Telefon"].ToString()); Writer.WriteLine(DocumentPrintOut.ElementType.ContentLevel2, String.Join("\t", TeilnehmerEntries)); } } } Writer.Close(); }
private void CreateTermineVonOrganisationen(List<String> TypListToSelect, String FileName) { String TypSelectPart = Data.DbServer3.WordUp.Typen.TypSelectionString(TypListToSelect, "OrganisationenTypID"); String OrganisationenSelectStatement = "Select * from Organisationen where ID in " + "(Select OrganisationenID from OrganisationenZuWordUpID where WordUpID = '" + Basics.Instance.WordUpID + "') and " + TypSelectPart + " order by NameID"; DataTable OrganisationenTable = WordUpWCFAccess.GetCommonDataSet(OrganisationenSelectStatement).Tables["Organisationen"]; DocumentPrintOut Writer = new DocumentPrintOut(FileName, false); foreach (DataRow OrganisationenRow in OrganisationenTable.Rows) { double MinutenProOrganisation = 0; List<String> Elements = new List<string>(); Elements.Add(OrganisationenRow["Beschreibung"].ToString()); Elements.Add(OrganisationenRow["KontaktPerson"].ToString()); Elements.Add(OrganisationenRow["eMail"].ToString()); Elements.Add(OrganisationenRow["Tel"].ToString()); DataTable MitarbeiterProOrganisation = WordUpWCFAccess.GetCommonDataSet ("Select * from Personen where OrganisationID = '" + OrganisationenRow["ID"].ToString() + "' order by FamilienName").Tables["Personen"]; if (MitarbeiterProOrganisation.Rows.Count == 0) continue; Writer.WriteLine(DocumentPrintOut.ElementType.Heading2, String.Join("\t", Elements)); foreach (DataRow PersonenRow in MitarbeiterProOrganisation.Rows) { double MinutenProMitarbeiter = 0; List<String> PersonenElements = new List<string>(); PersonenElements.Add(PersonenRow["NameID"].ToString()); PersonenElements.Add(PersonenRow["eMail"].ToString()); PersonenElements.Add(PersonenRow["Telefon"].ToString()); DataTable TermineProPerson = WordUpWCFAccess.GetCommonDataSet ("Select * from TermineZuFullPersonen where PersonenID = '" + PersonenRow["ID"].ToString() + "' and WordUpRootID = '" + Basics.Instance.WordUpID + "' order by Von").Tables["TermineZuFullPersonen"]; if (TermineProPerson.Rows.Count == 0) continue; Writer.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, String.Join("\t", PersonenElements)); foreach (DataRow TerminRow in TermineProPerson.Rows) { List<String> TerminElements = WordUp23.Basics.GetTerminEntries(TerminRow); MinutenProMitarbeiter += WordUp23.Basics.GetDurationInMinutes(TerminRow); MinutenProOrganisation += WordUp23.Basics.GetDurationInMinutes(TerminRow); TerminElements.Add(Basics.Instance.Orte[TerminRow["OrteID"].ToString()]["NameID"].ToString()); Writer.WriteLine(DocumentPrintOut.ElementType.ContentLevel2, String.Join(", ", TerminElements)); } Writer.WriteLine((String.Empty)); Writer.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, String.Format("GesamtStunden für " + PersonenRow["NameID"].ToString() + " = {0}", TimeSpan.FromMinutes(MinutenProMitarbeiter).TotalHours)); Writer.WriteLine((String.Empty)); } Writer.WriteLine((String.Empty)); Writer.WriteLine(DocumentPrintOut.ElementType.ContentLevel1, String.Format("GesamtStunden für " + OrganisationenRow["Beschreibung"].ToString() + " = {0}", TimeSpan.FromMinutes(MinutenProOrganisation).TotalHours)); Writer.WriteLine((String.Empty)); } Writer.Close(); }