コード例 #1
0
ファイル: Listainfok.cs プロジェクト: AndrasD/VezIR
//        public ArrayList Osszegek = new ArrayList();
        /// <summary>
        /// Osszegzendok es Osszegek osszeallitasa osszegfeladashoz
        /// </summary>
        /// <param name="listainfok">
        /// listainformaciok
        /// </param>
        public void Osszegzesek(ListaInfok listainfok)
        {
            ListaInfok = listainfok;
            OsszesTablainfo = listainfok.Tablainfok;
            int matrixpontdb = Mezoinfok.Count;
            Sorrendinfok = listainfok.Sorrendinfok;
            Feltetelinfok = listainfok.Feltetelinfok;
            SorrendmezokSzama = Sorrendinfok.Mezoinfok.Count;
            Sorrendszovegek = new string[SorrendmezokSzama];
            Oszlopfeltetelek = listainfok.Oszlopfeltetelinfok;
            OszlopokSzama = Oszlopfeltetelek.FeltetelinfoCollection.OszlopokSzama;
            OszlopTabinfok = Oszlopfeltetelek.FeltetelinfoCollection.OszlopTablainfok;
            Sorfeltetelek = listainfok.Sorfeltetelinfok;
            SorokSzama = Sorfeltetelek.FeltetelinfoCollection.SorokSzama;
            SorTabinfok = Sorfeltetelek.FeltetelinfoCollection.SorTablainfok;
            SorRekordKell = Sorfeltetelek.FeltetelinfoCollection.SorRekordKell;
            SorRowFilterKell = Sorfeltetelek.FeltetelinfoCollection.SorRowFilterKell;
            Tabinfoktolt();
            //int osszegzendok = 0;
            //int atlagolandok = 0;
            for (int i = 0; i <= SorrendmezokSzama; i++)
            {
                ArrayList sorarray = new ArrayList();
                for (int j = 0; j <= SorokSzama; j++)
                {
                    ArrayList oszlarray = new ArrayList();
                    for (int k = 0; k <= OszlopokSzama; k++)
                    {
                        ArrayList matrixarray = new ArrayList();
                        for (int l = 0; l < matrixpontdb; l++)
                            matrixarray.Add(new Decimal[] { 0, 0 });
                        oszlarray.Add(matrixarray);
                    }
                    sorarray.Add(oszlarray);
                }
                Osszegek.Add(sorarray);
            }

            //for (int i = 0; i < matrixpontdb; i++)
            //{
            //    Mezoinfo info = Mezoinfok[i];
            //    info.Osszegek = new ArrayList();
            //    for (int j = 0; j <= SorrendmezokSzama; j++)
            //    {
            //        ArrayList sorrendarray = new ArrayList();
            //        info.Osszegek.Add(sorrendarray);
            //        for (int k = 0; k <= SorokSzama; k++)
            //        {
            //            ArrayList sorarray = new ArrayList();
            //            sorrendarray.Add(sorarray);
            //            for (int l = 0; l <= OszlopokSzama; l++)
            //            {
            //                ArrayList oszloparray = new ArrayList();
            //                sorarray.Add(oszloparray);
            //                oszloparray.Add(new Decimal[] { 0, 0 });
            //            }
            //        }
            //    }
            //}
            for (int i = 0; i < 1 + (OszlopokSzama + 1) * matrixpontdb; i++)
            {
                if (i == 0)
                    ListaInfok.Hivo.report.Section3.ReportObjects[i].ObjectFormat.HorizontalAlignment = Alignment.LeftAlign;
                else
                    ListaInfok.Hivo.report.Section3.ReportObjects[i].ObjectFormat.HorizontalAlignment = Alignment.RightAlign;
            }
            for (int i = 1; i < ListaInfok.Hivo.report.Section2.ReportObjects.Count; i++)
                ListaInfok.Hivo.report.Section2.ReportObjects[i].ObjectFormat.HorizontalAlignment = Alignment.RightAlign;
        }
