在SSRS报告中显示上标

时间:2011-06-13 12:25:33

标签: ssrs-2008 string-formatting reporting-services superscript

我正在研究SSRS 2008。 我希望将日期显示为1 st 2011年1月.. 但“st”应该在超级... 不像“第一”。

有没有办法在superscipt中显示“st”,“nd”,“rd”和“th”而不安装任何自定义字体类型(其他字体类型)。

3 个答案:

答案 0 :(得分:23)

只需从以下列表中复制并粘贴:

ABC⁰¹³⁴⁵⁶⁷⁹⁺⁺⁼⁽⁽⁽ ABC 0 1 2 3 5 5₇₈₉₊₋₌₎₎

ABCᵃᵇᶜᵈᵉᵍʰⁱʲᵏᵐⁿᵒᵖʳˢᵗᵘᵛʷˣᶻᶻᶻ

ABCᴬᴮᴰᴱᴴᴵᴶᴷᴸᴹᴺᴼᴾᵀᵁᵂᵂ

ABCₐₑᵢₒᵣᵤᵥₓ

ABC½¼⅓⅔⅕⅖⅗⅘⅚⅛⅜⅝⅞℠©™©®

答案 1 :(得分:4)

也许......

您仅限于使用String.Format可以完成的任务。字体大小和间距也指整个文本框。所以它不是“原生的”

然而,superscript is unicode所以你可以用一些连接字符的花哨表达来做到这一点。我建议自定义代码。

我没试过这个,但是这些文章提到了它

答案 2 :(得分:0)

我不是在这里寻找信用,因为上述解决方案已经为您解决了问题,但是出于初学者的考虑,我在报告中使用了代码功能。

因此在我的SQL中说我有Number字段,然后添加一个新字段OrdinalNumber:

SELECT ..., Number, 
       CASE WHEN (Number % 100) BETWEEN 10 AND 20 THEN 4
            WHEN (Number % 10) = 1 THEN 1
            WHEN (Number % 10) = 2 THEN 2
            WHEN (Number % 10) = 3 THEN 3
            ELSE 4 END AS OrdinalNumber,
...

然后我的代码功能:

Function OrdinalText(ByVal OrdinalNumber As Integer) As String
    Dim result As String
    Select Case OrdinalNumber
        Case 1
            result = "ˢᵗ"
        Case 2
            result = "ⁿᵈ"
        Case 3
            result = "ʳᵈ"
        Case Else
            result = "ᵗʰ"
    End Select
Return result

结束功能

然后在报告文本框中使用表达式:

=CStr(Fields!Number.Value) & Code.OrdinalText(Fields!OrdinalNumber.Value)