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()调用:报表 ...

您好 请问一下是不支持后台的嘛 这样的话是每个报表都要写一下脚本嘛
页: 1 [2] 3 4
查看完整版本: 关于金额大写问题