コード例 #2
0
ファイル: Listainfok.cs プロジェクト: AndrasD/VezIR
        /// <summary>
        /// feltetelek rendezese
        /// </summary>
        /// <param name="ListaInfo">
        /// listainformacio
        /// </param>
        public void FeltRendezes(ListaInfok ListaInfo)
        {
            ArrayList sorrekordkell = SorRekordKell;
            ArrayList sorfilterkell = SorRowFilterKell;
            ArrayList egyresz = new ArrayList();
            if (tipus == "feltetel" && urespoziciok.Count > 1)
                urespoziciok.RemoveAt(0);
            if (this.Count != 0)
            {
                do
                {
                    ujkezdopoz = kezdopoz;
                    egyresz = new ArrayList();
                    bool ujra = true;
                    do
                    {
                        espoz = -1;
                        nextespoz = -1;
                        vagypoz = -1;
                        nextvagypoz = -1;
                        secondnyito = -1;
                        nyitozpoz = -1;
                        zarozpoz = -1;
                        urespoz = -1;
                        nexturespoz = -1;
                        for (int i = 0; i < urespoziciok.Count; i++)
                        {
                            int egyurespoz = Convert.ToInt16(urespoziciok[i].ToString());
                            if (egyurespoz >= ujkezdopoz)
                            {
                                if (urespoz == -1)
                                    urespoz = egyurespoz;
                                else
                                {
                                    nexturespoz = egyurespoz;
                                    break;
                                }
                            }
                        }
                        for (int i = 0; i < nyitozarojelek.Count; i++)
                        {
                            int nyito = Convert.ToInt16(nyitozarojelek[i].ToString());
                            if (nyito >= ujkezdopoz)
                            {
                                if (nyitozpoz == -1)
                                {
                                    nyitozpoz = nyito;
                                    for (int j = 0; j < zarojelpoziciok.Count; j++)
                                    {
                                        object[] egyzaro = (object[])zarojelpoziciok[j];
                                        nyito = Convert.ToInt16(egyzaro[0].ToString());
                                        if (nyito == nyitozpoz)
                                        {
                                            zarozpoz = Convert.ToInt16(egyzaro[1].ToString());
                                            break;
                                        }
                                    }
                                }
                                else if (nyito > nyitozpoz)
                                {
                                    secondnyito = nyito;
                                    break;
                                }
                            }
                        }
                        for (int i = 0; i < vagypoziciok.Count; i++)
                        {
                            int egyvagypoz = Convert.ToInt16(vagypoziciok[i].ToString());
                            if (egyvagypoz >= ujkezdopoz)
                            {
                                if (vagypoz == -1)
                                    vagypoz = egyvagypoz;
                                else if (egyvagypoz > vagypoz)
                                {
                                    nextvagypoz = egyvagypoz;
                                    break;
                                }
                            }
                        }
                        for (int i = 0; i < espoziciok.Count; i++)
                        {
                            int egyespoz = Convert.ToInt16(espoziciok[i].ToString());
                            if (egyespoz >= ujkezdopoz)
                            {
                                if (espoz == -1 && egyespoz < vagypoz)
                                    espoz = egyespoz;
                                else if (egyespoz > vagypoz && nextespoz == -1)
                                {
                                    nextespoz = egyespoz;
                                    break;
                                }
                            }
                        }
                        if (vagypoziciok.Count == 0 || tipus == "sor")
                        {
                            vegpoz = urespoz;
                            ujra = false;
                        }
                        if (ujra)
                        {
                            if (nyitozarojelek.Count == 0 || ujkezdopoz > Convert.ToInt16(nyitozarojelek[nyitozarojelek.Count - 1].ToString()))
                            {
                                if (this[ujkezdopoz].KovetkezoFeltetelInfo != null && this[ujkezdopoz].KovetkezoFeltetelInfo.Tabinfo == this[ujkezdopoz].Tabinfo)
                                {
                                    ujkezdopoz++;
                                }
                                else
                                {
                                    vegpoz = ujkezdopoz;
                                    ujra = false;
                                }
                            }
                            else
                            {
                                if (nyitozpoz > espoz && vagypoz > espoz && nyitozpoz != -1 && vagypoz >= nyitozpoz && (secondnyito > zarozpoz || secondnyito == -1))
                                {
                                    ujkezdopoz = zarozpoz;
                                    if (nextespoz == ujkezdopoz)
                                        ujkezdopoz++;
                                    if (ujkezdopoz >= this.Count - 1)
                                    {
                                        ujra = false;
                                        vegpoz = this.Count - 1;
                                    }
                                }
                                else if (vagypoz != -1 && vagypoz <= nyitozpoz)
                                {
                                    if (this[vagypoz + 1].Tabinfo != this[vagypoz].Tabinfo)
                                    {
                                        ujra = false;
                                        vegpoz = vagypoz;
                                    }
                                    else
                                        ujkezdopoz++;
                                }
                                else if (nextvagypoz != -1 && nextvagypoz < zarozpoz)
                                {
                                    if (secondnyito == nextvagypoz)
                                        vegpoz = nextvagypoz - 1;
                                    else
                                        vegpoz = nextvagypoz;
                                    ujra = false;
                                }
                            }
                        }
                    } while (ujra);
                    object[] selinf = new object[Tablainfok.Count];
                    for (int i = 0; i < selinf.Length; i++)
                        selinf[i] = new ArrayList();
                    bool[] kellfilter = new bool[vegpoz - kezdopoz + 1];
                    bool[] kellrekord = new bool[kellfilter.Length];
                    for (int i = kezdopoz; i <= vegpoz; i++)
                    {
                        Feltetelinfo egyfelt = this[i];
                        tabinfo = egyfelt.Tabinfo;
                        int tabindex;
                        if (tabinfo != null)
                            tabindex = Tablainfok.IndexOf(tabinfo);
                        else
                            tabindex = Tablainfok.Count - 1;
                        ArrayList ar = (ArrayList)selinf[tabindex];
                        ar.Add(egyfelt);
                        if (tipus == "sor")
                        {
                            int filtindex = i - kezdopoz;
                            Feltetelinfo elozofelt = null;
                            Feltetelinfo kovfelt = null;
                            if (i != kezdopoz)
                                elozofelt = egyfelt.ElozoFeltetelInfo;
                            if (i != vegpoz)
                                kovfelt = egyfelt.KovetkezoFeltetelInfo;
                            if (elozofelt != null && elozofelt.Tabinfo == tabinfo && elozofelt.EsVagy == "VAGY")
                            {
                                kellfilter[filtindex] = kellfilter[filtindex - 1];
                                kellrekord[filtindex] = kellrekord[filtindex - 1];
                            }
                            else if (vagypoz == i)
                            {
                                if (nyitozpoz == i)
                                {
                                    kellfilter[filtindex] = true;
                                    kellrekord[filtindex] = false;
                                }
                                else
                                {
                                    if (kovfelt.Tabinfo == tabinfo)
                                    {
                                        kellfilter[filtindex] = true;
                                        kellrekord[filtindex] = false;
                                        ar.Add(kovfelt);
                                        i++;
                                    }
                                }
                            }
                            else // essel kezdodik
                            {
                                kellfilter[filtindex] = true;
                                kellrekord[filtindex] = true;
                            }
                        }
                        egyresz.Add(egyfelt);
                    }
                    if (tipus == "sor")
                    {
                        SorRowFilterKell.Add(kellfilter);
                        SorRekordKell.Add(kellrekord);
                    }
                    for (int i = 0; i < Tablainfok.Count; i++)
                    {
                        tabinfo = Tablainfok[i];
                        switch (tipus)
                        {
                            case "feltetel":
                                tabinfo.SelectElemek.Add(selinf[i]);
                                break;
                            case "oszlop":
                                tabinfo.OszlopSelectElemek.Add(selinf[i]);
                                break;
                            case "sor":
                                tabinfo.SorSelectElemek.Add(selinf[i]);
                                break;
                        }
                    }
                    Reszelemek.Add(egyresz);
                    kezdopoz = vegpoz + 1;
                } while (kezdopoz < this.Count && this[kezdopoz].Tabinfo != null);
                ArrayList tabar = null;
                int db = -1;
                if (tipus == "sor")
                {
                    SorokSzama = Reszelemek.Count;
                    db = SorokSzama;
                    tabar=SorTablainfok;
                }
                if (tipus == "oszlop")
                {
                    OszlopokSzama = Reszelemek.Count;
                    db = OszlopokSzama;
                    tabar = OszlopTablainfok;
                }
                if (tabar != null)
                {
                    for (int i = 0; i < db; i++)
                    {
                        ArrayList egyar = new ArrayList();
                        egyresz = (ArrayList)Reszelemek[i];
                        for (int j = 0; j < egyresz.Count; j++)
                        {
                            Feltetelinfo egyfelt = (Feltetelinfo)egyresz[j];
                            egyar.Add(egyfelt.Tabinfo);
                        }
                        tabar.Add((Tablainfo[])egyar.ToArray(typeof(Tablainfo)));

                    }
                }

            }
        }
