private void Frissites(Tablainfo tabinfo, DataRow dr) { string funkcio = dr["FUNKCIO"].ToString(); string szint = dr["SZINT"].ToString(); string verid = dr["VERZIO_ID"].ToString(); if (!funkcio.Contains("VERSION")) ForceAdattolt(tabinfo, true); if (tabinfo.Tablanev.Contains("VERSION")) { string conn = tabinfo.Adattabla.Connection; Versiontolt(szint, conn); if (funkcio == "ADD" || funkcio == "TOROL") { if (szint == "C") Cegadatok(Aktintervallum); else Rendszeradatok(Aktintervallum, szint, funkcio == "TOROL"); } } else { string tablanev = tabinfo.Tablanev; TablainfoTag tag = tabinfo.TablaTag; bool leiroe = tabinfo.Leiroe; if (funkcio.Contains("VERSION")) { int[] verzioinfok = (int[])tabinfo.Verzioinfok.VersionIdCollection.ToArray(typeof(int)); if (funkcio == "DELETEVERSION") { tabinfo.AktVerzioId = verzioinfok[verzioinfok.Length - 2]; tabinfo.VerzioTerkepArray.RemoveAt(tabinfo.VerzioTerkepArray.Count - 1); } else { tabinfo.AktVerzioId = verzioinfok[verzioinfok.Length - 1]; tabinfo.VerzioTerkepArray.Add(tabinfo.AktVerzioId); } tabinfo.Adattabla.LastSel = tabinfo.SelectString + " and VERZIO_ID = " + tabinfo.AktVerzioId.ToString(); ForceAdattolt(tabinfo, true); tabinfo.TablaTag.Azonositok.ToolTipText(); if (tabinfo.Osszefinfo != null) tabinfo.Osszefinfo.InitKell = true; return; } ForceAdattolt(tabinfo, true); if (tabinfo.Tablanev == "BASE" && funkcio == "TOROL") { TablainfoTag termgyokertag = (TablainfoTag)GyokerTablainfoTagok[1]; foreach (TablainfoTag egytartaltag in termgyokertag.ChildTablainfoTagok) { if (egytartaltag.Azonositok.Szint == szint) egytartaltag.Torolt = true; } return; } if (tabinfo.Azon == "LEIR") { foreach (Tablainfo egyinfo in Tablainfok) { egyinfo.LeiroTablainfo.Beallit(); egyinfo.LeiroTablainfo.Combobeallit(); } return; } if (tabinfo.Leiroe) { if (tabinfo.TablaTag.Tablainfo.Adatfajta != "K") { tabinfo.Beallit(); tabinfo.Combobeallit(); } else KodtablakFrissitese(tabinfo); Tablainfo adattablainfo = tabinfo.TablaTag.Tablainfo; tabinfo.TablaTag.Tablainfo.Beallit(); tabinfo.TablaTag.Tablainfo.Combobeallit(); return; } if (tabinfo.Tablanev != "TARTAL" && tabinfo.Tablanev != "BASE") { tabinfo.Beallit(); tabinfo.Combobeallit(); Combokupdate(tabinfo.TablaTag); if (tabinfo.Osszefinfo != null) tabinfo.Osszefinfo.InitKell = true; return; } if (tabinfo.Tablanev == "BASE") { string savfilt; savfilt = tabinfo.DataView.RowFilter; TablainfoTag newtag = null; TablainfoTag newtartaltag = null; tabinfo.DataView.RowFilter = "szint='" + szint + "'"; for (int i = 0; i < tabinfo.DataView.Count; i++) { DataRow dr1 = tabinfo.DataView[i].Row; int rowindex = tabinfo.Adattabla.Rows.IndexOf(dr1); if (funkcio == "ADD") { if (dr1["AZON"].ToString().Trim().Length < 4) newtag = new TablainfoTag(tabinfo.Adattabla, rowindex, null, null, (TablainfoTag)GyokerTablainfoTagok[1], this); else newtartaltag = new TablainfoTag(tabinfo.Adattabla, rowindex, null, null, newtag, this); } else { TablainfoTag termgyokertag = (TablainfoTag)GyokerTablainfoTagok[1]; foreach (TablainfoTag egytartaltag in termgyokertag.ChildTablainfoTagok) { if (egytartaltag.Azonositok.Szint == szint) { if (dr1["AZON"].ToString().Trim().Length < 4) egytartaltag.TablainfoTagUpdate(tabinfo.Adattabla, rowindex); } } } } tabinfo.DataView.RowFilter = savfilt; } if (tabinfo.Tablanev == "TARTAL") { Tablainfo egyinfo = null; TablainfoTag tag1 = null; DataRow dr1 = null; AdatTabla adattabla = tabinfo.Adattabla; int i = 0; string kodtipus = dr["KODTIPUS"].ToString(); string azontip = dr["AZON"].ToString() + kodtipus; string termszarm = azontip.Substring(0, 2).Trim(); if (azontip.Contains("SZRM")) egyinfo = GetMezonevek(kodtipus); else egyinfo = Tablainfok.GetByAzontip(azontip); for (i = 0; i < adattabla.Rows.Count; i++) { dr1 = adattabla.Rows[i]; if (azontip.Contains("SZRM") && dr1["KODTIPUS"].ToString() == kodtipus) break; if (!azontip.Contains("SZRM") && dr1["AZONTIP"].ToString() == azontip) break; } if (egyinfo == null) { tag1 = new TablainfoTag(adattabla, i, null, null, tag, this); tag1.LeiroTablainfo.Combobeallit(); tag1.Tablainfo.Combobeallit(); if ("CO".Contains(tag1.Azonositok.Adatfajta)) tag1.FordTag = new TablainfoTag(adattabla, i, tabinfo, tag1, tag, this, true); if (termszarm == "T") AzontipSzerintBevisz(azontip.Substring(2, 1) + egyinfo.Tablanev); else AzontipSzerintBevisz(azontip); } else { tag1 = egyinfo.TablaTag; if (funkcio == "MODIFY") { if (tag1.ParentTag.ChildTablainfoTagok.IndexOf(egyinfo.Azontip) == -1) { tag1.SorIndex = i; tag1.Torolt = false; } tag1.TablainfoTagUpdate(adattabla, i); } else tag1.Torolt = true; } } } }
/// <summary> /// Tabla sikeres update-je utan vegrehajtando funkciok /// </summary> /// <param name="tablainfo"></param> private void OkUpdateUtan(Tablainfo tablainfo) { string filter; string sort = ""; string szint = ""; if (tablainfo.Tablanev != "VALTOZASNAPLO" && tablainfo.Tablanev != "USERLOG") { string adattablanev = ""; if (tablainfo.Leiroe) adattablanev = tablainfo.TablaTag.Tablainfo.Tablanev; ValtozasRogzit(tablainfo.NaploTablainfo, tablainfo.NaploTabla, tablainfo.Azon, tablainfo.Tablanev, adattablanev); } if (tablainfo.Tablanev == "VALTOZASNAPLO" || tablainfo.Tablanev == "USERLOG") { tablainfo.Adattabla.Rows.Clear(); tablainfo.Modositott = false; tablainfo.Changed = false; return; } tablainfo.Rogzitett = true; Verzioinfok verinfo = null; TablainfoTag tag = tablainfo.TablaTag; bool leiroe = tablainfo.Leiroe; if (!leiroe) { if (tablainfo.Tablanev.Contains("VERSION")) { szint = tablainfo.Szint; string conn = tablainfo.Adattabla.Connection; verinfo = _verzioinfok[szint]; int aktid = verinfo.AktVerzioId; Versiontolt(szint, conn); if (aktid != verinfo.AktVerzioId) { if (szint == "C") Cegadatok(Aktintervallum); else Rendszeradatok(Aktintervallum, szint, verinfo.Delete); verinfo.Delete = false; } } } tablainfo.Modositott = false; tablainfo.Changed = false; filter = tablainfo.DataView.RowFilter; ForceAdattolt(tablainfo, true); if (tablainfo.Tablanev == "BASE") tablainfo.DataView.RowFilter = filter; if (tablainfo.Osszefinfo != null) tablainfo.Osszefinfo.InitKell = true; bool torolt = true; if (leiroe || tablainfo.Azon == "LEIR" || tablainfo.Tablanev == "BASE" || tablainfo.Tablanev == "TARTAL") torolt = false; else if (tablainfo.ParentTag.Tablainfo.ToroltTagok.Count == 0 || tablainfo.ParentTag.Tablainfo.ToroltTagok.IndexOf(tablainfo) == 0) torolt = false; if (!torolt) { if (tablainfo.Azon != "LEIR" && tablainfo.Tablanev != "BASE" && !leiroe) Combokupdate(tag); if (leiroe) { if (tablainfo.TablaTag.Tablainfo.Adatfajta != "K") { tablainfo.Beallit(); tablainfo.Combobeallit(); } else KodtablakFrissitese(tablainfo); Tablainfo adattablainfo = tablainfo.TablaTag.Tablainfo; if (adattablainfo.Tablanev == "TARTAL" || "RU".Contains(adattablainfo.Szint) || _aktualcegconn != "") { tablainfo.TablaTag.Tablainfo.Beallit(); tablainfo.TablaTag.Tablainfo.Combobeallit(); } } if (!leiroe) { if (tablainfo.Tablanev == "BASE") { TablainfoTag newtag = null; TablainfoTag newtartaltag = null; TartalomjegyzekbolTorol(tablainfo, false); filter = tablainfo.DataView.RowFilter; sort = tablainfo.DataView.Sort; tablainfo.DataView.RowFilter = ""; tablainfo.DataView.Sort = "SORSZAM DESC"; DataRow dr = tablainfo.DataView[0].Row; int rowindex = tablainfo.Adattabla.Rows.IndexOf(dr); szint = dr["SZINT"].ToString(); string azon = dr["AZON"].ToString().Trim(); if (azon.Length < 4) { int beszursorrend = Convert.ToInt32(dr["SORREND"].ToString()) + 1; DataRow newrow = tablainfo.Ujsor(); newrow["AZON"] = azon + "T"; newrow["PARENT"] = dr["SORSZAM"]; newrow["SZOVEG"] = "Táblázatok"; newrow["TABLANEV"] = "TARTAL"; newrow["SZINT"] = szint; newrow["SORREND"] = beszursorrend; UpdateTransaction(new Tablainfo[] { tablainfo }); newtag = new TablainfoTag(tablainfo.Adattabla, rowindex, null, null, (TablainfoTag)GyokerTablainfoTagok[1], this); rowindex = tablainfo.Adattabla.Rows.IndexOf(tablainfo.DataView[0].Row); newtartaltag = new TablainfoTag(tablainfo.Adattabla, rowindex, null, null, newtag, this); newtartaltag.Tablainfo.Combobeallit(); newtartaltag.LeiroTablainfo.Combobeallit(); } else { for (int j = 0; j < ((TablainfoTag)GyokerTablainfoTagok[1]).ChildTablainfoTagok.Count; j++) { newtag = ((TablainfoTag)GyokerTablainfoTagok[1]).ChildTablainfoTagok[j]; if (newtag.Azonositok.Azon == azon) { newtag.TablainfoTagUpdate(tablainfo.Adattabla, rowindex); break; } } } tablainfo.DataView.RowFilter = filter; tablainfo.DataView.Sort = sort; } if (tablainfo.Tablanev == "TARTAL") { TartalomjegyzekbolTorol(tablainfo, true); AdatTabla adattabla = tablainfo.Adattabla; for (int i = 0; i < adattabla.Rows.Count; i++) { TablainfoTag tag1 = null; string sorszint = adattabla.Rows[i]["SZINT"].ToString().Trim(); string azontip = adattabla.Rows[i]["AZONTIP"].ToString().Trim(); string adatfajta = adattabla.Rows[i]["ADATFAJTA"].ToString().Trim(); string kodtipus = adattabla.Rows[i]["KODTIPUS"].ToString().Trim(); string termszarm = adattabla.Rows[i]["TERMSZARM"].ToString().Trim(); string tablanev = adattabla.Rows[i]["TABLANEV"].ToString().Trim(); Tablainfo egyinfo = null; if (azontip.Contains("SZRM")) { egyinfo = GetBySzintPluszTablanev(kodtipus.Substring(0, 1), kodtipus.Substring(1)); if (egyinfo != null) { egyinfo = egyinfo.LeiroTablainfo; tag1 = tag.ChildTablainfoTagok[i]; if (tag1 == null) tag1 = new TablainfoTag(adattabla, i, null, null, tag, this); } } else egyinfo = Tablainfok.GetByAzontip(azontip); if (egyinfo == null) { tag1 = new TablainfoTag(adattabla, i, null, null, tag, this); if (azontip.Contains("SZRM")) egyinfo = tag1.LeiroTablainfo; else { egyinfo = tag1.Tablainfo; if (_aktualcegconn != "") { tag1.LeiroTablainfo.Combobeallit(); tag1.Tablainfo.Combobeallit(); } } if ("CO".Contains(tag1.Azonositok.Adatfajta)) tag1.FordTag = new TablainfoTag(adattabla, i, tablainfo, tag1, tag, this, true); } else { if (!azontip.Contains("SZRM")) { tag1 = egyinfo.TablaTag; if (tag1.ParentTag.ChildTablainfoTagok.IndexOf(egyinfo.Azontip) == -1) { tag1.SorIndex = i; tag1.Torolt = false; } } tag1.TablainfoTagUpdate(adattabla, i); if (egyinfo.Osszefinfo != null) egyinfo.Osszefinfo.InitKell = true; } if (!azontip.Contains("SZRM")) AzontipSzerintBevisz(azontip); } if (tablainfo.Modositott) UpdateTransaction(new Tablainfo[] { tablainfo }); } else if (tablainfo.Azon != "LEIR" && tablainfo.Tablanev != "BASE") { AzontipSzerintUpdate(tablainfo); if (!tag.Forditott && tablainfo.Tablanev != "BASE") { Combokupdate(tag); TablainfoTag elsotag = null; if (tablainfo.Azon == "SZRM") { Tablainfo egytabinfo = Tablainfok.GetByAzontip("SZRM" + tablainfo.Kodtipus); if (egytabinfo != null) elsotag = egytabinfo.TablaTag; } else if (tablainfo.Azontip1 != "" && Tablainfok.GetByAzontip(tablainfo.Azontip1) != null) elsotag = Tablainfok.GetByAzontip(tablainfo.Azontip1).TablaTag; if (elsotag != null) Combokupdate(elsotag); if (tablainfo.Azontip2 != "" && Tablainfok.GetByAzontip(tablainfo.Azontip2) != null) { elsotag = Tablainfok.GetByAzontip(tablainfo.Azontip2).TablaTag; Combokupdate(elsotag); } } if (tablainfo.NewVersionCreated || tablainfo.LastVersionDeleted || tablainfo.VerzioTerkepArray.Count == 0) { if (tablainfo.Osszefinfo != null) tablainfo.Osszefinfo.InitKell = true; TablainfoTag fordtag = tablainfo.TablaTag.FordTag; if (fordtag != null) fordtag.ToolTipText(); } } } if (tablainfo.Tablanev != "BASE") { tag.ToolTipText(); if (tag.FordTag != null) tag.FordTag.ToolTipText(); tablainfo.NewVersionCreated = false; tablainfo.LastVersionDeleted = false; } } }