各位老师、同学们:
大家“非常好”!
由于之前碰到过给分录设置默认值的问题,用啦很久时间基本解决啦这个问题,特拿来和大家分享一下,如果您有其他更好的方法,或者以下内容有不合理的地方,请您一定指出:
一,如果需要设置的默认值是个固定的值,解决方法:
打开BIM(业务建模视图)->打开业务单元->在大纲视图(如果看不到这个视图可以:窗口->显示视图->其他->常规->大纲)中点开分录,选择要设置默认值的字段右击属性,在“默认值”中属性中设置值
二,如果需要在代码里面动态设置默认值,解决方法:
1. [b]添加[/b]条目按钮(分录面板的三个按钮之一):
//点击添加分录按钮后 设置默认值
kdtEntrys_detailPanel.addAddListener(new com.kingdee.eas.framework.client.multiDetail.IDetailPanelListener() {
public void beforeEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exception {
IObjectValue vo = event.getObjectValue();
//设置默认值
vo.put("matid", "MT0001");
vo.put("matmc","变形金刚");
}
public void afterEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exception {
}
});
//添加条目按钮 的点击事件
this.kdtEntrys_detailPanel.getAddNewLineButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
MsgBox.showInfo("添加分录按钮的点击事件!");
}
});
2. [b]插入[/b]条目按钮(分录面板的三个按钮之一):
//点击插入分录按钮后 设置默认值
kdtEntrys_detailPanel.addInsertListener(new com.kingdee.eas.framework.client.multiDetail.IDetailPanelListener() {
public void beforeEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exception {
IObjectValue vo = event.getObjectValue();
//设置默认值
vo.put("matid", "MT0002");
vo.put("matmc","生铁");
}
public void afterEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exception {
}
});
3. 使用代码来添加一行数据:在loadField()方法中使用代码:this.addLine(kdTable);来新增一行。
这时设置默认值的方法:
//override方法
protected IObjectValue createNewDetailData(KDTable arg0) {
StudentEntryInfo entry = new StudentEntryInfo();
entry.setMatId("MT003");
entry.setMatmc("生命之水");
return entry;
}
有人说只要一个createNewDetailData方法就可以啦,但是我的环境下是除非this.addLine()方法被调用否则根本不会触发这个方法,如果您知道原因,欢迎您指出!
gruch5 发表于 2011-4-17 14:09
补充一下:给新增分录、插入分录 按钮添加监听的代码是写在: initUIContentLayout() 方法中的,这个方法是override过来的!
jinsfu 发表于 2011-5-4 15:48
感谢!很有用啊!
beihanggo 发表于 2011-5-19 16:09
[quote]补充一下:给新增分录、插入分录 按钮添加监听的代码是写在: initUIContentLayout() 方法中的,这个方法是 ...
[size=2][color=#999999]gruch5 发表于 2011-4-17 14:09[/color] [url=http://dev.kingdee.com/bbs/redirect.php?goto=findpost&pid=6302&ptid=2488][img]http://dev.kingdee.com/bbs/images/common/back.gif[/img][/url][/size][/quote]
必须有这个限制吗?只要控件已经初始化完成后的任何地方都可以吧。
大家“非常好”!
由于之前碰到过给分录设置默认值的问题,用啦很久时间基本解决啦这个问题,特拿来和大家分享一下,如果您有其他更好的方法,或者以下内容有不合理的地方,请您一定指出:
一,如果需要设置的默认值是个固定的值,解决方法:
打开BIM(业务建模视图)->打开业务单元->在大纲视图(如果看不到这个视图可以:窗口->显示视图->其他->常规->大纲)中点开分录,选择要设置默认值的字段右击属性,在“默认值”中属性中设置值
二,如果需要在代码里面动态设置默认值,解决方法:
1. [b]添加[/b]条目按钮(分录面板的三个按钮之一):
//点击添加分录按钮后 设置默认值
kdtEntrys_detailPanel.addAddListener(new com.kingdee.eas.framework.client.multiDetail.IDetailPanelListener() {
public void beforeEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exception {
IObjectValue vo = event.getObjectValue();
//设置默认值
vo.put("matid", "MT0001");
vo.put("matmc","变形金刚");
}
public void afterEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exception {
}
});
//添加条目按钮 的点击事件
this.kdtEntrys_detailPanel.getAddNewLineButton().addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
MsgBox.showInfo("添加分录按钮的点击事件!");
}
});
2. [b]插入[/b]条目按钮(分录面板的三个按钮之一):
//点击插入分录按钮后 设置默认值
kdtEntrys_detailPanel.addInsertListener(new com.kingdee.eas.framework.client.multiDetail.IDetailPanelListener() {
public void beforeEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exception {
IObjectValue vo = event.getObjectValue();
//设置默认值
vo.put("matid", "MT0002");
vo.put("matmc","生铁");
}
public void afterEvent(com.kingdee.eas.framework.client.multiDetail.DetailPanelEvent event) throws Exception {
}
});
3. 使用代码来添加一行数据:在loadField()方法中使用代码:this.addLine(kdTable);来新增一行。
这时设置默认值的方法:
//override方法
protected IObjectValue createNewDetailData(KDTable arg0) {
StudentEntryInfo entry = new StudentEntryInfo();
entry.setMatId("MT003");
entry.setMatmc("生命之水");
return entry;
}
有人说只要一个createNewDetailData方法就可以啦,但是我的环境下是除非this.addLine()方法被调用否则根本不会触发这个方法,如果您知道原因,欢迎您指出!
gruch5 发表于 2011-4-17 14:09
补充一下:给新增分录、插入分录 按钮添加监听的代码是写在: initUIContentLayout() 方法中的,这个方法是override过来的!
jinsfu 发表于 2011-5-4 15:48
感谢!很有用啊!
beihanggo 发表于 2011-5-19 16:09
[quote]补充一下:给新增分录、插入分录 按钮添加监听的代码是写在: initUIContentLayout() 方法中的,这个方法是 ...
[size=2][color=#999999]gruch5 发表于 2011-4-17 14:09[/color] [url=http://dev.kingdee.com/bbs/redirect.php?goto=findpost&pid=6302&ptid=2488][img]http://dev.kingdee.com/bbs/images/common/back.gif[/img][/url][/size][/quote]
必须有这个限制吗?只要控件已经初始化完成后的任何地方都可以吧。