[ Taranto @ 13.09.2006. 00:44 ] @
Pozdrav svima!

Nisam nesto preterano radio u CR-u al mi se ukazala hitna potreba za tim. Primetio sam da moze da se napravi izvestaj na onovu uskladistene procedure, al me zanima kako mogu da prosledim parametar toj proceduri pre poziva izvestaja. Jos bolje receno treba mi savet ili pomoc kako da napravim dinamicki izvestaj. Npr. baza cuva lica po razlicitim teritorijalnim jedinicama, meni treba da za izabranu ter. jedinicu dobijem lica...

Pozdrav!
[ roberto555 @ 13.09.2006. 07:08 ] @
"....al me zanima kako mogu da prosledim parametar toj proceduri pre poziva izvestaja. ...."

mozes ovako:

sqlcommand cmd=new sqlcommand("imeprocedure",konekcija);
cmd.commandType = commandType.StoredProcedure;
sqlparameter imeparametra= new sqmparameter("imeParametraKoji_je_u_proceduri",sqldbtype.nvarchar,20);
imeparametra.direction=parameterdirection.input;//ili output,ovisi koji "smjer" ima
imeparametra.value="neka vrijednost koju ces proslijediti";
cmd.parameters.add(imeparametra);
//ovo sve mnoze ili i unutra cmd.parametaers.add(new sqlparameter.....)
konekcija.open();
cmd.excutenonquery;
konekcija.close();

-ovo mozes staviti u try...catch,zadnje!


-nakon toga napunis dataset, koji ti moze biti izvor za report!
(ovo sam iz glave pa valda ima greski, pazi kod pisanja,)
[ negyxo @ 13.09.2006. 07:33 ] @
Pitanje je na sta je covek mislio. Ovaj kod iznad je standardno pozivanje SP sa parametrima preko DbCommand-e. Mozda je Taranto mislio na parametre u izvestaju, koje zatim crystal prosledjuje SP i sve sam odradi, pa tako nema potrebe uopste pozivati ReportDocument.SetDataSource. Njih je isto lako proslediti sa ReportDocument.SetParameterValue funkcijom a mozes cak i da ih ne prosledjujes. CR ima neki osnovi interfejs za unosenje parametara ali to je... bas osnovni
Obicno se radi tako sto ti namestis neki custom UI za interfejs koji ti vrati nekoliko vrednosti koje ti prosledis dalje, dal' DbCommand-i ili CR, svejedno.
U sustini koji ces nacin odabrati na tebi je, mada moj neki licni izbor je da prosledjujem podatke preko DataTable a ne da CR sam ucitava podatke, jer ostavljam mogucnost da naknadno jos nesto uradim sa podacima a zeleo bi da se to manifestuje i u izvestaja (mada ovaj slucaj jos nisam imao, ali... sta cu kad izgleda volim da pisem kod i za ono za sta treba i za sta ne treba )
Sto se tice dinamickih izvestaja tu ti nema mnogo pomoci bar ne sa crystal-om. U nekoj meri se moze odraditi dinamicki ali bas full dynamic... za sada ne moze, bar ne sa ovom verzijom sto dolazi uz VS 2005.
[ Taranto @ 13.09.2006. 20:48 ] @
Hvala drstvo,

ipak sam mislio na ovaj drugi odgovor, tj da CR-u prosledim parametre, rad sa procedurama u okviru projekta nije problem.
Cini mi se da mi se najvise svidja ovaj deo sa prosledjivanje DataTabele CR-u. Pa ako neko ima parce koda sa primerom dobro bi mi dosao. Pretpostavljam da
nece biti problem u CR-u dobiti i neka izracunata polja vezana za podatke u prosledjenjoj tabeli...

Pozdrav!
[ negyxo @ 14.09.2006. 06:14 ] @
Pa vec si delimicno dobio odgovor.
Kada ucitas svoje podatke u DataTable onda pozovi
Code:

ReportDocument.SetDataSource(MyDataTable);


i to je to. Pogledaj starije teme, cini mi se da je bile vise nego jednom reci o ovome.

Citat:

Pretpostavljam da nece biti problem u CR-u dobiti i neka izracunata polja vezana za podatke u prosledjenjoj tabeli...


Ma sa podacima kada ih strpas u tabelu mozes da radis sta hoces. Nemoras da se brines.
[ logic_rabbit @ 14.09.2006. 11:36 ] @
Report report=new Report();
FieldFilters ReportParams=new FieldFilters();
//
FieldFilter ReportParam1=new FieldFilter("@pr_oznaka",pero);
ReportParams.Add(ReportParam1);
FieldFilter ReportParam2=new FieldFilter("@pos_oznaka",djuro);
ReportParams.Add(ReportParam2);
FieldFilter ReportParam3=new FieldFilter("@po_godina",radenko);
ReportParams.Add(ReportParam3);
FieldFilter ReportParam4=new FieldFilter("@kart_datum",y+"-"+m+"-"+d);
ReportParams.Add(ReportParam4);
FieldFilter ReportParam5=new FieldFilter("@values",values.ToString());
ReportParams.Add(ReportParam5);

//
report.ExecuteProcedureReport("Reports\\LagerLista.rpt","dbo.rpt_procLLista",ReportParams);
report.Show();





Naravno ovdje se koristi nas metod ExecuteProcedureReport koji obradje paramatre na osnovu ove cake.

paramFields.Add (paramField);
}
}
crystalReportViewer1.ParameterFieldInfo = paramFields;



ETo
[ Taranto @ 14.09.2006. 17:54 ] @
Ok, to je to...

HVALA!
[ Taranto @ 14.09.2006. 23:12 ] @
I jos jedno pitanje! Verovatno je jako glupo ali ja odustajem....

Kako da okrenem stranu da bude Lanscape, tj da se na Prewiev vidi tako a ne da prilikom stampanja biram kako da se ostampa....

[ negyxo @ 15.09.2006. 00:07 ] @
1. Ako radis iz VS designera onda desni klik na prazan deo izvestaja pa Design->Printer Setup-> i u Orientation izaberes sta hoces.

2. Ako radis iz CR designera onda ides File->Printer Setup-> pa isto Orientation i izaberes.
[ Taranto @ 15.09.2006. 17:16 ] @
Pronasao...
[ Taranto @ 17.09.2006. 07:10 ] @
Znam da nije ime teme nalik ovom pitanju al kad sam vec tu.... mozda neko i zna.

Problem: kod DataGrid kontrole jedno polje je CheckBox. Kada unosim novi slog ono je sive boje. Naravno kad izaberem da li je polje cekirano ili nje kvacica ili pocrni ili nestane... logicno. Medjutim, kada predjem u novi slog, bez obzira sta je izabrano (da ili ne) , kvacica u prethodnom unetom slogu se opet prikaze u sivom formatu.
Prakticno ne znas sta je u polju uneto... (u bazi korektno zapamti slog, bas ono sto je i bilo izabrano)
Zanimljivo je da mi se to javlja samo u nekim formama (u principu sve su radjene na slican nacin), i ne mogu da provalim u cemu je fora.

Usput, sad sam probao koristiti DataGridView kontrolu umesto DataGrid, i primetio sam da unos stilova i kolona nije isto. To mi je stvorilo problem, jer kad podesim svoje kolone i podmetnem drugi DataSource, on prakticno nakalemi na moje kolone i sve viskove (citaj polja koja mi nisu zanimljiva) iz podmetnute tabele. DataGrid to nije radio. Pa ako neko zna kako se to resava u DataGridView-u...

Pozdrav!