Parametreli İşlemler (Crystal Report)

By gokhan, 24 Mart 2018

Bu yazıda raporumuza parametre olarak belirlediğimiz bir değişkene formdan veri göndermeyi gerçekleştireceğiz. Uygulamayı Resim üzerinden anlatacağım. Farklı Türlerde (Date-Time, String, int, vb) oluşturabilirsiniz.
Uygulamada Dinamik Resimler oluşturma ba alınacaktır.

Form Tasarımınızı bitirdikten sonra Field Explorer/Parameter Fields/New seçilir.

Gelen pencereden parametre adı girilir. Bu uygulamada resimURL isminde string bir parametre tanımlayıp Tamam’a tıklayın. Farklı türde veriler için Tip kısmını değiştirebilirsiniz.

Bu işlemi doğru yaptığınızda Parameter Fields bölümünde eklediğiniz parametre görünür.

Daha sonra raporda dinamik resmi eklemek istediğiniz yerde sağ tıklayarak Insert/Picture seçip herhangi bir resim gösterin ve boyutunu ayarlayın.

Eklediğiniz Resme sağ tıklayıp Format Object seçeneği tıklanır. Açılan bölümden Grafik Location seçilir. Bu pencereden oluşturduğunuz parametre değeri çift tıklanıp eklenerek kaydedilir.Doğru eklendiyse parametre adı aşağıya gelecektir.

Bundan sonraki kısım kod sayfasında gerçekleştirilir. Datasetten alınan veriler oluşturulur. İsterseniz string resim yerine veritabanınızdan Dataset değerlerinden istediğiniz bir veriyi çekebilirsiniz.

[csharp]
OleDbCommand cmd;
OleDbConnection con;
OleDbDataAdapter da;
DataSet ds;

//Raporun crystalReportViewer görüntülenecek rapor
rapor4 a = new rapor4();
con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=gokhan.accdb; ");
da = new OleDbDataAdapter("select * from satis where pID=3" , con);
con.Open();
ds = new DataSet1();
da.Fill(ds, "satis");
a.SetDataSource(ds.Tables[1]);
//string resim=ds.Tables[1].Rows[0]["satisResim"].ToString();
string resim=@"resimler\deneme.png";
a.SetParameterValue("resimURL", resim);
crystalReportViewer1.ReportSource = a;
crystalReportViewer1.Refresh();
[/csharp]