コード例 #1
0
ファイル: Fak.cs プロジェクト: AndrasD/Vezir.egy
        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;
                    }
                }
            }
        }
コード例 #2
0
ファイル: Fak.cs プロジェクト: AndrasD/Vezir.egy
 /// <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;
         }
     }
 }