如何在 SSRS 报告中显示带有阿拉伯数字的日期

How to display date with Arabic numbers in SSRS reports

我需要在用 SSRS 开发的报告中用阿拉伯语显示数字。通过将 Language 属性 设置为 "ar-SA" 并将 NumeralVariant 设置为 3,我可以用阿拉伯语显示诸如 23000.00 之类的数字. 然而,这不适用于以 dd/MM/yyyy 格式显示日期的 TextBox。

感谢任何帮助。

似乎没有内置的方法来执行此操作,因此您必须在数据集查询中手动执行此操作。我建议同时返回 date 类型和您的阿拉伯语日期作为 nvarchar 以保留过滤和简化日期逻辑。如果您不愿意在所有日期上使用以下内容,您可以将替换逻辑包装到一个函数中:

declare @d date = '20171231';

select @d as DateValue

    ,convert(nvarchar(10), @d,103) as StringValue

    ,replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
        convert(nvarchar(10), @d,103)
        ,'0',N'٠')
        ,'1',N'١')
        ,'2',N'٢')
        ,'3',N'٣')
        ,'4',N'٤')
        ,'5',N'٥')
        ,'6',N'٦')
        ,'7',N'٧')
        ,'8',N'٨')
        ,'9',N'٩') as ArabicValue

输出:

+------------+-------------+-------------+
| DateValue  | StringValue | ArabicValue |
+------------+-------------+-------------+
| 2017-12-31 | 31/12/2017  | ٣١/١٢/٢٠١٧ |
+------------+-------------+-------------+

在 SSRS 报告中创建以下函数。

Public Function ToArabicNumber(input As String) As String
    Dim output As String

    output = input.Replace("1","١")
    output = output.Replace("2","٢")
    output = output.Replace("3","٣")
    output = output.Replace("4","٤")
    output = output.Replace("5","٥")
    output = output.Replace("6","٦")
    output = output.Replace("7","٧")
    output = output.Replace("8","٨")
    output = output.Replace("9","٩")
    output = output.Replace("0","٠")

    Return output
End Function

并使用如下表达式在报表中消费

=Code.ToArabicNumber(Format(DateTime.Today,"dd/MM/yyyy"))