收藏 分销(赏)

固定代码项的扩展.doc

上传人:s4****5z 文档编号:8889045 上传时间:2025-03-06 格式:DOC 页数:8 大小:77KB 下载积分:10 金币
下载 相关 举报
固定代码项的扩展.doc_第1页
第1页 / 共8页
固定代码项的扩展.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
固定代码项的扩展 使用场景 系统建设时通常会遇到各类数据字典,泽元框架为了保证项目上线后运营过程中能够有效的识别这些数据字典,而通过代码扩展的方式提供了固定代码项的扩展功能。在项目实施过程中要求开发团队能够按照固定代码项的方式来扩展相关代码,并添加相应注释,以便后期维护人员理解代码项的作用及意义。 相关数据结构 ZDCode表结构主要字段如下图: 主要字段包括:CodeType表示代码项的ID,用于区分各个代码项;parentCode用于表示该字段的父代码ID,通常为某项代码的CodeType,当perentCode的值为System时表示该项为顶级代码项,但此项不作为表示的状态或数据字典仅用来记录某个代码项或数据的属性,其下代码的parentCode均以该项的CodeType表示。 涉及的类说明 继承类com.zving.platform.FixedCodeType,扩展服务com.zving.platform.service.CodeService,该扩展服务主要用于系统代码项 详细说明 第一步:在相应的插件配置中新增一个扩展服务项,填写相关的信息,ID可使用Class的包路径+类名(com.zving.test.service.AddFixedCodeService),便于识别。选择扩展服务com.zving.platform.service.CodeService(需当前插件依赖platform插件),点击Class可弹出新建Class窗口,默认继承FixedCodeType类,定义包名和类名(com.zving.test.service和AddFixedCodeService),确定保存。 第二步:进入com.zving.test.service.AddFixedCodeService类中,实现相应的方法,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 packagecom.zving.test.service; importcom.zving.framework.data.DataRow; importcom.zving.framework.data.DataTable; importcom.zving.platform.FixedCodeType; /** *@authorzdq *@mailzdq@ *@date2013-12-18 *测试代码项 */ publicclassAddFixedCodeServiceextendsFixedCodeType{ publicstaticfinalStringID="Test.TestCode"; publicstaticfinalStringSTR="KEY"; publicstaticfinalStringSTR1="KEY1"; publicstaticfinalStringSTR2="KEY2"; publicstaticfinalStringSTR3="KEY3"; publicstaticfinalStringSTR4="KEY4"; publicAddFixedCodeService(){ super(ID,"固定代码项扩展测试",false,false); addFixedItem(STR,"Value",null); addFixedItem(STR1,"Value1",null); addFixedItem(STR2,"Value2",null); addFixedItem(STR3,"Value3",null); addFixedItem(STR4,"Value4",null); } publicstaticvoiddecode(DataTabledt,Stringcolumn){ if(dt.containsColumn(column)){ dt.insertColumn(column+"Name"); } for(DataRowdr:dt){ if(STR.equals(dr.getString(column))){ dr.set(column+"Name","Value"); }elseif(STR1.equals(dr.getString(column))){ dr.set(column+"Name","Value1"); }elseif(STR2.equals(dr.getString(column))){ dr.set(column+"Name","Value2"); }elseif(STR3.equals(dr.getString(column))){ dr.set(column+"Name","Value3"); }elseif(STR4.equals(dr.getString(column))){ dr.set(column+"Name","Value4"); } } } } 上述Class中除了定义一个公共构造器外还添加了decode方法,该方法的参数一个DataTable和一个String,其中String为需要decode的字段在DataTable中的字段名称即columnName。该方法可在dt中插入一列用于保存该column代表的含义,如dt中某列名为KEY,存储值为KEY、KEY1、KEY2,经过decode方法处理后会新增一列KEYName,值对应为Value、Value1、Value2,以便于前台的使用。 完成以上操作后重启应用即可看到在系统管理代码管理中已包含上述的代码项Test.TestCode,且其下代码项KEYValue等都可查看,如下图: 至此代码项的添加已经完成,常见的使用场景如下: datagrid数据,通常在datagrid中会用到,在后台直接通过DataTable的decode方法,例如dt.decodeColumn("KEY",PlatformUtil.getCodeMap("Test.TestCode")),或者AddFixedCodeService.decode(dt,”KEY”);完成之后会在dt中多出一列KEYName,便于datagrid中显示使用。 直接通过PlatformUtil.getCodeMap(“Test.TestCode”)获取一个map来使用,可转化为html元素等。 在zhtml页面中使用,例如z:radio、z:checkbox等页面控件的数据源可以直接指定Code=”Test.TestCode”,例如<z:radiocode=”Test.TestCode”/>,zhtml会自动将其中的键值对取出作为一个单选radio的一项。 文章源于泽元软件知识库,此文章只用于学术交流,不用于商业应用。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服