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(); } }