コード例 #3
0
ファイル: Listainfok.cs プロジェクト: AndrasD/VezIR
        /// <summary>
        /// objectum letrehozasa
        /// </summary>
        /// <param name="listainfok">
        /// listainfok
        /// </param>
        /// <param name="fakuserinterface">
        /// fakuserinterface
        /// </param>
        /// <param name="view">
        /// a feltetelmeghatarozas view-ja
        /// </param>
        /// <param name="viewindex">
        /// sorindex a view-ban
        /// </param>
        public Feltetelinfo(ListaInfok listainfok, FakUserInterface fakuserinterface, DataView view, int viewindex)
        {
            ListaInfok = listainfok;
            Feltetelinfok = ListaInfok.FeltColl;
            DataRow dr = view[viewindex].Row;
            Tablainfo tabinfo = fakuserinterface.GetByAzontip(dr["AZONTIP"].ToString());
            Tabinfo = tabinfo;
            Cols mezocol = null;
            bool csakuressor = dr["MEZONEV"].ToString() == "";
            ZaroZarojel = dr["ZAROZAROJEL"].ToString();
            if (csakuressor)
                FeltetelSorLista = ZaroZarojel;
            else
            {
                mezocol = tabinfo.TablaColumns[dr["MEZONEV"].ToString()];
                ColumnInfo = mezocol;
                NyitoZarojel = dr["NYITOZAROJEL"].ToString();
                Relacio = dr["RELACIO"].ToString();
                Ertek = dr["MASODIKELEM"].ToString();
                EsVagy = dr["ESVAGY"].ToString();
                FeltetelSorLista = NyitoZarojel;
                bool stringe = mezocol.DataType.ToString() == "System.String";
                bool datume = mezocol.DataType.ToString() == "System.DateTime";
                if (mezocol.Comboe)
                {
                    FeltetelSorSelect = mezocol.ColumnName + Relacio;
                    if (stringe)
                        FeltetelSorSelect += "'";
                    FeltetelSorSelect += mezocol.Combo_Info.GetComboAktfileba(Ertek);
                    if (stringe)
                        FeltetelSorSelect += "'";
                }
                else if (stringe)
                {
                    if (Relacio == "=")
                    {
                        FeltetelSorSelect = mezocol.ColumnName + "like '%"+ Ertek + "%'";
                    }
                    else
                        FeltetelSorSelect = "substring(" + mezocol.ColumnName + ",1," + Ertek.Length + ")" + Relacio + "'" + Ertek + "'";
                }
                else if (datume)
                    FeltetelSorSelect = mezocol.ColumnName + Relacio + "'" + Ertek + "'";
                else
                    FeltetelSorSelect = mezocol.ColumnName + Relacio + Ertek;
                FeltetelSorLista += dr["ELSOELEM"].ToString();
 //               FeltetelSorSelect += Relacio;
                FeltetelSorLista += Relacio;
                //if (!mezocol.Comboe)
                //{
                //    if (mezocol.DataType.ToString() == "System.String" || mezocol.DataType.ToString() == "System.DateTime")
                //        FeltetelSorSelect += "'" + Ertek + "'";
                //    else
                //        FeltetelSorSelect += Ertek;
                //}
                //else
                //    FeltetelSorSelect += mezocol.Combo_Info.GetComboAktfileba(Ertek);
                if (viewindex < ListaInfok.Hivo.userselectcount && view.Table.TableName=="FELTETEL")
                    UserFeltetel = true;
                FeltetelSorLista += dr["MASODIKELEM"].ToString();
                FeltetelSorLista += ZaroZarojel;
            }
        }
