PDA

View Full Version : سوال: اتصال یک کریستال ریپورت به بیش از یک تیبل



neda_dela
سه شنبه 31 شهریور 1388, 22:12 عصر
با سلام
من تعداد table های برنامم خیلی زیاده یعنی 24 تا. و فیلدهای همه این table ها با هم برابرن. فقط هر table ای یک گروه خاص رو مشخص می کنه مثلا یکی فقط برای ثبت نام دانش آموزان پنجم ابتدایی و بقیه هم هر کدوم برای یک پایه تحصیلی.
حالا می خوام برای هر کدوم از این table ها گزارش بنویسم با استفاده از crystal report .
حالا آیا میشه یک crystal report رو به بیش از یک table متصل کرد که من مجبور نشم 24 تا گزارش جدا بسازم؟ آخه خیلی زیاد میشن...
لطفا راهنمایی کنین:لبخندساده:

viper2009
سه شنبه 31 شهریور 1388, 22:26 عصر
مگه همه گزارشات مثله همه؟

seniamail
سه شنبه 31 شهریور 1388, 22:52 عصر
به نظر من در درجه اول باید جداول بانکتون رو اصلاح کنید.به جای چندین جدول یکی داشته باشید و یک فیلد مثلا با عنوان Type به اون اضافه کنید که نشون دهنده مقطع باشه.
در غیر این صورت باز هم میتونید این کار رو کنید. کافیه یک DataTable از جدول مورد نظر بسازید و اون رو به گزارشتون ارتباط بدید.
لینک زیر رو هم ببینید و از اون مقاله CR_C#‎.rar‏ رو دانلود کنید
http://barnamenevis.org/forum/showthread.php?t=25507

moferferi
سه شنبه 31 شهریور 1388, 23:07 عصر
سلام.
چند
FormulaField
ایجاد کن بعد از طریق کد به صورت داینامیک ستون داده خودت را انتخاب کن.


CrystalReport5 cc = new CrystalReport5();
FormulaFieldDefinitions flds;
//
FormulaFieldDefinition fld1;
FormulaFieldDefinition fld2;
FormulaFieldDefinition fld3;
FormulaFieldDefinition head1;
FormulaFieldDefinition head2;
FormulaFieldDefinition head3;
//
flds = cc.DataDefinition.FormulaFields;
//
fld1 = flds[0];
fld2 = flds[1];
fld3 = flds[2];
head1 = flds[3];
head2 = flds[4];
head3 = flds[5];
//
if (checkBox1.Checked == true)
{
// head1.Text = "'"+textBox1.Text+"'";
//--ویا
// head1.Text = "'کشور ها'";
fld1.Text = "{customers.country}";
}
if (checkBox2.Checked == true)
{
head2.Text = "'شهر ها'";
fld2.Text = "{customers.city}";
}
if (checkBox3.Checked == true)
{
head3.Text = "'ادرس'";
fld3.Text = "{customers.address}";
}
crystalReportViewer1.ReportSource = cc;

neda_dela
چهارشنبه 01 مهر 1388, 08:20 صبح
مگه همه گزارشات مثله همه؟
فیلداش شبیه همه اما مقادیرش نه
مثلا یه گزارش اطلاعات دانش آموزان کلاس پنجم رو نشون میده ، اون یکی یه پایه دیگه و همین طور
اما فیلد های همه شون با هم برابره : نام و نام خانوادگی و سن و ...

viper2009
چهارشنبه 01 مهر 1388, 18:48 عصر
پس فرق می کنه

شما می تونید اطلاعاته دیتا بیست رو در فرمت لود کنی و بعد بااستفاده از این کد
CrystalReport1.DataDefinition.FormulaFields.Item("@Text ").Text = "'" & TextBox1.Text & "'"
داده ها رو انتقال بده به کریستال ریپورت
این کار میشه یک نوع جایگزینی

@Text بر روی کریستال شما قرار گرفته است.

majid_vb_2008
یک شنبه 16 خرداد 1389, 16:43 عصر
پس فرق می کنه

شما می تونید اطلاعاته دیتا بیست رو در فرمت لود کنی و بعد بااستفاده از این کد
CrystalReport1.DataDefinition.FormulaFields.Item("@Text ").Text = "'" & TextBox1.Text & "'"
داده ها رو انتقال بده به کریستال ریپورت
این کار میشه یک نوع جایگزینی

@Text بر روی کریستال شما قرار گرفته است.


می دونم که این تایپیک یکم قدیمی شده ولی کارم خیلی گیره آخه منم همین کار رو می خواستم انجام بدم نشد اگر می شه راهنمایی کنید.

محمد صادق
سه شنبه 17 خرداد 1390, 23:36 عصر
به نام خدا
سلام
منم از یک table که استفاده کنم مشکلی نیست ولی اگه دو یا چند تا شد نمایش نمیده چه join شده باشه یا نشده باشه
ممنون میشم کمکم کنید

محمد صادق
جمعه 20 خرداد 1390, 00:38 صبح
به نام خدا
سلام
مشکل من با تعریف view ای که شامل قسمت های دلخواهم از جدولهای مختلف بود حل شد