public void BuildDataTable(bool erfuellung, bool anforderungen, bool gewichtung, bool nutzwert, bool prozent, int ProjektID, int[] ProduktID, DatabaseAdapter db, bool produkte) { dt = new DataGridView(); dt.ColumnCount = 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_NUM; dt.Columns[dt.ColumnCount - 1].Width = 50; dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_BEZ; dt.Columns[dt.ColumnCount - 1].Width = 300; if (gewichtung) { dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_GEW; dt.Columns[dt.ColumnCount - 1].Width = 50; } if (anforderungen) { dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_ANF; dt.Columns[dt.ColumnCount - 1].Width = 50; } Produkt temp_produkt = new Produkt(ProduktID[0]); ControllerNutzwert cntrl_nutzwer = new ControllerNutzwert(db, null); if (produkte) { foreach (int produkt in ProduktID) { temp_produkt = db.get(new Produkt(produkt))[0]; dt.ColumnCount += 1; string column_name = temp_produkt.getBezeichnung(); if (temp_produkt.getBezeichnung().Length > CONST_PROD_LENGTH) { column_name = column_name.Substring(0, CONST_PROD_LENGTH); } dt.Columns[dt.ColumnCount - 1].Name = column_name; } } dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_KOM; dt.Columns[dt.ColumnCount - 1].Width = 300; Nutzwert temp_nwa = db.get(new Nutzwert(KriteriumID: 1, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID()))[0]; Kriterium root_kriterium = temp_nwa.getKriterium(db).getRootKriterium(db)[0]; if (root_kriterium.getErfuellung(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID()) == true || anforderungen == false) { if (prozent) { dt.ColumnCount += 1; dt.Columns[dt.ColumnCount - 1].Name = CONST_PROZ; dt.Columns[dt.ColumnCount - 1].Width = 50; } } int row = dt.Rows.Add(); dt.Rows[row].Cells[CONST_NUM].Value = "0"; dt.Rows[row].Cells[CONST_BEZ].Value = root_kriterium.getBezeichnung(); dt.Rows[row].Cells[CONST_KOM].Value = root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getKommentar(); if (anforderungen) { if (root_kriterium.getNutzwert(db, 0, 0).getGewichtung() == 0) { dt.Rows[row].Cells[CONST_ANF].Value = "-"; } else { dt.Rows[row].Cells[CONST_ANF].Value = "X"; } } if (produkte) { foreach (int produkt in ProduktID) { temp_produkt = db.get(new Produkt(produkt))[0]; string column_name = temp_produkt.getBezeichnung(); if (temp_produkt.getBezeichnung().Length > CONST_PROD_LENGTH) { column_name = column_name.Substring(0, CONST_PROD_LENGTH); } if (erfuellung == false) { cntrl_nutzwer.funktionsabdeckungsgrad_berechnen(root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID())); } if (anforderungen == true) { dt.Rows[row].Cells[column_name].Value = root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getErfuellung(); } else { dt.Rows[row].Cells[column_name].Value = root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getBeitragAbsolut(); } if (erfuellung) { if (root_kriterium.getGewichtung(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID()) > 0) { dt.Rows[row].Cells[column_name].Value = "X"; } else { dt.Rows[row].Cells[column_name].Value = "-"; } } else { dt.Rows[row].Cells[column_name].Value = root_kriterium.getNutzwert(db, ProjektID, temp_produkt.getProduktID()).getBeitragAbsolut(); } } } if (root_kriterium.getGewichtung(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID()) > 0 || anforderungen == false) { if (gewichtung) { dt.Rows[row].Cells[CONST_GEW].Value = root_kriterium.getGewichtung(db, ProjektID, temp_produkt.getProduktID()); } if (prozent) { dt.Rows[row].Cells[CONST_PROZ].Value = cntrl_nutzwer.prozent(root_kriterium.getNutzwert(db: db, ProjektID: ProjektID, ProduktID: temp_produkt.getProduktID())); } } addtorow(root_kriterium, erfuellung, anforderungen, gewichtung, nutzwert, prozent, ProjektID, ProduktID, db, cntrl_nutzwer, "0", produkte); }