开发流程简述:
进入pages/Gridmetainfo/ 模块进行表生成元数据定义后,生成代码到项目下,然后进行以下步骤
1.修改自定义combo的选单,如为系统字典,无须修改
2.修改表格中的自定义字典的渲染器,如为系统字典,无须修改
3.tbar中增加功能按钮
4.根据主数据记录的值,显示或失效相应的按钮
5.表单中加隐藏传值表单,添加动作时设隐藏值
6.在修改时将表单combo变为只读,从主表传值给某表单
7.根据需要修改业务表格为单选或多选
8.后台action不变, 业务manager类中重载save方法,进行多事务的逻辑处理
以下为拿耳目模块举例说明修改过程
1).修改自定义combo的下拉选单与值
2).业务表格中的非信息代码字典,但为自定义字典字段,加上renderer,
renderer:function(v){if(v=='1'){return '安全耳目';}else if(v=='2'){return '狱侦耳目';}else{return v;}}
3).在tbar把添加按钮改为设置,并添加一个撤消按钮
4).根据主数据记录的值,显示或失效相应的按钮,在refreshLowerGrid方法添加
if(record.get('emlx')=='1'||record.get('emlx')=='2'){
Ext.getCmp('addJlsEmdjID').setDisabled(true);
Ext.getCmp('revokeJlsEmdjID').setDisabled(false);
}else{
Ext.getCmp('addJlsEmdjID').setDisabled(false);
Ext.getCmp('revokeJlsEmdjID').setDisabled(true);
}
5).在设置的表单窗体里,如果要增加一个隐藏表单值
在表单窗体中添加,{xtype:'hidden',fieldLabel:'办理类型',name:'bllx',288}
在打开窗体时设值:this.dtlFormPanel.form.findField("bllx").setValue(1);
6)在撤消的表单窗体里.将combo变为只读
1.this.dtlFormPanel.form.findField("emlx").disabled = "disabled";
2.表单中的combo选项应该为人员的耳目类型,如何把主表中的值传给表单:
1.在打开表单窗口时,refreshLowerGrid方法中把主表的record中某值,传给表单的store的参数
this.getStore().baseParams['q_emlx'] = record.get('emlx');
2.在撤消时将传来的参数赋给表单中的emlx的combo
this.dtlFormPanel.form.findField("emlx").setValue(this.getStore().baseParams['q_emlx']);
7).如果修改业务表格的选框类型
Ext.ux.grid.RadioSelectionModel() 单选 Ext.grid.CheckboxSelectionModel() 多选
8).修改后台
1).action不建议修改
2.JlsEmdjManager中重载save方法
//因为涉及多表操作,因此需要注解申明事务
@Transactional(propagation=Propagation.REQUIRED)
public void save(JlsEmdj jlsEmdj) {
this.jlsEmdjDao.save(jlsEmdj); //事务一
//更新人员基本信息的耳目标记逻辑
Object[] arr = null;
if(jlsEmdj.getBllx().equals("0")) {
arr = new Object[]{"3",jlsEmdj.getRybh()};
}else {
arr = new Object[]{jlsEmdj.getEmlx(),jlsEmdj.getRybh()};
}
//建议使用参数化HQL来进行更新
this.jlsEmdjDao.executeHQL("update JlsJbxx set emlx = ? where rybh = ? ",arr);
}