GEEZN5.0
报表需要使用的函数可以定义为js,并引入到报表中。报表中引入js的方式有“直接在报表中定义js”和“展现界面引入js文件”两种方式。
1. 直接在报表中定义js选中一个不使用的单元格,打开【插入】-【富文本与Html】窗口,在富文本与Html窗口中选择文本类型为HTML,并在内容编辑区定义需要使用的函数。
2. 展现界面引入js文件进入当前资源单独的展现设计界面,设置所定义的js文件所在的相对路径即可。
将绘制好的北京(cn-bj.svg)和浙江省(cn-zj.svg)的地图文件放到[WebRoot]\mis2\Charts\svg\路径下。在变量管理中设置全局变量map的表达式及属性,用于根据当前用户所在的省份,传递省份地图的svg文件名称给引用该变量的报表。
定义报表所使用的数据集sql,where条件使用动态宏进行过滤。动态宏的表达式:if(@sys_Orgs_ForDAUC=='zhejiang','省份代码='cn-bj'',if(str(var(sys, sys_Orgs_ForDAUC))!='zhejiang','省份代码='cn-zj'','1=2'))。该表达式用于实现当前用户所在的机构为“beijing”时,过滤出mapdata数据表中“省份代码”为“cn-bj”的数据;当前用户所在的机构不是“beijing”时,过滤出mapdata数据表中“省份代码”为“cn-zj”的数据。
为显示报表中的省份名称的单元格表达式=”信访量情况表”加上取省份名称的表达式,修改后的单元格表达式为:=mapdata.省份名称+”信访量情况表”。
打开【报表属性】-【参数定义】窗口,增加名称为svgName的参数,参数类型设置为动态参数,表达式设置为encode(var(global,map)),用于调用全局变量map。实现展现报表时地图根据所传递的svgName参数值来展现对应的名称的svg地图名称文件。再增加名称为city的参数,参数数据类型为字符串组,参数类型为普通参数,默认值为“bj-cyq,zj-ningbo”,用于为不同地图传递不同的默认参数值。
数据集预览效果。
修改地图,在选取数窗口设置是否包含超链接属性值为“=1”表达式,始终启用超链接。设置区域超链接为“手动输入URL”的方式,表达式为:javascript:refreshFCByLocation(@areaId),实现当钻取地图区域时将当前区域的areaId参数值传递出去。
为统计图的来源数据添加过滤条件“辖区代码 in list(@city)”,其中参数city的值是由中地图传递过来的。
为统计图数据来源单元格、统计图所在单元格设置刷新特效,刷新特效可在【插入】-【交互增强】-【其他】-【刷新】中设置。实现当点击地图中某城市区域时,自动刷新统计图数据来源单元格、统计图所在单元格。
在【报表属性】-【填报设置】中设置报表为可填报。只有填报表可以使用【特殊效果】功能,因此这是使用特殊效果必须设置的一步。
svgName是要传递加密后的参数值,因此调用全局变量后需要使用encode加密
svgName参数是特定的传递地图所使用的svg文件名称的参数,不能随意修改名称,否则不能识别