/// <summary> /// Kopplar en grupp till en träningsaktivitet /// och fyller automatiskt i tabellen deltagare med de medlemmar som tillhör /// den aktuella gruppen /// </summary> private void flyMedlemTillTrantillf() { DataTable sokning; postgres s = new postgres(); List <string> lstMedlemmar = new List <string>(); // lista för att hålla medlemmar som skall speglas över ifrån tabellen gruppmedlemmar till deltagare s.enkelGrupp = Convert.ToString(nuvarandeTranGrp.grupp_id); // läser in och för över den markerade gruppens ID till postgres sokning = s.sqlFråga("lasUtMedlemmar", "tranTillfalle"); if (sokning.Columns[0].ColumnName.Equals("error")) { _tbSvar.Text = sokning.Rows[0][1].ToString(); } else { s.narvaro = Convert.ToString(nuvarandeTrantillf.narvarolistaID); // läser in och för över det markerade träningstillfällets ID till postgres for (int i = 0; i < sokning.Rows.Count; i++) { string utlasning = Convert.ToString(sokning.Rows[i]["medlem_id"]); lstMedlemmar.Add(utlasning); } foreach (string item in lstMedlemmar) { //skriva medlemmar till deltagare-tabellen s.nyMedlem = item.ToString(); s.sqlNonQuery("flyttaTillAktivitet", "tranTillfalle"); //skriver till databasen } } s.narvaro = nuvarandeTrantillf.narvarolistaID.ToString(); sokning = s.sqlFråga("kopplade", "tranTillfalle"); if (sokning.Columns[0].ColumnName.Equals("error")) { _tbSvar.Text = sokning.Rows[0][1].ToString(); } else { trnGrpLst_kopplad.Clear(); for (int i = 0; i < sokning.Rows.Count; i++) { traningsgrupp tillfalle = new traningsgrupp() { narvarolista = (int)sokning.Rows[i]["narvarolista_id"], del_grupp_id = (int)sokning.Rows[i]["del_grupp_id"], namn = sokning.Rows[i]["namn"].ToString(), }; trnGrpLst_kopplad.Add(tillfalle); _tbSvar.Text = sokOk; } _gruppaktiviter.DataSource = null; _gruppaktiviter.DataSource = trnGrpLst_kopplad; _gruppaktiviter.DisplayMember = "namn"; } }
/// <summary> /// Metod som hämtar grupper. /// </summary> private void hamtaGrupper() { DataTable svarGrp; postgres sokning = new postgres(); svarGrp = sokning.sqlFråga(sokning.vilkenSokning(false, false, false), "gruppNy"); // hämtar sökning efter träningsgrupper if (svarGrp.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarGrp.Rows[0][1].ToString(); } else { List <traningsgrupp> nyTraningsgruppLista = new List <traningsgrupp>(); for (int i = 0; i < svarGrp.Rows.Count; i++) { traningsgrupp traningsgruppRatt = new traningsgrupp() { namn = svarGrp.Rows[i]["namn"].ToString(), grupp_id = (int)svarGrp.Rows[i]["grupp_id"] }; nyTraningsgruppLista.Add(traningsgruppRatt); } lbxTraningsgrupper.DataSource = nyTraningsgruppLista; lbxTraningsgrupper.DisplayMember = "nyaGrupper"; tbSvar.Text = sokOk; } }
/// <summary> /// hämtar grupper som är kopplade till ett i listboxen markerat träningstillfälle. /// </summary> private void koppladeGrupper() { lasAvListboxarna(); DataTable sokning; postgres s = startaPostgres(); s.narvaro = nuvarandeTrantillf.narvarolistaID.ToString(); sokning = s.sqlFråga("kopplade", "tranTillfalle"); if (sokning.Columns[0].ColumnName.Equals("error")) { _tbSvar.Text = sokning.Rows[0][1].ToString(); } else { trnGrpLst_kopplad.Clear(); for (int i = 0; i < sokning.Rows.Count; i++) { traningsgrupp tillfalle = new traningsgrupp() { narvarolista = (int)sokning.Rows[i]["narvarolista_id"], del_grupp_id = (int)sokning.Rows[i]["del_grupp_id"], namn = sokning.Rows[i]["namn"].ToString(), }; trnGrpLst_kopplad.Add(tillfalle); _tbSvar.Text = sokOk; } _gruppaktiviter.DataSource = null; _gruppaktiviter.DataSource = trnGrpLst_kopplad; _gruppaktiviter.DisplayMember = "namn"; } }
/// <summary> /// populerar träningstillfälleslistan /// </summary> private void hamtaTranTillf() { DataTable sokning; postgres s = startaPostgres(); sokning = s.sqlFråga("hamtaTillf", "tranTillfalle"); if (sokning.Columns[0].ColumnName.Equals("error")) { _tbSvar.Text = sokning.Rows[0][1].ToString(); } else { trantillfLista = new List <trantillfInfo>(); for (int i = 0; i < sokning.Rows.Count; i++) { trantillfInfo tillfalle = new trantillfInfo() { narvarolistaID = (int)sokning.Rows[i]["narvarolista_id"], datum = sokning.Rows[i]["datum"].ToString(), sluttid = (DateTime)sokning.Rows[i]["sluttid"], starttid = (DateTime)sokning.Rows[i]["starttid"], }; trantillfLista.Add(tillfalle); _tbSvar.Text = sokOk; } lbxTrantillfalle.DataSource = trantillfLista; lbxTrantillfalle.DisplayMember = "trantillfalle"; } }
/// <summary> /// Populerar medlemslistan och ledarlistan /// </summary> private void uppdMedlem() { medlemslista.Clear(); medlemLedareLista.Clear(); refreshaLbVal(); DataTable sokMedlem; postgres s = startaPostgres(); sokMedlem = s.sqlFråga("uppdMedlem", "hanteraGrp"); for (int i = 0; i < sokMedlem.Rows.Count; i++) { medlem = new gruppmedlemmar(); medlem.medlemId = sokMedlem.Rows[i]["medlem_id"].ToString(); medlem.Förnamn = sokMedlem.Rows[i]["fnamn"].ToString(); medlem.Efternamn = sokMedlem.Rows[i]["enamn"].ToString(); medlemslista.Add(medlem); } sokMedlem = s.sqlFråga("uppdLedare", "hanteraGrp"); string grp = trnGrpLst[trnGrpLst.IndexOf(nuvarandeGrupp)].grupp_id.ToString(); for (int i = 0; i < sokMedlem.Rows.Count; i++) { medlem = new gruppmedlemmar(); medlem.medlemId = sokMedlem.Rows[i]["medlem_id"].ToString(); medlem.Förnamn = sokMedlem.Rows[i]["fnamn"].ToString(); medlem.Efternamn = sokMedlem.Rows[i]["enamn"].ToString(); medlem.gruppId = sokMedlem.Rows[i]["grupp"].ToString(); if (medlem.gruppId == grp) { medlemLedareLista.Add(medlem); } } uppdateraMedlemLedarbox(_medlemsbox, medlemslista); uppdateraMedlemLedarbox(_ledarbox, medlemLedareLista); }
/// <summary> /// hämtar gruppmedlemmar till medlemslistboxen /// </summary> public void hamtaGruppmedlemmar() { List <string> gruppLista = new List <string>(); foreach (traningsgrupp selectedItem in lbxTraningsgrupper.SelectedItems) { gruppLista.Add(selectedItem.namn); } DataTable svarNarvaro; postgres sokning = new postgres(); sokning.grupp = gruppLista; svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(false, false, false), "hamtaGruppmedlemmar"); // hämtar sökning efter träningsgrupper if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { _tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { // här får man lägga in kod för att reda ut vilken typ av objekt o lista man vill lägga resultatet i och var datan sedan spottas ut List <gruppmedlemmar> nyNarvarolista = new List <gruppmedlemmar>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { gruppmedlemmar narvarolistaRatt = new gruppmedlemmar() { Förnamn = svarNarvaro.Rows[i]["fnamn"].ToString(), Efternamn = svarNarvaro.Rows[i]["enamn"].ToString(), Personnummer = svarNarvaro.Rows[i]["pnr"].ToString(), medlemId = svarNarvaro.Rows[i]["medlem_id"].ToString(), }; nyNarvarolista.Add(narvarolistaRatt); _tbSvar.Text = sokOk; } lbxGruppmedlemmar.DataSource = nyNarvarolista; lbxGruppmedlemmar.DisplayMember = "redanGruppMedlemmar"; } }
/// <summary> /// Populerar Grupplistan /// </summary> private void uppdLbGrupp() { DataTable sokGrupper; postgres s = startaPostgres(); sokGrupper = s.sqlFråga("datEnk", "gruppNy"); for (int i = 0; i < sokGrupper.Rows.Count; i++) { traningsgrupp = new traningsgrupp(); traningsgrupp.grupp_id = (int)sokGrupper.Rows[i]["grupp_id"]; traningsgrupp.namn = sokGrupper.Rows[i]["namn"].ToString(); trnGrpLst.Add(traningsgrupp); } _gruppBox.DataSource = null; _gruppBox.DataSource = trnGrpLst; _gruppBox.DisplayMember = "namn"; }
/// <summary> /// Metod som hämtar medlemmar som finns i aktuell grupp.. /// </summary> public void hamtaGruppmedlemmar() { List <string> gruppLista = new List <string>(); foreach (traningsgrupp selectedItem in lbxTraningsgrupper.SelectedItems) { gruppLista.Add(selectedItem.namn); } DataTable svarNarvaro; postgres sokning = new postgres(); sokning.grupp = gruppLista; svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(false, false, false), "hamtaGruppmedlemmar"); if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { List <gruppmedlemmar> nyNarvarolista = new List <gruppmedlemmar>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { gruppmedlemmar narvarolistaRatt = new gruppmedlemmar() { Förnamn = svarNarvaro.Rows[i]["fnamn"].ToString(), Efternamn = svarNarvaro.Rows[i]["enamn"].ToString(), Personnummer = svarNarvaro.Rows[i]["pnr"].ToString(), medlemId = svarNarvaro.Rows[i]["medlem_id"].ToString(), }; nyNarvarolista.Add(narvarolistaRatt); tbSvar.Text = sokOk; } lbxGruppmedlemmar.DataSource = nyNarvarolista; lbxGruppmedlemmar.DisplayMember = "redanGruppMedlemmar"; } }
/// <summary> /// tar bort grupp från träningsaktivitet /// </summary> private void taBortUrAktivitet() { lasAvListboxarna(); DataTable sokning; postgres s = new postgres(); // kollar vilken grupp och träningstillfälle som är berörd, skickar till postgres traningsgrupp aktivitetsGrupp = (traningsgrupp)_gruppaktiviter.SelectedItem; s.enkelGrupp = aktivitetsGrupp.del_grupp_id.ToString(); s.narvaro = nuvarandeTrantillf.narvarolistaID.ToString(); s.sqlNonQuery("taBortGruppUrAktivitet", "tranTillfalle"); s.narvaro = nuvarandeTrantillf.narvarolistaID.ToString(); sokning = s.sqlFråga("kopplade", "tranTillfalle"); if (sokning.Columns[0].ColumnName.Equals("error")) { _tbSvar.Text = sokning.Rows[0][1].ToString(); } else { trnGrpLst_kopplad.Clear(); for (int i = 0; i < sokning.Rows.Count; i++) { traningsgrupp tillfalle = new traningsgrupp() { narvarolista = (int)sokning.Rows[i]["narvarolista_id"], del_grupp_id = (int)sokning.Rows[i]["del_grupp_id"], namn = sokning.Rows[i]["namn"].ToString(), }; trnGrpLst_kopplad.Add(tillfalle); _tbSvar.Text = sokOk; } _gruppaktiviter.DataSource = null; _gruppaktiviter.DataSource = trnGrpLst_kopplad; _gruppaktiviter.DisplayMember = "namn"; } }
/// <summary> /// Sökning görs efter de grupper som /// en viss ledare ansvarar för. (Stöd för Multiselect) /// </summary> private void sokgrupper() { DataTable sokningResultat; vilkaParam(); // sökparameterkontroll string soktyp = "grupp"; List <string> ledarLista = new List <string>(); foreach (gruppledare selectedItem in _lbxLedare.SelectedItems) { ledarLista.Add(selectedItem.medlemId.ToString()); } postgres s = startaPostgres(); s.ledare = ledarLista; sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { List <traningsgrupp> grupplista = new List <traningsgrupp>(); for (int y = 0; y < sokningResultat.Rows.Count; y++) { traningsgrupp grupp = new traningsgrupp(); grupp.namn = sokningResultat.Rows[y]["namn"].ToString(); grupplista.Add(grupp); } _lbxGrupper.DataSource = grupplista; _lbxGrupper.DisplayMember = "namn"; _tbFeedback.Text = sokOk; } }
/// <summary> /// populerar Platslistan /// </summary> private void uppdLbPlats(ListBox platsbox, string toByggOrNotToBygg) { DataTable sokPlats; postgres s = startaPostgres(); sokPlats = s.sqlFråga("uppdLbPlats", "hanteraGrp"); if (toByggOrNotToBygg == "bygg") { for (int i = 0; i < sokPlats.Rows.Count; i++) { plats = new plats(); plats.plats_id = (int)sokPlats.Rows[i]["plats_id"]; plats.namn = sokPlats.Rows[i]["namn"].ToString(); platsLst.Add(plats); } } uppdateraPlatsbox(platsbox); }
/// <summary> /// Sökning görs efter de ledare som har /// inbokade pass inom den valda tiden. /// </summary> private void sokledare() { DataTable sokningResultat; vilkaParam(); // sökparameterkontroll string soktyp = "ledare"; postgres s = startaPostgres(); // sökning i db görs här, svaret skickas tillbaka in i tabellen sokningResultat som har datatypen DataTable sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { List <gruppledare> ledarlista = new List <gruppledare>(); gruppledare ledare; for (int i = 0; i < sokningResultat.Rows.Count; i++) { ledare = new gruppledare() { medlemId = sokningResultat.Rows[i]["ledare"].ToString(), förnamn = sokningResultat.Rows[i]["fnamn"].ToString(), efternamn = sokningResultat.Rows[i]["enamn"].ToString() }; ledarlista.Add(ledare); } _lbxLedare.DataSource = ledarlista; _lbxLedare.DisplayMember = "forOchEftNamn"; _tbFeedback.Text = sokOk; } }
/// <summary> /// Metod som kallar på sökmetoden från postgres-klassen. Söker efter träningsgrupper. /// </summary> private void sokGrp() { DataTable svarGrp; vilkaParam(); postgres sokning = new postgres(); sokning.startDatum = dtpFran.Value; sokning.slutDatum = dtpSlutDatum.Value; svarGrp = sokning.sqlFråga(sokning.vilkenSokning(sokDatInterv, sokGrupp, false), "grupp"); // hämtar sökning efter träningsgrupper if (svarGrp.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarGrp.Rows[0][1].ToString(); } else { List <traningsgrupp> nyTraningsgruppLista = new List <traningsgrupp>(); for (int i = 0; i < svarGrp.Rows.Count; i++) { traningsgrupp traningsgruppRatt = new traningsgrupp() { namn = svarGrp.Rows[i]["namn"].ToString(), tid = svarGrp.Rows[i]["starttid"].ToString(), datum = svarGrp.Rows[i]["datum"].ToString() }; nyTraningsgruppLista.Add(traningsgruppRatt); } lbxGrupper.DataSource = nyTraningsgruppLista; lbxGrupper.DisplayMember = "traningsgrupps"; tbSvar.Text = sokOk; } }
/// <summary> /// Metod som kallar på sökmetoden från postgres-klassen. Söker efter närvarande och lägger till checkboxar i nya kolumner. /// </summary> private void sokNarvaro() { List <string> gruppLista = new List <string>(); foreach (traningsgrupp selectedItem in lbxGrupper.SelectedItems) { gruppLista.Add(selectedItem.namn); } DataTable svarNarvaro; vilkaParam(); postgres sokning = new postgres(); sokning.grupp = gruppLista; sokning.startDatum = dtpFran.Value; sokning.slutDatum = dtpSlutDatum.Value; svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(sokDatInterv, sokGrupp, false), "narvaro"); // hämtar sökning efter närvaro. if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { List <narvarolista> nyNarvarolista = new List <narvarolista>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { narvarolistaRatt = new narvarolista() { Förnamn = svarNarvaro.Rows[i]["fnamn"].ToString(), Efternamn = svarNarvaro.Rows[i]["enamn"].ToString(), Personnummer = svarNarvaro.Rows[i]["pnr"].ToString(), narvaro = svarNarvaro.Rows[i]["narvarolista_id"].ToString(), gruppnamn = svarNarvaro.Rows[i]["namn"].ToString(), medlemId = svarNarvaro.Rows[i]["medlem_id"].ToString(), deltagit = (bool)svarNarvaro.Rows[i]["deltagit"] }; nyNarvarolista.Add(narvarolistaRatt); tbSvar.Text = sokOk; } dgvRegistreraNarvaro.DataSource = nyNarvarolista; for (int i = 3; i < 10; i++) { dgvRegistreraNarvaro.Columns[i].Visible = false; } svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(sokDatInterv, sokGrupp, false), "jamfor"); //Sökning som hämtar en lista att jämföra med. if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { jamforLista = new List <narvarolista>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { narvarolista jamforning = new narvarolista() { Förnamn = svarNarvaro.Rows[i]["fnamn"].ToString(), Efternamn = svarNarvaro.Rows[i]["enamn"].ToString(), Personnummer = svarNarvaro.Rows[i]["pnr"].ToString(), narvaro = svarNarvaro.Rows[i]["narvarolista_id"].ToString(), gruppnamn = svarNarvaro.Rows[i]["namn"].ToString(), deltagit = (bool)svarNarvaro.Rows[i]["deltagit"], datum = svarNarvaro.Rows[i]["datum"].ToString(), medlemId = svarNarvaro.Rows[i]["medlem_id"].ToString(), start = svarNarvaro.Rows[i]["starttid"].ToString(), s**t = svarNarvaro.Rows[i]["sluttid"].ToString() }; jamforLista.Add(jamforning); } } svarNarvaro = sokning.sqlFråga(sokning.vilkenSokning(sokDatInterv, sokGrupp, false), "unikagrupper"); //Sökning som hämtar unika grupper. if (svarNarvaro.Columns[0].ColumnName.Equals("error")) { tbSvar.Text = svarNarvaro.Rows[0][1].ToString(); } else { List <narvarolista> unikaGrupperLista = new List <narvarolista>(); for (int i = 0; i < svarNarvaro.Rows.Count; i++) { narvarolista unikaGrupper = new narvarolista() { narvaro = svarNarvaro.Rows[i]["narvarolista_id"].ToString(), gruppnamn = svarNarvaro.Rows[i]["namn"].ToString(), datum = svarNarvaro.Rows[i]["datum"].ToString(), start = svarNarvaro.Rows[i]["starttid"].ToString(), s**t = svarNarvaro.Rows[i]["sluttid"].ToString(), }; unikaGrupperLista.Add(unikaGrupper); } int kolumn = 10; List <narvarolista> _narvarolistan; //Här under läggs nya rutor till för varje tillfälle. foreach (narvarolista item in unikaGrupperLista) { kolNamn = item.gruppnamn + "\n" + "Datum: " + Convert.ToDateTime(item.datum).ToShortDateString() + "\nTid: " + Convert.ToDateTime(item.start).ToShortTimeString() + "-" + Convert.ToDateTime(item.s**t).ToShortTimeString(); DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn(); checkboxColumn.Name = kolNamn; checkboxColumn.DataPropertyName = "nyaKol"; dgvRegistreraNarvaro.Columns.Add(checkboxColumn); //lägger till checkboxar i de nya kolumnerna. _narvarolistan = new List <narvarolista>(); int index = 0; _narvarolistan.Clear(); //Här börjar jämförelsen mellan de olika listorna. foreach (narvarolista narvarande in nyNarvarolista) { foreach (narvarolista jamfor in jamforLista) { if (narvarande.gruppnamn == item.gruppnamn && narvarande.narvaro == item.narvaro) { if (narvarande.medlemId == jamfor.medlemId && item.narvaro == jamfor.narvaro && jamfor.deltagit == true && item.gruppnamn == jamfor.gruppnamn) { bool test2 = _narvarolistan.Contains(narvarande); if (!test2) //Om testet går igenom får aktuell kolumn en checkbox som är true. { dgvRegistreraNarvaro.Rows[index].Cells[kolumn].Value = true; _narvarolistan.Add(narvarande); break; } } //om inte får den ett värde som är false. else if (narvarande.medlemId == jamfor.medlemId && item.narvaro == jamfor.narvaro && jamfor.deltagit == false && item.gruppnamn == jamfor.gruppnamn) { dgvRegistreraNarvaro.Rows[index].Cells[kolumn].Value = false; } } else // om testet inte gick igenom får cellen även en ny sorts checkbox. { // checkboxarna simuleras som disablade för att illustrera att medlemmar ej tillhör en viss grupp. DataGridViewCell cell = dgvRegistreraNarvaro.Rows[index].Cells[kolumn]; DataGridViewCheckBoxCell chkCell = cell as DataGridViewCheckBoxCell; chkCell.Value = false; chkCell.FlatStyle = FlatStyle.Flat; chkCell.Style.ForeColor = Color.White; cell.ReadOnly = true; } } index++; } kolumn++; } } } }
/// <summary> /// Sökning görs efter de individer som tillhör /// en viss grupp. (Stöd för Multiselect) /// </summary> private void sokNarvaro() { DataTable sokningResultat; vilkaParam(); // sökparameterkontroll string soktyp = "narvaro"; List <string> gruppLista = new List <string>(); foreach (traningsgrupp selectedItem in lbxGrupper.SelectedItems) { gruppLista.Add(selectedItem.namn.ToString()); } postgres s = startaPostgres(); s.grupp = gruppLista; sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { List <narvarolista> narvarolistan = new List <narvarolista>(); for (int y = 0; y < sokningResultat.Rows.Count; y++) { narvarolista narvaro = new narvarolista(); narvaro.Förnamn = sokningResultat.Rows[y]["fnamn"].ToString(); narvaro.Efternamn = sokningResultat.Rows[y]["enamn"].ToString(); narvaro.Personnummer = sokningResultat.Rows[y]["pnr"].ToString(); narvaro.medlemId = sokningResultat.Rows[y]["medlem_id"].ToString(); narvarolistan.Add(narvaro); } _dgvRapport.DataSource = narvarolistan; _dgvRapport.ReadOnly = true; int hej = _dgvRapport.Columns.Count - 1; //for (int i = 2; i < 10; i++) //{ // dgvRapport.Columns[i].Visible = false; //} for (int i = hej; i > 2; i--) { _dgvRapport.Columns.RemoveAt(i); } //ny sökning för att ta fram en jämförelselista mot narvarolista soktyp = "jamfor"; sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { jamforLista = new List <narvarolista>(); for (int y = 0; y < sokningResultat.Rows.Count; y++) { narvarolista jamforning = new narvarolista(); jamforning.Förnamn = sokningResultat.Rows[y]["fnamn"].ToString(); jamforning.Efternamn = sokningResultat.Rows[y]["enamn"].ToString(); jamforning.Personnummer = sokningResultat.Rows[y]["pnr"].ToString(); jamforning.medlemId = sokningResultat.Rows[y]["medlem_id"].ToString(); jamforning.narvaro = sokningResultat.Rows[y]["narvarolista_id"].ToString(); jamforning.gruppnamn = sokningResultat.Rows[y]["namn"].ToString(); jamforning.datum = sokningResultat.Rows[y]["datum"].ToString(); jamforning.start = sokningResultat.Rows[y]["starttid"].ToString(); jamforning.s**t = sokningResultat.Rows[y]["sluttid"].ToString(); jamforning.deltagit = (bool)sokningResultat.Rows[y]["deltagit"]; jamforLista.Add(jamforning); } } //ny sökning för att ta fram unika grupper soktyp = "unikagrupper"; sokningResultat = s.sqlFråga(s.vilkenSokning(sokDatInterv, sokGrupp, sokLedare), soktyp); if (sokningResultat.Columns[0].ColumnName.Equals("error")) { _tbFeedback.Text = sokningResultat.Rows[0][1].ToString(); } else { List <narvarolista> unikaGrupperLista = new List <narvarolista>(); for (int y = 0; y < sokningResultat.Rows.Count; y++) { narvarolista unikaGrupper = new narvarolista(); unikaGrupper.narvaro = sokningResultat.Rows[y]["narvarolista_id"].ToString(); unikaGrupper.gruppnamn = sokningResultat.Rows[y]["namn"].ToString(); unikaGrupper.datum = sokningResultat.Rows[y]["datum"].ToString(); unikaGrupper.start = sokningResultat.Rows[y]["starttid"].ToString(); unikaGrupper.s**t = sokningResultat.Rows[y]["sluttid"].ToString(); unikaGrupperLista.Add(unikaGrupper); } string kolNamn = ""; kolumn = 3; summa = 0; summering.Clear(); int antalDeltagare = 0; // lägger till kolumner för träningstillfälle List <narvarolista> _narvarolistan; foreach (narvarolista item in unikaGrupperLista) { kolNamn = " " + item.gruppnamn + "\n" + " Datum: " + Convert.ToDateTime(item.datum).ToShortDateString() + "\n Tid: " + Convert.ToDateTime(item.start).ToShortTimeString() + "-" + Convert.ToDateTime(item.s**t).ToShortTimeString(); _dgvRapport.Columns.Add(kolNamn, kolNamn); _narvarolistan = new List <narvarolista>(); int index = 0; antalDeltagare = 0; _narvarolistan.Clear(); foreach (narvarolista narvarande in narvarolistan) { foreach (narvarolista jamfor in jamforLista) { if (narvarande.medlemId == jamfor.medlemId && item.narvaro == jamfor.narvaro && jamfor.deltagit == true && item.gruppnamn == jamfor.gruppnamn) { bool test2 = _narvarolistan.Contains(narvarande); if (!test2) { _dgvRapport.Rows[index].Cells[kolumn].Value = "x"; _narvarolistan.Add(narvarande); antalDeltagare++; break; } } } index++; } kolumn++; skickaTillSummering(kolNamn, antalDeltagare, false); } skickaTillSummering(kolNamn, antalDeltagare, true); } _tbFeedback.Text = sokOk; } }