Передача параметра для отчета в Report Viewer, проблема - PullRequest
0 голосов
/ 23 марта 2011

Ну, у меня есть таблица в моем Report.rdl, и я хочу генерировать ее динамически, как GridView

        Reports.dsReport ds = new dsReport();
        Reports.dsReportTableAdapters.sp_PaymentsTableAdapter daInformation =
            new dsReportTableAdapters.sp_PaymentsTableAdapter();
        try
        {               
            daInformation .Fill(ds.sp_Procedure
                                               , ID
                                               , Name
                                               , Number
                                               , startDate
                                               , endDate
                                               , payerID);
        }
        catch { }          

        DataTable dtPaymentInfo = ds.Tables["sp_Payments"];

        List<ReportParameter> parameters = new List<ReportParameter>();

        parameters.Add(new ReportParameter("PeriodStart", startDate.Value.ToString("yyyy-MM-dd HH:mm"));
        parameters.Add(new ReportParameter("PeriodEnd", endDate.Value.ToString("yyyy-MM-dd HH:mm"));

        foreach(DataTable item in dtPaymentInfo.Rows)
        {
            for(int i = 0; i < item.Rows.Count; i++)
            {
               int status =  (int)item.Rows[i][2];

               string paymentName;
               if(status == 0)
                  paymentName=status.ToString() + " EURO";                   
               if(status == 1)
                  paymentName=status.ToString() + " DOLLAR";  
               if(status == 2)
                  paymentName=status.ToString() + " Pound";    

            parameters.Add(new ReportParameter("PaymentName", paymentName);
            }

        }


        rpvPaymentInformation.LocalReport.SetParameters(parameters);

        ReportDataSource rds = new ReportDataSource();
        rds.Name = "DataSet1";
        rds.Value = dtPaymentInfo;

        rpvPaymentInformation.LocalReport.DataSources.Clear();
        rpvPaymentInformation.LocalReport.DataSources.Add(rds);
        rpvPaymentInformation.LocalReport.Refresh();

        rpvPaymentInformation.ShowReportBody = true;

Это CodeBehind страницы

И когда мой элемент управления Table генерирует некоторые данные, он заполняетсяс [status + "EURO"]

Но в статусе базы данных тоже есть значения 1, 2.

Как решить эту проблему?(

1 Ответ

0 голосов
/ 24 марта 2011

Пока неясно, что вы пытаетесь сделать, но я заметил, что вы добавляете параметр PaymentName в параметры отчета несколько раз. Я почти уверен, что вы просто указали первый или последний параметр, который вы добавили в отчет, а не все три.

Возможно, вы пытаетесь добавить несколько значений к параметру. Если это то, что вам нужно, то лучше включить ваш параметр в таблицу как часть источника данных отчета. Смотрите здесь, как использовать таблицу в качестве параметра с несколькими значениями: http://www.duttonsoftware.com/2008/09/25/easy-multi-value-parameters-in-sql-server-reporting-services/

...