コード例 #4
0
ファイル: Listainfok.cs プロジェクト: AndrasD/VezIR
 /// <summary>
 /// Feltetelek rendezese, Tabinfoktolt() hivas
 /// </summary>
 /// <param name="Listainfo">
 /// a listainformacio
 /// </param>
 public void Rendezes(ListaInfok Listainfo)
 {
     ListaInfok = Listainfo;
     FeltRendezes(Listainfo);
     Tabinfoktolt();
 }
コード例 #5
0
ファイル: Listainfok.cs プロジェクト: AndrasD/VezIR
 /// <summary>
 /// feltetelinfo kollekcio FeltRendezes(listainfo) metodusat hivja
 /// </summary>
 /// <param name="listainfo">
 /// listainfo
 /// </param>
 public override void Rendezes(ListaInfok listainfo)
 {
     base.FeltetelinfoCollection.FeltRendezes(listainfo);
 }
コード例 #6
0
ファイル: Listainfok.cs プロジェクト: AndrasD/VezIR
 /// <summary>
 /// a feltetelinfok kollekciojanak FeltRendezes(listainfo) metodusat hivja, utana OszlopokOsszeAllit()
 /// </summary>
 /// <param name="listainfo">
 /// listainfo
 /// </param>
 public override void Rendezes(ListaInfok listainfo)
 {
     base.FeltetelinfoCollection.FeltRendezes(listainfo);
     OszlopokOsszeAllit();
 }
