麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

RDLC報表中使用自定義函數(shù)

2023-05-17 11:41:59
字體:
供稿:網(wǎng)友

在RDLC中,可以使用自定義方法來擴充報表功能。比如常見的,把數(shù)字轉(zhuǎn)換為大寫中文的需求。按如下方法操作。

1、在報表空白處先一點,確保沒點中任何報表對象。然后點擊菜單欄上的“報表”。

選“報表屬性”,在彈出的小窗口上,切換到“代碼”標簽頁。

在文本框內(nèi)輸入你的函數(shù),我們這里輸入了一個CNMoney函數(shù)。

注意:

(1)嵌入代碼中的方法必須以 Microsoft Visual Basic 語法進行編寫

(2)代碼塊可以包含多個方法。

(3)無法向函數(shù)傳遞數(shù)據(jù)值集,不支持自定義聚合。一般用于簡單數(shù)據(jù)類型。

(4)此方法可在該報表中多次使用,但是不能脫離報表使用。即不能在報表中共享這一函數(shù)。

 其他報表中要用到該方法,需在報表中創(chuàng)建同樣的代碼段。

2、在報表上拖一個文本框,在上面點右鍵,選“表達式”,在彈出的表達式界面上,輸入

code.CNMoney(16)

注意:以code+.+函數(shù)名稱的方式引用之前定義的方法

下圖為操作流程示意

