今天繼續學習rdlc報表的「引數傳遞」及「主從報表」
一、先建立dataset,如下圖:
二、建立乙個報表rptdept.rdlc,顯示部門t_dpet的資料
三、嵌入default.aspx中,寫在default.aspx.cs中寫些基本**
+ view code?1
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
34using
system;
using
system.data;
using
microsoft.reporting.webforms;
namespace
reportsample
}
datatable getdeptdata()
}
}
執行效果:
ok,下面才是真正開始:
很多情況下(比如團隊開發),報表的資料來源datatable通常是由其它人寫好的,有些甚至不允許再做修改,報表開發人員只能被動的接收資料,但是報表上未必需要顯示全部資料,以上面的報表為例,如果我們只需要顯示"02技術部「的資料,如何處理?
這時報表引數就派上用場了:
四、新增報表引數
在report data面板中,選中parameters,右擊-->add parameter
為引數取名為deptno,並做一些設定,如下圖
五、為報表的table新增filters條件
上一步新增的引數需要與報表上的table建立聯絡,否則發揮不了作用。幸好每個table都可以設定filters表示式,來對資料進行篩選,見下圖:
六、在cs**中動態傳入引數
修改default.aspx.cs的**,在執行時動態新增引數
+ view code?1
2345
6789
10protected
void
page_load(
object
sender, eventargs e)
}
最終執行結果:
很多報表中,資料的**往往不止乙個datatable,下面我們模擬乙個簡單的主從報表,主報表即為上面的rptdept(顯示部門資訊),子報表(也稱從報表)顯示部門下的員工清單(命名為rptemp.rdlc)
七、建立員工報表rptemp.rdlc
布局如下:
同樣,我們也為子報表新增乙個引數deptno,同時還要為子報表的table設定filters條件(條件的值在本例中跟主報表相同,同樣都是deptno=@deptno)
八、在rptdept.rdlc中插入子報表rptemp.rdlc
子報表控制項允許在乙個報表中再插入另乙個報表,如下圖:
然後在子報表上右擊,調出子報表屬性
設定載入哪個子報表
同時增加乙個子報表引數
注:這裡增加乙個跟主報表同名的引數deptno,同時設定其值為主報表rptdept的引數@deptno
九、修改default.aspx.cs**
+ view code?1
2345
6789
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
3839
4041
4243
4445
4647
4849
5051
5253
5455
5657
5859
using
system;
using
system.data;
using
microsoft.reporting.webforms;
namespace
reportsample
}
void
localreport_subreportprocessing(
object
sender, subreportprocessingeventargs e)
datatable getdeptdata()
datatable getempdata()
}
}
最終執行效果:
想想發生了什麼?
主報表rptdept與子報表rptemp設定了相同的引數以及過濾條件,**給主報表rptdept傳遞了引數deptno後,主報表rptdept又把引數值傳遞給子報表rptemp,最終二個報表都實現了資料篩選.
使用RDLC報表向報表傳入引數
在使用報表向客戶展示結果資料時,實時的在報表中顯示某些特定的資料是必需的,如 顯示的部門 列印的日期等。本文只簡單的演示向報表內傳入乙個字元值。如有其它問題,歡迎討論。1 新建乙個工程testreport,乙個form窗體,放入乙個textbox 乙個button按鈕,再放入乙個reportview...
使用RDLC報表 三 向RDLC報表傳入引數
在使用報表向客戶展示結果資料時,實時的在報表中顯示某些特定的資料是必需的,如 顯示的部門 列印的日期等。本文只簡單的演示向報表內傳入乙個字元值。如有其它問題,歡迎討論。1 新建乙個工程testreport,乙個form窗體,放入乙個textbox 乙個button按鈕,再放入乙個reportview...
報表引數傳遞
code 多個引數傳遞 private reportparameter p null 成績報表 protected void btngraderpt click object sender,eventargs e else private reportparameter getparams data...