PDA

View Full Version : سوال: مشکل در بایند کردن دیتاست به فایل گزارش در Stimul



Behnam6670
سه شنبه 03 اردیبهشت 1392, 17:15 عصر
سلام یه برنامه نوشتم تو قسمت گزارشاتش به مشکل خوردم.دوتا جدول دارم که یکیش زیر مجموعه جدول دوم هستش.
جدول اسناد جدول اصلی هستش جدول شرح تعمیرات جدول دوم که زیر مجموعه هستش که محصولات اسناد رو نگهداری میکنه و از طریق کلید ثانویه شماره سند با جدول سند در ارتباط هستش
مشکلم اینجاست که وقتی کاربر میخواد مثلا اطلاعات چند سند و شرح تعمیرات هرکدوم رو چاپ کنه دیتا ست رو چطوری پر کنه؟
کد زیر رو نگاه کنید ببینید چه تغییری باید بدم

var search = from p in db.tblReciveDocs
where p.date >= FDate && p.date <= EDate
from o in db.tbl_Customers
where p.customerID == o.id
orderby p.id
select new
{
p.id,
p.documentType,
p.customerType,
p.reciveDate,
p.state,
p.EditStatus,
o.lName,
cID = o.id,
o.marketName
};
کوری که توسط کاربر انتخاب میشه
ds = new Reports.dbDataSet();
Reports.dbDataSet.dtDocDataTable dt = (Reports.dbDataSet.dtDocDataTable)ds.dtDoc;
Reports.dbDataSet.tbldocHolder1DataTable dtItems = (Reports.dbDataSet.tbldocHolder1DataTable)ds.tbldo cHolder1;
دیتا ست و دیتا تیبلش
foreach (var item in search)
{
DataRow row = dt.NewRow();
row["ID"] = item.id;
row["Date"] = item.reciveDate;
row["dType"] = item.state;
row["dOwner"] = item.documentType;
row["cName"] = item.lName;
row["cID"] = item.cID;
row["mName"] = item.marketName;
dt.Rows.Add(row);
var fetch = db.tbldocHolders.Where(c=>c.fkID==item.id);
foreach (var items in fetch)
{
DataRow rowItems = dtItems.NewRow();
rowItems["PrID"] = items.id;
rowItems["Name"] = items.pName;
rowItems["Unit"] = items.unit;
rowItems["Number"] = items.value;
dtItems.Rows.Add(rowItems);
}
}
برا پر کردنش هم کد بالارو استفاده کدم
StiReport rpt = new StiReport();
rpt.Dictionary.Clear();
rpt.RegData(ds);
rpt.Dictionary.Synchronize();
rpt.Load("rpt/Report.mrt");
rpt.Compile();
اینم برا پاس کردن دیتا ست به فایل گزارش هستش

لطفا راهنماییم کنید لطفا راهنماییم کنید

fakhravari
سه شنبه 03 اردیبهشت 1392, 22:52 عصر
query که مهم نیست
طراحی فرمت بزار