Reporting services 如何在SSRS 2014中呈现绑定项目符号列表

Reporting services 如何在SSRS 2014中呈现绑定项目符号列表,reporting-services,sql-server-2014,Reporting Services,Sql Server 2014,我希望SSRS报告中的表格中有一列显示为项目符号列表。该值将从数据库中提取。我想将textbox的ListStyle属性设置为Bulleted,这样可以确保在换行时每个项目都正确缩进。我该怎么做?也许我可以使用某个分隔符将这些值连接在一起,以便将每个项呈现为列表中的项目符号项 我意识到我可以在每个项目之间附加一个新行和一个项目符号字符,但是当项目包装时,它们没有正确缩进。如果我有SSRS 2016,我可以将文本框呈现为HTML,并将适当的HTML附加到文本框中,但目前这不是一个选项。自定义代码方

我希望SSRS报告中的表格中有一列显示为项目符号列表。该值将从数据库中提取。我想将textbox的ListStyle属性设置为Bulleted,这样可以确保在换行时每个项目都正确缩进。我该怎么做?也许我可以使用某个分隔符将这些值连接在一起,以便将每个项呈现为列表中的项目符号项


我意识到我可以在每个项目之间附加一个新行和一个项目符号字符,但是当项目包装时,它们没有正确缩进。如果我有SSRS 2016,我可以将文本框呈现为HTML,并将适当的HTML附加到文本框中,但目前这不是一个选项。

自定义代码方法将是您唯一的途径。必须更改此代码,以包含要拆分行的字符。假设字段中已存在要拆分的字符。chr(149)是重点

Public Function SplitNextLine(ByVal strSplit As String) As String
Dim strArr() As String
Dim i As Integer
Dim sReturn As String = ""
Dim check As String = "vbCrLf"

strArr = strSplit.Split(vbCrLf)

For i = 0 To strArr.Length - 1
If i = 0 Then
sReturn += strArr(i)
Else
sReturn += vbCrLf & Chr(149) & strArr(i)
End If
Next

Return sReturn
End Function
在报告正面的文本框中引用此代码时,您将使用

Code.SplitNextLine(YourFieldNameGoesHere)

文本框具有
HangingIndent
属性。这适用于换行到新行的文本行。您必须给它一个负值,例如
-20pt
。我建议将每个项目保留在自己的行中,而不是尝试将它们连接起来。这样,您就可以让报表为您处理格式设置,而不是求助于自定义代码


如果需要,可以将一个包含1个单元格的表格放置到需要该列表的位置(即使是在另一个表格中)。对于分组的每个实例,将重复该单元格。只要没有边框,它看起来就像一个单项目列表。

我使用子报表实现了这一点。子报表包含一个具有两列的表,第一列包含项目符号,另一列包含文本。如果文本换行到第二行,则缩进很好,因为它保留在列中。如果有一种更简单的方法,那就更好了。

如果列表中的某个值必须换行到下一行,我看不出这将如何缩进换行的文本。您只能通过HTML获得该功能。SSR不够聪明,无法重新产生这样的结果。我想这就是他们在最新版本中集成该功能的原因。抱歉,我使用了该功能,但无法使您的建议生效。嵌套表也不起作用,因为它需要不同的数据集。这就是
Lookup
函数的作用。