PDA

View Full Version : فیلتر کردن CrystalReport در Vb.net



zehs_sha
چهارشنبه 29 مرداد 1382, 21:59 عصر
بچه من می خواهم قبل از اجرا کردن CrystalReport رکوردهای بانک اطلاعتی را با دستور های SQL فیلتر کنم چگون این امر امکان پذیر است.

چهارشنبه 29 مرداد 1382, 22:34 عصر
می تونین از یک StoreProcedure استفاده کنین و اون رو به CrystalReport نسبت بدین.

zehs_sha
پنج شنبه 30 مرداد 1382, 10:39 صبح
شیما خانم می تونین بیشتر توضیح بدهید.متشکرم

چهارشنبه 05 شهریور 1382, 16:11 عصر
من چند روز پیش یک جواب نسبتا طولانی اینجا نوشتم .... کجا رفت؟!؟!؟! :?: :!:

چهارشنبه 05 شهریور 1382, 16:55 عصر
شما می تونین یک Store Procedure در SQL Server ایجاد کنید، هر عملیاتی که لازم دارین، در اون انجام بدین، اگر می خوایین اطلاعات خاصی رو نمایش بدین، برای Store Procedure پارامتر ورودی تعریف کنین... و در انتها از اطلاعاتی که باید به Report فرستاد Select بگیرین.
وقتی که فایل CrystalReport رو ایجاد می کنین و DataBase های خود رو انتخاب می کنین، به جای Table، اسم StoreProcedure رو انتخاب کنین...و از اون برای ایجاد کردن گزارش، مانند یک جدول استفاده کنین.
هنگام فراخوانی فایل گزارش برای مقدار دهی پارامترها، باید یک متغییر از نوع ParameterDiscreteValueتعریف کنین و هر پارامتر را بعد از مقدار دادن به متغییری از نوع ParameterValues نسبت دهید و به گزارش بفرستین، مثلا برای مقدار دهی دو پارامتر @ID و @Name :


Dim pvCollection As New CrystalDecisions.Shared.ParameterValues()
Dim pdvParameter As New CrystalDecisions.Shared.ParameterDiscreteValue()

pdvParameter.Value = txtID.Text
pvCollection.Add(pdvParameter)
rpt.DataDefinition.ParameterFields("@ID").ApplyCurrentValues(pvCollection)

pdvParameter.Value = txtName.Text
pvCollection.Add(pdvParameter)
rpt.DataDefinition.ParameterFields("@Name").ApplyCurrentValues(pvCollection)

(Rpt نام متغییری است که از نوع گزارش تعریف می شود ) بعد از مقدار دادن متغییرها، می تونین گزارش رو اجرا کنین.
این روش رو امتحان کنین، اگر جایی مشکل داشتین، بیشتر توضیح می دم.