zayens
جمعه 18 تیر 1389, 13:41 عصر
من نیاز دارم که در کریستال ریپورت برای گزارش گیری از دو جدول استفاده کنم
(منظورم اینه که در قسمت Database Field دو تابع یا جدول یا... را وارد کنم)
قبلا در فرم های گزارشم وقتی از یک جدول استفاده میکردم از کدی مثل زیر
استفاده می کردم و جواب میداد و هیچ مشکلی هم ایجاد نمیشد:
privatevoid showUsedFoodsHAME()
{
CrystalUsedFoodsHAME c = newCrystalUsedFoodsHAME();
DBRESTORANSDataSetTableAdapters.USEDFOODSselectAll ReportTableAdapter u1 = new RESTORANS.DBRESTORANSDataSetTableAdapters.USEDFOOD SselectAllReportTableAdapter();
u1.FillBy(this.dbDataSetUFSAllReport.USEDFOODSsele ctAllReport);
c.SetDataSource((DataTable)dbDataSetUFSAllReport.U SEDFOODSselectAllReport);
c.SetParameterValue("@PRINTDATE", frmReport.dateNow);
crystalReportViewer1.ReportSource = c;
}
این کد کریستال ریپورت CrystalUsedFoodsHAME را فراخوانی می کند و سپس دیتاست
لازم را به آن می فرستد
همونطور که در کد بالا مشهود است من در کریستال از استورپرسیجر USEDFOODSselectAllReport استفاده کردم که کوئری زیر را اجرا میکند:
select FOODNAME,sum(FOODNUM) as FOODNUM from USEDFOODS group by FOODNAME
که البته این که چی اجرا میشود زیاد مهم نیست.
/
/
/سوال اینجاست که:
من در یکی از گزارشاتم نیاز به دو تا استورپرسیجر (دو تا تابع یا دو تا جدول) دارم(فرق نمیکنه)
من از کد زیر استفاده کردم اما پس از اجرا، هیچ داده ای در کریستال نمایش داده نمیشه
این کدیه که به نظرم رسید و کار هم نمیکنه:
اگه ممکنه کد را اصلاج کنید.
public frmGozareshFac()
{
InitializeComponent();
//
CrystalsodurFac c = newCrystalsodurFac();
DBRESTORANSDataSetTableAdapters.SelectOneFactorTab leAdapter a =
new RESTORANS.DBRESTORANSDataSetTableAdapters.SelectOn eFactorTableAdapter();
DBRESTORANSDataSetTableAdapters.SelectOneSETFACTOR TableAdapter b =
new RESTORANS.DBRESTORANSDataSetTableAdapters.SelectOn eSETFACTORTableAdapter();
a.FillBy(this.mydbDataSetOnefac.SelectOneFactor, frmFac.crystalFACTORID);
b.FillBy(mydbDataSetSETFAC.SelectOneSETFACTOR, frmFac.crystalFACTORID);
c.SetDataSource((DataTable)mydbDataSetOnefac.Selec tOneFactor);
c.SetDataSource((DataTable)mydbDataSetSETFAC.Selec tOneSETFACTOR);
c.SetParameterValue("@PRINTDATE", frmFac.dateNow);
crystalReportViewer1.ReportSource = c;
}
ممنون
(منظورم اینه که در قسمت Database Field دو تابع یا جدول یا... را وارد کنم)
قبلا در فرم های گزارشم وقتی از یک جدول استفاده میکردم از کدی مثل زیر
استفاده می کردم و جواب میداد و هیچ مشکلی هم ایجاد نمیشد:
privatevoid showUsedFoodsHAME()
{
CrystalUsedFoodsHAME c = newCrystalUsedFoodsHAME();
DBRESTORANSDataSetTableAdapters.USEDFOODSselectAll ReportTableAdapter u1 = new RESTORANS.DBRESTORANSDataSetTableAdapters.USEDFOOD SselectAllReportTableAdapter();
u1.FillBy(this.dbDataSetUFSAllReport.USEDFOODSsele ctAllReport);
c.SetDataSource((DataTable)dbDataSetUFSAllReport.U SEDFOODSselectAllReport);
c.SetParameterValue("@PRINTDATE", frmReport.dateNow);
crystalReportViewer1.ReportSource = c;
}
این کد کریستال ریپورت CrystalUsedFoodsHAME را فراخوانی می کند و سپس دیتاست
لازم را به آن می فرستد
همونطور که در کد بالا مشهود است من در کریستال از استورپرسیجر USEDFOODSselectAllReport استفاده کردم که کوئری زیر را اجرا میکند:
select FOODNAME,sum(FOODNUM) as FOODNUM from USEDFOODS group by FOODNAME
که البته این که چی اجرا میشود زیاد مهم نیست.
/
/
/سوال اینجاست که:
من در یکی از گزارشاتم نیاز به دو تا استورپرسیجر (دو تا تابع یا دو تا جدول) دارم(فرق نمیکنه)
من از کد زیر استفاده کردم اما پس از اجرا، هیچ داده ای در کریستال نمایش داده نمیشه
این کدیه که به نظرم رسید و کار هم نمیکنه:
اگه ممکنه کد را اصلاج کنید.
public frmGozareshFac()
{
InitializeComponent();
//
CrystalsodurFac c = newCrystalsodurFac();
DBRESTORANSDataSetTableAdapters.SelectOneFactorTab leAdapter a =
new RESTORANS.DBRESTORANSDataSetTableAdapters.SelectOn eFactorTableAdapter();
DBRESTORANSDataSetTableAdapters.SelectOneSETFACTOR TableAdapter b =
new RESTORANS.DBRESTORANSDataSetTableAdapters.SelectOn eSETFACTORTableAdapter();
a.FillBy(this.mydbDataSetOnefac.SelectOneFactor, frmFac.crystalFACTORID);
b.FillBy(mydbDataSetSETFAC.SelectOneSETFACTOR, frmFac.crystalFACTORID);
c.SetDataSource((DataTable)mydbDataSetOnefac.Selec tOneFactor);
c.SetDataSource((DataTable)mydbDataSetSETFAC.Selec tOneSETFACTOR);
c.SetParameterValue("@PRINTDATE", frmFac.dateNow);
crystalReportViewer1.ReportSource = c;
}
ممنون