public void FillMe (PrintoutType TypeToCreate) { switch (TypeToCreate) { case PrintoutType.RalphProjektExcel: case PrintoutType.RalphRealisierungExcel: CreateRalphExcelDefinition (); break; } foreach (TableLayoutEntry Entry in TableLayoutEntries.Values) LineWidth += Entry.OutPutColumnWidthInPercent; }
private void CreateProjektSortierFolge(PrintoutType Layout) { if (Layout == PrintoutType.WagnersExcel) { if (_WagnersExcelProjektSortierFolge != null) return; _WagnersExcelProjektSortierFolge = new NameValueCollection(); System.Data.DataTable Projekte = WordUp23.Basics.Instance.WordUpWCFAccess.GetCommonDataSet("Select * from ProjektAktivitaeten where WordUpRootID = '" + WordUp23.Basics.Instance.WordUpID + "' order by " + "Zustaendig, ArbeitsGruppenNameID, Ortsteil, OrtsNameID, NameID").Tables[ "ProjektAktivitaeten"]; String OldZustaendig = String.Empty; String OldArbeitsGruppenNameID = String.Empty; int RunningNumber = 0; foreach (DataRow ProjektRow in Projekte.Rows) { String Zustaendig = ProjektRow["Zustaendig"].ToString(); if (OldZustaendig != Zustaendig) { OldZustaendig = Zustaendig; RunningNumber = 0; } String ArbeitsGruppenNameID = ProjektRow["ArbeitsGruppenNameID"].ToString(); if (OldArbeitsGruppenNameID != ArbeitsGruppenNameID) { OldArbeitsGruppenNameID = ArbeitsGruppenNameID; RunningNumber = 0; } String Key = GetSortierfolgeKey(ProjektRow); String SortierFolge = String.Format("{0:D3}", ++RunningNumber); _WagnersExcelProjektSortierFolge.Add(Key, SortierFolge); } return; } }
int InsertAGMitarbeiter(Microsoft.Office.Interop.Excel.Worksheet AGWorkSheet, List<String> JZBetreuer, List<String> PlenumSprecher, int StartRow, PrintoutType Layout) { if (Layout == PrintoutType.SprecherExcel) { foreach (String PlSprecher in PlenumSprecher) { Microsoft.Office.Interop.Excel.Range SprecherRange = AGWorkSheet.Range[AGWorkSheet.Cells[StartRow, "G"], AGWorkSheet.Cells[StartRow, "G"]]; SprecherRange.Merge(true); SprecherRange.Value = PlSprecher; StartRow++; } String Betreuer = "Betreuer - " + String.Join(", ", JZBetreuer); Microsoft.Office.Interop.Excel.Range BetreuerRange = AGWorkSheet.Range[AGWorkSheet.Cells[StartRow, "G"], AGWorkSheet.Cells[StartRow, "G"]]; BetreuerRange.Merge(true); BetreuerRange.Value = Betreuer; StartRow++; } else { foreach (String Betreuer in JZBetreuer) { Microsoft.Office.Interop.Excel.Range MitarbeiterRange = AGWorkSheet.Range[AGWorkSheet.Cells[StartRow, "G"], AGWorkSheet.Cells[StartRow, "J"]]; MitarbeiterRange.Merge(true); MitarbeiterRange.Value = Betreuer; StartRow++; } String Sprecher = "Plenums Sprecher - " + String.Join(", ", PlenumSprecher); Microsoft.Office.Interop.Excel.Range SprecherRange = AGWorkSheet.Range[AGWorkSheet.Cells[StartRow, "G"], AGWorkSheet.Cells[StartRow, "J"]]; SprecherRange.Merge(true); SprecherRange.Value = Sprecher; StartRow++; } return StartRow; }
int InsertProjektEntries(Microsoft.Office.Interop.Excel.Worksheet AGWorkSheet, ArbeitsGruppe ArbeitsgruppenEntry, PrintoutType Layout, int StartRow) { DbEntities.dbserver3.wordup.rows.Projekt[] Projekte = null; switch (Layout) { case PrintoutType.WagnersExcel: Projekte = Data.DbServer3.WordUp.Projekte.Find_PhasenCorrectProjekte (DataWrapper.Instance.WordUpPhase.ToString()) .OrderBy(sor => sor.Ort.OrtsTeil.AktuallArbeitsGruppe.SortOrder) .ThenBy(sor2 => sor2.Ort.OrtsTeil.NameId) .ThenBy(sor3 => sor3.Ort.Bezeichnung).ToArray(); break; case PrintoutType.ProtokollExcel: Projekte = Data.DbServer3.WordUp.Projekte.Find_PhasenCorrectProjekte (DataWrapper.Instance.WordUpPhase.ToString()) .OrderBy(sor => sor.Ort.OrtsTeil.AktuallArbeitsGruppe.SortOrder) .ThenBy(sor2 => sor2.Ort.OrtsTeil.NameId) .ThenBy(sor3 => sor3.Ort.Bezeichnung).ToArray(); break; case PrintoutType.SprecherExcel: List<Guid?> ProjektIDsInMovies = Data.DbServer3.WordUp.Aktivitaeten .FindOrLoad_By_WordUpRootId(Data.DbServer3.WordUp.WordUpIDGuid) .Where(sel => sel.AktivitaetsTypenId == AktivitaetsTypen.ImPlenumsFilm) .Select(sel => sel.ProjektId).ToList(); Projekte = Data.DbServer3.WordUp.Projekte.Find_PhasenCorrectProjekte (DataWrapper.Instance.WordUpPhase.ToString()) .Where(sel => !ProjektIDsInMovies.Contains(sel.Id)) .OrderBy(sor => sor.Ort.OrtsTeil.AktuallArbeitsGruppe.SortOrder) .ThenBy(sor2 => sor2.Ort.OrtsTeil.NameId) .ThenBy(sor3 => sor3.Ort.Bezeichnung).ToArray(); break; case PrintoutType.RalphProjektExcel: { Projekte = Data.DbServer3.WordUp.Projekte.Find_PhasenCorrectProjekte (DataWrapper.Instance.WordUpPhase.ToString()) .OrderBy(sor => sor.Ort.OrtsTeil.AktuallArbeitsGruppe.SortOrder) .ThenBy(sor2 => sor2.Ort.OrtsTeil.NameId) .ThenBy(sor3 => sor3.Ort.Bezeichnung).ToArray(); break; } case PrintoutType.RalphRealisierungExcel: { Projekte = Data.DbServer3.WordUp.Projekte.Find_PhasenCorrectProjekte (DataWrapper.Instance.WordUpPhase.ToString()) .OrderBy(sor => sor.Ort.OrtsTeil.AktuallArbeitsGruppe.SortOrder) .ThenBy(sor2 => sor2.Ort.OrtsTeil.NameId) .ThenBy(sor3 => sor3.Ort.Bezeichnung).ToArray(); break; } } String OldOrtsTeil = String.Empty; String OldOrtsName = String.Empty; foreach (Projekt ProjektEntry in Projekte) { if (ProjektEntry.Ort.OrtsTeil.AktuallArbeitsGruppe.NameId != ArbeitsgruppenEntry.NameId) continue; if (ProjektEntry.Ort.OrtsTeil.NameId != OldOrtsTeil) { StartRow++; OldOrtsTeil = ProjektEntry.Ort.OrtsTeil.NameId; Microsoft.Office.Interop.Excel.Range OrtsTeilRange = AGWorkSheet.Cells[StartRow, "B"]; OrtsTeilRange.Font.Size = 15; OrtsTeilRange.Font.Bold = true; switch (Layout) { case PrintoutType.WagnersExcel: SetHeadLinesForAGSheet(AGWorkSheet, StartRow); AGWorkSheet.Cells[StartRow++, "B"] = OldOrtsTeil; break; case PrintoutType.ProtokollExcel: SetHeadLinesForAGProtokollSheet(AGWorkSheet, StartRow); AGWorkSheet.Cells[StartRow++, "B"] = OldOrtsTeil; break; case PrintoutType.SprecherExcel: SetHeadLinesForAGSprecherSheet(AGWorkSheet, StartRow); AGWorkSheet.Cells[StartRow++, "B"] = OldOrtsTeil; break; case PrintoutType.RalphProjektExcel: case PrintoutType.RalphRealisierungExcel: SetHeadLinesAGRalphsSheet(AGWorkSheet, StartRow); AGWorkSheet.Cells[StartRow++, "B"] = "(" + ProjektEntry.Ort.OrtsTeil.AktuallArbeitsGruppe.NameId + ") " + OldOrtsTeil; break; } } if (ProjektEntry.Ort.NameId != OldOrtsName) { OldOrtsName = ProjektEntry.Ort.NameId; Microsoft.Office.Interop.Excel.Range OrtsTeilRange = AGWorkSheet.Cells[StartRow, "C"]; OrtsTeilRange.Font.Size = 10; OrtsTeilRange.Font.Bold = true; AGWorkSheet.Cells[StartRow, "A"] = "OrteID=" + ProjektEntry.Ort.Id.ToString(); AGWorkSheet.Cells[StartRow, "B"] = " "; AGWorkSheet.Cells[StartRow++, "C"] = OldOrtsName; } AGWorkSheet.Cells[StartRow, "A"] = "ProjektNummer=" + ProjektEntry.NumericProjektId + ";ProjektID=" + ProjektEntry.Id.ToString(); Microsoft.Office.Interop.Excel.Range OrtsNameRange = null; Microsoft.Office.Interop.Excel.Range NameIDRange = null; Microsoft.Office.Interop.Excel.Range ProjektBeschreibungRange = null; if ((Layout == PrintoutType.ProtokollExcel) || (Layout == PrintoutType.WagnersExcel) || (Layout == PrintoutType.SprecherExcel)) { AGWorkSheet.Cells[StartRow, "B"] = " "; OrtsNameRange = AGWorkSheet.Cells[StartRow, "C"]; OrtsNameRange.WrapText = true; OrtsNameRange.Orientation = 90; OrtsNameRange.Font.Size = 8; OrtsNameRange.Value = ProjektEntry.Ort.NameId; AGWorkSheet.Cells[StartRow, "D"] = ProjektEntry.NameId; NameIDRange = AGWorkSheet.Cells[StartRow, "D"]; NameIDRange.WrapText = true; NameIDRange.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignTop; AGWorkSheet.Cells[StartRow, "E"] = ProjektEntry.Wertigkeit.ToString(); Microsoft.Office.Interop.Excel.Range WertigkeitRange = AGWorkSheet.Cells[StartRow, "E"]; WertigkeitRange.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignTop; AGWorkSheet.Cells[StartRow, "F"] = ((ProjektEntry.IsImPlenumsFilm == true) ? "ImFilm" : ""); Microsoft.Office.Interop.Excel.Range ImFilmRange = AGWorkSheet.Cells[StartRow, "F"]; ImFilmRange.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignTop; if (Layout == PrintoutType.SprecherExcel) { AGWorkSheet.Cells[StartRow, "G"] = ProjektEntry.LangBeschreibung; ProjektBeschreibungRange = AGWorkSheet.Cells[StartRow, "G"]; ProjektBeschreibungRange.WrapText = true; ProjektBeschreibungRange.Font.Bold = true; } else { AGWorkSheet.Cells[StartRow, "G"] = ProjektEntry.LangBeschreibung; ProjektBeschreibungRange = AGWorkSheet.Cells[StartRow, "G"]; ProjektBeschreibungRange.WrapText = true; ProjektBeschreibungRange.Font.Bold = true; } } if ((Layout == PrintoutType.RalphProjektExcel) || (Layout == PrintoutType.RalphRealisierungExcel)) { foreach (TableLayoutEntry Entry in RalphsExcelDefinition.TableLayoutEntries.Values) { Microsoft.Office.Interop.Excel.Range LayoutEntryRange = AGWorkSheet.Cells[StartRow, Entry.OutputColumnName]; Entry.ProjektRow = ProjektEntry; LayoutEntryRange.Style = "NormalText"; LayoutEntryRange.WrapText = true; LayoutEntryRange.Value = Entry.GetContent(); } } switch (Layout) { case PrintoutType.WagnersExcel: { AGWorkSheet.Cells[StartRow, "H"] = GetSortierFolge(ProjektEntry, PrintoutType.WagnersExcel); // ProjectRow ["Reihung"].ToString (); Microsoft.Office.Interop.Excel.Range ReihungRange = AGWorkSheet.Cells[StartRow, "H"]; ReihungRange.WrapText = true; ReihungRange.Font.Bold = true; AGWorkSheet.Cells[StartRow, "J"] = ProjektEntry.Status; Microsoft.Office.Interop.Excel.Range StatusRange = AGWorkSheet.Cells[StartRow, "J"]; StatusRange.WrapText = true; StatusRange.Font.Bold = true; int ProjektStartRow = StartRow; AGWorkSheet.Cells[StartRow, "K"] = GetMaterialHinweise(ProjektEntry); Microsoft.Office.Interop.Excel.Range MaterialRange = AGWorkSheet.Cells[StartRow, "K"]; AGWorkSheet.Cells[StartRow, "L"] = " "; List<String> AktivitaetenFarbe = InsertProjektAktivitaeten(AGWorkSheet, ProjektEntry, StartRow, "J", "J"); DoWagnerContentFraming(AGWorkSheet, ProjektStartRow, StartRow, "D", "J", "J", "J", AktivitaetenFarbe); StartRow += AktivitaetenFarbe.Count; Microsoft.Office.Interop.Excel.Range KostenSchaetzungRange = AGWorkSheet.Cells[ProjektStartRow, "I"]; KostenSchaetzungRange.WrapText = true; KostenSchaetzungRange.Orientation = 90; KostenSchaetzungRange.Font.Size = 10; KostenSchaetzungRange.Value = ProjektEntry.KostenSchaetzung; StartRow++; Microsoft.Office.Interop.Excel.Range EmptyLineRange = AGWorkSheet.Rows[StartRow]; EmptyLineRange.RowHeight = 3; break; } case PrintoutType.ProtokollExcel: DoContentFraming(AGWorkSheet, StartRow, StartRow, "D", "G"); DoContentFraming(AGWorkSheet, StartRow, StartRow + 1, "H", "H"); int StartLineHeight = (int)((Microsoft.Office.Interop.Excel.Range)AGWorkSheet.Range[AGWorkSheet.Cells[StartRow, "H"], AGWorkSheet.Cells[StartRow, "H"]]).RowHeight; ((Microsoft.Office.Interop.Excel.Range)AGWorkSheet.Range[AGWorkSheet.Cells[StartRow + 1, "H"], AGWorkSheet.Cells[StartRow + 1, "H"]]).RowHeight = 50 + StartLineHeight; //160 - StartLineHeight; ((Microsoft.Office.Interop.Excel.Range)AGWorkSheet.Range[AGWorkSheet.Cells[StartRow, "H"], AGWorkSheet.Cells[StartRow + 1, "H"]]).PageBreak = (int)Microsoft.Office.Interop.Excel.XlPageBreak.xlPageBreakNone; StartRow++; NameIDRange.Font.Bold = true; break; case PrintoutType.SprecherExcel: if (!String.IsNullOrEmpty(ProjektEntry.LangBeschreibung)) AGWorkSheet.Cells[StartRow, "G"] = ProjektEntry.LangBeschreibung; DoContentFraming(AGWorkSheet, StartRow, StartRow, "D", "G"); ProjektBeschreibungRange.Font.Size = 20; break; case PrintoutType.RalphProjektExcel: case PrintoutType.RalphRealisierungExcel: { //int LineHeight = (int) ((Excel.Range) AGWorkSheet.Range [AGWorkSheet.Cells [StartRow, "A"], // AGWorkSheet.Cells [StartRow, "J"]]).RowHeight; DoLineContentFraming(AGWorkSheet, StartRow, StartRow, "A", "K"); Microsoft.Office.Interop.Excel.Range StatusRange = AGWorkSheet.Cells[StartRow, "J"]; String StatusRowContent = ProjektEntry.Status; if (WordUp23.Basics.Instance.SkipedProjekts.ContainsKey((Guid)ProjektEntry.Id)) { StatusRowContent += WordUp23.Basics.Instance.SkipedProjekts[(Guid)ProjektEntry.Id]; //TODO StartRow - 1 SetContentBackground(AGWorkSheet, StartRow, StartRow, "J", "J", "J", "J", "Rot"); } AGWorkSheet.Cells[StartRow, "J"] = StatusRowContent; StatusRange.WrapText = true; StatusRange.Font.Bold = true; } break; } StartRow++; } return StartRow; }
private String GetSortierFolge(DataRow ProjektRow, PrintoutType Layout) { if (Layout == PrintoutType.WagnersExcel) { if (_WagnersExcelProjektSortierFolge == null) CreateProjektSortierFolge(Layout); if (_WagnersExcelProjektSortierFolge == null) return String.Empty; return _WagnersExcelProjektSortierFolge[GetSortierfolgeKey(ProjektRow)]; } return String.Empty; }
void FillAGSheet(Microsoft.Office.Interop.Excel.Worksheet AGWorkSheet, ArbeitsGruppe ArbeitsgruppenEntry, PrintoutType Layout) { switch (Layout) { case PrintoutType.WagnersExcel: NextRowToStart = 1; SetColumnsForAGSheet(AGWorkSheet); break; case PrintoutType.ProtokollExcel: NextRowToStart = 1; SetColumnsForAGProtokollSheet(AGWorkSheet); break; case PrintoutType.SprecherExcel: NextRowToStart = 1; SetColumnsForAGSprecherSheet(AGWorkSheet); break; case PrintoutType.RalphProjektExcel: case PrintoutType.RalphRealisierungExcel: NextRowToStart = 1; SetColumnsForAGRalphsSheet(AGWorkSheet); NextRowToStart = InsertProjektEntries(AGWorkSheet, ArbeitsgruppenEntry, Layout, NextRowToStart); return; break; } AGWorkSheet.Cells[1, "A"] = WordUp23.Basics.Instance.WordUpName; Microsoft.Office.Interop.Excel.Range WordUpRange = AGWorkSheet.Cells[1, "A"]; WordUpRange.Font.Size = 15; WordUpRange.Font.Bold = true; bool PublicOrInternelPersonenUsage = false; if (Layout == PrintoutType.SprecherExcel) PublicOrInternelPersonenUsage = true; List<String> Betreuer = WordUp23.DataWrapper.Instance.GetArbeitsGruppenMitarbeiter (ArbeitsgruppenEntry, "8C2645EF-EED3-4169-8E63-DAE1F5CB55C6", PublicOrInternelPersonenUsage); // Betreuer List<String> PlenumSprecher = WordUp23.DataWrapper.Instance.GetArbeitsGruppenMitarbeiter (ArbeitsgruppenEntry, "A0468864-EA84-4B4D-9A2D-7513619D8E84", PublicOrInternelPersonenUsage); // PlenumSprecher NextRowToStart = InsertAGMitarbeiter(AGWorkSheet, Betreuer, PlenumSprecher, 1, Layout); AGWorkSheet.Cells[NextRowToStart++, "C"] = "Vorschläge - Umsetzungsmöglichkeiten"; int LastRow = InsertProjektEntries(AGWorkSheet, ArbeitsgruppenEntry, Layout, NextRowToStart); }
void FillFremdSheet(Microsoft.Office.Interop.Excel.Worksheet AGWorkSheet, DataRow ArbeitsgruppenRow, PrintoutType Layout) { AGWorkSheet.Cells[1, "A"] = WordUp23.Basics.Instance.WordUpName; Microsoft.Office.Interop.Excel.Range WordUpRange = AGWorkSheet.Cells[1, "A"]; WordUpRange.Font.Size = 15; WordUpRange.Font.Bold = true; AGWorkSheet.Cells[2, "C"] = "Vorschläge, die an Privatpersonen oder private Firmen gerichtet sind"; System.Data.DataTable Projekte = null; String OldArbeitsGruppenNameID = String.Empty; String OldOrtsTeil = String.Empty; String OldOrtsName = String.Empty; String AdditionalWhereForUseOnlyRealizeableProjects = WordUp23.Basics.Instance.GetAdditionalWhereForUseOnlyRealizeableProjects(UseOnlyRealizeableProjects); switch (Layout) { case PrintoutType.WagnersExcel: Projekte = WordUp23.Basics.Instance.WordUpWCFAccess.GetCommonDataSet("Select * from ProjektAktivitaeten where Zustaendig = 'Fremd' " + AdditionalWhereForUseOnlyRealizeableProjects + "order by " + DataWrapper.Instance.ActuallProjektUebersichtSortOrder).Tables["ProjektAktivitaeten"]; SetColumnsForFremdSheet(AGWorkSheet); break; case PrintoutType.ProtokollExcel: Projekte = WordUp23.Basics.Instance.WordUpWCFAccess.GetCommonDataSet("Select * from ProjektAktivitaeten where Zustaendig = 'Fremd' " + AdditionalWhereForUseOnlyRealizeableProjects + "order by " + DataWrapper.Instance.ActuallProjektUebersichtSortOrder).Tables["ProjektAktivitaeten"]; SetColumnsForFremdProtokollSheet(AGWorkSheet); break; case PrintoutType.SprecherExcel: Projekte = WordUp23.Basics.Instance.WordUpWCFAccess.GetCommonDataSet("Select * from ProjektAktivitaeten where Zustaendig = 'Fremd' and not ImFilm = 'Film' " + AdditionalWhereForUseOnlyRealizeableProjects + "order by " + DataWrapper.Instance.ActuallProjektUebersichtSortOrder).Tables["ProjektAktivitaeten"]; SetColumnsForFremdSprecherSheet(AGWorkSheet); break; case PrintoutType.RalphProjektExcel: Projekte = WordUp23.Basics.Instance.WordUpWCFAccess.GetCommonDataSet("Select * from ProjektAktivitaeten where ArbeitsGruppenNameID = '" + ArbeitsgruppenRow["NameID"].ToString() + "' and Wertigkeit > 0 and Zustaendig = 'Fremd' " + AdditionalWhereForUseOnlyRealizeableProjects + "order by " + DataWrapper.Instance.ActuallProjektUebersichtSortOrder).Tables["ProjektAktivitaeten"]; break; } int StartRow = 3; foreach (DataRow ProjectRow in Projekte.Rows) { if (ProjectRow["ArbeitsGruppenNameID"].ToString() != OldArbeitsGruppenNameID) { StartRow++; OldArbeitsGruppenNameID = ProjectRow["ArbeitsGruppenNameID"].ToString(); Microsoft.Office.Interop.Excel.Range OrtsTeilRange = AGWorkSheet.Cells[StartRow, "B"]; OrtsTeilRange.Font.Size = 15; OrtsTeilRange.Font.Bold = true; switch (Layout) { case PrintoutType.WagnersExcel: SetHeadLinesForFremdSheet(AGWorkSheet, StartRow); break; case PrintoutType.ProtokollExcel: SetHeadLinesForFremdProtokollSheet(AGWorkSheet, StartRow); break; case PrintoutType.SprecherExcel: SetHeadLinesForFremdSprecherSheet(AGWorkSheet, StartRow); break; case PrintoutType.RalphProjektExcel: SetHeadLinesForFremdSprecherSheet(AGWorkSheet, StartRow); break; } AGWorkSheet.Cells[StartRow++, "B"] = OldArbeitsGruppenNameID; } if (ProjectRow["OrtsTeil"].ToString() != OldOrtsTeil) { StartRow++; OldOrtsTeil = ProjectRow["OrtsTeil"].ToString(); Microsoft.Office.Interop.Excel.Range OrtsTeilRange = AGWorkSheet.Cells[StartRow, "C"]; OrtsTeilRange.Font.Size = 15; OrtsTeilRange.Font.Bold = true; AGWorkSheet.Cells[StartRow++, "C"] = OldOrtsTeil; } if (ProjectRow["OrtsNameID"].ToString() != OldOrtsName) { OldOrtsName = ProjectRow["OrtsNameID"].ToString(); Microsoft.Office.Interop.Excel.Range OrtsTeilRange = AGWorkSheet.Cells[StartRow, "D"]; OrtsTeilRange.Font.Size = 10; OrtsTeilRange.Font.Bold = true; AGWorkSheet.Cells[StartRow, "A"] = "OrteID=" + ProjectRow["OrteID"].ToString(); AGWorkSheet.Cells[StartRow, "B"] = " "; AGWorkSheet.Cells[StartRow++, "D"] = OldOrtsName; } AGWorkSheet.Cells[StartRow, "A"] = "ProjektNummer=" + ProjectRow["NumericProjektID"].ToString() + ";ProjektID=" + ProjectRow["ID"].ToString(); AGWorkSheet.Cells[StartRow, "B"] = " "; AGWorkSheet.Cells[StartRow, "E"] = ProjectRow["NameID"].ToString(); Microsoft.Office.Interop.Excel.Range NameIDRange = AGWorkSheet.Cells[StartRow, "E"]; NameIDRange.WrapText = true; NameIDRange.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignTop; AGWorkSheet.Cells[StartRow, "F"] = ProjectRow["Wertigkeit"].ToString(); Microsoft.Office.Interop.Excel.Range WertigkeitRange = AGWorkSheet.Cells[StartRow, "F"]; WertigkeitRange.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignTop; AGWorkSheet.Cells[StartRow, "G"] = ProjectRow["ImFilm"].ToString(); AGWorkSheet.Cells[StartRow, "H"] = ProjectRow["ProjektBeschreibung"].ToString(); Microsoft.Office.Interop.Excel.Range ProjektBeschreibungRange = AGWorkSheet.Cells[StartRow, "H"]; ProjektBeschreibungRange.WrapText = true; ProjektBeschreibungRange.Font.Bold = true; ProjektBeschreibungRange.VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignTop; switch (Layout) { case PrintoutType.WagnersExcel: { int ProjektStartRow = StartRow; List<String> AktivitaetenFarbe = InsertProjektAktivitaeten(AGWorkSheet, ProjectRow, StartRow, "H", "H"); StartRow += AktivitaetenFarbe.Count; DoWagnerContentFraming(AGWorkSheet, ProjektStartRow, StartRow, "E", "I", "H", "I", AktivitaetenFarbe); StartRow++; Microsoft.Office.Interop.Excel.Range EmptyLineRange = AGWorkSheet.Rows[StartRow]; EmptyLineRange.RowHeight = 3; break; } case PrintoutType.ProtokollExcel: DoContentFraming(AGWorkSheet, StartRow, StartRow, "E", "I"); break; case PrintoutType.SprecherExcel: if (!String.IsNullOrEmpty(ProjectRow["ProjektLangBeschreibung"].ToString())) AGWorkSheet.Cells[StartRow, "H"] = ProjectRow["ProjektLangBeschreibung"].ToString(); DoContentFraming(AGWorkSheet, StartRow, StartRow, "E", "H"); ProjektBeschreibungRange.Font.Size = 20; break; case PrintoutType.RalphProjektExcel: case PrintoutType.RalphRealisierungExcel: break; } StartRow++; } }
public void CreateActivityExcel(String TargetDirectory, PrintoutType TypeToCreate) { TargetDirectory = WordUp23.Basics.Instance.ModifyDirectoryNameForUseOnlyRealizeable(TargetDirectory, UseOnlyRealizeableProjects); if (Directory.Exists(TargetDirectory) == false) Directory.CreateDirectory(TargetDirectory); Microsoft.Office.Interop.Excel.Workbook ExcelWb = StartWorkbook(null, null); NextRowToStart = 1; foreach (ArbeitsGruppe arbeitsgruppenEntry in Data.DbServer3.WordUp.ArbeitsGruppen.ActuallArbeitsGruppen) { if (arbeitsgruppenEntry.UseForProjects != "Ja") continue; String ArbeitsgruppenName = arbeitsgruppenEntry.NameId + "-" + arbeitsgruppenEntry.Beschreibung; Microsoft.Office.Interop.Excel.Worksheet AGWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet) ExcelWb.Worksheets.Add(ExcelWb.Worksheets[ExcelWb.Worksheets.Count], Missing.Value, Missing.Value, Missing.Value); if (ArbeitsgruppenName.Length > 31) ArbeitsgruppenName = ArbeitsgruppenName.Substring(0, 31); AGWorkSheet.Name = ArbeitsgruppenName; AGWorkSheet.PageSetup.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlLandscape; InsertStandardHeaderAndFooter(AGWorkSheet, ArbeitsgruppenName); FillAGSheet(AGWorkSheet, arbeitsgruppenEntry, TypeToCreate); } String TypeIdentifier = Enum.GetName(typeof(PrintoutType), TypeToCreate) .Replace("Excel", "") .Replace("Ralph", ""); CloseWorkBook(ExcelWb, TargetDirectory, Properties.Settings.Default.RalphsExcel.Replace(".", "_" + TypeIdentifier + "_" + WordUp23.Basics.Instance.ActualWordUpName + ".")); }
void ProcessOneSheet (Excel.Worksheet Sheet, DataRow AGRow, PrintoutType Layout, bool ImportMissingProject) { String ActuellOrtsteil = String.Empty; String ActuellOrt = String.Empty; String ActuellProject = String.Empty; int OrtsTeilColumn = 2; int OrtColumn = 3; int ProjectColumn = 4; int BeschreibungColumn = 7; int ProjektVerlaufColumn = 10; if (AGRow ["NameID"].ToString () == WordUp23.Basics.FREMD_PROJEKT_NAME) { OrtsTeilColumn = 3; OrtColumn = 4; ProjectColumn = 5; BeschreibungColumn = 8; ProjektVerlaufColumn = 9; } if ((Layout == PrintoutType.RalphProjektExcel) || (Layout == PrintoutType.RalphRealisierungExcel)) { OrtsTeilColumn = 3; OrtColumn = 1; ProjectColumn = 1; } int LineNumber = 0; int MaxEmptyLines = 0; while ((LineNumber++ < Sheet.Rows.Count) && (MaxEmptyLines < 50)) { Excel.Range OrtsTeilRange = Sheet.Cells [LineNumber, OrtsTeilColumn]; if (String.IsNullOrEmpty (OrtsTeilRange.Value) == false) ActuellOrtsteil = OrtsTeilRange.Value; if (String.IsNullOrEmpty (ActuellOrtsteil)) continue; Excel.Range OrtRange = Sheet.Cells [LineNumber, OrtColumn]; if (String.IsNullOrEmpty (OrtRange.Value) == false) ActuellOrt = OrtRange.Value; Excel.Range ProjectRange = Sheet.Cells [LineNumber, ProjectColumn]; if (String.IsNullOrEmpty (ProjectRange.Value) == false) { String ProjectID = ProjectRange.Value; switch (Layout) { case PrintoutType.SprecherExcel: { Excel.Range ProjectLangBeschreibungRange = Sheet.Cells [LineNumber, BeschreibungColumn]; String ProjectLangBeschreibung = ProjectLangBeschreibungRange.Value; if (ModifyDataBase (ActuellOrtsteil, ActuellOrt, ProjectID, "LangBeschreibung", ProjectLangBeschreibung) == false) { DataTable OrtTable = m_DataBase.GetCommonDataSet ("Select * from Orte where OrtsTeil = '" + ActuellOrtsteil + "' and NameID = '" + ActuellOrt + "'").Tables ["Orte"]; if (OrtTable.Rows.Count > 0) InsertMissingProjectIntoMessageGrid (ActuellOrtsteil, ActuellOrt, "OrtOK", ProjectID); else InsertMissingProjectIntoMessageGrid (ActuellOrtsteil, ActuellOrt, "", ProjectID); } break; } case PrintoutType.WagnersExcel: { Excel.Range ProjectVerlaufRange = Sheet.Cells [LineNumber, ProjektVerlaufColumn]; String ProjectVerlauf = ProjectVerlaufRange.Value; if (ModifyDataBase (ActuellOrtsteil, ActuellOrt, ProjectID, "Status", ProjectVerlauf) == false) { DataTable OrtTable = m_DataBase.GetCommonDataSet ("Select * from Orte where OrtsTeil = '" + ActuellOrtsteil + "' and NameID = '" + ActuellOrt + "'").Tables ["Orte"]; if (OrtTable.Rows.Count > 0) { if (ImportMissingProject == true) { String OrtsID = OrtTable.Rows [0] ["ID"].ToString (); Excel.Range ProjectBeschreibungRange = Sheet.Cells [LineNumber, BeschreibungColumn]; String ProjectBeschreibung = ProjectBeschreibungRange.Value; InsertMissingProject (OrtsID, ProjectID, ProjectBeschreibung); } else InsertMissingProjectIntoMessageGrid (ActuellOrtsteil, ActuellOrt, "OrtOK", ProjectID); } else InsertMissingProjectIntoMessageGrid (ActuellOrtsteil, ActuellOrt, "", ProjectID); } else { Excel.Range ProjectLangBeschreibungRange = Sheet.Cells [LineNumber, BeschreibungColumn]; String ProjectLangBeschreibung = ProjectLangBeschreibungRange.Value; ModifyDataBase (ActuellOrtsteil, ActuellOrt, ProjectID, "LangBeschreibung", ProjectLangBeschreibung); } break; } case PrintoutType.RalphProjektExcel: case PrintoutType.RalphRealisierungExcel: { String [] Elemente = ProjectID.Split (';'); if (Elemente.Length < 2) break; String ID = Elemente [1].Replace ("ProjektID=", ""); List<String> ColumnContent = new List<string> (); foreach (String ColumnName in ExcelFunctions.RalphsExcelDefinition.ListOfColumnNames()) { Excel.Range ProjectBeschreibungRange = Sheet.Cells [LineNumber, ColumnName]; ColumnContent.Add (Convert.ToString( ProjectBeschreibungRange.Value)); } ModifyDataBaseFromRalphExcelLine (ID, ColumnContent); break; } } MaxEmptyLines = 0; } else { MaxEmptyLines++; } } }
void ProcessAllSheets (String FileName, PrintoutType Layout, bool ImportMissingProject) { ExcelFunctions ExcelFunctionsHelper = new ExcelFunctions (); Excel.Workbook ExcelWB = ExcelFunctionsHelper.StartReadWorkbook(FileName); if (ExcelWB == null) return; List<String> ExistingAGNames = new List<string> (); DataTable Arbeitsgruppen = m_DataBase.GetCommonDataSet ("Select * from ArbeitsGruppen where WordUpRootID = '" + WordUpID + "'").Tables ["ArbeitsGruppen"]; foreach (Excel.Worksheet Sheet in ExcelWB.Worksheets) { String SheetName = Sheet.Name; DataRow AGRowToProcess = null; bool CorrectSheet = false; foreach (DataRow AGRow in Arbeitsgruppen.Rows) { String NameElementToSearchFor = AGRow ["NameID"].ToString () + "-"; if (SheetName.IndexOf (NameElementToSearchFor) != -1) { CorrectSheet = true; AGRowToProcess = AGRow; break; } } if (CorrectSheet == false) continue; ProcessOneSheet (Sheet, AGRowToProcess, Layout, ImportMissingProject); } ExcelFunctionsHelper.CloseReadWorkbook(ExcelWB); }