PDA

View Full Version : سوال: مشکل در استفاده از دو جدول در کریستال ریپورت



reza69
دوشنبه 23 اردیبهشت 1392, 08:32 صبح
سلام
من موقعی که تو کریستال ریپورت از دو تا جدول استفاده میکنم بدون ارور عمل نمیکنه ولی وقتی از یک جدول استفاده میکنم داده ها رو نمایش میده.

zayens
دوشنبه 23 اردیبهشت 1392, 09:06 صبح
سلام
من موقعی که تو کریستال ریپورت از دو تا جدول استفاده میکنم بدون ارور عمل نمیکنه ولی وقتی از یک جدول استفاده میکنم داده ها رو نمایش میده.

انتظار داری چی جواب بدیم وقتی هیچ کدی ننوشتی و هیچ توضیحی ندادی!

reza69
دوشنبه 23 اردیبهشت 1392, 09:12 صبح
انتظار داری چی جواب بدیم وقتی هیچ کدی ننوشتی و هیچ توضیحی ندادی!
بله درسته در کد لوود فرمم که crystal viewer توشه اینو نوشتم.

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=mobile;Integrated Security=True");
SqlDataAdapter dr = new SqlDataAdapter("SELECT tfactor.*,trfactor.* FROM tfactor INNER JOIN trfactor ON tfactor.codefactor = 25 and trfactor.codefactor =25", con);
DataTable dt = new DataTable();
dr.Fill(dt);
crfactor cr = new crfactor();
cr.SetDataSource(dt);
crystalReportViewer1.ReportSource = cr;

zayens
دوشنبه 23 اردیبهشت 1392, 09:55 صبح
کدی که گذاشتی غلطه و چیزی نمایش نمیده
بگو دقیقا میخوای با جدولا چیکار کنی تا کدش را واست بذارم

reza69
دوشنبه 23 اردیبهشت 1392, 10:01 صبح
کدی که گذاشتی غلطه و چیزی نمایش نمیده
بگو دقیقا میخوای با جدولا چیکار کنی تا کدش را واست بذارم
توی دوتاجدول کد فاکتور یکیه میخوام میخوام داخل کرستال ریپورت اطلاعات مربوط به کد فاکتور مورد نظر رو نمایش بدم.
اینم عکس از کریستال
104126
ولی وقتی از یک جدول استفاده میکنم جواب میده حالا شما کدتو بده ببینیم عمل میکنه یانه

zayens
دوشنبه 23 اردیبهشت 1392, 10:56 صبح
آهان
خب زودتر میگفتی
نیازی نیست جدولا رو ادغام کنی

کافیه دوبار تیبل آداپتور را صدا بزنی و پاس بدی به کریستال
SELECT * FROM tfactor where codefactor =25
SELECT * FROM trfactor where codefactor =25
بعدش توی کریستال چون Database Field هات مقدار دهی شدن مشکلی پیش نمیاد

reza69
دوشنبه 23 اردیبهشت 1392, 11:00 صبح
آهان
خب زودتر میگفتی
نیازی نیست جدولا رو ادغام کنی

کافیه دوبار تیبل آداپتور را صدا بزنی و پاس بدی به کریستال
SELECT * FROM tfactor where codefactor =25
SELECT * FROM trfactor where codefactor =25
بعدش توی کریستال چون Database Field هات مقدار دهی شدن مشکلی پیش نمیاد
بیشتر توضیح بدید
داخل لود فرمم دقیقا چی باید بنویسم؟

zayens
دوشنبه 23 اردیبهشت 1392, 11:21 صبح
اینکه میشه لقمه ی آماده!
باشه صبر کن تا واست بنویسم

zayens
دوشنبه 23 اردیبهشت 1392, 11:28 صبح
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=mobile;Integrated Security=True");
SqlDataAdapter dr۱ = new SqlDataAdapter("SELECT * FROM tfactor where codefactor =25", con);
SqlDataAdapter dr۲ = new SqlDataAdapter("SELECT * FROM trfactor where codefactor =25", con);
DataTable dt = new DataTable();
dr۱.Fill(dt);
dr۲.Fill(dt);
crfactor cr = new crfactor();
cr.SetDataSource(dt);
crvPrint.ReportSource = cr;

reza69
دوشنبه 23 اردیبهشت 1392, 11:33 صبح
درست نشد باز نتیجه مثل قبله.

reza69
دوشنبه 23 اردیبهشت 1392, 11:43 صبح
کدم هیچ مشکلی نداره
فقط وقتی تو دیتاست دوتا جدولارو ادغام میکنم و میشه یه جدول درست میشه

zayens
دوشنبه 23 اردیبهشت 1392, 12:46 عصر
ببین من خودم هیچ وقت اینجوری از کریستال استفاده نمیکنم
من توی پروژه هام دیتابیسم را اتچ میکنم به برنامه و بعدش از سولوشن در databaseDataSet با اون دو تا کد دوتا TableAdapter را add میکنم و توی کریستال از قسمت Database Field اون دو تا جدولمو که داخل databaseDataSet ساخته بودم اضافه میکنم و فیلدهاشو توی صفحه ی گزارشم توی جاهایی که میخوام درگ میکنم
بعدشم از کد زیر استفاده میکنم(در مورد مثال تو:)
crfactor cr = new crfactor();
this.tfactorTableAdapter.Fill(this.dBaseDataSet.tf actor);
this.trfactorTableAdapter.Fill(this.dBaseDataSet.t rfactor);
cr.SetDataSource(dBaseDataSet);
crystalReportViewer1.ReportSource = cr;

که dBaseDataSet هم اینطوری اومده که از تولباکس گزینه ی بایندینگ سورس را انتخاب کردم و روی فرمم گذاشتم و دیتاست اون را ست کردم

reza69
دوشنبه 23 اردیبهشت 1392, 13:07 عصر
اگه زحمت بکشی یه پروژه اتچ کنی بهتره.

samad1987
شنبه 11 خرداد 1392, 22:19 عصر
توی کریستال ریپورت کلا از فکر ادغام جدولا بیاید بیرون .. نه اینکه نشه ها
میشه منتها بایستی از linQ استفاده کنید...
از view استفاده کنید راحت