RDLC 報表 引數傳遞及主從報表

2022-07-23 18:15:20 字數 3862 閱讀 3513

今天繼續學習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

34usingsystem;

usingsystem.data;

usingmicrosoft.reporting.webforms;

namespacereportsample

}

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

10protectedvoidpage_load(objectsender, 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

usingsystem;

usingsystem.data;

usingmicrosoft.reporting.webforms;

namespacereportsample

}

voidlocalreport_subreportprocessing(objectsender, 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...