.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析_.Net教程
推薦:.net中as和is之間的區(qū)別分析.net中as和is之間的區(qū)別分析,需要的朋友可以參考一下
當(dāng)我們?cè)谑褂肦DLC開發(fā)報(bào)表的時(shí)候,如果數(shù)據(jù)源內(nèi)容如下。private List<UserData> CreateDataSet()
{
List<UserData> userDataSet = new List<UserData>();
userDataSet.Add(new UserData() { Name = "Clark", Age = 18 });
userDataSet.Add(new UserData() { Name = "Yaya", Age = 15 });
return userDataSet;
}
我們可以很快速的使用RDLC里的數(shù)據(jù)表控件,來將數(shù)據(jù)呈現(xiàn)在報(bào)表上。

但是當(dāng)客戶要求下圖的報(bào)表,要將數(shù)據(jù)源內(nèi)容顯示在一行。RDLC處理這種需求就沒有那么簡(jiǎn)單,這是因?yàn)镽DLC沒有循環(huán)處理的函式可以使用。造成開發(fā)人員要組合數(shù)據(jù),必須使用隱藏列表、在外部組合字符串…等等迂回的方式建立報(bào)表內(nèi)容。但這樣的方式開發(fā),既沒有效率而且也有很多的限制。

這個(gè)問題困擾了我好幾天,昨晚睡到一半忽然有靈感�?梢允褂肦DLC里的Sum函式,來做數(shù)據(jù)循環(huán)的處理。
Sum函式會(huì)取得數(shù)據(jù)集中的每一筆資料,并且計(jì)算出全部數(shù)據(jù)的總和。我們可以將表達(dá)式寫為下列的函式,利用code.PushStringStack這個(gè)RDLC自定義函式,來讓Sum函式取得所有數(shù)據(jù)。這樣的寫法,就可以將數(shù)據(jù)集中的每一筆數(shù)據(jù)都交由code.PushString處理過一次。
=Sum(code.PushString(Fields!Name.Value, Fields!Age.Value), "UserDataSet")
接著看code.PushString這個(gè)RDLC自定義函式的內(nèi)部,使用了一個(gè)Static的字符串變量,來記錄每一筆數(shù)據(jù)處理之后的結(jié)果。到這邊開發(fā)人員應(yīng)該可以理解,這樣的方式就是在跑循環(huán)處理數(shù)據(jù)。
Public Shared _foreachResult As String = String.Empty
Public Shared Function PushString(userName As String, userAge As String) As Integer
_foreachResult += userName & "(" & userAge & "), "
Return 0
End Function
當(dāng)然啦,跑完循環(huán)處理完數(shù)據(jù),最終還是要將數(shù)據(jù)顯示在畫面上。這邊很簡(jiǎn)單的就是建立一個(gè)code.PopString回傳。
Public Shared Function PopString() As String
Return _foreachResult
End Function
并且將原本的表達(dá)式改寫成為:
=IIF(Sum(code.PushString(Fields!Name.Value, Fields!Age.Value), "UserDataSet") <> 0, "", code.PopString())
編譯并且執(zhí)行之后,就可以看到在RDLC的文本框里,已經(jīng)正確的顯示了客戶要求的數(shù)據(jù)格式。

范例程序 : RdlcForeachDataSample_jb51net點(diǎn)此下載。
分享:ASP.NET記錄錯(cuò)誤日志的實(shí)現(xiàn)方法在本文中,我們將通過一個(gè)簡(jiǎn)單的處理來記錄在我們的網(wǎng)站中的錯(cuò)誤和異常
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 談.NET 3.5 SP1 X64與HTTP Error 503
- 判斷WebBrowser瀏覽器網(wǎng)頁加載完成的處理方法
- C#使用Panel實(shí)現(xiàn)窗體動(dòng)態(tài)側(cè)邊欄
- 解讀.NET 2.0中Hashtable快速查找的方法
- 解析.Net編程接口剖析系列之比較和排序
- ASP.NET蔚昜璃唗蹈趙傖Binary揣湔祫DB or File
- 基于.NET平臺(tái)的分層架構(gòu)實(shí)戰(zhàn)(五)接口的設(shè)計(jì)與實(shí)現(xiàn)
- 新手入門之ASP.NET2.0中的緩存技術(shù)解析
- 如何用asp.net把Excel轉(zhuǎn)換為SQL Server
- asp.net里面的身份驗(yàn)證和授權(quán)
- 相關(guān)鏈接:
- 教程說明:
.Net教程-.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析
。