如何实现基础资料字段点击查看详情打开的是其他页面原创
金蝶云社区-wbshcy
wbshcy
7人赞赏了该文章 1,457次浏览 未经作者许可,禁止转载编辑于2022年08月22日 16:32:07

关键字:基础资料、查看明细

一、需求

当基础资料字段选择值以后,控件右边有查看图标,点击查看图标会展示该基础资料的查看页面,现在想取消打开该基础资料查看界面,而是打开该基础资料关联的其他页面。

image.png

二、思路与方案

需要确定点击图标会触发什么事件,在该事件取消原来的界面,自己构造单据界面参数BillShowParameter并打开。

确定触发什么事件的思路如下:
1. 点击查看详情按钮会触发基础资料的viewDetail方法kd.bos.form.field.BasedataEdit.viewDetail(Map<String, Object>)。

image.png


2.从kd.bos.form.field.BasedataEdit.viewDetail的代码可以看到会遍历beforeF7ViewDetailListeners执行accept方法,因此可以给基础资料字段注册beforeF7ViewDetailListeners,并重写accept方法。

image.png

三、实现过程

1.给消毒方案基础资料字段注册监听BeforeF7ViewDetailListener;

image.png

 

2.重写accept(BeforeF7ViewDetailEvent)方法。


@Override
public void accept(BeforeF7ViewDetailEvent arg0) {
// TODO Auto-generated method stub
BasedataEdit basedataEdit  = (BasedataEdit) arg0.getSource();
arg0.setCancel(true);
QFilter filter = new QFilter("kded_scheme.id","=",arg0.getPkId());
DynamicObject detail = BusinessDataServiceHelper.loadSingle("kded_schemechangedetail", "id,*",new QFilter[] {filter});
BillShowParameter showParameter = new BillShowParameter();
showParameter.setFormId("kded_schemechangedetail");
showParameter.getOpenStyle().setShowType(ShowType.Modal);
showParameter.setStatus(OperationStatus.VIEW);
//设置弹出页面的大小,高600宽800
StyleCss inlineStyleCss = new StyleCss();
inlineStyleCss.setHeight("600");
inlineStyleCss.setWidth("800");
showParameter.setPkId(detail.getPkValue());
showParameter.setCaption("消毒方案变更详情单");
this.getView().showForm(showParameter);
}

四、效果图

点击消毒方案基础资料字段的查看详情按钮,打开的是消毒方案变更单:

image.png

五、开发环境版本

V4.0.0.14

、参考资料

【开发平台】指导手册

学习成长中心

    

图标赞 7
7人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0