+1 امتیاز

با سلام و خسته نباشی به شما دوستام

بنده دیتاگرید ویو ای دارم که اطلاعات درش قرار دارد حالا می خوام این اطلاعات مستقیم در استیمول سافت برای گزارش گیری بفرستم اما به روشی که انجام می دم ایراد می گره لطفا راهنمایی کنید .
 

 DataTable t = new DataTable();
t.Columns.Add("ردیف", typeof(string));
t.Columns.Add("شرح", typeof(string));
t.Columns.Add("مقدار", typeof(string));
t.Columns.Add("جمع کل", typeof(string));
foreach (DataGridViewRow dgv in dataGridViewX1.Rows)
{
    t.Rows.Add(dgv.Cells[0].Value, dgv.Cells[2].Value, dgv.Cells[3].Value, dgv.Cells[6].Value);

}

Stimulsoft.Report.StiReport st = new Stimulsoft.Report.StiReport();
st.Load("Report.mrt");
st.RegData(t);
stiReport1.ViewerControl.Report = st;
stiReport1.Render();

stiReport1.ViewerControl.Report.Show();

راستی میشه بدون ساختن دیتاست این اطلاعات رو در دیتا تیبل ذخیره کرد و فرستاد برای گزارش ممنون.

چه خطایی میده . عکسی از خطا رو قرار بدین
توسط (6,145 امتیاز) 5 11 116

2 پاسخ

+1 امتیاز
سلام

من معمولا برای گرفتن گزارش ، یه پروسیجر توی sql درست میکنم (اینطوری می تونی با استفاده از join کردن ، از چندتا جدول همزمان چند فیلد رو نشون بدی)

توی استیمول هم databand رو به این پروسیجر مرتبط می کنی !

به نظر بنده روش بهتریه !
+1 امتیاز

كد ها تون رو به اين شكل تغيير بدين :‌

 


 

     DataTable t = new DataTable();
    t.Columns.Add("row");
    t.Columns.Add("Detail" );
    t.Columns.Add("Money");
    t.Columns.Add("SumMoney");
    dataGridViewX1..DataSource = t;
      dataGridViewX1.Columns[0].HeaderText = "سطر";
             dataGridViewX1.Columns[1].HeaderText = "جزيئات";
           dataGridViewX1.Columns[2].HeaderText = "مبلغ";
            dataGridViewX1.Columns[3].HeaderText = "مبلغ كل";
    foreach (DataGridViewRow dgv in dataGridViewX1.Rows)
    {
    t.Rows.Add(dgv.Cells[0].Value, dgv.Cells[2].Value, dgv.Cells[3].Value, dgv.Cells[6].Value);


    }
     
    Stimulsoft.Report.StiReport st = new Stimulsoft.Report.StiReport();
    st.Load(Application.StartupPath + @"\Report.mrt");
    st.RegData(t);
  //  stiReport1.ViewerControl.Report = st;
  //  stiReport1.Render();
     
    stiReport1.ViewerControl.Report.Show();
     
يك ديتا تيبل بسازيد و حتما نام ستون ها كه به انگليسي هست با ديتا تيبل مثل هم باشه مسير لود شدن فرم رو هم بهش بدين مثل من كه تنظيم كردم داخل bin \debug

 

سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,923 کاربر

دسته بندی ها

...