Exemple #1
0
        private void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            // index 0 = przedmiot, index 1 = typ
            int[] przekazanaStruktura = (int[])e.Argument;

            for (int i = 0; i < listaUczniow.Count; i++)
            {
                DataGridViewRow row = new DataGridViewRow();
                object[]        oc  = new object[dgv.Columns.Count];
                oc[0] = listaUczniow[i].UczenID;
                oc[1] = listaUczniow[i].Imie + " " + listaUczniow[i].Nazwisko;
                for (int c = 2; c < dgv.ColumnCount; c++)
                {
                    int    przedmiotID = przekazanaStruktura[0];
                    string dataKolumny = dgv.Columns[c].HeaderText.ToString() + " 00:00:00.000";
                    lekcja l           = new lekcja(dataKolumny, przedmiotID, zalogowanaKlasa.KlasaID);
                    if (l.LekcjaID < 0)
                    {
                        l.dodajDoBazy();
                    }
                    uczen_na_lekcji unl = new uczen_na_lekcji(listaUczniow[i].UczenID, l.LekcjaID);
                    if (unl.Uczen_na_lekcjiID < 0)
                    {
                        unl = new uczen_na_lekcji
                        {
                            UczenNR  = listaUczniow[i].UczenID,
                            LekcjaNR = l.LekcjaID,
                            Obecnosc = 0
                        };
                        try
                        {
                            unl.dodajDoBazy();
                        }
                        catch (Exception) {
                            //TODO rzuca jakims dziwnym wyjatkiem..
                        }
                    }
                    if ((ETypDanych)przekazanaStruktura[1] == ETypDanych.ocena)
                    {
                        //oc[c] = dataKolumny;
                        //oc[c] = unl.Uczen_na_lekcjiID + " " + unl.LekcjaNR + " " + przedmiotID + " " + unl.UczenNR;
                        if (unl.Ocena > 0)
                        {
                            oc[c] = unl.Ocena;
                        }
                    }
                    else
                    {
                        oc[c] = (unl.Obecnosc != 0);
                    }
                }
                row.CreateCells(dgv, oc);
                bw.ReportProgress(i, row);
            }
        }
        protected override void wczytajWiersze()
        {
            usunWiersze();
            foreach (przedmiot p in listaPrzedmiotow.zbior)
            {
                DataGridViewRow row = (DataGridViewRow)dgv.RowTemplate.Clone();
                row.CreateCells(dgv, p.PrzedmiotID, p.Nazwa);
                dgv.Rows.Add(row);
            }

            for (int r = 0; r < dgv.Rows.Count; r++)
            {
                for (int c = 2; c < dgv.Columns.Count - 1; c++)
                {
                    int    przedmiotID = (int)dgv[0, r].Value;
                    string dataKolumny = dgv.Columns[c].HeaderText.ToString() + " 00:00:00.000";
                    lekcja l           = new lekcja(dataKolumny, przedmiotID, zalogowanaKlasa.KlasaID);
                    if (l.LekcjaID < 0)
                    {
                        l.dodajDoBazy();
                    }

                    uczen_na_lekcji unl = new uczen_na_lekcji(listaUczniow.zbior[listaUczniow.ZaznaczonyWiersz].UczenID, l.LekcjaID);
                    if (unl.Uczen_na_lekcjiID < 0)
                    {
                        unl = new uczen_na_lekcji
                        {
                            UczenNR  = listaUczniow.zbior[listaUczniow.ZaznaczonyWiersz].UczenID,
                            LekcjaNR = l.LekcjaID,
                            Obecnosc = 0,
                        };
                        unl.dodajDoBazy();
                    }
                    if (TypDanych == ETypDanych.ocena)
                    {
                        if (unl.Ocena > 0)
                        {
                            dgv[c, r].Value = unl.Ocena;
                        }
                    }
                    else
                    {
                        dgv[c, r].Value = (unl.Obecnosc != 0);
                    }
                }
            }
        }
        void bw_DoWork(object sender, DoWorkEventArgs e)
        {
            int zaznaczonyWierszUcznia = (int)e.Argument;

            for (int i = 0; i < listaPrzedmiotow.zbior.Count; i++)
            {
                DataGridViewRow row = new DataGridViewRow();
                //row.CreateCells(dgv, listaPrzedmiotow.zbior[i].PrzedmiotID, listaPrzedmiotow.zbior[i].Nazwa);
                //int c = 2;
                object[]   oc  = new object[dgv.Columns.Count];
                List <int> sum = new List <int>();
                oc[0] = listaPrzedmiotow.zbior[i].PrzedmiotID;
                oc[1] = listaPrzedmiotow.zbior[i].Nazwa;
                int iloscDostepnychKolumn = 0;
                //object[] srednia = new object[dgv.Columns.Count-1];

                for (int c = 2; c < dgv.Columns.Count - 1; c++)
                {
                    int    przedmiotID = listaPrzedmiotow.zbior[i].PrzedmiotID;
                    string dataKolumny = dgv.Columns[c].HeaderText.ToString() + " 00:00:00.000";
                    lekcja l           = new lekcja(dataKolumny, przedmiotID, zalogowanaKlasa.KlasaID);
                    if (l.LekcjaID < 0)
                    {
                        l.dodajDoBazy();
                    }
                    uczen_na_lekcji unl = new uczen_na_lekcji(listaUczniow.zbior[listaUczniow.ZaznaczonyWiersz].UczenID, l.LekcjaID);
                    if (unl.Uczen_na_lekcjiID < 0)
                    {
                        unl = new uczen_na_lekcji
                        {
                            UczenNR  = listaUczniow.zbior[listaUczniow.ZaznaczonyWiersz].UczenID,
                            LekcjaNR = l.LekcjaID,
                            Obecnosc = 0
                        };
                        try
                        {
                            unl.dodajDoBazy();
                        }
                        catch (Exception)
                        {
                            //TODO rzuca jakims mega dziwnym wyjatkiem
                        }
                    }
                    if (typDanych == ETypDanych.ocena)
                    {
                        //oc[c] = dataKolumny;
                        //oc[c] = unl.Uczen_na_lekcjiID + " " + unl.LekcjaNR +" " + przedmiotID +" " + unl.UczenNR;

                        if (unl.Ocena > 0)
                        {
                            oc[c] = unl.Ocena;
                            if (dgv.Columns[c].DefaultCellStyle.BackColor != Color.Chartreuse)
                            {
                                sum.Add(unl.Ocena);
                                iloscDostepnychKolumn++;
                            }
                        }
                    }
                    else
                    {
                        oc[c] = (unl.Obecnosc != 0);
                        if (dgv.Columns[c].DefaultCellStyle.BackColor != Color.Chartreuse)
                        {
                            sum.Add((unl.Obecnosc != 0) ? 1 : 0);
                            iloscDostepnychKolumn++;
                        }
                    }
                }
                object sredniaLubFrekwencja = 0;
                if (typDanych == ETypDanych.ocena)
                {
                    sredniaLubFrekwencja = Math.Round(((float)sum.Sum() / iloscDostepnychKolumn), 2).ToString();
                }
                else
                {
                    sredniaLubFrekwencja = Math.Round(((float)sum.Sum() / iloscDostepnychKolumn), 3) * 100 + " %";
                }
                if (iloscDostepnychKolumn == 0)
                {
                    sredniaLubFrekwencja = " ";
                }
                //oc[dgv.Columns.Count - 1] = obliczSrednia(oc,true);
                oc[dgv.Columns.Count - 1] = sredniaLubFrekwencja;
                row.CreateCells(dgv, oc);
                bw.ReportProgress(i, row);
            }
        }