2011-03-23 54 views
-1

嗯,我有表在我Report.rdl,我想生成它dinamicly像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; 

這是頁面的代碼隱藏

而當我的表控制生成一些數據,它填充[狀態+「歐元」]

但在數據庫狀態也有1,2值。

我該如何解決這個問題? :(

+0

您能否改述問題的最後部分? y清楚問題是什麼。 – 2011-03-23 14:44:26

+0

問題是表控件顯示狀態字段的方式嗎?還是說你發送的參數包括導致問題的「美元」和「磅」值? – 2011-03-23 16:41:00

+0

@巴拉 - [R 以及在數據庫中的表有狀態字段int型的 和這裏的ASP頁面,它使用的ReportViewer要過濾這樣的 此狀態,如果狀態= 0,那麼肥大是狀態+「歐元」 案例狀態= 1狀態+「美元」 和最後如果狀態= 3狀態+「英鎊」 ,我想用報表參數,如果可能的話。 問題是在報告中只顯示狀態+「歐元」 但在表中也有狀態值爲1和2的值爲 ,並且必須顯示狀態+「美元」和狀態+「磅」,但它沒有,儘管我從數據表中檢索這樣的值(1或2) – west 2011-03-24 09:29:36

回答

0

它仍然很不清楚你想做什麼,但我注意到你多次添加參數PaymentName到報告參數。我很確定你只是結束了第一個或最後一個您添加到報告中的參數並非全部三個參數

您可能正在嘗試將多個值添加到參數中如果這是您想要的,那麼您最好將參數包括在表格作爲報表數據源的一部分請參閱這裏瞭解如何使用表格作爲多值參數:http://www.duttonsoftware.com/2008/09/25/easy-multi-value-parameters-in-sql-server-reporting-services/