在SSRS报告中显示上标

18

我正在使用SSRS 2008。 我想把日期显示为2011年1st日。但是"st"应该是上标,而不是像"1st"那样。

是否有方法可以在不安装任何自定义字体类型(其他字体类型)的情况下以上标形式显示 "st"、"nd"、"rd"和"th"?

3个回答

41

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

ABC⁰ ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹ ⁺ ⁻ ⁼ ⁽ ⁾ ABC₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉ ₊ ₋ ₌ ₍ ₎

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

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

ABCₐ ₑ ᵢ ₒ ᵣ ᵤ ᵥ ₓ

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

ABC^ ± ¶


1
大写字母 C、F、S 为什么没有上标呢?是否有特别的原因? - Haijin
你是怎么格式化它们的?我似乎无法模仿它,我需要将[1][1]和[x][x]放在同一个上标文本中。 - Elizabeth
你是怎么给它们设置格式的?我似乎无法模仿它,我需要将[1][1]和[x][x]放在同一个上标文本中。 - undefined

4

也许...

您在使用String.Format时受到限制。字体大小和间距也是针对整个文本框的。因此,它不是“本地”的。

然而,上标是unicode,因此您可能可以通过一些复杂的表达式来连接字符来实现它。我建议使用自定义代码。

我没有尝试过这个方法,但这些文章提到了它。


3
在2008年,你可以将占位符格式设置为HTML,并在格式化中使用某些HTML标记(例如,="Some <b>bold</b> text" 可以工作);我不知道是否包括 <sup> ,或者可能是你可以样式化的 <span>,因为我只用2005。 - Matt Gibson
伙计们,它只适用于0-9...我需要"st"、"th"、"nd"... 我知道上标... 我需要了解我提到的单词... 我不需要0-9或n作为上标... - Touseef
1
@Touseef:那么,不行,你不能这样做。 - gbn

1

我并不是在这里寻求赞誉,因为上面的解决方案已经为您回答了问题,但为了初学者的缘故,我在我的报告中使用了一个代码函数。

所以在我的SQL中,假设我有一个数字字段,然后我添加一个新的字段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)

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