PDA

View Full Version : سوال: گزارش گیری با استفاده از دو جدول



f_naderi
شنبه 12 تیر 1389, 21:01 عصر
سلام
من یک آموزش کریستال ریپورت می خوام که استخراج داده از چند جدول رو یاد بده ، من آموزش گزارش گیری دارم ولی همشون فقط با استفاده از یک جدول هستن ممنون میشم اگه چنین آموزشی رو دارید در اختیارم قرار بدید.

hadinajafigharetappeh
یک شنبه 13 تیر 1389, 20:47 عصر
سلام شما میتوانید در تنطیمات کانکشن کریستال ریپورت تان جداولی که لازم دارین را انتخاب کنید.این که کار راحتیه اگه منظورتون چیز دبگری هست لطفا بیشتر توضیح دهید.

f_naderi
یک شنبه 13 تیر 1389, 21:43 عصر
ممنون از توجهتون
من برای مثال اومدم یه نمونه برنامه درست کردم که داده های اون از دو تا جدول استخراج بشه و در کریستال ریپورت نمایش داده بشه ولی با زدن دکمه ی گزارش ، گزارش خالی نمایش داده میشه اگه میشه نگاهی به این تکه برنامه بیاندازید و بفرمایید که اشکال از کجاست.من برنامه رو در این قسمت سایت قرار دادم.
http://barnamenevis.org/forum/showthread.php?t=231886

sara.f
یک شنبه 13 تیر 1389, 22:06 عصر
ممنون از توجهتون
من برای مثال اومدم یه نمونه برنامه درست کردم که داده های اون از دو تا جدول استخراج بشه و در کریستال ریپورت نمایش داده بشه ولی با زدن دکمه ی گزارش ، گزارش خالی نمایش داده میشه اگه میشه نگاهی به این تکه برنامه بیاندازید و بفرمایید که اشکال از کجاست.من برنامه رو در این قسمت سایت قرار دادم.
http://barnamenevis.org/forum/showthread.php?t=231886

سلام دوست عزیز.

جداول شما مشکل دارن. چرا کلید اصلیتون توی جدول kharid این شکلیه؟

رکوردها بر اساس رابطه موجود بین کلیدهای اصلی دو جدول باید نمایش داده بشند و به دلیل همین مشکلی که در کلیدها وجود داره، هیچ رکوردی مطابق با این رابطه برای نمایش وجود نداره، ساحتار
جداول را درست کنید، تا گزارشتون درست بشه.

در ضمن ایجاد دو تاپیک با موضوع یکسان در دو تالار مختلف بر خلاف قوانین سایت هست، لطفا برنامتون را در این تاپیک ضمیمه کنید.

f_naderi
یک شنبه 13 تیر 1389, 22:19 عصر
ممنون از جوابتون ولی متغیر count درست پر میشه و عدد سه در اون ذخیره میشه ، حالا اگه مطمئن هستید که مشکل از این است لطفا بیشتر راهنمایی کنید که من اون کارها رو انجام بدم.
برای تذکرتون هم ممنون ولی به این دلیل در تالار سی شارپ مطرح کردم چون بازدید کننده در اون قسمت بیشتر هستش و دوستان هم گزارشگیری بلد هستن.

sara.f
یک شنبه 13 تیر 1389, 23:57 عصر
متغیر count دیگه کدومه؟
شما می تونید جدول kharid را بدین صورت تغییر بدید:
code به عنوان کلید اصلی
و در جدول moshtari
باید از کلید خارجی استفاده کنید، یعنی کد کالا که در جدول kharid به عنوان کلید اصلی هست، حالا باید در جدول moshtari به عنوان کلید خارجی هم استفاده بشه، در این صورت شما می تونید کالاهایی که توسط مشتری ها خریداری شده را نمایش بدید.

f_naderi
دوشنبه 14 تیر 1389, 14:34 عصر
متغیر count درون فرم1 و زیر دکمه ی گزارش قرار داره و تعداد رکوردهای یافته شده با شرایطی که مد نظر است را درون خود نگه میدارد که در زمان استفاده از حلقه ی for برای ایجاد تیبل با سطرهای محدود به کار برده شود.
نمیشه فقط code در جدول خرید کلید اصلی باشه چون در این صورت هر مشتری فقط میتونه یک کالا رو خریداری کنه پس باید کد مشتری به همراه نام کالا کلید اصلی باشند و جدول مشتری هم قراره که فقط اطلاعات شخصی مشتری رو داشته باشه پس در این صورت کالا نباید وارد این جدول بشه(البته میدونم که این دیتابیسم ناقصه و دیتابیس اصلی من چیز های اضافه تری رو داره ومن چون با کریستال ریپورت در رابطه با نمایش داده از چند جدول مشکل دارم این دیتابیس کوچک رو به عنوان مثالی برای یادگیری ام نوشتم)

sara.f
دوشنبه 14 تیر 1389, 21:50 عصر
خب این دیتا بیسی که طراحی کردید که کاملا مشکل داره ، حالا به هر حال اگر بخوایم فقط در مورد گزارش صحبت کنیم، شما می تونید همون کد مشتری و کالا را به عنوان کلید اصلی در نظر بگیرید و در زمانیکه قراره، جداول را به کریستال وارد کنید در سربرگ link، یک relation بین کد مشتری در جدول کالا و کد مشتری در جدول مشتری ایجاد کنید.

f_naderi
سه شنبه 15 تیر 1389, 00:34 صبح
مرسی بلاخره مشکل حل شد از راهنماییتون ممنونم

ctrl+alt+del
چهارشنبه 16 تیر 1389, 16:12 عصر
سلام
منم یه همچین مشکلی دارم (یعنی ریپرت گرفتن از چند جدول)
من با Linq یه query میگیریم و ()Tolist. اونو به متغییری از نوع var به اسم fill میریزم.
بعد این متغییر fill رو (که از 4 جدول پر میشه و موقع Trace کردن دقیقاً اون چیزی که باید برگردونو رو میاره) به صورت زیر استفاده میکنم :

CrystalReport1 rpt = new CrystalReport1();
rpt.SetDataSource(fill); $$
crystalReportViewer1.ReportSource = rpt;


این درحالیه که من فایل ریپرتمو که همون CrystalReport1 هستش رو ساختم و هر 4 جدولمو توش آوردم و کلاً از این 4 جدول 6 فیلد رو انتخاب کردم که query هم همون 6 فیلد رو برمیگردونه ولی موقع اجرا گرفتن error زیر رو روی خط $$ میده :

Unable to find the report in the manifest resources. Please build the project, and try again


تمام اینترنت رو هم گشتم فقط یه نفر ایرانی اونم فقط روی یه جدول رو توضیح داده.
ممنون میشم اگه در مورد اینکه با Linq روی چند جدول ریپرت بگیرم کمکم کنید. :)