コード例 #7
0
ファイル: Listainfok.cs プロジェクト: AndrasD/VezIR
 /// <summary>
 /// a feltetelinfok kollekciojanak Rendezes(listainformacio) metodusat hivja
 /// </summary>
 /// <param name="listainfo">
 /// a listainformacio
 /// </param>
 public virtual void Rendezes(ListaInfok listainfo)
 {
     FeltetelinfoCollection.Rendezes(listainfo);
 }
コード例 #8
0
ファイル: Altlistazoalap.cs プロジェクト: AndrasD/VezIR
        /// <summary>
        /// pagevaltas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public virtual void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
        {
            string month1 = dateTimePicker1.Value.Month.ToString();
            if (month1.Length == 1)
                month1 = "0" + month1;
            month1+=".";
            string month2 = dateTimePicker2.Value.Month.ToString();
            if (month2.Length == 1)
                month2 = "0" +month2;
            month2 += ".";
            string nap1 = dateTimePicker1.Value.Day.ToString();
            if (nap1.Length == 1)
                nap1 = "0" + nap1;
            string nap2 = dateTimePicker2.Value.Day.ToString();
            if (nap2.Length == 1)
                nap2 = "0" + nap2;
            string year = dateTimePicker1.Value.Year.ToString() + ".";
            string datum1 = year + month1 + nap1;
            string datum2 = year + month2 + nap2;
            string utsonap;
            int tol = dateTimePicker1.Value.Month;
            int ig = dateTimePicker2.Value.Month;
            csakegyhonap = month1 == month2;
            if (!FakUserInterface.EventTilt)
            {
                if (e.TabPageIndex == 0)
                    Beallitasok();
                if (e.TabPageIndex == 1)
                {
                    if (Datum1 != datum1 || Datum2 != datum2 || ValtozasLekerdez().Count != 0)
                    {
                        ValtozasBeallit();
                        Datumtomb.Clear();
                        //if (VanDatum)
                        //{
                            Datum1 = datum1;
                            Datum2 = datum2;
                            string elem1;
                            string elem2;
                            string month;
                            string kovmonth;
                            //                        DateTime tim;
                            for (int i = tol; i <= ig; i++)
                            {
                                month = i.ToString();
                                kovmonth = (i + 1).ToString();
                                if (month.Length == 1)
                                    month = "0" + month;
                                if (kovmonth.Length == 1)
                                    kovmonth = "0" + kovmonth;
                                kovmonth += ".";
                                if (i == tol)
                                {
                                    elem1 = year + month1 + nap1;
                                    if (csakegyhonap)
                                        elem2 = year + month2 + nap2;
                                    else
                                    {
                                        utsonap = Convert.ToDateTime(year + kovmonth + "01").AddDays(-1).Day.ToString();
                                        elem2 = year + month + "." + utsonap;
                                    }
                                }
                                else
                                {
                                    elem1 = year + month + ".01";
                                    if (i < ig)
                                    {
                                        utsonap = Convert.ToDateTime(year + kovmonth + "01").AddDays(-1).Day.ToString();
                                        elem2 = year + month + "." + utsonap;
                                    }
                                    else
                                        elem2 = year + month2 + nap2;
                                }
                                Datumtomb.Add(new string[] { elem1, elem2 });
                            }
                            string[] egyelem = (string[])Datumtomb[0];
                            elem1 = egyelem[0];
                            elem2 = egyelem[1];
                            Datumtoligfeltetel = "(DATUMTOL IS NULL AND (DATUMIG IS NULL OR DATUMIG >= '" + elem1
                                + "') OR DATUMTOL IS NOT NULL AND DATUMTOL <= '" + elem2
                                + "' AND (DATUMIG IS NULL OR DATUMIG >= '" + elem1 + "')) ";
                            Kezdetefeltetel = "(KEZDETE IS NULL OR KEZDETE <= '" + elem2
                                + "') AND (VEGE IS NULL  OR VEGE >= '" + elem1 + "') ";
 //                       }
                        Listainfok = new ListaInfok(this, osszesview);
                        if (!Listainfok.Parameterhiba)
                        {
                            Listazas();
                            ValtozasTorol();
                        }
                    }
                }
            }
        }