بهترین کار اینه که با یه متد ستونها و ردیفهای موجود در دیتا گرید رو بریزین داخل یه دیتاتیبل البته اون کدی که شما گذاشتین درسته اما ناقصه
اینطوری :
DataTable table = new DataTable("DGV_SelectedRows");
foreach (DataGridViewColumn column in dataGridView1.Columns)
table.Columns.Add(column.Name, typeof(string));
for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
{
table.Rows.Add();
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
table.Rows[i][j] = dataGridView1[j, i].Value;
}
}
خوب الان دیتا تیبل آماده شده و منتظره تا بره به سمت گزارش در این حال لازم نیست توی فایل گزارش منبع داده تعریف کرده باشین
فقط یه فایل ساده بدون اطلاعات در پوشه root پروژه ذخیره کنین و در ادامه اون فایل رو از طریق کد نویسی معرفی کنین و دیتا تیبل موجود رو براش اختصاص بدین
اینطوری
DataSet Ds = new DataSet();
Ds.Tables.Add(table);
Stimulsoft.Report.StiReport stiReport1 = new Stimulsoft.Report.StiReport();
stiReport1.Load(System.Windows.Forms.Application.S tartupPath + @"\TestReport.mrt");
stiReport1.RegData(table);
تا این مرحله مشکل پاس دادن حل شده و باستی بتونین به محیط دیزاین گزارش دست پیدا کنین تا تیبل ارسال شده و فیلدهای موجودش رو
در فرم گزارش جا بدین به این منظور این یه خط رو هم به دستوراتتون اضافه کنین :
stiReport1.Design();
البته اگه کارتون با طراحی گزارش تموم شد می تونین بعدا این یه خط رو بردارین یا کامنت کنین
ودر خاتمه یه خط کد کافی است تا گزارش نشون داده بشه
اینطوری :
stiReport1.Show();
به طور کلی همه دستورات دکمه گزارشتون به این صورت در می آد :
private void button2_Click(object sender, EventArgs e)
{
DataTable table = new DataTable("DGV_Rows");
foreach (DataGridViewColumn column in dataGridView1.Columns)
table.Columns.Add(column.Name, typeof(string));
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
table.Rows.Add();
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
table.Rows[i][j] = dataGridView1[j, i].Value;
}
}
DataSet Ds = new DataSet();
Ds.Tables.Add(table);
Stimulsoft.Report.StiReport stiReport1 = new Stimulsoft.Report.StiReport();
stiReport1.Load(System.Windows.Forms.Application.S tartupPath + @"\TestReport.mrt");
stiReport1.RegData(table);
stiReport1.Design();
stiReport1.Show();
}