PDA

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



rezarko
جمعه 13 اردیبهشت 1392, 11:27 صبح
سلام. من دو تا مشکل در گزارشگیری با کریستال ریپورت دارم:
1_ من توی ریپورتم از 2 جدول استفاده کردم. چه طور میتونم اطلاعات دو جدول رو به صورت دیتا سورس بهش بدم؟
2_گزارش ها با پرینتر درست چاپ میشن ولی یا Microsoft XPS Document Reader اینجوری چاپ میشن:
103627
با تشکر

khayyams.votary
جمعه 13 اردیبهشت 1392, 14:30 عصر
دوست من برای سوال 1 : این که کاری نداره تو موقع واکشی اطلاعات از بانک اگه از 100تا جدول هم استفاده کنی جواب یا نتیجه برگشتی یک سری اطلاعات یک دست از اون کووریی هست که گرفتی و در کل انگار که یک جدول با یکسری رکورد که جواب گزارش تو هستند داری که برای راحتی کا با اونا می تونی بهشون آلیاس نام بدی که طرف کریستال راحت دسترسی داشته باشی یا موقع ست کردن پارامتر ها.
ولی برای سوال 2: باید فایل .rpt بفرستی تا ببینیم چه خبره و از کجا این جوری می شه.
موفق باشی

rezarko
جمعه 13 اردیبهشت 1392, 19:39 عصر
1_میشه یه مثال بزنید
2_

rezarko
شنبه 14 اردیبهشت 1392, 13:37 عصر
دوستان حداقل به سوال اولم جواب بدید. من واسه اینکه اطلاعات دو جدول رو به گزارشم بدم از کد زیر استفاده میکنم. ارور هم نمیده ولی اطلاعات داخل ریپورت خالی چاپ میشن:
SqlDataAdapter DA = new SqlDataAdapter("Select * from _Print ; Select set_Logo,set_ReportText From _Setting", cnn);
DataTable dt = new DataTable();
DA.Fill(dt);
rd.SetDataSource(rp);

rezarko
یک شنبه 15 اردیبهشت 1392, 00:09 صبح
دوستان لطفا راهنمایی کنید

khayyams.votary
شنبه 21 اردیبهشت 1392, 13:00 عصر
دوستان حداقل به سوال اولم جواب بدید. من واسه اینکه اطلاعات دو جدول رو به گزارشم بدم از کد زیر استفاده میکنم. ارور هم نمیده ولی اطلاعات داخل ریپورت خالی چاپ میشن:
SqlDataAdapter DA = new SqlDataAdapter("Select * from _Print ; Select set_Logo,set_ReportText From _Setting", cnn);
DataTable dt = new DataTable();
DA.Fill(dt);
rd.SetDataSource(rp);

دوست عزیز کدی شما این جا قرار دادین برای استفاده از اطلاعات دو جدول که برای نمایش می خوایین اشتباه نیست ولی درست هم نیست چون که اگه شما این کد رو در SQL اجرا کنید برای شما در جواب دو Result جداگانه نمایش خواهد داد این به این معنی هست که هر کدام از کووری ها رو به طور جدا واکشی میکنه این برای شما که می خوایین اون رو به گزارش پاس بدین و نتایج رو در اون نشون بدین دردسر ساز می شه چون اون وقت باید خودتون dt رو خونده و از طریق پارامتر ها به گزارش انتساب بدین تا نتیجه رو نشون بده(بگذریم اینها اطلاعات تکمیلی بود، مهم نیست). حالا شما برای کارتون باید از یک دستور SQL استفاده کنید که دو یا چند جدول رو با Join یا Union یا subquery به هم مرتبط باشن که در جواب یک جدول واکشی بشه. برای مثال یک حالت با دستورات شما میگم و یکی با دستورات خودم.
Select * from _Print ; Select set_Logo,set_ReportText From _Setting
Select F1,F2,(Select set_Logo From _Setting)as'Logo',(Select set_ReportText From _Setting)as'RptText' from _Print