PDA

View Full Version : سوال: وصل کردن ساب ریپورت به ریپورت اصلی در استیمول سافت



forodo
سه شنبه 18 شهریور 1393, 16:54 عصر
سلام
من یه ساب ریپورت دارم که نمی دونم چطور باید اطلاعات رو داخلش بریزم. یعنی از regdate که استفاده می کنم خوب جای استفاده از یک دیتاتیبل رو دارم.
الان چطوری می تونم اون dt3 رو بفرستم برای ساب ریپورتم؟
DataTable dt2 = new DataTable();
dt2.Columns.Add("Column1");
dt2.Columns.Add("Column2");
for (int i = 0; i < dataGridView2.Rows.Count - 1; i++)
{
dt2.Rows.Add(dataGridView2.Rows[i].Cells[0].Value, dataGridView2.Rows[i].Cells[1].Value);
}

DataTable dt3 = new DataTable();
dt3.Columns.Add("Column3");
dt3.Columns.Add("Column4");
for (int j = 0; j < dataGridView3.Rows.Count - 1; j++)
{
dt3.Rows.Add(dataGridView3.Rows[j].Cells[0].Value, dataGridView3.Rows[j].Cells[1].Value);
}

stiReport1.Load(@"Report.mrt");
//stiReport1.RegData("dtdt1", dt3);
stiReport1.RegData("dt1", dt2);

stiReport1.Show();

forodo
سه شنبه 18 شهریور 1393, 22:33 عصر
در اصل اطلاعات ساب ریپورت رو به من نشون نمی ده.
اطلاعات هیچ ربطی به بانک ندارند و همه دستی توسط کاربر وارد می شوند.
با کد زیر که اطلاعات یه دیتاگریدویو رو داخل دیتاتیبل می ریزم:


1
2
3
4
5
6
7
8

DataTable dt2 = new DataTable();
dt2.Columns.Add("Column1");
dt2.Columns.Add("Column2");
for (int i = 0; i < dataGridView2.Rows.Count - 1; i++)
{
dt2.Rows.Add(dataGridView2.Rows[i].Cells[0].Value, dataGridView2.Rows[i].Cells[1].Value);
}







با کدهای زیر هم که ریپورت رو فراخوانی می کنم و اون دیتاتیبل رو می دم بهش و نشون می دم:


1
2
3
4
5
6

stiReport1.Load(@"Report.mrt");

stiReport1.RegData("dt1", dt2);

stiReport1.Show();







حالا یه ساب ریپورت توی ریپورت اصلی قرار دادم که می خوام اطلاعات داخل اون رو با دیتاتیبلی که یه دیتاگریدویوی دیگه داخلش میریزم پر کنم:


1
2
3
4
5
6
7
8

DataTable dt3 = new DataTable();
dt3.Columns.Add("Column3");
dt3.Columns.Add("Column4");
for (int j = 0; j < dataGridView3.Rows.Count - 1; j++)
{
dt3.Rows.Add(dataGridView3.Rows[j].Cells[0].Value, dataGridView3.Rows[j].Cells[1].Value);
}







http://8pic.ir/images/l6mbg9qtel2pzr3y6vts.png
حالا می خوام اون دیتاتیبل دومی ( dt3 ) رو بدم به dtdt1 که مربوط به ساب ریپورت هستش.
ولی نمی دونم با چه کدی این کار رو انجام بدم.
از این استفاده می کنم ولی اروره زیر رو می ده:


1

stiReport1.SubReports[0].RegData("dtdt1", dt3);









http://8pic.ir/images/psuv538jkol9a1z76mze.png

fakhravari
چهارشنبه 19 شهریور 1393, 10:22 صبح
DataSet ds = new DataSet(); ds.ReadXml("1.xml");
DataTable DataSource1 = ds.Tables[0];
DataTable DataSource2 = ds.Tables[0];


StiReport report = new StiReport();
report.Load("1.mrt");
report.RegData("DataSource1", DataSource1);
report.RegData("DataSource2", DataSource2);


report.Show();


بایند کردن SubReport مثل جدول هست .
SubReport فقط جهت نمایش

forodo
چهارشنبه 19 شهریور 1393, 15:00 عصر
پس چرا واسه من که همینو نوشتم جواب نمیده.
لطف می کنید یه نگاه به این بندازید.
نمی دونم چرا حجمش انقدر زیاد بود. مجبور شدم چند پارتش کنم.