PDA

View Full Version : سوال: مشکل با کریستال ریپورت پارامتری



myazdani
یک شنبه 15 بهمن 1391, 20:12 عصر
سلام

می خواستم به کریستال ریپورت پارامتر ارسال کنم این خطا رو میده

کسی میدونه علت چیه
Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

ممنون میشم اساتید راهنمایی کنن

99489

mohsen musavi
یک شنبه 15 بهمن 1391, 22:53 عصر
میشه یکم بیشتر توضیح بدی؟
چون تو DataSource رو پاس دادی ، چرا Conection رو تنظیم کردی؟ مگه دیتای مورد نظرت در DataSet نیست؟
برای مقدار دادن به پارامتر راه راحت تر اینه:


RepDoc.SetParameterValue("ParametrName", ParametrValue)

بدون پارامتر مشکلی نداره ؟

myazdani
دوشنبه 16 بهمن 1391, 16:23 عصر
از پاسختون ممنون

راستش کد رو از جایی کپی کردم. خودمم دقیقا نمی دونم چه جوری کار میکنه. یه stored procedure هست که عمل select رو انجام میده و یه پارامتر داره. میخوام به پارامتر مقدار بدم.

ریپورت رو نشون میده ولی برا ارسال پارامتر به مشکل بر می خوره.

اگه ممکنه یه کد ارسال پارامتر به کریستال ریپورت برام بذارین. می خوام ریپورتی که نمایش داده میشه بر اساس مقدار انتخاب شده در drop down list باشه.

ممنونم

mohsen musavi
سه شنبه 17 بهمن 1391, 10:34 صبح
برای کار با crystal report چند راه وجود داره.
1- اتصال کریستال ریپورت با بانک و فیلتر کردن داده ها(نیاز به ارسال تنظیمات ConnectionStringو... داری)
2- ارسال منبع داده ها که در مثال زیر توضیح داده شد

برای نمایش کریستال ریپورت یا از reportViewer استفاده کن یا در مرورگر کار نمایش بده که در مثال زیر در مرورگر کاربر نمایش داده شد.

Dim _dataSet As New DataSet

'کد های مربوط به پر کردن دیتا ست
'فیلتر بانک اطلاعاتی و دیتا را اینجا لود کن
Dim RepDoc As New ReportDocument

RepDoc.Load(Request.PhysicalApplicationPath & "Reports/report1.rpt")
RepDoc.SetDataSource(_dataSet)

RepDoc.SetParameterValue("ParametrName1", "ParametrValue1")
RepDoc.SetParameterValue("ParametrName2", "ParametrValue2")
RepDoc.ExportToHttpResponse(DlType, Response, False, "Report")
RepDoc.Close()
RepDoc.Dispose()
MyDs.Dispose()