工艺路线维护-工序信息添加二开字段指南

工艺路线-工序信息添加二开字段指南
1. 应用场景
工艺路线支持根据客户的个性化定制进行调整。通过二开添加字段,可以在工艺路线中添加客户特定的需求字段,以满足客户个性化要求。工艺路线的工序存在存值分录(分录名称:工序信息)和显示分录(分录名称:工序信息-显示),需要根据业务场景进行处理。
如果二开字段在工序分录上直接操作则需要处理工序信息和工序信息-显示分录。
如果二开字段在工序明细页签中操作则需要处理工序信息和工序明细页签。
注意:星瀚版本V6.0.009以上需要同步在【工程变更工艺路线】(标识pdm_ecoroute)中同步添加数据库字段。
2、实现方案
扩展工艺路线元数据,在表单页面注册插件,通过插件维护工序二开字段的存值和显示。
1、 扩展【制造建模管理】,应用标识fmm。
路径:【开发服务云】→【开发平台】→【制造云】→【制造建模管理】
注意:如果存在扩展应用则忽略此步骤。

2、 扩展工艺路线元数据,注册二开插件。
路径:【工艺路线】

注册二开插件:二开插件继承AbstractFormPlugin。

3、 元数据工序信息分录上添加二开字段:存值字段和显示字段(根据需求处理)。
存值字段:加在存值分录
显示字段:
3.1、工序分录显示:在工序页签的显示分录添加显示字段
注意:请开启字段的【即时触发值更新】。

3.2、工序控制显示:在工序明细页签中添加显示字段。
注意:请开启字段的【即时触发值更新】,存值分录一样的要添加字段。

3.3、 值维护:分为工序信息-显示分录维护和工序明细页签维护
工序信息-显示分录维护:
1、重写值改变事件(propertyChanged):维护二开显示字段时给存值字段赋值。


2、工序序列分录切换数据时同步调整二开字段显示:
实现RowClickEventListener,在registerListener中注册工序序列分录的监听,重写entryRowClick方法。

工序序列切换数据时重新绑定工序信息-显示分录中的二开字段数据。

3、工序信息新增行、插入行、删除行时重新绑定工序信息-显示分录二开字段数据。
4、从列表打开工艺路线编辑页面时为工序信息-显示分录绑定二开字段数据。
重写afterBindData方法。(注意:这里只要处理显示分录二开字段就可以了,如果字段在工序明细页签则不需要重写该方法,原因:界面默认显示的是工序信息-显示分录,工序明细页面二开字段在页面切换时处理。)

工序明细页签维护:
1、重写值改变事件(propertyChanged):维护二开显示字段时给存值字段赋值。

2、选择工序信息行,切换工序明细页签显示:
实现TabSelectListener,在registerListener中注册工序序列分录的监听,重写tabSelect方法。(注意:需要同时注册工序序列分录行点击事件,场景:当展示的是工序明细页签时,切换工序序列需要展示对应工序序列下工序信息的数据。)


3、展示工序明细页签时,勾选工序序列分录数据:

4、 演示:
1、 二开字段在工序信息-显示分录:
选择数据

新增工序序列

切换工序序列

点击新增行

点击插入行

工艺路线列表打开编辑页面

2、 二开字段在工序明细页签:
工序明细页签二开字段数据维护

切换工序序列分录数据选中行

5、 参考代码:
注意:当二开字段在工序信息-显示分录时参考“// TODO 工序页签 开头的代码”
当二开字段在工序明细页签时参考 “// TODO 工序明细页签 开头的代码”
package kd.mmc.fmm.formplugin.processroute;
import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.IFormView;
import kd.bos.form.container.Tab;
import kd.bos.form.control.EntryGrid;
import kd.bos.form.control.events.RowClickEvent;
import kd.bos.form.control.events.RowClickEventListener;
import kd.bos.form.control.events.TabSelectEvent;
import kd.bos.form.control.events.TabSelectListener;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.plugin.AbstractFormPlugin;
import java.util.EventObject;
/**
* @author :qing_xia
* @description:1.0
* @date : 2024/5/22 10:49
* @version: $
*/
public class FMMProcessRouteEditPluginExt extends AbstractFormPlugin implements RowClickEventListener, TabSelectListener {
@Override
public void afterBindData(EventObject e) {
super.afterBindData(e);
// TODO 工序页签
showEntryExtFiledData();
}
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
// TODO 工序页签 & 工序明细页签 注册工序序列分录行点击事件监听
EntryGrid entryGrid = this.getView().getControl("entryentity");
entryGrid.addRowClickListener(this);
// TODO 工序明细页签 注册工序信息页签切换监听
Tab tab = (Tab) this.getControl("tabap");
tab.addTabSelectListener(this);
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
ChangeData[] changeSet = e.getChangeSet();
String propertyName = e.getProperty().getName();
for (int i = 0; i < changeSet.length; i++) {
propertyChanged(changeSet[i], propertyName);
}
}
// TODO 监听值改变事件
private void propertyChanged(ChangeData changeData, String property) {
int rowIndex = changeData.getRowIndex(); // 操作数据-行号
Object newValue = changeData.getNewValue(); // 操作数据-新值
IDataModel model = this.getModel();
int row =-1;
switch (property){
// TODO 工序页签 显示字段在工序信息-显示分录上:操作数据在存值分录(工序信息)中的行号是通过显示分录(工序信息-显示)的row3字段关联。
case "checkboxfield3": // 显示字段的标识:二开-复选框
row = (int) model.getValue("row3", rowIndex); // 拿到数据在存值分录的行号
model.setValue("checkboxfield",newValue,row);
break;
case "basedatafield3": // 显示字段的标识:二开-基础资料
row = (int) model.getValue("row3", rowIndex); // 拿到数据在存值分录的行号
model.setValue("basedatafield",newValue,row);
break;
// TODO 工序明细页签 显示字段在工序明细页签上:操作数据在存值分录(工序信息)中的行号是通过工序页签上的row1(实体工序行号)字段关联,
// 操作数据在显示分录(工序信息-显示)中的行号是通过工序控制页签的row4(显示工序行工艺路线维护-工序信息添加二开字段指南
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



