+1 امتیاز
سلام
چطور می تونم یه دیتاتیبل رو به ساب ریپورت بفرستم؟

3 پاسخ

0 امتیاز
سلام

منظورتون از ديتا تيبل اطلاعات جدول هست يا تيبلي كه خودتون با كد نويسي آوردينش ؟

اطلاعات دیتاگریدویو رو داخل دیتاتیبل می ریزم و هیچ ارتباطی هم با بانک اطلاعاتی نداره چون کاربر اونارو وارد می کنه.

            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("dt", dt2);
            stiReport1.RegData("dtdt1", dt3);
            stiReport1.Show();

اطلاعات رو نمیاره.

stiReport1.RegData("dtdt1", dt3);

برای اطلاعات ساب ریپورت هستش.

وقتی اینجوری می نویسیم اطلاعات جدول گزارش اولی رو هم نمیاره و اگر

stiReport1.RegData("dtdt1", dt3);

رو پاک کنم اطلاعات جدول گزارش اولی رو میاره.

توسط (103 امتیاز) 1 1 3
+1 امتیاز
/////name
if (t1.Text.Trim() != "" && t2.Text.Trim() == "")
{

	string ss = "SELECT date, fname,  nf, ef, hf, azk, azo, t2, t3,  FROM   sabt WHERE (date = N'" + t1.Text.Trim() + "')";

	SqlConnection sco12 = new SqlConnection();
	Properties.Settings set12 = new naghsheh.Properties.Settings();
	sco12.ConnectionString = set12.naghConnectionString;
	SqlCommand scom12 = new SqlCommand();
	scom12.CommandText = ss;
	scom12.Connection = sco12;
	SqlDataAdapter sda12 = new SqlDataAdapter();
	sda12.SelectCommand = scom12;
	sco12.Open();
	DataTable dt1 = new DataTable();
	sda12.Fill(dt1);
	if (dt1.Rows.Count > 0)
	{



		spor();
		stiReport1.Load("report1.mrt");
		stiReport1.RegData("ar17", dt1);
		
		stiReport1.Show();



	}
	else
	{
		MessageBox.Show("بر اساس اطلاعات وارد شده مقداری در بانک پیدا نشد", " توجه", MessageBoxButtons.OK, MessageBoxIcon.Information);

	}

}

 

شما یه دیتاتیبل بهش دادید.

حالا دومی رو چجوری می تونم بهش بدم؟

اینم بگم که اصلاً با بانک اطلاعاتی کاری ندارم.
توسط (103 امتیاز) 1 1 3
اگه جایی رو متوجه نشدید بگید تا توضیح بدم.
توسط (103 امتیاز) 1 1 3
+1 امتیاز

سلام

كد كلي فرمي كه طراحي كردم به اين شكل هست عكس ها رو هم ضميمه كردم اميدوارم مشكلتون برطرف بشه:

   private void Stimul_Soft_Load(object sender, EventArgs e)
        {
           
           // dataGridViewStimul.DataSource = DataContext.Table_Telephones;
            DataTable dt2 = new DataTable();
            dt2.Columns.Add("Column1");
            dt2.Columns.Add("Column2");

            for (int i = 0; i < dataGridViewStimul1.Rows.Count ; i++)
            {
                dt2.Rows.Add(dataGridViewStimul1.Rows[i].Cells[0].Value, dataGridViewStimul1.Rows[i].Cells[1].Value);
            }
            DataTable dt3 = new DataTable();
            dt3.Columns.Add("Column3");
            dt3.Columns.Add("Column4");
            for (int j = 0; j < dataGridViewStimul1.Rows.Count; j++)
            {
                dt3.Rows.Add(dataGridViewStimul1.Rows[j].Cells[0].Value, dataGridViewStimul1.Rows[j].Cells[1].Value);
            }
      
            dataGridViewStimul1.DataSource = dt2;
            dataGridViewStimul2.DataSource = dt3;
        }
private void btn_Print_Click(object sender, EventArgs e)
        {
           
           
            DataTable dt = (DataTable) dataGridViewStimul1.DataSource;
             DataTable dt1 =(DataTable)dataGridViewStimul2.DataSource;
            
            if (dt != null||dt1!=null)
            {
                if (dt.Rows.Count > 0 || dt1.Rows.Count > 0)
                {
                    DataSet Ds = new DataSet();
                    Ds.Tables.Add(dt);
                    Ds.Tables.Add(dt1);
                    stiReport1.Load(Application.StartupPath + @"\Report.mrt");
                    stiReport1.RegData(dt);
                    stiReport1.RegData(dt1);
                  // stiReport1.Design();
                    stiReport1.Show();
                }

               

                }
              
            }
          

در كل :

يك بار قبل از پرينت نهايي بايد طراحي رو انجام بديم .

دستور:

stiReport1.Design(); 

در دفعات بعدي انجام پرينت غير فعالش كردم مي تونيد كد ها رو ببينيد .

 

 

توسط (607 امتیاز) 1 5 29
اگر به جواب رسيديد تيك پاسخ  رو بزنيد با تشكر .
توسط (607 امتیاز) 1 5 29
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...