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; } } } }
private void TablainfoTagIni(AdatTabla dt, int sorindex, Tablainfo tabinfo, TablainfoTag eredetitag, TablainfoTag parenttag, FakUserInterface fak, bool forditott) { termtablae = false; _fak = fak; _fak.ProgressRefresh(); _adattabla = dt; _sorindex = sorindex; _tabinfo = tabinfo; _parenttag = parenttag; _forditott = forditott; if (_node == null) _node = new TreeNode(); DataRow dr = null; if (sorindex != -1) { dr = dt.Rows[sorindex]; if (dt.Columns.IndexOf("SORREND") != -1) _sorrend = Convert.ToInt32(dr["SORREND"].ToString()); } if (tabinfo == null || forditott && eredetitag._fordtag == null) { _azonositok = new Azonositok(this, dr, _sorindex, dt.TableName, fak); string szint = _azonositok.Szint; if (!"RUC".Contains(szint)) fak.Szintstring = szint; _leiroazonositok = new Azonositok(this, dr, _sorindex, dt.TableName, fak, true); fak.ProgressRefresh(); switch (dt.TableName) { case "LEIRO": _azonositok.Szoveg = "Leiró tábla"; _leirotabinfo = new Tablainfo(dt, sorindex, this, _leiroazonositok, fak, true); _leirotabinfo.NaploTablainfo = _fak.NaploTablainfok[0]; _leirotabinfo.NaploTabla = _fak.NaploTablak[0]; _leirotabinfo.Init(true); _tabinfo = new Tablainfo(this, _azonositok, _fak); _tabinfo.NaploTablainfo = _fak.NaploTablainfok[0]; _tabinfo.LeiroTablainfo = _leirotabinfo; _tabinfo.Adattabla = _leirotabinfo.Adattabla; _tabinfo.Adattabla.Tablainfo = _tabinfo; _tabinfo.Beallit(); _tabinfo.LeiroVizsg(); if (_azonositok.Azon == "LEIR") _tabinfo.Adattabla.LastSel = _azonositok.Selectstring; break; case "BASE": if (sorindex == -1) // BASE sajatmaga { _azonositok.Szoveg = "BASE tábla"; AdatTabla leirotabla = new AdatTabla("LEIRO"); _leirotabinfo = new Tablainfo(leirotabla, -1, this, _leiroazonositok, fak, true); _leirotabinfo.NaploTablainfo = _fak.NaploTablainfok[0]; _leirotabinfo.NaploTabla = _fak.NaploTablak[0]; _leirotabinfo.Init(false); _tabinfo = new Tablainfo(dt, sorindex, this, _azonositok, _fak, false); _tabinfo.NaploTablainfo = _fak.NaploTablainfok[0]; _tabinfo.LeiroTablainfo = _leirotabinfo; _tabinfo.Init(false); _tabinfo.LeiroVizsg(); _fak.Combokupdate(this); } else if (_azonositok.Tablanev != "" && !forditott) { fak.ProgressRefresh(); AdatTabla tartaltabla = new AdatTabla("TARTAL"); AdatTabla leirotabla = new AdatTabla("LEIRO"); _leirotabinfo = new Tablainfo(leirotabla, -1, this, _leiroazonositok, fak, true); _leirotabinfo.NaploTablainfo = _fak.NaploTablainfok[0]; _leirotabinfo.NaploTabla = _fak.NaploTablak[0]; _leirotabinfo.Init(true); _tabinfo = new Tablainfo(tartaltabla, -1, this, _azonositok, fak); _tabinfo.LeiroTablainfo = _leirotabinfo; _tabinfo.Init(true); _tabinfo.LeiroVizsg(); if (!fak.BajVan) { for (int i = 0; i < tartaltabla.Rows.Count; i++) { fak.ProgressRefresh(); DataRow dr1 = tartaltabla.Rows[i]; owner = dr1["OWNER"].ToString(); bool kell = false; if (fak.Alkalmazas == "TERVEZO" || owner == fak.AlkalmazasId || owner == fak.Alkalmazas) kell = true; else { char[] vesszo = new char[1]; vesszo[0] = Convert.ToChar(","); string[] userek = dr1["USEREK"].ToString().Split(vesszo); if (owner == "" && userek[0] == "") kell = true; else { for (int j = 0; j < userek.Length; j++) { if (userek[j] != "" && userek[j] == fak.Alkalmazas) { kell = true; break; } } } } if (kell) { TablainfoTag tartaltag = new TablainfoTag(tartaltabla, i, null, null, this, fak); if ("CO".Contains(_azonositok.Adatfajta)) { fak.ProgressRefresh(); tartaltag.FordTag = new TablainfoTag(tartaltabla, i, _tabinfo, tartaltag, this, fak, true); } } } } } break; case "TARTAL": if (!forditott) { akttablanev = _azonositok.Tablanev; string akttermszarm = _azonositok.Termszarm.Trim(); aktszint = _azonositok.Szint; string kodtipus = _azonositok.Kodtipus; termtablae = akttermszarm == "T"; owner = _azonositok.Ownerid; user = _azonositok.User; AdatTabla adattabla = new AdatTabla(akttablanev); if (akttablanev == "LEIRO") _leirotabinfo = fak.LeiroTag.Tablainfo; else { if (adattabla.TableName == "KODTAB" || adattabla.TableName == "OSSZEF" || adattabla.TableName == "LISTA" || adattabla.TableName=="STATISZTIKA" || adattabla.TableName=="ADATSZOLG" || adattabla.TableName=="NAPTARAK") { _leirotabinfo = fak.SpecialisLeiroTabinfok.GetByAzontip(_leiroazonositok.Azontip); if(_leirotabinfo==null) { AdatTabla leiroadattabla = new AdatTabla("LEIRO"); _leirotabinfo = new Tablainfo(leiroadattabla, -1, this, _leiroazonositok, fak, true); _leirotabinfo.NaploTablainfo = _fak.NaploTablainfok[0]; _leirotabinfo.NaploTabla = _fak.NaploTablak[0]; _leirotabinfo.Init(false); fak.SpecialisLeiroTabinfok.Add(_leirotabinfo); } } else { AdatTabla leiroadattabla = new AdatTabla("LEIRO"); _leirotabinfo = new Tablainfo(leiroadattabla, -1, this, _leiroazonositok, fak, true); _leirotabinfo.NaploTablainfo = _fak.NaploTablainfok[0]; _leirotabinfo.NaploTabla = _fak.NaploTablak[0]; _leirotabinfo.Init(false); } } if (akttablanev == "LEIRO") { _tabinfo = fak.Tablainfok.GetBySzintPluszTablanev(kodtipus.Substring(0, 1), kodtipus.Substring(1)); if (_tabinfo != null) _tabinfo = _tabinfo.LeiroTablainfo; else return; } else { _tabinfo = new Tablainfo(adattabla, -1, this, _azonositok, fak); _tabinfo.LeiroTablainfo = _leirotabinfo; if (_azonositok.Verzioinfok.AktualConnection != "") { _tabinfo.Init(true); _tabinfo.LeiroVizsg(); if (!fak.BajVan) fak.Combokupdate(this); } } } else { eredetitag.FordTag = this; _tabinfo = eredetitag._tabinfo; _leirotabinfo = eredetitag._leirotabinfo; } break; } if (_parenttag != null) { Insert(); if (_parenttag.Azonositok.Szulotabla != "" && _parenttag.Azonositok.Szuloszint != "") { _azonositok.Szulotabla = _parenttag.Azonositok.Szulotabla; _azonositok.Szuloszint = _parenttag.Azonositok.Szuloszint; } if (termtablae) { tartalinfo = fak.Tablainfok.GetByAzontip("SZRMTARTAL"); TablainfoTag parent = tartalinfo.TablaTag; int sorrend; if (tartalinfo.DataView.Count == 0) sorrend = 100; else sorrend = Convert.ToInt32(tartalinfo.DataView[tartalinfo.DataView.Count - 1]["SORREND"].ToString()) + 1000; string megnevezes = _azonositok.Szoveg + " tábla mezöi"; string kodtipus = aktszint + akttablanev; string azontip = "SZRM" + aktszint + akttablanev; DataRow row = tartalinfo.Find("KODTIPUS", aktszint + akttablanev); if (row == null) { row = tartalinfo.Ujsor(); row["SORREND"] = sorrend; sorrend = sorrend + 1000; } if (row["KODTIPUS"].ToString() != kodtipus) { tartalinfo.Modositott = true; row["KODTIPUS"] = kodtipus; } if (row["SZOVEG"].ToString() != megnevezes) { tartalinfo.Modositott = true; row["SZOVEG"] = megnevezes; } if (row["AZONTIP"].ToString() != azontip) { tartalinfo.Modositott = true; row["AZONTIP"] = azontip; } if (row["OWNER"].ToString() != owner) { tartalinfo.Modositott = true; row["OWNER"] = owner; } if (row["USEREK"].ToString() != user) { tartalinfo.Modositott = true; row["USEREK"] = user; } row = tartalinfo.Find("KODTIPUS", aktszint + akttablanev); tartalinfosorindex = tartalinfo.Rows.IndexOf(row); TablainfoTag tag = tartalinfo.TablaTag.ChildTablainfoTagok[azontip]; if (tartalinfo.Modositott) { row["MODOSITOTT_M"] = 1; fak.UpdateTransaction(new Tablainfo[] { tartalinfo }); } if (tag == null) { fak.ProgressRefresh(); tag = new TablainfoTag(tartalinfo.Adattabla, tartalinfosorindex, null, null, parent, fak); fak.Combokupdate(tag); } } } _node.Text = _azonositok.Szoveg; _node.Tag = this; _azonositok.ToolTipText(); } }
/// <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; } } }