设置统计图图例上的超链接。在超链接属性中可能会用到@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页面上的正常显示。