主頁(yè) > 知識(shí)庫(kù) > .NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析

.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析

熱門(mén)標(biāo)簽:地圖標(biāo)注和認(rèn)領(lǐng) 萊蕪?fù)夂綦婁N(xiāo)機(jī)器人價(jià)格 五常地圖標(biāo)注 智能電話營(yíng)銷(xiāo)外呼系統(tǒng) 凱立德導(dǎo)航官網(wǎng)地圖標(biāo)注 鄭州400電話辦理 聯(lián)通 電銷(xiāo)語(yǔ)音自動(dòng)機(jī)器人 長(zhǎng)春呼叫中心外呼系統(tǒng)哪家好 戶外地圖標(biāo)注軟件手機(jī)哪個(gè)好用
當(dāng)我們?cè)谑褂肦DLC開(kāi)發(fā)報(bào)表的時(shí)候,如果數(shù)據(jù)源內(nèi)容如下。
復(fù)制代碼 代碼如下:

private ListUserData> CreateDataSet()
{
    ListUserData> userDataSet = new ListUserData>();
    userDataSet.Add(new UserData() { Name = "Clark", Age = 18 });
    userDataSet.Add(new UserData() { Name = "Yaya", Age = 15 });
    return userDataSet;
}

我們可以很快速的使用RDLC里的數(shù)據(jù)表控件,來(lái)將數(shù)據(jù)呈現(xiàn)在報(bào)表上。

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

這個(gè)問(wèn)題困擾了我好幾天,昨晚睡到一半忽然有靈感??梢允褂肦DLC里的Sum函式,來(lái)做數(shù)據(jù)循環(huán)的處理。

Sum函式會(huì)取得數(shù)據(jù)集中的每一筆資料,并且計(jì)算出全部數(shù)據(jù)的總和。我們可以將表達(dá)式寫(xiě)為下列的函式,利用code.PushStringStack這個(gè)RDLC自定義函式,來(lái)讓Sum函式取得所有數(shù)據(jù)。這樣的寫(xiě)法,就可以將數(shù)據(jù)集中的每一筆數(shù)據(jù)都交由code.PushString處理過(guò)一次。

復(fù)制代碼 代碼如下:

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

接著看code.PushString這個(gè)RDLC自定義函式的內(nèi)部,使用了一個(gè)Static的字符串變量,來(lái)記錄每一筆數(shù)據(jù)處理之后的結(jié)果。到這邊開(kāi)發(fā)人員應(yīng)該可以理解,這樣的方式就是在跑循環(huán)處理數(shù)據(jù)。
復(fù)制代碼 代碼如下:

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ù)顯示在畫(huà)面上。這邊很簡(jiǎn)單的就是建立一個(gè)code.PopString回傳。
復(fù)制代碼 代碼如下:

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

并且將原本的表達(dá)式改寫(xiě)成為:
復(fù)制代碼 代碼如下:

=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中for和do循環(huán)語(yǔ)句用法分享
  • asp.net使用for循環(huán)實(shí)現(xiàn)Datalist的分列顯示功能
  • asp.net for循環(huán)語(yǔ)句
  • ASP.NET MVC5網(wǎng)站開(kāi)發(fā)之業(yè)務(wù)邏輯層的架構(gòu)和基本功能 (四)
  • ASP.NET MVC5 網(wǎng)站開(kāi)發(fā)框架模型、數(shù)據(jù)存儲(chǔ)、業(yè)務(wù)邏輯(三)
  • asp.net運(yùn)算符之邏輯運(yùn)算符以及其他運(yùn)算符介紹與實(shí)例
  • 詳解.net循環(huán)、邏輯語(yǔ)句塊(基礎(chǔ)知識(shí))

標(biāo)簽:紅河 宣城 西寧 福州 岳陽(yáng) 衢州 西藏 湖州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析》,本文關(guān)鍵詞  .NET,中,RDLC,循環(huán),處理,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章