目录

相关文件

表单工具提供了开放的客户化文件,用户可结合相应场景需求,添加客户化效果。

帮助提示文件

文件介绍

路径:APPPATH/mis2/custom/vrsr/effects/help.jsp。

弹出层形式的帮助按钮,固定打开该页面。

设置帮助按钮时,帮助内容设置为[page.html#title]的格式,其中page.html是帮助信息页面,title是页面中的二级标题。

实现方式

1)在默认地址处获取帮助信息。

2)通过[title]指定的标题,从帮助信息中获取需要显示的内容。

该接口内容允许做客户化修改,可以自定义任意格式的帮助内容,同时也可以自定义获取帮助信息的方式。

客户化修改示例

1)定义帮助内容获取格式为JSON格式,{page:"myTest.html", "keywords": "关键字"}

2)修改APPPATH/mis2/custom/vrsr/effects/help.jsp内容,解析上述定义JSON格式数据,从myTest.html中读取内容,并用keywords找到页面内容中的关键字,对关键字进行加粗显示等等。

添加交互效果类型

文件:APPPATH/mis2/custom/flexdesigner/designer/config/customEffect.xml

用于定义客户化交互增强控件类型。

示例:

<?xml version="1.0" encoding="utf-8"?>
<root name="root">
    <node type="customButton" name="客户化按钮">
        <node type="testCustomButton" name="测试客户化按钮" img="/assets/colPiledPercent.gif" desc="测试客户化按钮"/>
    </node>
</root>

即就是定义了一个“客户化按钮”的控件分组,且该分组下有“测试客户化按钮”类型的控件:
   

增加交互效果

路径:APPPATH/mis2/custom/flexdesigner/designer/config/customEffect.json

该文件用于定义客户化交互增强控件的详细配置界面。

示例:

   {
        "type": "testCustomButton",
        "propertiesAndUI": [
            {
                "propName": "name",
                "propValue": "按钮名称",
                "defaultValue": "默认值",
                "UIText": "按钮名称",
                "TextWidth": 100,
                "TextHeight": 25,
                "showUI": "TextUICP",
                "UIWidth": 100,
                "UIHeight": 25,
                "validate": "/^[a-zA-Z_][a-zA-Z0-9_]*$/",
                "validateMessage": "格式不正确!此属性值不能为空,由字母、数字、下划线组成,且第一个字符不能为数字。"
            },
            {
                "propName": "value",
                "propValue": "",
                "defaultValue": "",
                "UIText": "按钮值",
                "TextWidth": 100,
                "TextHeight": 25,
                "showUI": "TextUICP",
                "UIWidth": 100,
                "UIHeight": 25,
                "validate": "",
                "validateMessage": ""
            }
        ]
    }

这块代码定义了客户化按钮的设置页面信息。其中type为testCustomButton,是与mis2/custom/flexdesigner/designer/config/customEffect.xml中定义的增强控件类型一致的。

每个控件又若干个“属性”构成,每个属性中定义了属性名(propName)、属性值(propValue)、默认值(defaultValue)、UI等信息组成。具体的属性配置说明请参考【附表1:交互增强控件配置属性表】。

此时,选择“测试客户化按钮”,进入到交互增强属性设置页面有两个属性:

在此页面进行设置、保存时,会在单元格上生成增强控件的配置信息:

{
    effectType:"testCustomButton",
    effectDetail:{
        name: "默认值",
        value: ""
    }
}

其中,name和value是设置界面定义的两个属性。

客户化交互效果处理接口

mis2/custom/vrsr/effects/class/CustomReportEffectGenerator.class
mis2/custom/vrsr/effects/js/custom_effect.js

以上内容定义了客户化增强控件的属性,更重要的内容是在页面展现时,需要对控件的设置进行解析处理。

处理接口分为前端和后端。

后端接口是.class文件,改类名称固定,且继承自AbstractReportEffectGenerator,由系统默认的交互增强处理类自动调用(如果存在的话)。代码内容为:

public class CustomReportEffectGenerator extends AbstractReportEffectGenerator {
 @Override
 public IReport generate(IReport ir, Context ctx, Map<String, Object> params) {
  // TODO Auto-generated method stub
  System.out.println("客户化特效生成器...");
  return ir;
 }
}

如需对客户自定义的交互增强控件进行解析处理,需要添加代码实现generate方法。此方法中可以获取到报表对象ir、环境变量ctx、以及其他的参数params。

实现流程为:

1)遍历ir的单元格,获取单元格上保存的自交互增强控件信息

IByteMap customMap=normalCell.getCustomPropertiesMap();

String jsonStr=(String)customMap.get(AbstractReportEffectGenerator.EFFECT_KEY);

2)解析交互增强控件设置信息,根据这些信息对报表对象进行修改

前端接口是个js文件,名称及路径固定,由系统默认的交互增强前端处理接口自动调用(如果存在的话)。代码内容为:

$.fn.initCustomEffectStyle = function (){
// confirm($(this).attr('id'));
}

如果自定义了交互增强控件,且仅通过实现后台的CustomReportEffectGenerator类并不能达到效果,则需要实现这里的initCustomEffectStyle函数。(通常此文件是需要实现的)

实现流程为:

1)获取前端表格对象

var $table = $(this);

2)对table的元素进行处理

交互增强模块涉及到的文件

APPPATH/mis2/flexdesigner/designer/config/specialEffect.xml : 交互增强控件的类型定义文件

APPPATH/mis2/flexdesigner/designer/config/specialEffect.json : 交互增强控件的配置定义文件

APPPATH/mis2/custom/flexdesigner/designer/config/customEffect.xml : 客户自定义交互增强控件的类型定义文件

APPPATH/mis2/custom/flexdesigner/designer/config/customEffect.json : 客户自定义交互增强控件的配置定义文件

APPPATH/gez_report4-1.0.jar : 交互增强模块依赖类库

APPPATH/gez_viewReport_branch-1.0.jar : 交互增强模块依赖类库

APPPATH/gez_effects_branch-1.0.jar : 交互增强模块核心类库

APPPATH/mis2/vrsr/js/vr_effect.js : 交互增强控件WEB端核心处理文件

APPPATH/mis2/custom/vrsr/effects/js/custom_effect.js : 客户自定义交互增强控件WEB端处理文件

APPPATH/mis2/vrsr/effects目录 : 交互增强控件的其他相关文件

APPPATH/mis2/custom/vrsr/effects目录 : 客户自定义交互增强控件的其他相关文件