统计图钻取常见问题

来源:互联网 发布:java爬虫库 编辑:程序博客网 时间:2024/04/29 05:05

设置统计图图例上的超链接。在超链接属性中可能会用到@legend、@category和{APPMAP}。

@legend:指代当前图例的显示值。在超链接中引用@legend,报表引擎运算时会将其替换成当前图例的显示值。

@category:指代当前图例的分类值。在超链接中引用@category,报表引擎运算时会将其替换成当前图例的分类值。

{APPMAP}:指代web应用的相对路径,在超链接中引用{APPMAP},报表引擎运算时会将其替换成web应用的相对路径。

在图形超链接中若超链接为不以=开始的字符串时,报表引擎运算时会把@category、@legend等当成宏,进行宏替换;若超链接为以=开始的字符串时,报表引擎运算时会把@category、@legend等当成参数,进行表达式运算。

 

举例一:图形超链接为不以=开始的字符串。

 

设置统计图图例上的超链接为:{APPMAP}/reportJsp/showReport.jsp?raq=/订单.raq

&arg1=@category

如果web应用的相对路径为http://localhost:8001/report,当前图例的分类值为“华北”,运算时报表引擎会自动把{APPMAP}替换成http://localhost:8001/report,把@category替换成“华北”,从而产生的超链接为:

http://localhost:8001/report/ reportJsp/showReport.jsp?raq=/订单.raq&arg1=华北

 

在图例超链接中进行表达式运算有两个用途:1、@legend指代当前图例的显示值,如果我们想在超链接中使用当前图例的真实值,那么就要把@legend放到表达式中进行运算,由显示值得出真实值。2、有时地址栏中不支持中文,有中文就会产生乱码,而@legend或@category代表的值是中文时,我们就要对@legend或@category进行编码。

 

举例二:图形超链接为以=开始的表达式。

 

设置统计图图例上的超链接为:="{APPMAP}/reportJsp/showReport.jsp?raq=/订单.raq&arg1="+query("select 供应商ID from 供应商 where 供应商名称=?",@category)

@category代表供应商名称,我们在超链接中需要使用供应商ID,所以图例上的超链接中把@category作为query 函数的参数来获得供应商ID。

 

举例三:图形超链接传递多个参数

 

设置统计图图例上的超链接为:{APPMAP}/reportJsp/showReport.jsp?raq=/订单.raq

&arg1=@category&arg2=@legend&arg3={APPMAP}

  如果超级链接中要传递多个参数时,各个参数中间用&符号分隔。

 

举例四:图形超链接传递中文参数

 

  如果统计图所在的web页面与所链接的web页面的编码方式不同,那么超链接所传递的中文参数就不能在链接的页面上正常显示,所以一般要对超链接传递的中文参数进行转码运算。

  设置统计图图例上的超链接为:="{APPMAP}/reportJsp/test.jsp?arg1="+ urlencode(category, "GBK" )+"&bb="+ urlencode("传递的参数", "GBK" )+"&le=@legend"

统计图所在的页面的编码格式为GBK,而链接的test.jsp的编码方式为utf-8,这时我们就要对所传递的参数使用urlencode函数进行转码运算,这样才能保证传递的参数在test.jsp页面上的正常显示。

原创粉丝点击