目录
本节目录收起
  • 帮助提示文件
  • 添加交互效果类型
  • 增加交互效果
  • 交互增强模块涉及到的文件
  • 相关文件

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

    帮助提示文件

    文件介绍

    路径: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目录 : 客户自定义交互增强控件的其他相关文件