private void pobierzKryteriaDlaCelu(int idCelu) { Dictionary <int, String> listaKryteriow = KryteriumController.pobierzListeNazwKryteriow(idCelu); List <Wynik> listaWynikow = new List <Wynik>(); DataTable dt = stworzStruktureWag(); foreach (KeyValuePair <int, String> kryterium in listaKryteriow) { listaWynikow.AddRange(WynikController.pobierzWynikiCelu(kryterium.Key)); } int lp = 1; foreach (Wynik w in listaWynikow) { DataRow dr = dt.NewRow(); dr["Lp"] = lp; dr["Kryterium"] = listaKryteriow[w.Kryterium1]; dr["Względem"] = listaKryteriow[w.Kryterium2]; dr["Waga"] = w.Waga; dt.Rows.Add(dr); lp++; } wagiDataGridView.DataSource = dt; }
private void zapiszButton_Click(object sender, EventArgs e) { DataTable tabelaWynikow = (DataTable)wagiDataGridView.DataSource; List <Wynik> listaWynikow = new List <Wynik>(); if (null != problemTreeView.SelectedNode) { try { foreach (DataRow dr in tabelaWynikow.Rows) { int idWiersza = listaIdKryteriow[dr[0].ToString()]; int idKolumny = listaIdKryteriow[wagiDataGridView.Columns[0].HeaderCell.Value.ToString()]; decimal value = decimal.Parse(dr["Waga"].ToString(), NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint | NumberStyles.AllowCurrencySymbol); double doubleValue = Convert.ToDouble(value); Wynik wynik = WynikController.stworzWynik(idCelu, idWiersza, idKolumny, doubleValue); listaWynikow.Add(wynik); } WynikController.dodajListeWynikow(listaWynikow); } catch (Exception ex) { MessageBox.Show("Błąd przy tworzeniu identyfikatora danych! " + ex.ToString(), "Błąd!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void wynikButton_Click(object sender, EventArgs e) { List <Wynik> listaWynikow = WynikController.pobierzWynikiCelu(idCelu); List <Kryterium> listaWariantow = KryteriumController.pobierzListeWariantow(idCelu); Dictionary <int, decimal> listaWagWariantow = new Dictionary <int, decimal>(); foreach (Kryterium kryteriumWariant in listaWariantow) { decimal waga = 0; decimal wagaMnozona = 1; List <Wynik> listaWagWariantu = listaWynikow.Where(w => w.Kryterium1 == kryteriumWariant.ID).Select(w => new Wynik { ID = w.ID, KryteriumGlowne = w.KryteriumGlowne, Kryterium1 = w.Kryterium1, Kryterium2 = w.Kryterium2, Waga = w.Waga }).ToList(); List <Wynik> listaPosortowana = listaWagWariantu.OrderByDescending(o => o.ID).ThenByDescending(o => o.Kryterium1).ToList(); foreach (Wynik w in listaPosortowana.OrderByDescending(o => o.Kryterium2)) { wagaMnozona = Convert.ToDecimal(w.Waga); int idKryterium2 = w.Kryterium2; do { Wynik wynikOjca = pobierzWage(idKryterium2, listaWynikow); if (null != wynikOjca) { wagaMnozona = wagaMnozona * Convert.ToDecimal(wynikOjca.Waga); idKryterium2 = wynikOjca.Kryterium2; } else { break; } } while (idKryterium2 != idCelu); waga = waga + wagaMnozona; } listaWagWariantow.Add(kryteriumWariant.ID, waga); } WynikPanel wynikPanel = new WynikPanel(listaWagWariantow, idCelu, MAKSYMALNA_WAGA, buttonMenu); mainForm.Controls.Add(wynikPanel); wynikPanel.Visible = true; buttonMenu.setWynikPanel(wynikPanel); buttonMenu.setAktualnyPanel(wynikPanel); buttonMenu.setControlEnable(buttonMenu.getButton("Dalej"), false); buttonMenu.setControlEnable(buttonMenu.getButton("Dodaj"), false); buttonMenu.setControlEnable(buttonMenu.getButton("Usuń"), false); Visible = false; }
private void wagiButton_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add(listaNazwKryteriow[idKryterium]); dt.Columns.Add("Waga"); List <Kryterium> listaPodkryteriowWariantow = KryteriumController.pobierzListePodkryteriow(idKryterium, idCelu); if (listaPodkryteriowWariantow.Count == 0) { listaPodkryteriowWariantow = KryteriumController.pobierzListeWariantow(idKryterium); } List <Wynik> listaWynikow = WynikController.pobierzWynikiKryterium(idCelu, idKryterium, listaPodkryteriowWariantow); if (listaWynikow.Count > 0) { listaWynikow.ForEach(w => { DataRow dr = dt.NewRow(); dr[0] = listaNazwKryteriow[w.Kryterium1]; dr["Waga"] = w.Waga; dt.Rows.Add(dr); }); if (dt.Rows.Count > 0) { wagiDataGridView.DataSource = dt; } } else { MessageBox.Show("Nie obliczono wyników dla danego kryterium!", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
public static List <Wynik> pobierzWektorWag(int idCelu, int idKryterium) { List <Kryterium> listaWariantow = KryteriumController.pobierzListeWariantow(idCelu); return(WynikController.pobierzWynikiKryterium(idCelu, idKryterium, listaWariantow)); }