ورود

View Full Version : سوال: کمک در مورد subReport و نمایش فرزندان یک کاربر



farhadfery
چهارشنبه 30 شهریور 1390, 15:40 عصر
با عرض سلام. اول بگم چی نیاز دارم و بعد بگم چه کار کردم. سپس شما کمک کنید: :تشویق:
سعی می کنم کامل توضیح بدهم که برای دیگر افراد هم در آینده مناسب باشه.:قلب:
من یک جدول دارم که مشخصات کاربر هست و یک جدول که فرزندان کاربر را در آن قرار می دهم.
می خوام تو گزارش مشخصات بالا و لیست فرزندان پایین بخوره.

کاری که من کردم:
- یک dataset اضافه کردم و 2 تا جدول را داخلش قرار دادم.
- یک CrystalReport1.rpt اضافه کردم و با ویزارد جلو رفتم. در بخش جدول فقط جدول کاربر را انتخاب کردم و تا آخرین مرحله رفتم.
-یه فرم درست کردم به نام reportviewer و یک crystalReportViewer داخلش انداختم.
- تو فرم نمایش جزییات کاربر یه دکمه گذاشتم. و:

private void btnPrint_Click(object sender, EventArgs e)
{
FormViewer frm = new FormViewer();
frm.ShowDialog();

}
-توی لود فرم reportviewer هم مشخصات کاربر را از db گرفتم (فقط کاربر نه فرزندان) و ریختم تو متغییر dt سپس یه شی از CrystalReport1 به نام r نوشتم. و r.SetDataSource(dt); و در پایان هم crystalReportViewer1.ReportSource = r;

private void FormViewer_Load(object sender, EventArgs e)
{
CrystalReport1 = new CrystalReport1();
Member m = new Member();
DataTable dt = m.GetMemberDetails("23");
r.SetDataSource(dt);
crystalReportViewer1.ReportSource = r;
}
------------
همینطور که مشخص فعلا id کاربر را 23 دادم تا بعد کاملش کنم:کف:
------------------------------
تا اینجا درست. اما برای لیست فرزندان نمی دونم باید query را تغییر بدهم یا نه؟
-در CrystalReport1 کلیک راست و insert -> subReport-> create a new و نام subChildern را دادم و با ویزارد رفتم جلو: 2 تا جدول کاربر و فرزندان را اضافه و فیلدهایی مناسب و فقط از جدول فرزندان برای نمایش انتخاب.
- در سربرگ لینک؟؟ دیگه نمی دونم چه کار کنم؟:اشتباه::افسرده:
----------------
بقیه اش را شما بگید. تو سربرگ لینک چی بزنم؟ کویری قبلی باید عوض بشه؟ اگه جایی اشتباه دارم بگید.

farhadfery
پنج شنبه 31 شهریور 1390, 23:51 عصر
سلامت را نخواهند گفت پاسخ!!:متفکر:

seven7777777
شنبه 02 مهر 1390, 09:29 صبح
دوست عزیز نیازی به SubReport نداشتی . شما کافیه همون ابتدا علاوه بر جدول کاربر ، جدول فرزندان رو هم فراخونی کنی . فقط برای فرزندان رو میزاری تو Detail Section ( اگه درست گفت باشم ) . بعد گزارش خودش میاد و به تعداد ردیف های که داخل جدول فرزندان ، اون Section رو تکرار می کنه . مشکل خاصی نداره ، به راحتی قابل انجامه .
بررسی کن ، خبر بده .
موفق باشی

farhadfery
شنبه 02 مهر 1390, 09:39 صبح
از پاسخ شما ممنون.
همینطور که شما می فرمایید، می شه. اما من می خوام کار با subreport زا یاد بگیرم. چون در دیگر گزارشاتم به اون نیاز دارم. برای همین یک گزارش ساده تر را مطرح کردم. لطف می فرمایید پاسخ بدید؟

مرتضی تقدمی
شنبه 02 مهر 1390, 10:09 صبح
سلام
خب شما اول ساب ریپورت مورد نظر رو طراحی کنید. بعد توی گزارش اصلی بعد از کلیک راست insert و بعد subreport رو انتخاب کنید. از پنجره باز شده ساب ریپورت مورد نظر رو انتخاب کنید.
موفق باشید

seven7777777
شنبه 02 مهر 1390, 10:32 صبح
به نظر میرسه در تب لینک فیلدهایی تعریف میشن که شما در گزارش اصلی اگه روی اونها کلیک کنید ، وارد Subreport خواهید شد . به عنوان مثال در گزارش اصلی فیلدی دارید با عنوان تعداد فرزند که در تب لینک اونو معرف می کنید .
وقتی کاربر روی تعداد قرزند کلیک کرد ، Subreport مربوطه که اطلاعات فرزندان هست ، نمایش داده میشه .

موفق باشید