報表參數的設定:
01.首先,在我的測試報表 MyReport.rdlc 的 Report Data 視窗中,選取 Parameters ,並執行 「Add Parameter」。
02.接著就會跳出 Report Parameter Properties 視窗。可以在 Name 裡面輸入我們的參數名字。我取名為: MyParam01 ,然後點選「OK」完成參數的設定。因為我想輸入兩個參數,所以再次重複剛剛的動作,並建立 MyParam02 這個參數。
之後在 Report Data 視窗就會呈現如下的畫面:
最後在 MyReport.rdlc 報表拉兩個 TextBox,並分別在他們的 Expression 內容裡,選擇 Parameter → MyParam01 或 MyParam02,如下圖所示。
參數的傳遞:
我們透過 ReportParameter 類別宣告了兩個變數:p_1 , p_2。分別用來存放剛剛在報表裡宣告的MyParam01 及 MyParam02 的對應資料。然後在我們的 ReportViewer 裡的 LocalReport,利用 SetParameters 屬性加入剛剛宣告的兩個變數即可完成參數的傳遞。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.ReportPath = Server.MapPath("MyReport.rdlc"); Microsoft.Reporting.WebForms.ReportParameter p_1 = new Microsoft.Reporting.WebForms.ReportParameter("MyParam01", "paladin"); Microsoft.Reporting.WebForms.ReportParameter p_2 = new Microsoft.Reporting.WebForms.ReportParameter("MyParam02", "jason"); ReportViewer1.LocalReport.SetParameters(new Microsoft.Reporting.WebForms.ReportParameter[] { p_1, p_2 }); ReportViewer1.LocalReport.Refresh(); } }
程式執行後的結果如下:
自己在練習的過程中發現,如果在參數傳遞的程式碼有寫錯,例如報表宣告了兩個參數,但 .cs 檔裡面參數傳遞程式只寫了一個,如此狀況在程式編譯時,並不會顯示錯誤,但你卻會得到完全空白的報表內容。意思是說,當你發現自己的報表內容完全空白時,應該好好檢查自己的程式是否哪裡寫錯了,參數多寫,或少寫了。
沒有留言:
張貼留言