我在SSRS 2008中有一个报告。这些列之一可能包含也可能不包含以逗号分隔的一组值。数据的示例是:
string 1, string 2, string 3, string 4
它也可能只有一个值,例如字符串1,有时没有值(空)。
每个字符串都可以通过“父”链接进行超链接;父链接将保持不变,而字符串将仅位于结尾。
一个例子是:
https://www.website.com/value=string1
https://www.website.com/value=string2
https://www.website.com/value=string3
https://www.website.com/value=string4
以此类推;直到https://www.website.com/value=为止的所有内容都将与父超链接的一部分保持不变。
我当前的超链接代码如下(允许导出到Excel时进行超链接):
=IIF(Globals!RenderFormat.Name = "RPL","javascript:void(window.open('https://www.website.com/value=" & Fields!String1.Value & "','_blank'))","https://www.website.com/value=" & Fields!String1.Value)
如果我在该字段中只有一个值,但想知道如何将该表达式编码为超链接,则该方法非常有用:
多个用逗号分隔的字符串。
只有一个字符串
空值(如果为空,则忽略并且不超链接)
答案 0 :(得分:1)
将此代码放在报表属性的“代码”部分中:
Public Function Hyperlink(strString As string) As String
If IsNothing(strString) Or strString = "" then
Return Nothing
Else
Dim listarray() As String
Dim output As String
listarray = split(strString, ",")
For i As integer = 0 To listarray.length -1
output = output & "https://www.website.com/value=" & listarray(i).tostring.trim & vbnewline
Next
Return output
End If
End Function
并使用以下命令在您的tablix表达式中调用它:
=Code.Hyperlink(Fields!YourField.Value)
,该字段的值为
Fields!YourField.Value = "string1, string2, string3, string4"
您将得到:
https://www.website.com/value=string1
https://www.website.com/value=string2
https://www.website.com/value=string3
https://www.website.com/value=string4
如果在用于选择URL的函数(文本框属性>“操作”>“转到URL”)中,在Tablix AND 的表达式中放置表达式Code.Hyperlink(Fields!YourField.Value)
,它将像在SSRS中一样运作超链接。
编辑:
然后使用html标签对链接进行编码。将功能更改为此:
Public Function Hyperlink(strString As string) As String
If IsNothing(strString) Or strString = "" then
Return Nothing
Else
Dim listarray() As String
Dim output As String
listarray = split(strString, ",")
For i As integer = 0 To listarray.length -1
output = output & "<a href=" & Chr(34) & "https://www.website.com/value=" & listarray(i).tostring.trim & Chr(34) & ">" & "https://www.website.com/value=" & listarray(i).tostring.trim & "</a>" & vbnewline
Next
Return output
End If
End Function
然后单击您的tablix文本框(在单元格中单击),然后右键单击>创建占位符...>常规,然后检查 HTML-将HTML标签解释为样式 。并且不要忘记删除动作表达式。您不再需要它。现在可以从html标记执行链接操作。
答案 1 :(得分:0)
链接1 连结2 连结3 以上内容适用于报表查看器的一个单元格。即使适用于PDF。下载为PDF,然后单击有效的链接。 但是当下载excel时,一个单元格具有所有三个链接。单击第一个链接可以使用,但是单击第二个链接时,它仅使用第一个链接。第三链接也一样。 我在 excel中尝试过提供一个链接,我们可以借助一个单元格的超链接来完成。 但不适用于单元格中的文本。 因此,在这种情况下,excel并不是我的知识。