public void Kezeloszereprendberak(Tablainfo szerepinfo) { if (szerepinfo != null) { string savfilt = szerepinfo.DataView.RowFilter; string filt = ""; Tablainfo kezalkalm = GetOsszef("U", "KezeloAlkalm"); string[] idk = GetTartal(kezalkalm, "SORSZAM1"); if (idk.Length < szerepinfo.Adattabla.Rows.Count) { foreach (string egyid in idk) { if (filt != "") filt += "AND "; filt += "KEZELO_ID <> " + egyid; } szerepinfo.DataView.RowFilter = filt; for (int i = 0; i < szerepinfo.DataView.Count; i++) { szerepinfo.ViewSorindex = i; szerepinfo.Adatsortorol(i); i = -1; } szerepinfo.DataView.RowFilter = savfilt; } if (idk.Length > 1) { for (int i = 0; i < idk.Length; i++) { szerepinfo.DataView.RowFilter = "KEZELO_ID = " + idk[i]; bool van = szerepinfo.DataView.Count != 0; szerepinfo.DataView.RowFilter = ""; if (!van) { DataRow row = szerepinfo.Ujsor(); row["CEG_ID"] = AktualCegid; row["ALKALMAZAS_ID"] = AlkalmazasId; row["KEZELO_ID"] = idk[i]; row["SZEREPKOD"] = "10"; } } } szerepinfo.DataView.RowFilter = savfilt; if (szerepinfo.Modositott) Rogzit(szerepinfo); } }
/// <summary> /// Termeszetes child adattablak torlese parent tabinfo alapjan, majd a parent view aktualis soranak torlese /// </summary> /// <param name="info"> /// tablainfo /// </param> public void OsszesAdattorolByParent(Tablainfo info) { AdattorolByParent(info); info.Adatsortorol(info.ViewSorindex); }
/// <summary> /// Aktualis sor torlese, ha lehet torolni, vagy jelzi, hogy miert nem lehet /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public override void torolalap_Click(object sender, EventArgs e) { bool kelltorles = true; int nextind = Tabinfo.ViewSorindex; Tablainfo listatervinfo = FakUserInterface.GetBySzintPluszTablanev("R", "LISTAK"); if (Tabinfo.ViewSorindex != -1) { DataRow dr = Tabinfo.AktualViewRow; long aktidentity = Tabinfo.AktIdentity; if (Tabinfo.Tablanev == "USERADATSZOLG") { string aktkodtip = dr["SZOVEG"].ToString(); listatervinfo.DataView.RowFilter = "ADATSZOLGNEV='" + aktkodtip + "'"; bool vanhiv = listatervinfo.DataView.Count != 0; listatervinfo.DataView.RowFilter = ""; if(vanhiv) { kelltorles = false; MessageBox.Show("Listaképeknél már van rá hivatkozás!"); } if (kelltorles) { for (int i = 0; i < Tabinfo.DataView.Count; i++) { if (i != Tabinfo.ViewSorindex) { DataRow egyrow = Tabinfo.DataView[i].Row; if (egyrow["SZULOTABLA"].ToString() == aktkodtip ) { kelltorles = false; MessageBox.Show("Másik sorban már van rá hivatkozás!"); break; } } } } if (kelltorles) { adatszolgtartal = FakUserInterface.GetByAzontip("SZRATARTAL"); for (int i = 0; i < adatszolgtartal.DataView.Count; i++) { DataRow egyrow = adatszolgtartal.DataView[i].Row; if (egyrow["KODTIPUS"].ToString() == aktkodtip) { tartalsorindex = i; if (MessageBox.Show("Már van leirás az adatközlésröl!\nTörölhetö?", "", MessageBox.MessageBoxButtons.IgenNem) != MessageBox.DialogResult.Igen) kelltorles = false; else adatszolgtartal.Adatsortorol(tartalsorindex); break; } } } } else if (Tabinfo.Tablanev == "BASE") { string szint = dr["SZINT"].ToString(); TablainfoCollection tcoll = FakUserInterface.GetBySzint(szint); string szov = ""; if (tcoll != null) { foreach(Tablainfo egyinfo in tcoll) { if (egyinfo.Tablanev != "TARTAL") { szov += egyinfo.Tablanev + "\n"; } } } if (szov != "") { kelltorles = false; MessageBox.Show("Elöbb az alábbiakat kell törölni:\n" + szov); } } else if (Tabinfo.Tablanev == "TARTAL") { // meg kell nezni, hogy torolheto-e egyaltalan string azontip = dr["AZONTIP"].ToString(); string kodtipus = dr["KODTIPUS"].ToString(); string tablanev = dr["TABLANEV"].ToString(); string szint = Tabinfo.Szint; string termszarm = Tabinfo.TermSzarm.Trim(); OsszefinfoCollection coll = FakUserInterface.Osszefuggesek[azontip]; string szov = ""; if (coll != null && coll.Count!=0) { kelltorles = false; foreach (Osszefinfo egyinfo in coll) { switch (szint) { case "R": szint = "Rendszerszint/ "; break; case "U": szint = "Userszint/ "; break; default: szint = "Cégszint/ "; break; } szov += szint + egyinfo.Adattabla.Tablainfo.ParentTag.Node.Text +":\n"+egyinfo.Adattabla.Tablainfo.TablaTag.Node.Text + "\n"; } if (!kelltorles) MessageBox.Show("Elöbb az alábbiakat kell törölni:\n" + szov); } if (kelltorles) { Tablainfo egytabinfo = FakUserInterface.GetByAzontip(azontip); if (egytabinfo != null) { if (tablanev == "ADATSZOLG") { egytabinfo.DataView.RowFilter = "KODTIPUS = '" + kodtipus + "'"; bool vanmar = egytabinfo.DataView.Count != 0; egytabinfo.DataView.RowFilter = ""; if (vanmar) { kelltorles = false; MessageBox.Show("Már van leirás az adatközlésröl!"); } } else if (FakUserInterface.Adatszintek.Contains(szint.Trim())) { DataTable dt = new DataTable(); string selstring = ""; if (egytabinfo.TablaColumns.IndexOf("KODTIPUS") != -1) selstring = " where KODTIPUS='" + kodtipus + "'"; FakPlusz.Sqlinterface.Select(dt, FakUserInterface.AktualCegconn, tablanev, selstring, "", true); if (dt.Rows.Count != 0) { kelltorles = false; MessageBox.Show("Már van felvitt adat,nem törölhetö!"); } } else if (egytabinfo.LehetCombo) { for (int i = 0; i < egytabinfo.DataView.Count; i++) { egytabinfo.ViewSorindex = i; if (ComboHasznalatban(egytabinfo)) { kelltorles = false; break; } } } } } } else if(kelltorles && Tabinfo.LehetCombo) { Cols egycol = Tabinfo.TablaColumns[Tabinfo.ComboFileba]; kelltorles = !ComboHasznalatban(Tabinfo, null, egycol.Tartalom, egycol.Tartalom, aktidentity.ToString()); } if (kelltorles) { if (Tabinfo.AktVerzioId != Tabinfo.LastVersionId) { Tabinfo.AktVerzioId = Tabinfo.LastVersionId; Tabinfo.Adattabla.Select(); } base.torolalap_Click(sender, e); if (Tabinfo.Modositott) rogzit_Click(new object(), new EventArgs()); } } }