下面為文中用到的函數(shù)體,可在項目中實際使用。

  1. '#############################################################################     
  2. '貨幣轉(zhuǎn)換為中文漢字表述     
  3. '     
  4. '函數(shù)名稱:CNMoney     
  5. '參數(shù):ls     
  6. '返回值:轉(zhuǎn)換后的字符串     
  7. '     
  8. '整理人:阿泰     
  9. '版本歷史     
  10. '2010-04-20:首次編譯,修正0參數(shù),修正小于10的值不能正常顯示的BUG     
  11. '     
  12. '本文函數(shù)來源于 feng442624978,原帖地址:     
  13. 'http://topic.csdn.net/u/20100303/15/0f0ceca7-d29d-4269-b0f5-17ea09d0f139.html     
  14. '#############################################################################     
  15.      
  16. Shared Function CNMoney(ls As LongAs String     
  17.     Dim dx_sz As String     
  18.     Dim dx_dw As String     
  19.     Dim str_int As String     
  20.     Dim str_dec As String     
  21.     Dim dx_str As String     
  22.     Dim fu As String     
  23.     Dim a As String     
  24.     Dim b As String     
  25.     Dim c As String     
  26.     Dim d As String     
  27.     Dim b2 As String     
  28.     Dim num_int As Long    
  29.     Dim num_dec As Long    
  30.     Dim len_int As Long    
  31.     Dim i As Long    
  32.     Dim a_int As Long    
  33.     Dim pp As Long    
  34.      
  35.     dx_sz = "零壹貳叁肆伍陸柒捌玖"     
  36.     dx_dw = "萬仟佰拾億仟佰拾萬仟佰拾圓"     
  37.          
  38.     If ls = 0 Then     
  39.         CNMoney = "零圓整"     
  40.         Exit Function     
  41.     End If     
  42.          
  43.     If ls < 0 Then     
  44.         ls = Abs(ls)     
  45.         fu = "負"     
  46.     Else     
  47.         fu = ""     
  48.     End If     
  49.      
  50.     dx_str = CStr(ls)     
  51.     dx_str = Replace(dx_str, "¥""")     
  52.     dx_str = Replace(dx_str, ",""")     
  53.     If (ls >= 0) And (ls < 1) Then dx_str = "0" + dx_str     
  54.          
  55.     pp = InStr(dx_str, ".")     
  56.     If pp > 0 Then     
  57.         str_int = Mid(dx_str, 1, InStr(dx_str, ".") - 1)     
  58.     Else     
  59.         str_int = dx_str     
  60.     End If     
  61.      
  62.     num_int = CLng(str_int)     
  63.      
  64.     If (ls > 0) And (ls < 1) Then     
  65.         num_dec = ls * 100     
  66.     Else     
  67.         num_dec = (ls - num_int) * 100     
  68.     End If     
  69.      
  70.     str_dec = CStr(num_dec)     
  71.     str_dec = Replace(str_dec, "¥""")     
  72.      
  73.     len_int = Len(str_int)     
  74.     dx_str = ""     
  75.     For i = 1 To len_int     
  76.         a = Mid(str_int, i, 1)     
  77.         a_int = CLng(a)     
  78.         b = Mid(dx_sz, (a_int + 1), 1)     
  79.         c = Mid(dx_dw, (13 - len_int + i), 1)     
  80.         If dx_str <> "" Then     
  81.             d = Mid(dx_str, Len(dx_str) - 1, 1)     
  82.         Else     
  83.             d = ""     
  84.         End If     
  85.         If (b = "零"And ((d = "零"Or (b = b2) Or (c = "圓"Or (c = "萬"Or (c = "億")) Then b = ""     
  86.         If (a = "0"And (c <> "圓"And (c <> "萬"And (c <> "億"Then c = ""     
  87.         If ((c = "圓"Or (c = "萬"Or (c = "億")) And (d = "零"And (a = "0"Then     
  88.             dx_str = Mid(dx_str, 1, Len(dx_str) - 2)     
  89.             d = Mid(dx_str, Len(dx_str) - 1, 2)     
  90.             If ((c = "圓"And (d = "萬")) Or ((c = "萬"And (d = "億")) Then c = ""     
  91.         End If     
  92.         dx_str = dx_str + b + c     
  93.         b2 = b     
  94.     Next i     
  95.      
  96.     '處理金額小于1的情況     
  97.     If Len(dx_str) < 2 Then dx_str = ""     
  98.     If (num_dec < 10) And (ls > 0) Then     
  99.         a_int = CLng(str_dec)     
  100.         b = Mid(dx_sz, (a_int + 1), 1)     
  101.         If num_dec = 0 Then dx_str = dx_str + "整"     
  102.         If num_dec > 0 Then dx_str = dx_str + "零" + b + "分"     
  103.     End If     
  104.     If num_dec >= 10 Then     
  105.         a_int = CLng(Mid(str_dec, 1, 1))     
  106.         a = Mid(dx_sz, (a_int + 1), 1)     
  107.         a_int = CLng(Mid(str_dec, 2, 1))     
  108.         b = Mid(dx_sz, (a_int + 1), 1)     
  109.         If a <> "零" Then a = a + "角"     
  110.         If b <> "零" Then b = b + "分" Else b = ""     
  111.         dx_str = dx_str + a + b     
  112.     End If     
  113.              
  114.     dx_str = fu + dx_str     
  115.      
  116.     dx_str = Replace(dx_str, "零億""億")     
  117.     dx_str = Replace(dx_str, "零萬""萬")     
  118.     dx_str = Replace(dx_str, "零千""千")     
  119.     dx_str = Replace(dx_str, "零圓""圓")     
  120.      
  121.      
  122.     CNMoney = dx_str     
  123. End Function    

如果函數(shù)有錯誤,在編譯時會出現(xiàn)類似的提示信息

可根據(jù)提示進行修正

注:本文為在報表中使用自定義函數(shù)的方法之一,之后有時間補充其他方法。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久久久久一区二区三区 | 久久久久久久久久久久久久国产 | 九一成人 | 国产精品视频二区不卡 | av在线收看 | 国产成人av免费观看 | 精品亚洲网站 | 国产精品成aⅴ人片在线观看 | 免费一级肉体全黄毛片 | 天天夜夜操操 | 免费国产羞羞网站视频 | 久久草草亚洲蜜桃臀 | 国产噜噜噜噜久久久久久久久 | 日本在线精品视频 | 国产精品区一区二区三区 | 毛片在线免费视频 | 黄色毛片免费视频 | 91一区二区三区久久久久国产乱 | 久久艳片 | 国产视频软件在线 | 一级电影在线免费观看 | 日韩午夜片 | 免费黄色入口 | 精品国产看高清国产毛片 | 欧产日产国产精品v | 欧美成人精品一区二区三区 | 国产精品视频免费网站 | 久久精品亚洲欧美日韩精品中文字幕 | 久草欧美 | 久久久一区二区三区精品 | 成人免费看片a | 日日操夜夜操视频 | 精品黑人一区二区三区国语馆 | 国产精品18久久久久久久久 | 免费国产a | 久久区二区 | av成人在线电影 | 国产亚洲精品久久午夜玫瑰园 | 国产91免费看| 欧美日韩亚洲国产 | 黄色片免费在线 |