【问题标题】:Adding diffrent hyperlinks to each row in Reporting Services向 Reporting Services 中的每一行添加不同的超链接
【发布时间】:2015-02-09 07:57:39
【问题描述】:

所以我需要在每个生成的行上添加不同的超链接。我的意思是,我有 SQL 查询来选择这样的一些数据:

Name                      Description
First       First should be clickable and open www.url1.com
Second      Second - open www.url2.com
Third       Third- open www.url3.com
....

SQL 查询:

-- this is example query, just for explaining idea
    SELECT F.Name        AS Name, 
           T.Description AS Description
    FROM   Forms         AS F
    INNER JOIN Tasks     AS T
        ON F.Id = T.FormId

例如这里有两列 NameDescription 通过 SQL 查询选择。它从表中选择所有需要的行。如何在每个选定的行上添加特定的超链接?

目前报告设计如下所示:

我选择[Name] > Properties > Action后弹出Text Box Properties

如果我选择转到 URL,我可以键入任何我想要的 URL,但对于 Name 列中的所有行都是相同的,如何使每一行的它不同?

编辑

关于Name列的说明,每一行应该打开不同的URL。但是这些行只在Report Preview中被选中

【问题讨论】:

    标签: sql-server reporting-services hyperlink report action


    【解决方案1】:

    您可以使用表达式添加 URL。单击表达式按钮弹出将打开,然后您可以选择您的字段作为值。然后将表达式设置为

      =Fields!Description.Value
    

    如果你想传递一些参数,你可以与实际值连接。

    【讨论】:

    • 感谢您的回答。但是它将如何工作?正如您在我的第一张图片中看到的,这里有 2 个列名:NameDescription。单击Perview Report 按钮后会生成行。我需要为每一行打开不同的 URL。所以我需要添加类似的表达式:=Fields!Name.First?但是如何为多行添加多个URLS?我的意思是=Fields!Name.First(www.url1.com); =Fields!Name.Second(url2.com) 语法应该是什么样的?
    • 我很困惑。您想将单独的 Description 设置为 URL,以便为每个 Name 权限打开。如果是这样的话,那就按照我在回答中所说的去做。无需做任何其他事情。 SSRS 将处理每个名称到其相对 Discription URL 的映射。
    • SSRS 将处理 URL 映射,只需在表达式中设置它们。
    • 没有,Description 字段中的内容无关紧要。我只是举例说明了名称行应该做什么(实际上这里是NamesDescription 中的其他数据。我需要使每个名称都可点击,并且每个名称应该打开不同的 URL。
    • 我明白了,但是SSRS 处理 URL 映射,只要您有每个名称的有效 URL,您只需要设置操作链接。它的处理方式与将每行的名称或 ID 与该行的其他数据映射时相同。试试这个你会明白我在说什么。
    【解决方案2】:

    您不能将要与每一行关联的 URL 作为字段添加到数据库中,然后您可以将文本框属性中的操作中的 URL 字段设置为 =Fields!URL.Value,或者您称之为新的任何内容数据库中的字段

    替代方法是一个长的 Switch() 语句加上 Field Name 或 RowNumber() 以使 Action 成为您需要的 URL。

    编辑:Coder of Code 给出了相同的答案,我以某种方式错过了这个答案,所以这是重复的,对此感到抱歉。

    【讨论】:

    • 您是否阅读了他已经提到的问题描述,该 URL 来自查询?那么为什么要使用switch()rownumber
    • 在哪里?他提到 URL 是描述字段的一部分,但不是我可以看到的单独字段。编辑 - 我确实错过了你的答案,这当然和我的一样,对此感到抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多