电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

表单上按子单据体选中行下推

来源:金蝶云社区作者:金蝶2024-09-233

表单上按子单据体选中行下推

关键词:子单据体、下推

一、需求

采购申请单上按子单据体(物料详情)选中行下推生成采购订单的数据,并且下推后自动打开生成的采购订单的数据。

二、思路与方案

  • 目前列表支持选中分录行数据即可按选中行下推。

  •  如果采购申请单表单上要按子单据体的选中行下推,只能通过代码实现。

三、实现过程

1、配置转换规则的关联实体为子单据体

错误的关联实体配置:如果源单关联实体配置成单据体-子单据体,固定只能下推一行子单据体的数据到目标单

2、代码实现按子单据体选中行数据下推

public class ReqBillPlugin extends AbstractBillPlugIn implements Plugin, RowClickEventListener, EntryGridSetRowDataListener {
    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
    }
@Override
public void itemClick(ItemClickEvent evt) {
    if (evt.getItemKey().equals("kdec_pushselect")){
        //获取当前单据数据(包含单据体)
        DynamicObject dataEntity = this.getModel().getDataEntity(true);
        Long pkValue = (Long) dataEntity.getPkValue();
        if (pkValue!=0){
            EntryGrid grid = this.getControl("kdec_reqentryentity");
            int focusRow = grid.getEntryState().getFocusRow();
            if (focusRow>0) {
                DynamicObjectCollection cols = dataEntity.getDynamicObjectCollection("kdec_reqentryentity");
                DynamicObject entry = cols.get(focusRow);
                DynamicObjectCollection subCols = entry.getDynamicObjectCollection("kdec_matersubentryentity");
                EntryGrid subGrid = this.getControl("kdec_matersubentryentity");
                int[] subSelectedRows = subGrid.getEntryState().getSelectedRows();
                List<ListSelectedRow> selectedRows = new ArrayList<>(subSelectedRows.length);
                for(int index:subSelectedRows){
                    ListSelectedRow selectedRow = new ListSelectedRow(pkValue);
                    // 设置需要下推的单据体(子单据体)名:按分录下推时必须设置
                    selectedRow.setEntryEntityKey("kdec_reqentryentity");
                    selectedRow.setSubEntryEntityKey("kdec_matersubentryentity");
                    selectedRow.setEntryPrimaryKeyValue(entry.getPkValue());
                    selectedRow.setSubEntryPrimaryKeyValue(subCols.get(index).getPkValue());
                    selectedRows.add(selectedRow);
                }

                // 生成下推参数PushArgs
                PushArgs pushArgs = new PushArgs();
                // 必选,源单标识
                pushArgs.setSourceEntityNumber("kdec_reqbill");
                // 必选,目标单标识
                pushArgs.setTargetEntityNumber("kdec_ordbill");
                // 可选,传入true,不检查目标单新增权
                pushArgs.setHasRight(true);
                // 可选,传入目标单验权使用的应用编码
                pushArgs.setAppId("");
         

表单上按子单据体选中行下推

关键词:子单据体、下推一、需求采购申请单上按子单据体(物料详情)选中行下推生成采购订单的数据,并且下推后自动打开生成的采购订单的数...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信