PDA

View Full Version : فرستادن پارامتر از vb.net به کریستال با کد نویسی؟



vista.12345
شنبه 14 اردیبهشت 1387, 13:55 عصر
با سلام . من یک گزارش کریستال ریپورت ساخته ام و در یک مسیری روی هارد ذخیره کرده ام . حال می خواهم با کد نویسی بطوریکه برنامه از کاربر یک پارامتر بگیرد و سپس به دیتا بیس وصل شده . به مسیر گزارش مورد نظر برود و گزارش را اجرا کند .

]لطفا هرکسی این چند سطر کد را بلد است برایم بنویسد . با تشکر فراوان............

davood-ahmadi
شنبه 14 اردیبهشت 1387, 14:34 عصر
سلام. به جمع برنامه نویسان خوش آمدید.
اول جستجو بعد ایجاد تایپیک.
بگرد حتماً پیدا می کنی.
می تونی اون را درکنار Exe خودت بگذاری و آدرسش را بنویسی. مثل: application.startuppath

vista.12345
شنبه 14 اردیبهشت 1387, 14:53 عصر
جستجو کردم . چیزی با این مضمون پیدا نکردم اگه شما یافتید لا اقل لینکشو برایم بگذارید

MORTEZA66
یک شنبه 15 اردیبهشت 1387, 08:00 صبح
شما بهتره كه گزارش رو به برنامه درون محيط دات نت ADD كنيد اينجوري خيلي بهتره

MORTEZA66
یک شنبه 15 اردیبهشت 1387, 08:04 صبح
اينم نوشتم براي يكي از كاربرهاي قبلي! فكر كنم مفيد باشه يه آموزش كليه و نسبتا راحت و آسون

vista.12345
یک شنبه 15 اردیبهشت 1387, 11:27 صبح
با تشکر از شما . بزرگوار من کد مربوطه را نوشتم و اتفاقا همون گزارشی را هم که بیرون از برنامه وجود دارد را هم می آورد فقط پارامتر هایی را که می دهم اعمال نمی کند . با همون پارامتر های پیش فرض گزارش را می آورد . از
reportDocument و
CrystalReportViewer
استفاده کرده ام . ولی refresh می شود.

Sub Zero
یک شنبه 15 اردیبهشت 1387, 14:31 عصر
اگه منظور شما از پارامتر ، پارامترهای جستجو و نمایش رکوردهای خاصیه ، بهتره این کار رو در سطح دیتابیس انجام بدید یعنی اول کوئری تون رو با پارامترهای مشخص شده درست کنید و بعد دیتاست یا دیتاتیبل حاصل از اجرای کوئری رو به کریستال بفرستید .
اگر هم منظورتون پارامترهایی غیر از اینهاست مثلا تنظیم عنوان گزارش بر اساس رشته وارد شده توسط کاربر ، از کدهای زیر استفاده کنید .

Dim report As ReportClass
report = New CrystalReportFileName
DirectCast(DirectCast(report, CrystalReportFileName) _
.S_Header.ReportObjects.Item("Title"), TextObject).Text = My.Settings.ReportTitle
DirectCast(DirectCast(report, CrystalReportFileName) _
.S_Header.ReportObjects.Item("RDate"), TextObject).Text = GetFarsiDate()
report.SetDataSource(DTable)
CrystalReportViewer.ReportSource = report

منظور از CrystalReportFileName نام فایل ریپورتی است که ایجاد کرده اید .
منظور از DTable دیتاتیبل حاصل از اجرای کوئری است .
منظور از S_Header نام Section ایست که Object مورد نظرت در اون قرار داره

toopak
چهارشنبه 06 شهریور 1387, 22:31 عصر
من این کد رو میزنم


Dim report As CrystalDecisions.CrystalReports.Engine.ReportClass
report = New rpscard
DirectCast(DirectCast(report, rpscard).Section2.ReportObjects.Item("tarikh1"), CrystalDecisions.CrystalReports.Engine.TextObject) .Text = "23142"
'DirectCast(DirectCast(report, rpscard).Section2.ReportObjects.Item("RDate"), CrystalDecisions.CrystalReports.Engine.TextObject) .Text = "aa"
report.SetDataSource(ds)
CrystalReportViewer1.ReportSource = report

ولی رو خط سوم این error رو میده


Unable to cast object of type 'CrystalDecisions.CrystalReports.Engine.FieldObjec t' to type 'CrystalDecisions.CrystalReports.Engine.TextObject '.

حالا مشگل از کجاس؟
اصلا کد رو درست دارم استفاده میکنم؟