Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        public static List <Wynik> pobierzWektorWag(int idCelu, int idKryterium)
        {
            List <Kryterium> listaWariantow = KryteriumController.pobierzListeWariantow(idCelu);

            return(WynikController.pobierzWynikiKryterium(idCelu, idKryterium, listaWariantow));
        }