网站建设陆金手指下拉贰拾,台州网站公司建站,怎样增加网站权重,网站色彩的应用本文讲解4.0版jxTMS的自动生成代码功能#xff0c; 整个系列的文章请查看#xff1a;docker版jxTMS使用指南#xff1a;4.0版升级内容
docker版本的使用#xff0c;请参考#xff1a;docker版jxTMS使用指南
任何一个管理系统都需要对管理对象进行管理#xff0c;包括最…本文讲解4.0版jxTMS的自动生成代码功能 整个系列的文章请查看docker版jxTMS使用指南4.0版升级内容
docker版本的使用请参考docker版jxTMS使用指南
任何一个管理系统都需要对管理对象进行管理包括最基本的的增删改查而这每一个功能都需要制作界面、书写代码由于需要大量设置、修改各种名称【控件名、数据名、变量名等等】这些工作非常简单却异常繁琐很容易出错。
所以4.0版jxTMS提供了自动生成代码的功能通过简单描述管理对象的基本界面然后就可以自动生成基本的增删改查定制文件。
自动生成代码功能需要在模块所在目录下建立一个codeSource文本文件其中以分号为分隔符来定义一个个的管理对象的访问界面。其语法为
VARIABLE VARIABLE TITLE VARIABLE webDivData webDivRow webDivSearch?可参考【/var/chroot/home/demoOrg_2255/codeDefine/demo2/test/codeSource】。
codeSource的语法中所有以单引号括起来的全大写的文字都是关键字在语法定义中是需要用单引号括起来的但实际定义时自然不需要的。
第一个变量是管理对象的类属名【即该管理对象属于哪个门类】jxTMS会为该管理对象自动生成两个快捷栏中的入口【添加xx】和【xx查询】。而这两个入口所在的第一级的快捷栏名称就是此处的类属名。如第一个变量是【演示】则就会在快捷栏的【演示】菜单中新增两个入口【添加xx】和【xx查询】。
第二个变量是该管理对象的英文名笔者习惯以大写字母开头。
第三个变量是该管理对象的中文名。
示例如
安全管理 User TITLE 用户即对User的管理会在快捷栏中生成两个入口【安全管理-添加用户】、【安全管理-用户查询】。
webDivData是定义本管理对象的访问语义词与保存数据的数据表中列的对应关系的
webDivData//变量名就是保存数据的数据表名也是数据类名: DATA VARIABLE webDivDataVar
;
//webDivDataVar的定义是
webDivDataVar//语义词数据表中的列名: VARIABLE ASSIGN VARIABLE
;示例如
DATA AuthuserIDIDuserCreateTimeCreateTimeuserSpecialSpecialuserNameNameuserStateStateuserDescrDescr意为User的数据放在数据表Auth中userID保存在Auth表的ID列、userName保存在Auth表的Name列等等。
定义完DATA后以后只需要用语义词来访问数据即可不再需要直接使用数据字段名而语义词则绑定到所生成界面的相应控件的bind上。
webDivRow描述了该管理对象的详情界面而此界面将被新增、查看、修改三界面所复用
webDivRow//描述了一行由多个表意格组成: ROW webDivCol
;
webDivCol//每个表意格包括两个控件文本提示、输入输出数据【新增、修改时是输入查看、修改时是输出】: VARIABLE STRING webDivColTitleAttr? VARIABLE? TYPE type webDivColAttr
;
webDivColTitleAttr : webControlAttr (Comma webControlAttr)*
;
webDivColAttr : webControlAttr (Comma webControlAttr)*
;
webControlAttr //属性名属性值 : name ASSIGN value
;
value : NUMBER #numberValue | STRING #stringValue | (TRUE | FALSE) #booleanValue | VARIABLE #variableValue | json #jsonValue
;jxTMS将根据webDivRow中的定义自动生成一个详情界面然后被新增、查看、修改三界面所引用然后再分别为新增界面增加【增加】按钮、为编辑界面增加【修改】按钮。
示例如
ROWuserSpecial 标识号 type input width150userName 名称 type input width150
ROWuserState 状态 type combobox values[{text:正常},{text:停用},{text:异常}],useTexttrue,width150onLineState 实时状态 type text width150
ROWuserDescr 说明 type textarea width750就定义了一个三行的详情界面其生成的界面为
//基本信息
web UserInfo type div;
web UserInfo_T1 parent UserInfo type table title用户信息,width900,alonetrue;
with UserInfo_T1 row 0 col c0 web n type text text标识号,width150;
with UserInfo_T1 row 0 col c1 web n bind userSpecial type input width150;
with UserInfo_T1 row 0 col c2 web n type text text名称,width150;
with UserInfo_T1 row 0 col c3 web n bind userName type input width150;
with UserInfo_T1 row 1 col c0 web n type text text状态,width150;
with UserInfo_T1 row 1 col c1 web n bind userState type combobox values[{text:正常},{text:停用},{text:异常}],useTexttrue,width150;
with UserInfo_T1 row 1 col c2 web n type text text实时状态,width150;
with UserInfo_T1 row 1 col c3 web n bind onLineState type text width150;
with UserInfo_T1 row 2 col c0 web n type text text说明,width150;
with UserInfo_T1 row 2 col c1 web n bind userDescr type textarea width150;同时还创建了三个界面
//查看
web viewUser type div;
web viewUser_D1 parent viewUser ref UserInfo width900;//新增
web newUser type div;
web newUser_D1 parent newUser ref UserInfo width900;
web newUser_D2 parent newUser type div width900;
web newUser_OPBtn parent newUser_D2 type button width150,text增加,motioncmd,demandnewUser;//编辑
web editUser type div;
web editUser_D1 parent editUser ref UserInfo width900;
web editUser_D2 parent editUser type div width900;
web editUser_OPBtn parent editUser_D2 type button width150,text修改,motioncmd,demandeditUser;大家对照看一下就能理解了。
webDivSearch是可选的带条件的分页查询表。其语法为
webDivSearch//VARIABLE是查询的条件的语义词必须在ROW中定义过jxTMS会使用这些定义来生成查询条件: SEARCH VARIABLE (Comma VARIABLE)* webDivList
;
webDivList : LIST webDivListCol
;
webDivListCol //bind的语义词、head : COL VARIABLE VARIABLE? webDivColAttr
;大家可以对照【/var/chroot/home/demoOrg_2255/codeDefine/demo2/demo/codeSource】文件以及其所生成的代码文件同时运行一下查看相关界面来理解上述语法的效果。
参考资料
jxTMS设计思想
jxTMS编程手册
下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能
如何用jxTMS开发一个功能
下面的系列文章讲述了jxTMS的一些基本开发能力
jxTMS的HelloWorld