皕杰报表中图表的钻取是通过超链接实现的,其实质就是通过超链接打开了一张的新表,而把原表中的条件通过参数传递给新表,从而得到我们所需的明细数据。
超链接的地址在单元格的超链接地址属性里添加属性值,如果超链接字符串不需要动态生成,可以直接写所要链接的页面路径,那么可以直接在超链接属性编辑框中编辑;如果超链接字符串需要根据单元格或者参数值动态生成,则输入表达式。
路径可以是相对路径也可以是绝对路径。
相对路径是相对应用路径的,比如:/jsp/myreport.jsp,系统运算后会自动给加上应用的路径。
绝对路径一定要写完整,包含传输协议。
看个例子:
在d5单元格销售额上钻取年销售额,将a5中的年份作为参数传给明细表,其超链接地址为:
'${SERVER_CONTEXT_PATH}/ReportEmitter?rpt=Demo/08其它特性/08-1时间参数.brt¶ms=year=' + a5
通过浏览器访问这张表就会在销售额上显示出超链接,见下图:
点击超链接就显示出我们需要的销售明细表。
上面的超链接地址含有中文,用谷歌、火狐、Edge等浏览器访问没有问题,而用ie浏览器访问时就会报RFC7230和RFC3986错误。
这个问题的本质还是编码的问题,谷歌、火狐、Edge等浏览器默认使用的是UTF-8编码,而ie浏览器默认的编码是GBK。皕杰报表6.1统一使用了UTF-8,因而用ie浏览器会报错。
如何解决这个问题呢?皕杰报表的字符串函数中提供了对字符串进行编码的函数,在写超链接地址时对可能出现的中文进行转码就可以了。
'${SERVER_CONTEXT_PATH}/ReportEmitter?rpt=Demo/08'+urlenc("其它特性","utf-8")+'/08-1'+urlenc("时间参数","utf-8")+'.brt¶ms=year=' + a5