SSRS在文本框表达式中重复文本

时间:2018-10-03 14:44:56

标签: reporting-services ssrs-2012

是否可以编写一个表达式,使其重复一遍又一遍指定的重复次数,或者直到文本框中的空间用完?

需要显示的文本来自共享数据集中的一个字段,并且可以根据用户所连接的数据库而改变。

我需要循环的是

="~~"&First(Fields!SchemaText.Value,"Selection") &"~~"

如果可能的话,我希望输出

~~Text~~~~Text~~~~Text~~~~Text~~~~Text~~

基本上可以在SSRS中循环表达式吗?

3 个答案:

答案 0 :(得分:2)

我看不到在表达式中进行书写的方法。

我认为最简单的方法是在VB中创建一个函数。

Function RepeatText(ByVal Text As String, ByVal Loops AS Integer) As String 

Dim F AS Integer

RepeatText = ""

For F = 1 to Loops 

    RepeatText = RepeatText & "~~" & Text  & "~~"

Next F

End Function

您的文本框表达式将类似于:

=CODE.RepeatText(Fields!SchemaText.Value, 4) 

您想用某些代码替换 4 来确定您希望文本重复的次数,或者您可以更改代码,以便根据另一个字段来计算出多少。

=CODE.RepeatText(Fields!SchemaText.Value, Fields!SOME_OTHER_FIELD.Value)

然后让代码找出来:

Function RepeatText(ByVal Text As String, ByVal Type AS String) As String 

Dim F AS Integer
Dim END AS Integer

If Type = "DB1" then END = 1 
If Type = "DB2" then END = 2 
If Type = "DB3" then END = 3 

RepeatText = ""

For F = 1 to END

    RepeatText = RepeatText & "~~" & Text  & "~~"

Next F

End Function

答案 1 :(得分:0)

我不确定您是否可以将其直接写到表达式中。

如果我是你,我将尝试编写一个新的1列数据集,其中包含要包含文本值的行数。然后,在文本框表达式中,我将尝试使用join()获得结果。

我没有测试它,对不起,也许我错了。

答案 2 :(得分:0)

SSRS具有一个称为StrDup的文本功能。 我不知道该功能何时可用或该功能是否一直可用。

语法:StrDup(integer,(char | object | string))

EX:= StrDup(3,“ The end ...”) 输出:结束...结束...结束...

EX:= StrDup(3,Chr(149))&“ Text” 输出:•••文本

看这里: https://www.mssqltips.com/sqlservertip/4093/sql-server-reporting-services-string-manipulation/

或者只是在互联网上搜索“ SSRS StrDup”