`
j1a1v1a1
  • 浏览: 28697 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java gui

阅读更多
各位老师、同学们:
      大家“非常好”!
      由于之前碰到过给分录设置默认值的问题,用啦很久时间基本解决啦这个问题,特拿来和大家分享一下,如果您有其他更好的方法,或者以下内容有不合理的地方,请您一定指出:
      一,如果需要设置的默认值是个固定的值,解决方法:
打开BIM(业务建模视图)->打开业务单元->在大纲视图(如果看不到这个视图可以:窗口->显示视图->其他->常规->大纲)中点开分录,选择要设置默认值的字段右击属性,在“默认值”中属性中设置值
      二,如果需要在代码里面动态设置默认值,解决方法:
1. 添加条目按钮(分录面板的三个按钮之一):
//点击添加分录按钮后 设置默认值
            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. 插入条目按钮(分录面板的三个按钮之一):
//点击插入分录按钮后 设置默认值
                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

引用
补充一下:给新增分录、插入分录 按钮添加监听的代码是写在: initUIContentLayout() 方法中的,这个方法是 ...
gruch5 发表于 2011-4-17 14:09


必须有这个限制吗?只要控件已经初始化完成后的任何地方都可以吧。
分享到:
评论
2 楼 j1a1v1a1 2012-02-06  
luogen33 写道
字体颜
引用
体颜色: 标准深红红色橙色棕色黄色绿色橄榄青色蓝色深蓝靛蓝紫色灰色白色黑色 字体大小: 标准1 (xx-small)2 (x-small)3 (small)4 (medium)5 (large)6 (x-large)7 (xx-large) 对
[/i][b][/b][i][i][/i]


呵呵你说的也算对,这个方法就是初始化
1 楼 luogen33 2011-12-01  
字体颜
引用
体颜色: 标准深红红色橙色棕色黄色绿色橄榄青色蓝色深蓝靛蓝紫色灰色白色黑色 字体大小: 标准1 (xx-small)2 (x-small)3 (small)4 (medium)5 (large)6 (x-large)7 (xx-large) 对
[/i][b][/b][i][i][/i]

相关推荐

Global site tag (gtag.js) - Google Analytics