開發流程簡述:
進入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',width: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);