PDA

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



ehsan21
چهارشنبه 13 دی 1385, 11:39 صبح
من کد زیر رونوشتم :




strcon = "select * from company,co_in"
da = New OleDbDataAdapter(strcon, con)
ds = New DataSet()
da.Fill(ds, "company")
CrystalReport11.Database.Tables("company").SetDataSource(ds)

اما فقط یک جدول رو قبول میکنه
یعنی توی عبارت اس کیو الم
از دو جدول میخوام گزارش بگیرم اما توی CrystalReport11.Database.Tables("company") فقط یک جدول رو قبول میکنه
منون اگه کمکم کنید

reza_rad
چهارشنبه 13 دی 1385, 11:57 صبح
از دیتاست استفاده کنید

rasoul_ras
پنج شنبه 14 دی 1385, 09:59 صبح
عزیزم آن متد"CrystalReport11.SetDataSource" یک دیتا ست هم میگیره تو بافرستادن یک دیتا ست به پارامتر آن کل جداولی که در ان دیتا ست هست را انتقال می دهی:لبخندساده:

ehsan21
شنبه 16 دی 1385, 13:46 عصر
سلام ، ممنون از راهنماییتون
اما من دیتا ست هم نسبت دادم ولی تمام رکورد ها رو نمایش میداد. میشه بیشتر کمکم کنید ؟
من دوتا جدول دارم جدول اول یک فیلد کد ویک فیلد نام داره . جدول دوم یک فیلد کد داره با یک فیلد فعالیت.
جدول اول 10 رکورد داره ، جدول دوم 23 رکورد .میخام هرجا که کد دو جدول برابر بود تمام فیلد ها رو نمایش بده . اما مشکل داروم .
منون از کمکهاتون

reza_rad
شنبه 16 دی 1385, 14:19 عصر
مشکل شما از join هست نه از دیتاست
شما باید دو تا جدول رو بر اساس فیلد واسط بینشون با هم Join کنی تا مشترک ها بدست بیاد.
اگه همینطوری فقط از دو تا جدول بخونید حاصلضرب برداری فیلدهاشون میاد توی نتیجه که مسلما نتیجه ی موردنظر شما نیست.

یک مثال:
فرض کنید جدول دانشگاه داریم و جدول دانشجو
یک فیلد کد دانشگاه در جدول دانشجو هست که دانشگاه اون دانشجو رو مشخص می کنه
حالا join بین دو تا جدول اینطوری میشه:


select * from student,university where student.universityCode=university.Code

ehsan21
شنبه 16 دی 1385, 21:51 عصر
من هم جداولم رو goin کردم اما ...

rasoul_ras
یک شنبه 17 دی 1385, 10:02 صبح
سلام
شما با همن دستور می تونی جداول بعدی را هم Set کنی. مشکلتو بیشتر توضیح بده.:اشتباه:

ehsan21
یک شنبه 17 دی 1385, 23:14 عصر
من کد زیر رو نوشتم
strcon = "select * from company1,company2 where company1.coid=company2.coid"
da = New OleDbDataAdapter(strcon, con)
ds = New DataSet()
da.Fill(ds, "t")
CrystalReport11.SetDataSource(ds)

komail_sh
چهارشنبه 27 دی 1385, 08:58 صبح
دستور sql رو به متد setsqlqueryبده یا اینکه دیتا ست رو به صورت xmlذخیره کن و در کریستال فراخوانی کن