是否可以编写一个表达式,使其重复一遍又一遍指定的重复次数,或者直到文本框中的空间用完?
需要显示的文本来自共享数据集中的一个字段,并且可以根据用户所连接的数据库而改变。
我需要循环的是
="~~"&First(Fields!SchemaText.Value,"Selection") &"~~"
如果可能的话,我希望输出
~~Text~~~~Text~~~~Text~~~~Text~~~~Text~~
基本上可以在SSRS中循环表达式吗?
答案 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”