首页 > 解决方案 > 有没有办法在 ssrs 中获取行的字母编号而不是数字编号?

问题描述

我需要什么(以粗体突出显示的行的字母编号(序列列)):

在此处输入图像描述

我尝试将 rownumber 函数的输出转换为字符串,但似乎没有任何效果,因为我不知道。

请帮忙!

标签: reporting-servicesssrs-2012

解决方案


您可以使用一些自定义代码来完成此操作。

转到报告属性,单击“代码”选项卡并将以下代码粘贴到自定义代码窗口中。

Public Function GetRowLetter(RowNum As Integer) As String

' stick the RowNum in a variable that we can reduce until it's zero

Dim r As Integer
Dim i As Integer

Dim s As String ' holds result

s = ""
r = RowNum

' we start at the right side so if the rownum is 28 we want to be back AB
' need to get 'B' first

Do While RowNum > 0

    r = Int((RowNum - 1) / 26)
    i = (RowNum - 1) Mod 26
    s = Chr(i + 65) & s

    RowNum = r
Loop

GetRowLetter = s

End Function

这将为 1 提供“A”,为 2 提供“B”等,然后将为 27 提供“AA”,“AB”或 28 等...

如果您想返回小写字母,请交换65for98

在您的报告中,将文本框值表达式设置为

=Code.GetRowLetter(RowNumber("myDataSetName"))

换成myDataSetName您想要应用它的数据集或范围的名称。请记住,数据集和范围名称区分大小写,并且必须用引号 ( " ) 括起来


推荐阅读