版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LOW584710047/article/details/35261193
在.net平台的rdlc中,可以使用自定义方法来扩充报表功能,比如常见的 ”把数字转换为大写中文“
网上找了很久发现这篇不错 原文
后来细心测试发现存在一个bug,原文也有人评论有bug,可是原作者一直没更正代码
研究了一下代码,自行修改如下:直接上代码(用 vb 写的,红色部分为修改代码)
Function CNMoney(money As Double) As String
Dim str_Money = money.ToString()
Dim str_China As [String]() = {"分", "角", "元", "拾", "佰", "仟", _
"万", "拾", "佰", "仟", "亿", "拾", _
"佰", "仟", "兆", "拾", "佰", "仟"}
Dim str_Number As [String]() = {"零", "壹", "贰", "叁", "肆", "伍", _
"陆", "柒", "捌", "玖"}
Dim M As [String] = ""
Dim mark As Integer
''不正常数据
If InStr(Right(str_Money, 2), ".") > 0 Then
mark = 0
Else
mark = 1
End If
Dim isPoint As Boolean = False
If str_Money.IndexOf(".") <> -1 Then
str_Money = str_Money.Remove(str_Money.IndexOf("."), 1)
isPoint = True
End If
For i As Integer = str_Money.Length To 1 Step -1
Dim MyData As Integer = Convert.ToInt16(str_Money(str_Money.Length - i).ToString())
M += str_Number(MyData)
If isPoint = True Then
M += str_China(i - mark)
Else
M += str_China(i + 1)
End If
Next
Return M
End Function
————————————————
版权声明:本文为CSDN博主「继续去踢波」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LOW584710047/article/details/35261193
RDLC报表金额数字转大写
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shanshan2099/article/details/90269229
1.在报表空白处先一点,右键选“报表属性”,在弹出的小窗口上,切换到“代码”标签页。在文本框内输入函数,我这里输入了一个CNMoney函数。
注意:
(1)嵌入代码中的方法必须以 Microsoft Visual Basic 语法进行编写
(2)代码块可以包含多个方法。
(3)无法向函数传递数据值集,不支持自定义聚合。一般用于简单数据类型。
2. 使用。在报表上拖一个文本框,在上面点右键,选“表达式”,在弹出的表达式界面上,输入code.CNMoney(16)
注意:以code+.+函数名称的方式引用之前定义的方法
亲试有效,代码处可拓展其他方法,方便后续使用。
————————————————
版权声明:本文为CSDN博主「shanshan2099」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shanshan2099/article/details/90269229