/// <summary> /// FakUserInterfacenel leirva /// </summary> /// <returns></returns> public TablainfoCollection GetCegPluszCegalattiTermTablaInfok() { csakbase = true; Tablainfo egyinfo; ArrayList ar = new ArrayList(); for (int i = 0; i < termszarmok.Count; i++) { if (termszarmok[i].ToString().Trim() == "T" && tablanevek[i].ToString() != "TARTAL") { egyinfo = this[i]; if (("C" + egyinfo.Fak.Szintstring).Contains(szintek[i].ToString()) && egyinfo.TermParentTabinfo == null) ar = AddChildren(ar,egyinfo); } } TablainfoCollection tc = new TablainfoCollection(); for (int i = 0; i < ar.Count; i++) { if (tc.IndexOf((Tablainfo)ar[i]) == -1) tc.Add(ar[i]); } csakbase = false; return tc; }
/// <summary> /// objectum letrehozasa /// </summary> /// <param name="hivo"> /// hivo /// </param> /// <param name="osszesview"> /// viewk listaja /// </param> public ListaInfok(Altlistazoalap hivo, ArrayList osszesview) { Hivo = hivo; Tabinfo = Hivo.Tabinfo; Listae = hivo.listae; FakUserInterface = hivo.FakUserInterface; TablainfoRow = Tabinfo.DataView[0].Row; int ig; if (Listae) ig = 2; else ig = 4; for (int l = 0; l < ig; l++) { view = (DataView)osszesview[0]; // parameterview table = view.Table; sort = view.Sort; view.Sort = "AZONTIP,MEZONEV"; if (l == 0) { azontip = ""; for (int i = 0; i < table.Columns.Count; i++) { string colnev = table.Columns[i].ColumnName; if (colnev.Contains("SORSZAM")) view.Sort = colnev + ",AZONTIP,MEZONEV"; else view.Sort = "AZONTIP,MEZONEV"; azontip = ""; for (int j = 0; j < view.Count; j++) { dr = view[j].Row; egyazontip = dr["AZONTIP"].ToString(); if (egyazontip != azontip) tabinfo = FakUserInterface.GetByAzontip(egyazontip); MezoinfoOsszeallit(dr); if (vanfeltben || vansorfeltben || vanoszlfeltben || sorrendsorszam != "0" || kellosszegzes || osszegzendo || atlagolando || csakosszegsorba || oszlopsorszam != "0" || matrixsorszam != "0") { if (Tablainfok.IndexOf(tabinfo) == -1) { Tablainfok.Add(tabinfo); Clear(tabinfo); } Mezoinfo mezoinfo = new Mezoinfo(tabinfo, mezonev, sorrendsorszam, kellosszegzes, osszegzendo, atlagolando, csakosszegsorba, oszlopsorszam, matrixsorszam); switch (colnev) { case "OSZLOPSORSZAM": if (oszlopsorszam != "0") Oszlopinfok.Mezoinfok.Add(tabinfo, mezoinfo); break; case "SORRENDSORSZAM": if (sorrendsorszam != "0") { Sorrendinfok.Mezoinfok.Add(tabinfo, mezoinfo); string ssort = tabinfo.Sort; if (ssort != "") ssort += ","; ssort += mezoinfo.ColumnInfo.ColumnName; tabinfo.Sort = ssort; } break; case "MATRIXSORSZAM": if (matrixsorszam != "0") { Matrixpontinfok.Mezoinfok.Add(tabinfo, mezoinfo); } break; } } azontip = egyazontip; } } } else { azontip = ""; string filt = view.RowFilter; view.RowFilter = "VANFELTBEN = 'Igen'"; if (l != 1) view.RowFilter += " OR VANSORFELTBEN = 'Igen' OR VANOSZLFELTBEN = 'Igen '"; for (int i = 0; i < view.Count; i++) { dr = view[i].Row; egyazontip = dr["AZONTIP"].ToString(); if (egyazontip != azontip) tabinfo = FakUserInterface.GetByAzontip(egyazontip); azontip = egyazontip; MezoinfoOsszeallit(dr); Tablainfok.Add(tabinfo); Mezoinfo mezoinfo = new Mezoinfo(tabinfo, mezonev, sorrendsorszam, kellosszegzes, osszegzendo, atlagolando, csakosszegsorba, oszlopsorszam, matrixsorszam); switch (l) { case 1: if(dr["VANFELTBEN"].ToString()=="Igen") Feltetelinfok.Mezoinfok.Add(tabinfo, mezoinfo); break; case 2: if(dr["VANSORFELTBEN"].ToString()=="Igen") Sorfeltetelinfok.Mezoinfok.Add(tabinfo, mezoinfo); break; case 3: if(dr["VANOSZLFELTBEN"].ToString()=="Igen") Oszlopfeltetelinfok.Mezoinfok.Add(tabinfo, mezoinfo); break; } } view.RowFilter = filt; DataView feltview = (DataView)osszesview[l]; switch (l) { case 1: FeltColl = Feltetelinfok.FeltetelinfoCollection; break; case 2: FeltColl = Sorfeltetelinfok.FeltetelinfoCollection; break; case 3: FeltColl = Oszlopfeltetelinfok.FeltetelinfoCollection; break; } for (int i = 0; i < feltview.Count; i++) FeltColl.Add(new Feltetelinfo(this, FakUserInterface, feltview, i)); } view.Sort = sort; } if (Matrixpontinfok.Mezoinfok.Count == 0) { Oszlopinfok.OszlopokOsszeAllit(); Oszlopinfok.Osszegzesek(Sorrendinfok); } else { Oszlopfeltetelinfok.OszlopokOsszeAllit(); Matrixpontinfok.OszlopokOsszeAllit(); } Parameterhiba = false; Tablainfo gyoker = null; if (Tablainfok.Count == 0) { Parameterhiba = true; MessageBox.Show("Nincs még paraméterezés!"); return; } for (int ii = 0; ii < Tablainfok.Count; ii++) { if (gyoker == null) { gyoker = Tablainfok[ii].FirstTermParentTabinfo; if (gyoker == null) gyoker = Tablainfok[ii]; } else { Tablainfo ujgyoker = Tablainfok[ii].FirstTermParentTabinfo; if(ujgyoker==null) ujgyoker=Tablainfok[ii]; if (gyoker != ujgyoker) { string hibaszov = ""; for (int j = 0; j < Tablainfok.Count; j++) { if (gyoker != Tablainfok[j]) { if (gyoker.TermChildTabinfo.IndexOf(Tablainfok[j]) == -1) { if (hibaszov != "") hibaszov += ",\n"; hibaszov += Tablainfok[j].TablaTag.Azonositok.Szoveg; } } } hibaszov += "\n Nem elérhetö " + gyoker.TablaTag.Azonositok.Szoveg + "-ból\nParaméterezze újra!"; MessageBox.Show(hibaszov); Parameterhiba = true; return; } } } TablainfoCollection teljeschain = new TablainfoCollection(); TablainfoCollection chain; int maxchain = 1; foreach (Tablainfo egyinfo1 in gyoker.TermChildTabinfo) { int ii = egyinfo1.TermChildTabinfo.Count; if (ii > maxchain) maxchain = ii; } for(int i=0;i<gyoker.TermChildTabinfo.Count;i++) teljeschain.Add(gyoker.TermChildTabinfo[i]); int chaincount = teljeschain.Count; for (int i = 0; i < gyoker.TermChildTabinfo.Count; i++) { chain = gyoker.TermChildTabinfo[i].TermChildTabinfo; for (int j = 0; j < chain.Count; j++) teljeschain.Add(chain[j]); } int teljescount = teljeschain.Count; if (chaincount < teljeschain.Count) { chain = teljeschain; do { int ij = 0; do { for (int i = 0; i < chain.Count; i++) { TablainfoCollection egychain = chain[i].TermChildTabinfo; for (int j = 0; j < egychain.Count; j++) teljeschain.Add(egychain[j]); chaincount = teljeschain.Count; } ij++; if (chain.Count > ij) chain = chain[ij].TermChildTabinfo; else if(chaincount!=teljeschain.Count) { ij = 0; chain = teljeschain[chaincount - 1].TermChildTabinfo; } else break; } while (true); } while (chaincount != teljeschain.Count); } TablainfoCollection newtabinfok = new TablainfoCollection(); string elsotabinfoid = ""; ArrayList tabsorrend = new ArrayList(); int maxindex=-1; object[] egyobj; ArrayList indexar = new ArrayList(); for (int i = 0; i < Tablainfok.Count; i++) { egyobj = new object[2]; egyobj[1] = Tablainfok[i]; int j = -1; if (gyoker != Tablainfok[i]) { j = teljeschain.IndexOf(Tablainfok[i]); } egyobj[0] = j; indexar.Add(j); if (maxindex < j) maxindex = j; tabsorrend.Add(egyobj); } int egyindex = -1; do { for (int i = 0; i < tabsorrend.Count; i++) { egyobj = (object[])tabsorrend[i]; if (egyobj[0].ToString() == egyindex.ToString()) { newtabinfok.Add((Tablainfo)egyobj[1]); tabsorrend.RemoveAt(i); } } egyindex++; } while (tabsorrend.Count > 0); if (newtabinfok[0].TermParentTabinfo != null) elsotabinfoid = newtabinfok[0].TermParentTabinfo.IdentityColumnName; else elsotabinfoid = newtabinfok[0].IdentityColumnName; ElsoTabinfo = newtabinfok[0]; if (ElsoTabinfo.TermParentTabinfo != null) elsotabinfoid = ElsoTabinfo.TermParentTabinfo.IdentityColumnName; else elsotabinfoid = ElsoTabinfo.IdentityColumnName; Tablainfok = newtabinfok; for (int i = 0; i < Tablainfok.Count; i++) Tablainfok[i].ElsoTabinfo = ElsoTabinfo; Feltetelinfok.Rendezes(this); if (!Listae) { Oszlopfeltetelinfok.Rendezes(this); Sorfeltetelinfok.Rendezes(this); Matrixpontinfok.Osszegzesek(this); } TablainfoCollection parentchain = ElsoTabinfo.TermParentTabinfoChain; TablainfoCollection childchain = ElsoTabinfo.TermChildTabinfo; OsszesBeallitandoId = ElsoTabinfo.BeallitandoIdkArray("", ElsoTabinfo,Tablainfok, OsszesBeallitandoId, OsszesBeallitottIdErtek); foreach (Tablainfo info in Tablainfok) { if (info.TablaColumns.IndexOf("DATUMTOL") != -1) info.DatumString = Hivo.Datumtoligfeltetel; else if (info.TablaColumns.IndexOf("KEZDETE") != -1) info.DatumString = Hivo.Kezdetefeltetel; if (info != ElsoTabinfo) { info.BeallitandoIdkArray(elsotabinfoid, ElsoTabinfo,Tablainfok, OsszesBeallitandoId, OsszesBeallitottIdErtek); } } if (Feltetelinfok.Mezoinfok.Count != 0) Feltetelinfok.SortOsszeallit(); if (Oszlopfeltetelinfok.Mezoinfok.Count != 0) Oszlopfeltetelinfok.SortOsszeallit(); if (Sorfeltetelinfok.Mezoinfok.Count != 0) Sorfeltetelinfok.SortOsszeallit(); }
private void Listazas() { //if (VanDatum) //{ FakUserInterface.SetUserSzamitasokKellSzamitasDatum(true); FakUserInterface.SetUserSzamitasokDatumHatarok(Convert.ToDateTime(Datum1), Convert.ToDateTime(Datum2)); //} //else //{ // Datum1 = FakUserInterface.DatumToString(DateTime.Today); // Datum2 = Datum1; //} prop = report.PrintOptions; bool portop = true; if (listae && Listainfok.Oszlopinfok.Mezoinfok.Count > 7 || !listae && 1 + Listainfok.Matrixpontinfok.Mezoinfok.Count * (Listainfok.Matrixpontinfok.OszlopokSzama + 1) > 6) portop = false; if (portop) prop.PaperOrientation = PaperOrientation.Portrait; else prop.PaperOrientation = PaperOrientation.Landscape; foreach (DataTable dt in dataset.Tables) dt.Rows.Clear(); dr = null; for (int i = 1; i < ig; i++) { DataView view = (DataView)osszesview[i]; DataTable table = view.Table; if (view.Count != 0) { egysor = ""; bool first = true; int count = 1; for (int j = 0; j < view.Count; j++) { if (j != 0) egysor += newline[0].ToString(); DataRow row = view[j].Row; for (int k = 2; k < table.Columns.Count; k++) { if (i != 1) { if (first) { egysor += count.ToString(); count++; first = false; } } if (row[k].ToString() != "") { if (egysor != "") egysor += " "; egysor += row[k].ToString(); } if (i != -1 && table.Columns[k].ColumnName == "ESVAGY" && row[k].ToString() == "") first = true; } } switch (i) { case 1: parfeltetel = egysor; break; case 2: parsormeghatarozas = egysor; break; case 3: paroszlopmeghatarozas = egysor; break; } } } elsotabinfo = Listainfok.ElsoTabinfo; DataTable dt1 = dataset.DataTable2; dr = dt1.NewRow(); fotabla = elsotabinfo.DataView; OsszesBeallitandoId = Listainfok.OsszesBeallitandoId; OsszesBeallitottIdErtek = Listainfok.OsszesBeallitottIdErtek; tabinfok = Listainfok.Tablainfok; int tablainfoindex = Listainfok.Tablainfok.IndexOf(elsotabinfo); string tablanev = elsotabinfo.TablaTag.Azonositok.Szoveg; elsotabinfo.Adattabla.Rows.Clear(); string selstring = elsotabinfo.GetTablainfoSelect(OsszesBeallitottIdErtek); string orderstring = elsotabinfo.Sort; ValtozasBeallit(); elsotabinfo.DataView.Sort = orderstring; FakUserInterface.Select(fotabla.Table, FakUserInterface.AktualCegconn, fotabla.Table.TableName, selstring, "", false); elsotabinfo.Tartalmaktolt(); if (!listae) { SorokSzama = Listainfok.Matrixpontinfok.SorokSzama; OszlopokSzama = Listainfok.Matrixpontinfok.OszlopokSzama; } SaveFilterek = new string[tabinfok.Count]; SaveViewIndexek = new int[tabinfok.Count]; sorokszama = new int[tabinfok.Count]; int focount = fotabla.Table.Rows.Count; bool folytassuk = focount != 0; int rekszam = focount; int feldrekszam = 0; int fofilcount = elsotabinfo.RowFilterek.Count; int olvasdb = 0; int tabinfocount = tabinfok.Count - 1; if (tabinfocount == 0) tabinfocount++; if (fofilcount > 0) { string savfilt = ""; elsotabinfo.RowFilterIndex = -1; int kulsociklusdb = 0; do { //Datumbeallitasok(); //if (elsotabinfo.SpecDatumNevekArray.Count != 0) // elsotabinfo.DatumString= for (int i = 0; i < fofilcount; i++) { elsotabinfo.SetRowFilter(); if (savfilt != elsotabinfo.DataView.RowFilter) { olvasdb += elsotabinfo.DataView.Count * tabinfocount; feldrekszam += elsotabinfo.DataView.Count; savfilt = elsotabinfo.DataView.RowFilter; } } elsotabinfo.RowFilterIndex = -1; kulsociklusdb++; } while (kulsociklusdb < elsotabinfo.SpecDatumNevekArray.Count); olvasdb += 1; } else { feldrekszam = rekszam; olvasdb = focount * tabinfocount; } if (!folytassuk) MessageBox.Show(tablanev + " beolvasott rekordszáma: 0\nA feltételek megfogalmazásában esetleg ellentmondás van!"); else if (this.Name == "Altlistazoalap") { string figy = ""; if (rekszam < feldrekszam) figy = "\nA feltételek megfogalmazásában redundacia van!"; olvasdb = olvasdb * Datumtomb.Count; feldrekszam = feldrekszam * Datumtomb.Count; folytassuk = MessageBox.Show(tablanev + " beolvasott rekordszáma:" + rekszam.ToString() + "\nFeldolgozott rekordok:" + feldrekszam.ToString() + figy + "\nVárható lemezműveletek száma:" + olvasdb.ToString() + "\nFolytassuk?", "", FakPlusz.MessageBox.MessageBoxButtons.IgenNem) == MessageBox.DialogResult.Igen; } if (folytassuk) { dataset.DataTable3.Rows.Clear(); sorrendtabinfo = null; if (Listainfok.Sorrendinfok.Mezoinfok.Count != 0) sorrendtabinfo = (Tablainfo[])Listainfok.Sorrendinfok.Mezoinfok.Tablainfok.ToArray(typeof(Tablainfo)); if (Listainfok.Oszlopinfok.Mezoinfok.Count != 0) oszloptabinfok = (Tablainfo[])Listainfok.Oszlopinfok.Mezoinfok.Tablainfok.ToArray(typeof(Tablainfo)); if (Listainfok.Matrixpontinfok.Mezoinfok.Count != 0) matrixponttabinfok = (Tablainfo[])Listainfok.Matrixpontinfok.Mezoinfok.Tablainfok.ToArray(typeof(Tablainfo)); egysor = ""; uresek = new bool[tabinfok.Count]; ures = false; for (int j = 0; j < tabinfok.Count; j++) uresek[j] = false; firsttime = true; dt = dataset.DataTable2; elsotabinfo.DataView.RowFilter = ""; elsotabinfo.SetRowFilter(); string savfilt = elsotabinfo.DataView.RowFilter; SaveFilterek[tabinfok.IndexOf(elsotabinfo)] = savfilt; int datumtombcount = 0; do { if (Datumtomb.Count != 0) { string[] datumok = (string[])Datumtomb[datumtombcount]; string elem1 = datumok[0]; string elem2 = datumok[1]; DateTime[] datetimeok = new DateTime[] { Convert.ToDateTime(datumok[0]), Convert.ToDateTime(datumok[1]) }; DateTime ujdatum; if (mindatum.CompareTo(elem1) > 0) ujdatum = Convert.ToDateTime(mindatum); else ujdatum = Convert.ToDateTime(elem1); FakUserInterface.Cegadatok(ujdatum); 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 + "') "; foreach (Tablainfo egyinfo in tabinfok) { string datumstring = ""; if (egyinfo.TablaColumns.IndexOf("DATUMTOL") != -1) egyinfo.DatumString = Datumtoligfeltetel; else if (egyinfo.TablaColumns.IndexOf("KEZDETE") != -1) egyinfo.DatumString = Kezdetefeltetel; else if (egyinfo.SpecDatumNevekArray.Count != 0) { for (int i = 0; i < egyinfo.SpecDatumNevek.Length; i++) { if (egyinfo.SpecDatumNevSzerepel[i] || egyinfo == elsotabinfo) { if (datumstring == "") datumstring += "("; else datumstring += " OR "; string nev = egyinfo.SpecDatumNevek[i]; datumstring += nev + " <= '" + elem2 + "' AND " + nev + " >= '" + elem1 + "'"; } } if (datumstring != "") datumstring += ")"; egyinfo.DatumString = datumstring; } if (egyinfo == elsotabinfo) { selstring = elsotabinfo.GetTablainfoSelect(OsszesBeallitottIdErtek); FakUserInterface.Select(fotabla.Table, FakUserInterface.AktualCegconn, fotabla.Table.TableName, selstring, "", false); elsotabinfo.Tartalmaktolt(); } //if (egyinfo != ElsoTabinfo) //{ // egyinfo.BeallitandoIdkArray(elsotabinfoid, ElsoTabinfo, Tablainfok, OsszesBeallitandoId, OsszesBeallitottIdErtek); //} } } do { elsotabinfo.RowFilterIndex = -1; elsotabinfo.DataView.RowFilter = ""; elsotabinfo.SetRowFilter(); savfilt = elsotabinfo.DataView.RowFilter; SaveFilterek[tabinfok.IndexOf(elsotabinfo)] = savfilt; for (int i = 0; i < fotabla.Count; i++) { elsotabinfo.ViewSorindex = i; SaveViewIndexek[0] = elsotabinfo.ViewSorindex; dr = fotabla[i].Row; elsotabinfo.Tartalmaktolt(i); elsotabinfo.IdErtekBeallitasok(dr, OsszesBeallitottIdErtek); ures = TobbiTabinfoSelect(); if (!ures) { if (firsttime) ReportHeaderOsszeallit(); do { sorrendvaltozasszint = SorrendValtozasok(); kellcsakosszegsorba = false; if (sorrendvaltozasszint != -1) { int tol = Listainfok.Sorrendinfok.Mezoinfok.Count - 1; if (listae) count = Listainfok.Oszlopinfok.Mezoinfok.Count - 1; else count = (Listainfok.Matrixpontinfok.OszlopokSzama + 1) * Listainfok.Matrixpontinfok.Mezoinfok.Count; if (listae && (Listainfok.Oszlopinfok.Osszegzendok.Count != 0 || Listainfok.Oszlopinfok.Atlagolandok.Count!=0) || !listae) { do { dr = dt.NewRow(); s = Listainfok.Sorrendinfok.Mezoinfok[tol].ElozoSorrendTartalom; if (s != "") { if (listae || tol != Listainfok.Sorrendinfok.Mezoinfok.Count - 1) s += " összesen:"; dr[0] = s; dt.Rows.Add(dr); if (listae) Listainfok.Oszlopinfok.OsszegsorOsszeallit(tol, dt); else Listainfok.Matrixpontinfok.OsszegsorOsszeallit(tol, dt); if (!listae) { dr = dt.NewRow(); for (int j = 0; j <= count; j++) dr[j] = "__________"; dt.Rows.Add(dr); } } tol = tol - 1; } while (sorrendvaltozasszint <= tol); } if (listae) { dr = dt.NewRow(); for (int j = 0; j <= count; j++) dr[j] = "__________"; dt.Rows.Add(dr); } } foreach (Mezoinfo info in Listainfok.Sorrendinfok.Mezoinfok) { string tart = info.ColumnInfo.Tablainfo.GetSorrendtartalom(info); if (tart != "") { kellcsakosszegsorba = true; if (listae) { dr = dt.NewRow(); dr[0] = tart; dt.Rows.Add(dr); } } } if (listae) { foreach (Tablainfo egytabinfo in oszloptabinfok) { if (egytabinfo.ViewSorindex != -1) egytabinfo.Tartalmaktolt(egytabinfo.ViewSorindex); } if (egysor != "") egysor += newline[0]; dr = dt.NewRow(); for (int j = 0; j < dt.Columns.Count; j++) { if (j < Listainfok.Oszlopinfok.Mezoinfok.Count) { Mezoinfo info = Listainfok.Oszlopinfok.Mezoinfok[j]; string tart = ""; if (!info.CsakOsszegsorba || kellcsakosszegsorba) tart = info.ColumnInfo.Tablainfo.GetOszlopTartalom(info); if (!info.CsakOsszegsorba) { split = tart.Split(vesszo); if (split.Length == 2) { if (split[1].Length > 2) { split[1] = split[1].Substring(0, 2); tart = split[0] + "," + split[1]; } } dr[j] = tart; } else dr[j] = ""; if (info.Osszegzendo || info.Atlagolando) Listainfok.Oszlopinfok.Osszegfeladasok(info); } else dr[j] = ""; } dt.Rows.Add(dr); ures = TobbiTabinfoKovsor(); } else { for (int j = 0; j < tabinfok.Count; j++) { tabinfok[j].ViewSorindex = SaveViewIndexek[j]; tabinfok[j].IdErtekBeallitasok(tabinfok[j].AktualViewRow, OsszesBeallitottIdErtek); } for (int j = 0; j < SorokSzama; j++) { // elsotabinfo.DataView.RowFilter = ""; elsotabinfo.ViewSorindex = i; ures = ElsoTabinfoSorVizsg(j); if (!ures) { ures = TobbiSorTabinfoSelect(j); bool elso = true; if (!ures) { do { if (!elso) { Tablainfo tabinfo; for (int l = 0; l < Listainfok.Matrixpontinfok.Mezoinfok.Tablainfok.Count; l++) { tabinfo = Listainfok.Matrixpontinfok.Mezoinfok.Tablainfok[l]; int id = tabinfok.IndexOf(tabinfo); tabinfo.ViewSorindex = SaveViewIndexek[id] + 1; tabinfo.Tartalmaktolt(tabinfo.ViewSorindex); tabinfo.IdErtekBeallitasok(tabinfo.AktualViewRow, OsszesBeallitottIdErtek); SaveViewIndexek[id] = tabinfo.ViewSorindex; } ures = true; for (int l = 0; l < Listainfok.Matrixpontinfok.Mezoinfok.Tablainfok.Count; l++) { tabinfo = Listainfok.Matrixpontinfok.Mezoinfok.Tablainfok[l]; if (tabinfo.ViewSorindex != -1) ures = false; } } else { for (int l = 0; l < Listainfok.Matrixpontinfok.Mezoinfok.Tablainfok.Count; l++) { Tablainfo tabinfo = Listainfok.Matrixpontinfok.Mezoinfok.Tablainfok[l]; int id = tabinfok.IndexOf(tabinfo); SaveViewIndexek[id] = tabinfo.ViewSorindex; } elso = false; } if (!ures) { for (int k = 0; k < OszlopokSzama; k++) { // elsotabinfo.DataView.RowFilter = ""; if (i > elsotabinfo.DataView.Count - 1) elsotabinfo.ViewSorindex = elsotabinfo.DataView.Count - 1; else elsotabinfo.ViewSorindex = i; ures = ElsoTabinfoOszlopVizsg(k); if (!ures) { ures = TobbiOszlopTabinfoSelect(k); if (!ures) { Listainfok.Matrixpontinfok.Osszegfeladasok(j, k); Listainfok.Matrixpontinfok.Osszegfeladasok(j, OszlopokSzama); Listainfok.Matrixpontinfok.Osszegfeladasok(SorokSzama, k); Listainfok.Matrixpontinfok.Osszegfeladasok(SorokSzama, OszlopokSzama); } } } for (int k = 0; k < tabinfok.Count; k++) tabinfok[k].ViewSorindex = SaveViewIndexek[k]; } } while (!ures); } } for (int k = 0; k < tabinfok.Count; k++) { tabinfok[k].ViewSorindex = SaveViewIndexek[k]; tabinfok[k].DataView.RowFilter = SaveFilterek[k]; } } for (int k = 0; k < tabinfok.Count; k++) { tabinfok[k].ViewSorindex = SaveViewIndexek[k]; tabinfok[k].DataView.RowFilter = SaveFilterek[k]; } ures = true; } } while (!ures); } } } while (elsotabinfo.SetRowFilter()); datumtombcount++ ; } while (datumtombcount < Datumtomb.Count); if (listae) count = Listainfok.Oszlopinfok.Mezoinfok.Count - 1; else count = (Listainfok.Matrixpontinfok.OszlopokSzama + 1) * Listainfok.Matrixpontinfok.Mezoinfok.Count; if (sorrendtabinfo != null) { int tol = Listainfok.Sorrendinfok.Mezoinfok.Count - 1; if (listae && (Listainfok.Oszlopinfok.Osszegzendok.Count != 0 || Listainfok.Oszlopinfok.Atlagolandok.Count!=0 )|| !listae) { do { dr = dt.NewRow(); string s; if (listae) s = Listainfok.Sorrendinfok.Mezoinfok[tol].ElozoSorrendTartalom; else s = Listainfok.Matrixpontinfok.Sorrendszovegek[tol]; if (listae || tol != Listainfok.Sorrendinfok.Mezoinfok.Count - 1) s += " összesen:"; dr[0] = s; dt.Rows.Add(dr); if (listae) Listainfok.Oszlopinfok.OsszegsorOsszeallit(tol, dt); else Listainfok.Matrixpontinfok.OsszegsorOsszeallit(tol, dt); tol = tol - 1; if (!listae) { dr = dt.NewRow(); for (int j = 0; j <= count; j++) dr[j] = "__________"; dt.Rows.Add(dr); } } while (tol >= 0); } if (Listainfok.Oszlopinfok.Osszegzendok.Count != 0 || Listainfok.Oszlopinfok.Atlagolandok.Count!=0) { dr = dt.NewRow(); for (int j = 0; j <= count; j++) dr[j] = "__________"; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = "Végösszesen:"; dt.Rows.Add(dr); Listainfok.Oszlopinfok.OsszegsorOsszeallit(Listainfok.Sorrendinfok.Mezoinfok.Count, dt); } } if (!listae) { if (sorrendtabinfo != null) { dr = dt.NewRow(); dr[0] = "Végösszesen:"; dt.Rows.Add(dr); } Listainfok.Matrixpontinfok.OsszegsorOsszeallit(Listainfok.Matrixpontinfok.SorrendmezokSzama, dt); } // datumtombcount++ ; //} while (datumtombcount < Datumtomb.Count); report.SetDataSource(dataset); string szov = ""; report.SetParameterValue("cegnev", FakUserInterface.AktualCegnev); report.SetParameterValue("megnevezes", Tabinfo.Szoveg); report.SetParameterValue("feltetel", parfeltetel); if (parfeltetel != "") szov = "Feltétel:"; else szov = ""; report.SetParameterValue("feltszov", szov); if (paroszlopmeghatarozas != "") szov = "Oszlopmeghatározások:"; else szov = ""; report.SetParameterValue("oszlopmeghszov", szov); report.SetParameterValue("oszlopmeghatarozas", paroszlopmeghatarozas); if (parsormeghatarozas != "") szov = "Sormeghatározások:"; else szov = ""; report.SetParameterValue("sormeghszov", szov); report.SetParameterValue("sormeghatarozas", parsormeghatarozas); if (Datum2 == "") report.SetParameterValue("datum", Datum1); else report.SetParameterValue("datum", Datum1 + " - " + Datum2); if (listae) { for (int i = 0; i < Listainfok.Oszlopinfok.Mezoinfok.Count; i++) { Mezoinfo info = Listainfok.Oszlopinfok.Mezoinfok[i]; if (!info.ColumnInfo.Comboe && info.ColumnInfo.Numeric(info.ColumnInfo.DataType)) { report.Section2.ReportObjects[i].ObjectFormat.HorizontalAlignment = Alignment.RightAlign; report.Section3.ReportObjects[i].ObjectFormat.HorizontalAlignment = Alignment.RightAlign; } else { report.Section2.ReportObjects[i].ObjectFormat.HorizontalAlignment = Alignment.LeftAlign; report.Section3.ReportObjects[i].ObjectFormat.HorizontalAlignment = Alignment.LeftAlign; } } } crystalReportViewer1.ReportSource = report; crystalReportViewer1.Enabled = false; crystalReportViewer1.Enabled = true; } else tabControl1.SelectedIndex = 0; }