CommandArg
CommandArg为二次开发方法被调用时,形式参数的类型。在运行时该类中的成员变量的具体值由CommandArgOption注解来决定
argObject
argObject在以下几种情况下有值 plugin的数据传递 formCmd的数据传递 jsCallPlugin的数据传递
Object obj = arg.argObject;
//例如:在pluginRadioItemSelect_ 方法内 获取到的值是 当前Radio选中的值
formParam
窗体自身的参数
FormParam formParam = arg.formParam;
callerCommandArg:访问窗体的CommandArg,父窗体的CommandArg
CommandArg callerCommandArg = arg.formParam.callerCommandArg; //例如:从A画面打开B画面 在B画面的按钮方法内 获取到 A画面的arg
callerFormId:访问窗体的formId
String callerFormId = arg.formParam.callerFormId;
callerKey:访问窗体的key 可以在OpenFormArg中指定 如果未做特别指定,则为MenuItemButton的@name ,如果同一个画面多次被打开时callerkey完全一致,则不重新打开画面,而是将原来打开的画面前置,popup的画面除外,如果callerkey不用,则重新打开一个新的画面
String callerKey = arg.formParam.callerKey;
callerLookupField:当前窗口是下拉画面时 访问窗体的下拉字段名称
String callerLookupField = arg.formParam.callerLookupField;
callerMenuItemId:访问窗体的menuItemId
String callerMenuItemId = arg.formParam.callerMenuItemId;
callerType:访问窗体对当前窗体的访问类型
CallerType callerType = arg.formParam.callerType;
formId:当前窗体的formId
String formId = arg.formParam.formId;
joinTableAlias:访问窗体中的关联表的别名
String joinTableAlias = arg.formParam.joinTableAlias;
joinTableName:访问窗体中的关联表的表名
String joinTableName = arg.formParam.joinTableName;
menuItemId:窗体的menuItemId
String menuItemId = arg.formParam.menuItemId;
paramObject:如果通过OpenFormArg打开的Form,可以指定paramObject 注意 将被弃用
Object paramObject = arg.formParam.paramObject;
paramString:窗体的参数(字符串形式) 如果未做特别指定,则取GOT树中MenuItem的参数Parameters的值 (当使用openForm打开画面时,paramObject传参数,paramString传"ImportTable_Course",即打开导入控制台相关信息的画面,在导入类中使用this.formParam.paramObject获取。)
String paramString = arg.formParam.paramString;
argObject:argObject在以下几种情况下有值 plugin的数据传递 formCmd的数据传递 jsCallPlugin的数据传递
Object argObject = arg.argObject;
contextMap:contextMap中存放客户端画面上存储的内容。仅在当前客户端存储。可在二次开发中存放当前客户端的参数
Map<String, Object> contextMap = arg.contextMap;
defaultGroupAlias:标志了在调用方法getGroupInfo时,取到的是哪一个FormDataSourceGroup
String defaultGroupAlias = arg.defaultGroupAlias;
joinGroup:当前主Group关联的FormDataSourceGroup
CommandArgGroupInfo joinGroup = arg.joinGroup;
mapEditors:mapEditors包含了画面上所有无数据源控件的值,key为控件的名字,值为控件的值。(前提是CommandArgOption注解标志了这些无数据源控件的值被传到服务端,详见CommandArgOption)
Map<String, Object> mapEditors = arg.mapEditors;
mapGroups:mapGroups涵盖了数据源组的信息,key为数据源组的别名(主数据源的name),值为CommandArgGroupInfo的实例
Map<String, Object> mapGroups = arg.mapGroups;
getAllMaps
得到画面上所有记录(包括DataMethod这样不在表中存在的字段)返回值是一个List,List中是Map
方法签名
List<Map<String,Object>> allMaps = arg.getAllMaps()
方法入参
- 无
getAllRecords
得到画面上所有记录 返回一个List ,List中是GongqiRecord对象 可以强转成对应表对象
方法签名
List<? extends GongqiRecord> allRecords = arg.getAllRecords();
方法入参
- 无
getCurrentMap
得到当前选中记录(包括DataMethod这样不在表中存在的字段)返回值为一个Map
方法签名
Map<String, Object> currentMap = arg.getCurrentMap();
方法入参
- 无
getCurrentRecord
得到画面上当前的选中记录 返回 GongqiRecord对象 可以强制成对应表对象
方法签名
GongqiRecord currentRecord = arg.getCurrentRecord();
方法入参
- 无
示例代码
//获取到画面上SysUser数据源选中的记录 返回 SysUser对象
SysUser user = (SysUser)arg.getCurrentRecord();
getCurrentRecordOrig
得到数据表中与画面上当前的选中记录所对应的记录。假设记录A中的字段a在数据表里的值为1,因为用户修改在客户端的值为2,则getCurrentRecord得到的该字段的值为2,getCurrentRecordOrig得到的该字段的值为1
方法签名
GongqiRecord currentRecordOrig = arg.getCurrentRecordOrig();
方法入参
- 无
示例代码
//获取到画面上SysUser数据源选中的记录 返回 SysUser对象
SysUser user = (SysUser)arg.getCurrentRecordOrig();
getSelectedRecords
得到当前选中的记录
方法签名
List<? extends GongqiRecord> selectedRecords = arg.getSelectedRecords();
方法入参
- 无
示例代码
//获取到画面上SysUser数据源选中的记录 返回 SysUser对象
List<SysUser> users = (List<SysUser>)arg.getSelectedRecords();
getSelectedRecordsOrig
得到数据表中与画面上当前的选中记录所对应的记录
方法签名
List<? extends GongqiRecord> selectedRecordsOrig = arg.getSelectedRecordsOrig();
方法入参
- 无
示例代码
//获取到画面上SysUser数据源选中的记录 返回 SysUser对象
List<SysUser> users = (List<SysUser>)arg.getSelectedRecordsOrig();
getJoinGroupRecord
得到关联数据源组的关联记录,其中forUpdate参数表示是否对得到的记录做更新,如果要更新,则为true,否则在更新的时候框架会抛出异常。例如,通过menuItemButton从画面A打开画面C,C中的数据随A中的当前选中记录而更新,则C中二次开发方法的CommandArg参数的getJoinGroupRecord可以得到A中的当前记录。要获取JoinGroupRecord需要配合CommandArgOption注解——“joinGroup=yes”使用
方法签名
GongqiRecord joinGroupRecord = arg.getJoinGroupRecord();
方法入参
- 无
示例代码
//获取到画面上SysUserRelation数据源选中的记录的关联数据源 返回 SysUserRelation对象
SysUserRelation users = (SysUserRelation)arg.getJoinGroupRecord();
getJoinGroupRecordOrig
得到关联数据源组的在画面上的关联记录所对应的数据表中的记录,同getCurrentRecordOrig
方法签名
GongqiRecord joinGroupRecordOrig = arg.getJoinGroupRecordOrig();
方法入参
- 无
示例代码
//获取到画面上SysUserRelation数据源选中的记录的关联数据源 返回 SysUserRelation对象
SysUserRelation users = (SysUserRelation)arg.getJoinGroupRecordOrig();
getCurrentQuery
得到defaultGroupAlias指定的数据源组的当前查询,返回值为QueryTable的一个实例。要获取CurrentQuery需要配合CommandArgOption注解——“groups="current(cq)"”使用,“current”根据画面上的实际情况可改为all或者具体的FormDataSource名字
方法签名
QueryTable currentQuery = arg.getCurrentQuery();
方法入参
- 无
getFormQuery
得到defaultGroupAlias所指定的数据源组的FormQuery,在客户端,FormQuery是CurrentQuery的一个备份,它也是一个QueryTable的实例。要获取FormQuery需要配合CommandArgOption注解——“groups="current(fq)"”使用,“current”根据画面上的实际情况可改为all或者具体的FormDataSource名字
方法签名
QueryTable formQuery = arg.getFormQuery();
方法入参
- 无
getGroupInfo
得到defaultGroupAlias所指定的数据源组的CommandArgGroupInfo实例。CommandArgGroupInfo封装了特定数据源组的信息,它的方法与属性与CommandArg类似,CommandArg封装了其属性defaultGroupAlias所指定的数据源组的信息,此处不再展开说明
方法签名
CommandArgGroupInfo groupInfo = arg.getGroupInfo();
方法入参
- String groupAlias:得到指定的数据源组的CommandArgGroupInfo实例
示例代码
//获取到SysUser数据源
CommandArgGroupInfo groupInfo2 = arg.getGroupInfo("SysUser");
QueryTable formQuery2 = arg.getGroupInfo("SysUser").getFormQuery();
QueryTable currentQuery2 = arg.getGroupInfo("SysUser").getCurrentQuery();
getContextMap
得到客户端contextMap对象
方法签名
Map<String, Object> currentMap2 = arg.getCurrentMap();
Object contextValue = arg.getContextMap("key");
方法入参
- String key : 指定Key
getDialogFieldValue
得到Dialog中的DialogField的值。dialogFieldId为构造Dialog时DialogField的Id
方法签名
Object dialogFieldValue = arg.getDialogFieldValue();
方法入参
- String key: 指定dialogFieldId
getEditorValue
得到mapEditors中某个Editor的值,controlId为Editor的名字
方法签名
Object editorValue = arg.getEditorValue("controlName");
方法入参
- String key: 指定controlId