国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET中RDLC循環處理數據的應用分析_.Net教程

2024-07-10 12:52:31
字體:
來源:轉載
供稿:網友

推薦:.net中as和is之間的區別分析
.net中as和is之間的區別分析,需要的朋友可以參考一下

當我們在使用RDLC開發報表的時候,如果數據源內容如下。
復制代碼 代碼如下:www.CuoXIn.com

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里的數據表控件,來將數據呈現在報表上。

但是當客戶要求下圖的報表,要將數據源內容顯示在一行。RDLC處理這種需求就沒有那么簡單,這是因為RDLC沒有循環處理的函式可以使用。造成開發人員要組合數據,必須使用隱藏列表、在外部組合字符串…等等迂回的方式建立報表內容。但這樣的方式開發,既沒有效率而且也有很多的限制。

這個問題困擾了我好幾天,昨晚睡到一半忽然有靈感。可以使用RDLC里的Sum函式,來做數據循環的處理。

Sum函式會取得數據集中的每一筆資料,并且計算出全部數據的總和。我們可以將表達式寫為下列的函式,利用code.PushStringStack這個RDLC自定義函式,來讓Sum函式取得所有數據。這樣的寫法,就可以將數據集中的每一筆數據都交由code.PushString處理過一次。

復制代碼 代碼如下:www.CuoXIn.com

=Sum(code.PushString(Fields!Name.Value, Fields!Age.Value), "UserDataSet")

接著看code.PushString這個RDLC自定義函式的內部,使用了一個Static的字符串變量,來記錄每一筆數據處理之后的結果。到這邊開發人員應該可以理解,這樣的方式就是在跑循環處理數據。
復制代碼 代碼如下:www.CuoXIn.com

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

當然啦,跑完循環處理完數據,最終還是要將數據顯示在畫面上。這邊很簡單的就是建立一個code.PopString回傳。
復制代碼 代碼如下:www.CuoXIn.com

Public Shared Function PopString() As String
Return _foreachResult
End Function

并且將原本的表達式改寫成為:
復制代碼 代碼如下:www.CuoXIn.com

=IIF(Sum(code.PushString(Fields!Name.Value, Fields!Age.Value), "UserDataSet") <> 0, "", code.PopString())

編譯并且執行之后,就可以看到在RDLC的文本框里,已經正確的顯示了客戶要求的數據格式。

范例程序 : RdlcForeachDataSample_jb51net點此下載。

分享:ASP.NET記錄錯誤日志的實現方法
在本文中,我們將通過一個簡單的處理來記錄在我們的網站中的錯誤和異常

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台州市| 石棉县| 巴东县| 钟祥市| 阳江市| 新野县| 依兰县| 松原市| 巴塘县| 大冶市| 通化市| 安义县| 江永县| 旺苍县| 黎平县| 大英县| 周宁县| 西宁市| 资溪县| 巍山| 孟津县| 永城市| 尼勒克县| 肇庆市| 轮台县| 邵武市| 诏安县| 沾化县| 西和县| 兰州市| 西乌| 嘉兴市| 保定市| 大石桥市| 旺苍县| 信丰县| 福贡县| 义马市| 杂多县| 平安县| 千阳县|