应付付款申请如何在明细增加账户名称或二开字段?
1 简介
1.1 功能介绍
付款申请明细选择往来户后,往来账户可根据往来户的默认银行信息携带到付款申请,但没有携带账户名称及其他信息。现场希望在付款申请上二开处理携带往来户下银行信息的其他字段。
1.2 应用场景
1、付款申请审批时,不仅希望看到往来账户、往来银行,还希望看到账户名称;
2、供应商的银行信息明细增加了二开字段,需要展示到付款申请。
2 主要操作
2.1 在供应商的银行信息分录增加两个文本类型的二开字段
2.2 在付款申请单分录,同样增加两个文本类型的二开字段
2.3 新增付款申请单编辑界面插件,插件逻辑如下所示:
```java
package kd.fi.ap.formplugin;
import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.dataentity.utils.ObjectUtils;
import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.servicehelper.BusinessDataServiceHelper;
/**
* @description: 付款申请单编辑界面插件
* @author: renjie_li
* @create: 2024-07-02 14:56
**/
public class ApplyPayBillEditTest extends AbstractBillPlugIn {
/**
* 新增一个值改变事件
* @param e
*/
@Override
public void propertyChanged(PropertyChangedArgs e) {
//key为值改变字段标识,比如往来户改变,则key = e_asstact
String key = e.getProperty().getName();
//获取改变的数据
ChangeData[] changeData = e.getChangeSet();
switch (key) {
//如果往来户改变,则会进入下面的方法
case "e_asstact":
asstactChanged(changeData);
break;
default:
break;
}
}
/**
* 往来户改变,可以同时给一些字段赋值
* @param data
*/
private void asstactChanged(ChangeData[] data) {
// 当前分录行
int rowIndex = data[0].getRowIndex();
// 选择后的新值
Object newValue = data[0].getNewValue();
// 新值不为空,可以进行相关字段获取以及赋值
if (!ObjectUtils.isEmpty(newValue)) {
DynamicObject asstActInfo = (DynamicObject) newValue;
// 判断一下往来户是否为空
if(asstActInfo!=null){
//获取往来户类型,付款申请单往来户类型分为:供应商,人员,公司,客户
String asstactType = asstActInfo.getDataEntityType().getName();
switch (asstactType) {
//往来户类型 = 人员
case "bos_user":
// 以供应商举例
break;
//往来类型 = 客户
case "bd_customer":
// 以供应商举例
break;
//往来户类型 = 供应商
case "bd_supplier":
// 想携供应商相关信息的在这里查询,示例如下
//这里重新查询一次的意义是,界面上取的基础资料不全,只有引用了的字段才能查到。重新查询一下,是把供应商所有数据都取过来
asstActInfo = BusinessDataServiceHelper.loadSingleFromCache(asstActInfo.getPkValue(), "bd_supplier");
// 取供应商银行信息分录数据,其他分录类似
DynamicObjectCollection bankInfoCollection = asstActInfo.getDynamicObjectCollection("entry_bank");
// 有默认,就取默认;否则,取第一条
DynamicObject bankInfo = null;
if (bankInfoCollection.size() > 0) {
bankInfo = bankInfoCollection.get(0);
}
for (int i = 0; i < bankInfoCollection.size(); i++) {
DynamicObject bank = bankInfoCollection.get(i);
if (bank.getBoolean("isdefault_bank")) {
bankInfo = bank;
break;
}
}
if (bankInfo != null) {
// 获取往来户银行信息页签扩展字段
String textTest1 = bankInfo.getString("textfieldtest1");
String textTest2 = bankInfo.getString("textfieldtest2");
// 给付款申请单上的扩展字段赋值
this.getModel().setValue("textfieldtext1", textTest1, rowIndex);
this.getModel().setValue("textfieldtext2", textTest2, rowIndex);
}
break;
//往来类型 = 公司
case "bos_org":
// 以供应商举例
break;
default:
break;
}
}
}
}
}
```
应付付款申请如何在明细增加账户名称或二开字段?
本文2024-09-22 22:47:59发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-128932.html