PDA

View Full Version : کریستال ریپورت در vb.net



sahra_777
دوشنبه 04 اردیبهشت 1385, 08:57 صبح
با سلام...من میخوام یه گزارش ساده که دو پارامتر از vb.net به اون پاس داده میشه رو نمایش بدم لطفا کمک کنید آخه هر چی سرچ کردم چیزی آیدم نشد
1- من گزارشم را با crystal آماده کردم حالا چطور اونو نمایش بدم لطفا کد رو بنویسید چون میدونم باید به دیتاست بایند بشه فقط کد بدین
2-میشه از veiwer استفاده نکنم و با زدن دکمه گزارش print preview نمایش داده بشه؟؟؟؟

saeed_ps
دوشنبه 04 اردیبهشت 1385, 11:25 صبح
با سلام بنده برای این موضوع منابع مختلفی را بررسی نمودم و چندین ماه وقت صرف کردم تا به نتیجه دلخواه رسیدم بنده کلا نحوه ارسال پارامتر را براتون توضیح میدهم امیدوارم متو جه شده باشید
1) :در فرم اصلی خود آداپتور مربوطه را درست نمائید طوری که در داخل آن شرط خود را برای فیلدهای مربوطه بنویسید مثال where id= @ pid بعد اجرا و نتیجه بگیرید با کلیک راست در محیط و...
2): ابتدا یک فرم خالی در پروژه خود ایجاد ونام آنرا form2 قرار دهید
یک کنترل crystalreportviewer را به فرم 2 اضافه نمائید و خاصیت dock آنرا fill نمائید

3): حال add new item را با کلیک راست روی پروژه اجرا در بخش templetes

crystalreport را انتخاب وبعد از انتخاب نام open حال از صفحه باز شده در صورت وارد نبودن اولی در غیر اینصوزت دومی را انتخاب نمایید(سومی را خواستید بعدا بگوئید توضیح بدم)
حال در بخش data پوشه project data را باز و dataset مربوطه را انتخاب و جداول مربوطه را انتخاب تا به سمت راست منتقل شود(توضیح با توجه به نیاز شما جداول دیتاست انتخاب شد میتوانید بسته به نیازهای خود بانگ اطلاعاتی خود را انتخاب نمائید
نکته : اگر جدولی که میخواهید در دیتاست نیست به فرم اصلی خود نه فرم 2 برید و انرا دوباره در آداپتور مربوطه generet نمائید )

- اگر چند جدول انتخاب نموده اید پوشه link را کلیک و ارتبا ط بین جداول را تنظیم نمایید بهتر است از یک veiw استفاده نمائید
حال بقیه کارهای رپورت را انجتم دهید.
4): در نهایت
با کلیک بر روی دگمه پرینت فرم اصلی کد های زیر را بنویسید:

