输入控制参数未在Jaspersoft Reference Hyperlink中传递到仪表板

时间:2017-10-13 18:44:25

标签: hyperlink jasper-reports dashboard jasperserver

我有一个jaspersoft报告(在工作室中构建折线图),我希望图表中的数据系列是钻取以打开仪表板的超链接。

基于此wiki page我能够创建参考超链接,以便单击图表中的任何数据系列可打开正确的仪表板。但我无法正确传递输入控制参数。

  1. 我从存储库直接加载仪表板时的网址(而不是点击折线图报告中的超链接)
  2. http://ddevrpt:8080/jasperserver-pro/dashboard/viewer.html#%2Fpublic%2FP2%2FMidcap%2FFinancial%2FDashboards%2FWell_Profile

    1. 我的超链接引用表达式中不包含输入控件时生成的网址是相同的:
    2. http://ddevrpt:8080/jasperserver-pro/dashboard/viewer.html#%2Fpublic%2FP2%2FMidcap%2FFinancial%2FDashboards%2FWell_Profile

      JRXML:

      dictionary = [i.strip('\n') for i in open('dictionary.txt')]
      s = "roaispnba"
      import itertools
      import random
      def get_words(new_s, word_list):
          if not new_s:
             return word_list
          else:
              possibilities = [i for i in dictionary if all(new_s.count(b) >= i.count(b) for b in i)]
              print possibilities
              if not possibilities:
                    return get_words([], word_list)
              else:
                 word = random.choice(possibilities)
                 word_list.append(word)
                 word_dict = {i:word.count(i) for i in word}
                 new_final_word = list(itertools.chain.from_iterable([[a for i in range(abs(s.count(a)-b))] for a, b in word_dict.items()]))
                 return get_words(new_final_word, word_list)
      
      final_words = get_words(s, [])
      print(final_words)
      
      1. 当i 包含输入控制参数值时生成的网址不同,但仍会将信息中心加载为空(不传递参数值):
      2. http://ddevrpt:8080/jasperserver-pro/dashboard/viewer.html?hidden_WellConcatenated_0=49005478.1:%20DILTS%2044-15%20TH&hidden_OccurrenceDate_1=2015-09-28%2000:00:00.0&hidden_OccurrenceDate_2=2015-10-05%2000:00:00.0#%2Fpublic%2FP2%2FMidcap%2FFinancial%2FDashboards%2FWell_Profile

        JRXML:

            <itemHyperlink hyperlinkType="Reference">
                    <hyperlinkReferenceExpression><![CDATA["./dashboard/viewer.html#%2Fpublic%2FP2%2FMidcap%2FFinancial%2FDashboards%2FWell_Profile"]]></hyperlinkReferenceExpression>
            </itemHyperlink>
        
        1. 我知道我正在正确命名输入控件,因为如果我将链接类型更改为报表执行并使用这些输入控件链接到简单报表,则会打开正确的报表并正确传递输入控件值。
        2. 我也很感激,如果有人有其他参考,他们可以指点我从报告中钻取到仪表板。

3 个答案:

答案 0 :(得分:2)

我正在使用6.3并且能够通过对HyperlinkReferenceExpression语法进行少量修改来解决问题。

具体来说,我删除了&#34; _hidden&#34;在输入控制资源ID之前:

HyperlinkReferenceExpression:

原始语法:

  

&#34; ./仪表板/ viewer.html#%2Fpublic%2FP2%2FMidcap%2FFinancial%2FDashboards%2FWell_Profile&#34;

     

+&#34;&安培; hidden_​​WellConcatenated_0 =&#34; + $ V {WellConcatenated_0}

     

+&#34;&安培; hidden_​​OccurrenceDate_1 =&#34; + $ P {RecordDate_0_1}

     

+&#34;&安培; hidden_​​OccurrenceDate_2 =&#34; + $ P {TimeStampMinusOneWeek}

修改后的语法:

  

&#34; ./仪表板/ viewer.html#%2Fpublic%2FP2%2FMidcap%2FFinancial%2FDashboards%2FWell_Profile&#34;

     

+&#34;&安培; WellConcatenated_0 =&#34; + $ V {WellConcatenated_0}

     

+&#34;&安培; OccurrenceDate_1 =&#34; + $ P {RecordDate_0_1}

     

+&#34;&安培; OccurrenceDate_2 =&#34; + $ P {TimeStampMinusOneWeek}

答案 1 :(得分:1)

我假设你正在运行6.4.0。我不确定这种方法是否仍然有效。

您可能需要在报告中注册自定义超链接处理程序,以便向下钻取到控制板。有关详情,请参阅此处:http://community.jaspersoft.com/wiki/how-use-custom-hyperlink-handler-dashboard-jasperreports-server

在这里:http://www.helicaltech.com/use-custom-hyperlink-handler-with-a-dashboard-in-jasperreports-server/

请告诉我这是否适用于6.4.0!

答案 2 :(得分:0)

我的解决方案是一个糟糕的解决方案。但是它对我有用。

在我的数据集中-查询中,我使用了以下内容:

Select p.printer_name, p.display_name, $P{start_date_1} as start_date_param, ....

然后,将start_date_param用作超链接中的字段。