Rdlc报表格式化数字

3

我需要展示数字1 2 3的阿拉伯字母表达方式。

我在文本框中编写了这个语句。

=FormatNumber(Fields!Size.Value,1,-2,-2,-2) 

但我不知道它的参数和哪个参数可以显示阿拉伯格式的数字

非常感谢


我所知道的唯一解决方法是通过控制面板中将区域和语言设置修改为阿拉伯语,并从附加设置中将使用本地数字更改为国家。 - George Botros
3个回答

3

报表语言设置为当地语言(ar-EG),在文本框属性中将NumeralVariant设置为3

参考文献

类似问题

NumeralVariant

限制

1- 不适用于包含数字的字符串

2- 不适用于日期

解决限制 可能会导致性能下降

您可以使用Replace方法将任何英文数字替换为阿拉伯数字,应用于任何可能包含数字的字符串。 您的表达式将类似于此:

=Replace(Replace(Replace(Fields!FieldName.Value,"0","۰"),"1","۱"),"2","۲")

将表达式完整地写成 9。


我尝试了这个解决方案,但它并没有起作用,有什么想法可以解决吗? - Alaa

1
Public Shared Function Arabic(input As String) As String
    Dim result As String = input
    result = result.Replace("1", "۱")
    result = result.Replace("2", "۲")
    result = result.Replace("3", "۳")
    result = result.Replace("4", "٤")
    result = result.Replace("5", "۵")
    result = result.Replace("6", "٦")
    result = result.Replace("7", "۷")
    result = result.Replace("8", "۸")
    result = result.Replace("9", "۹")
    result = result.Replace("0", "۰")
        Return result
End Function

使用它来转换阿拉伯数字 =Code.Arabic(Fields!OrderID.Value) =Code.Arabic(FieldName)


1
你可以在代码中编写函数并使用它们。

在此输入图像描述

Public Shared Function farsi(input As String) As String
    Dim result As String = input
    result = result.Replace("1", "۱")
    result = result.Replace("2", "۲")
    result = result.Replace("3", "۳")
    result = result.Replace("4", "۴")
    result = result.Replace("5", "۵")
    result = result.Replace("6", "۶")
    result = result.Replace("7", "۷")
    result = result.Replace("8", "۸")
    result = result.Replace("9", "۹")
    result = result.Replace("0", "۰")
        Return result
End Function

使用方法:

=Code.farsi(1111.555)

你有相关代码吗?如果我们想要保留两位小数,例如将234234.234234 转为 234234.23 ,类似于使用ToFixed(2)。 - saber tabatabaee yazdi
在您的函数中输入之前,使用以下代码: "=farsi(Round(234234.234234,2))" 其中 Round ( expression, [decimal_places] ) 是一个函数。 - saber tabatabaee yazdi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接