[ smickos @ 01.06.2006. 14:53 ] @
Kako programski proslijediti parametre za filtriranje u Crystal Report? U toku pravljenja reporta sa wizardom definise se jedan kriterijum. Kako ga programski mijenjati u zavisnosti od izbora korisnika.
Npr. Report vuce podatke iz SQL pogleda,ali ga treba filtrirati po nekom kriterijum,a ne prikazivati sve podatke iz pogleda.
[ kleo @ 02.06.2006. 10:07 ] @
Ideja:
DataView dv = new DataView(table, rowFilter, "", DataViewRowState.CurrentRows);
gdje je rowFilter string u kome se definise izbor korisnika.
[ smickos @ 02.06.2006. 10:39 ] @
Koristim SQL view, a ne c# dataView. Postoji push metod za "poturanje" dataSet-a koji ima isto ime kao i onaj koji je Report.dataSource, ali njegov sadrzaj je filtriran. Rjesenje djeluje logicno,ali kod mene nesto ne radi.
[ negyxo @ 02.06.2006. 12:34 ] @
Trebao si pogledati starije teme, cini mi se da je vec bilo reci o tome.

Ali evo i kako bi to moglo da se uradi.
Ovo sa dataview-om nije lose ali moze biti sporo, skoro isto mozes da postignes i sa parametrima direktno u crystal-ovom izvestaju. Mada, ja licno, nikad ne radim tako, sem kada su u pitanju neki sporedni izvestaji, ne tako bitni. Licno forsiram da se sva filtriranja i spajanja rade na DB sereveru, jer se tako dobije na brzini, DB engine, bar ovi ozbiljniji, optimizuje SQL pa se tako i izvrsavanje svede na najbolju moguci nacin. Jednom sam probao u crystal-u da uradim spajanje tabela preko onog njegovog data experta, ali to je uzasno sporo, dobro da sad ne preterujem nije bas toliko sporo ali je bas primetno, pogotovo nad vecem broju podataka/tabela. Filtriranje isto tako. Znaci sve poslove koji su vezani za data source (join-iranje, filtriranje) uradi na strani DB. Posle prosledi te podatke crystal-u i neces imati problema, cak sta vise lakse je i praviti izvestaj kada ne moras ta filtriranja da pravis u njemu.
[ logic_rabbit @ 02.06.2006. 13:04 ] @
Najlakse ti je napraviti StoredProceduru koja ce imati par parametara za filtriranje pa kad korisnik odabere nesto na formi zavisno od toga prosledis parametar proceduri za filtriranje pa pozoves izvestaj sa tom procedurom.