Как передать параметр и источник данных в отчет rdlc одновременно - PullRequest
0 голосов
/ 26 декабря 2018
    private void Test_Load(object sender, EventArgs e)
    {
        try
        {

            string sql = "[companyid]   ,[companyname] ,[Shopid]   ,[shopname],[shopaddress],[shopphone],[fax], [footermsg],[footermsg_ar] FROM [shop] Where id  = '1' ";
            DataAccess.ExecuteSQL(sql);
            DataTable dt = DataAccess.GetDataTable(sql);
            ReportDataSource reportDSDetail = new ReportDataSource("DataSet1", dt);

            string sqli = "SELECT [logo] FROM [logo] Where id= '1' ";
            DataAccess.ExecuteSQL(sql);
            DataTable dts = DataAccess.GetDataTable(sql);
            string path = Application.StartupPath + @"\LOGO\";
            string imagePath = path + dts.Rows[0].ItemArray[0].ToString();
            ReportParameter pImageUrl = new ReportParameter("pName", "file://" + imagePath, true);
            this.reportViewer1.LocalReport.ReportPath =path+@"Rep.rdlc";
            this.reportViewer1.LocalReport.EnableExternalImages = true;
            this.reportViewer1.LocalReport.SetParameters(new ReportParameter[] { pImageUrl });
            this.reportViewer1.LocalReport.DataSources.Add(reportDSDetail);
            this.reportViewer1.RefreshReport();

        }
        catch (Exception ex)
        {
            MessageBox.Show("Exception=" + ex);
        }
    }

В отчете RDLC я сделал параметр с именем pName, связался с образом и настроил внешний.Мне нужно получить как параметр, так и источник данных в отчете, я пробовал много способов, но не получилось.Пожалуйста, помогите мне решить эту проблему, чтобы получить оба параметра, а также источник данных в отчете RDLC

1 Ответ

0 голосов
/ 26 декабря 2018

сначала вам нужно перейти к Report Data и добавить Parameters вот так

enter image description here

после добавления параметров Right Click on textbox, в котором вы хотите показать, что parameters -> Click Expression и добавить Expression вот так

enter image description here

, где Showdt это parameter имя

и code behind pass data source и parameters вместе, как это

ReportDataSource rds = new ReportDataSource();//pass Your Datasource
ReportViewer1.LocalReport.DataSources.Clear();
ReportParameter p1 = new ReportParameter("Showdt", "Date : " + DateTime.Now.ToShortDateString());
//you can add multiple parameter like this
this.ReportViewer1.LocalReport.SetParameters(new ReportParameter[]{p1}); 
 ReportViewer1.LocalReport.DataSources.Add(rds);
 ReportViewer1.LocalReport.Refresh(); 

Вы можете проверить это

...