Lenka.Guo
发表于 2016-10-18 09:31:01
小括号呀 发表于 2016-10-17 18:24
不好意思 公司项目应该不能上传。。谢谢您函数写好 报表调用需要改什么属性吗
函数调用主要由以下步骤要注意:
1. 在项目中添加 转换类,注意命名空间;
2. 在报表中某一单元格内调用类,格式:= Code.类实例化名称.函数名(参数);
3. 在页面中生成报表时,将转换类添加到报表中;pagereport.Report.Classes.Add(new GrapeCity.ActiveReports.PageReportModel.CodeClass() { ClassName = "WebApplication50.DigitToChnText1", InstanceName = "dtc1" });
”
小括号呀
发表于 2016-10-18 10:38:18
Lenka.Guo 发表于 2016-10-18 09:31
函数调用主要由以下步骤要注意:
1. 在项目中添加 转换类,注意命名空间;
1.namespace LinkedYou.Tools
{public class DigitToChnText{}}内容是赋值过来的
2.=Code.dtc1.Convert( [@test1] ,true)test1是设置的一个定值的参数
3.pageReport.Report.Classes.Add(new GrapeCity.ActiveReports.PageReportModel.CodeClass() { ClassName = "LinkedYou.Tools.DigitToChnText", InstanceName = "dtc1" });
麻烦帮忙看一下这样有什么问题嘛运行的时候什么都不显示
Lenka.Guo
发表于 2016-10-18 17:20:47
从您描述的思路来看是没有问题的,您可以先调试看看,或是做一个简单的能重现问题的Demo上传就行。
小括号呀
发表于 2016-10-19 10:27:54
Lenka.Guo 发表于 2016-10-18 17:20
从您描述的思路来看是没有问题的,您可以先调试看看,或是做一个简单的能重现问题的Demo上传就行。
我重写写的例子上可以实现的。。。可是程序中就是实现不了。。。
Lenka.Guo
发表于 2016-10-19 14:42:19
小括号呀 发表于 2016-10-19 10:27
我重写写的例子上可以实现的。。。可是程序中就是实现不了。。。
您使用的是MVC4还是MVC5,用的是HTML5Viewer 还是webViewer控件?
小括号呀
发表于 2016-10-19 15:45:40
Lenka.Guo 发表于 2016-10-19 14:42
您使用的是MVC4还是MVC5,用的是HTML5Viewer 还是webViewer控件?
你好 用的MVC4 HTML5Viewer
Lenka.Guo
发表于 2016-10-19 17:47:39
了解,那我在这边做一个简单的MVC4的大小写金额转换的demo。
小括号呀
发表于 2016-10-20 09:13:09
Lenka.Guo 发表于 2016-10-19 17:47
了解,那我在这边做一个简单的MVC4的大小写金额转换的demo。
谢谢:)
Lenka.Guo
发表于 2016-10-20 11:51:41
您好,
我采用了另外一个方法,直接在报表中编写转换脚本,在单元格中通过 Code.ConvertToRMB()调用:报表模板:
脚本代码:
Function ConvertToRMB(ByVal inputString As String) As String
Dim numList As String = "零壹贰叁肆伍陆柒捌玖"
Dim rmbList As String = "分角元拾佰仟万拾佰仟亿拾佰仟万"
Dim number As Double = 0
Dim tempOutString As String = ""
number = Double.Parse(inputString)
Dim tempNumberString As String = Convert.ToInt64(number * 100).ToString()
Dim tempNmberLength As Integer = tempNumberString.Length
Dim i As Integer = 0
While i < tempNmberLength
Dim oneNumber As Integer = Int32.Parse(tempNumberString.Substring(i, 1))
Dim oneNumberChar As String = numList.Substring(oneNumber, 1)
Dim oneNumberUnit As String = rmbList.Substring(tempNmberLength - i - 1, 1)
If Not (oneNumberChar = "零") Then
tempOutString += oneNumberChar + oneNumberUnit
Else
If oneNumberUnit = "亿" OrElse oneNumberUnit = "万" OrElse oneNumberUnit = "元" OrElse oneNumberUnit = "零" Then
While tempOutString.EndsWith("零")
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)
End While
End If
If oneNumberUnit = "亿" OrElse (oneNumberUnit = "万" AndAlso Not tempOutString.EndsWith("亿")) OrElse oneNumberUnit = "元" Then
tempOutString += oneNumberUnit
Else
If Not tempOutString Is Nothing Then
Dim tempEnd As Boolean = tempOutString.EndsWith("亿")
Dim zeroEnd As Boolean = tempOutString.EndsWith("零")
If tempOutString.Length > 1 Then
Dim zeroStart As Boolean = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零")
If Not zeroEnd AndAlso (zeroStart OrElse Not tempEnd) Then
tempOutString += oneNumberChar
End If
Else
If Not zeroEnd AndAlso Not tempEnd Then
tempOutString += oneNumberChar
End If
End If
End If
End If
End If
i += 1
End While
If Not tempOutString Is Nothing Then
While tempOutString.EndsWith("零")
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1)
End While
While tempOutString.EndsWith("元")
tempOutString = tempOutString + "整"
End While
Return tempOutString
Else
Return ""
End If
End Function
小括号呀
发表于 2016-10-20 12:28:44
Lenka.Guo 发表于 2016-10-20 11:51
您好,
我采用了另外一个方法,直接在报表中编写转换脚本,在单元格中通过 Code.ConvertToRMB()调用:报表 ...
您好 请问一下是不支持后台的嘛 这样的话是每个报表都要写一下脚本嘛