dim frm2 as new form2
dim cr as new crystalreport 1
()dataset.tablesname.clear
sqldataadaptor1.selectcommand.parametres("@pid").value=textbox1.text.tostring //یا هر جای دیگر که اطلاعات را از روی فرم اصلی ارسال مینمائید
//اگر چند پارامتر باشد دوباره تکرار
(sqldataadaptor1.fill( dataset.tablesname

cr.setdatasource(dataset)
\\ فقط نام دیتاست نه همراه جدول
frm2.crystalreportviewer1.reportsource=cr
() frm2.show


تمام البته مطالب زیادی است که خواستید باهم
صحبت میکنیم

در ضمن یادم نرفته بر روی پروژه کلیک راست add refrensed گزینه crystalreport .dicit......engin را انتخاب نمائید

sahra_777
سه شنبه 05 اردیبهشت 1385, 06:01 صبح
ممنون که جواب دادین ... ولی چندتا اشکال داشتم
1- بخش project feild کجاست؟؟
2- اینجور که شما گفتین نیازی نیست ریپورت رو از قبل طراحی کنیم بعد با گزینه add existing item به پروژه اضافه کنیم؟؟
3- چطور میتونیم پارامتر پاس بدیم میشه ریزتر توضیح بدین؟؟

sahra_777
سه شنبه 05 اردیبهشت 1385, 11:03 صبح
چرا هیچ کس جواب نمیده؟؟؟؟؟؟؟؟؟؟

sahra_777
سه شنبه 05 اردیبهشت 1385, 13:06 عصر
یعنی هیچ کس ارسال پارامتر رو بلد نیست؟؟

samiraamiri
سه شنبه 05 اردیبهشت 1385, 22:48 عصر
http://www.barnamenevis.org/forum/showthread.php?t=43592
یه نگاه به این تاپیک بندازید شاید مشکلتون حل شد

tizdast
چهارشنبه 06 اردیبهشت 1385, 00:10 صبح
با اجازه خانم امیری(چون این مطلب رو از ایشون یاد گرفتم)
زمانی که دارید reort رو طراحی میکنید از منوی view گزینه other window رو بزن.بعد document outline.حالا از panel ای که ظاهر میشه در قسمت parameter راست کلیک کن و یه new parameter بساز.بعدش روی report راست کلیک کن و گزینه select expert رو بزن و پارامتر رو به فیلد مورد نظر در گزارش وصل کن.حالا مثلا اگر در یک فرم یه textbox و یه button داری و crystal report viewr برای buttin این کد رو بنویس :



Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
rpt.Load("مسیر و نام فایل ریپورت")
rpt.SetParameterValue("نام پارامتر", textbox1.text)

CrystalReportViewer1.ReportSource = rpt

sahra_777
چهارشنبه 06 اردیبهشت 1385, 05:48 صبح
سلام...من در document outline , vb.net را پیدا کردم و مانند یه toolbox اضافه شد ولی هیچ آیتمی نداره چکار کنم؟؟؟؟ در ضمن یه سوال؟؟؟ لازم نیست من گزارشم را در crystal طراحی کنم؟؟؟ به من بگید قالب گزارش رو کجا بسازم؟؟؟؟؟

sara_esmat
چهارشنبه 06 اردیبهشت 1385, 08:22 صبح
ایا کسی در مورد فاز فرمو سازی در نرایند مهندسی وب اطلاعی دارد

M.kavyani
چهارشنبه 06 اردیبهشت 1385, 08:44 صبح
ایا کسی در مورد فاز فرمو سازی در نرایند مهندسی وب اطلاعی دارد
دوست عزیز سوالت رو در تاژپیک جدید و در انجمن مناسب بپرس تا سریع تر پاسخ بگیری.

sahra_777
چهارشنبه 06 اردیبهشت 1385, 09:38 صبح
ابتدا گزارشم را در کریستال ریپورت طراحی کردم نه ویژوال استادیو . بعد از پنجره feild object یه پارامتر به نام p ایجاد کردم که در select expert این پارامتر را برابر فیلد date_req قرار دادم
بعد اومدم سراغ vs و این کد رو در buttom مربوطه نوشتم

Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent
(" rpt.Load("C:\Documents and Settings\tcs11\Desktop\report1.rpt
( rpt.SetParameterValue("p", text2.Text
CrystalReportViewer1.ReportSource = rpt





حالا این error رو میده Invalid field name.

saeed_ps
چهارشنبه 06 اردیبهشت 1385, 13:24 عصر
ببین عزیز دل پاسخ کامل بهت دادم اول اینکه ما فرض کردیم شما گزارش خود را ایجاد نکرده اید

با کلیک راست روی پروژه add new item را اجرا در بخش templetes

crystalreport را انتخاب وبعد از انتخاب نام open - حال از صفحه باز شده اولی یعنی
using standard report expert
را انتخاب نمایید(سومی زمانی است که گزارش خود را قبلا ایجاد کرده باشید که مراحل دیگری دارد خواستید بعدا بگوئید توضیح بدم)
حال در بخش data پوشه project data را باز و dataset مربوطه را انتخاب و جداول مربوطه را انتخاب تا به سمت راست منتقل شود
حال بقیه کارهای رپورت را انجام دهید.
پس شما هر چی در دیتاست پر نمایید همان در گزارش خواهد آمد به شرطی که کدهایی که قبلا نوشتم در داخل دگمه پرینت آورده با شید در ضمن یکی از راههای میانبر فرستادن پارامتر را گفتم که در داخل دیتا آداپتور خود پارامتر را ایجاد نماید وبعد در داخل دگمه پرینت با دادن مقدار به پارامتر
ایجاد شده دیتاست را پر وبا کد بعدی به گزارش خود وصل نمایید

به همین راحتی