提交人:陈绍鑫

日期:2025/5/23 10:30
内容:收款处理表单插件
This commit is contained in:
陈绍鑫 2025-05-23 11:23:33 +08:00
parent b6a9815e00
commit 48e4d8e331
1 changed files with 104 additions and 0 deletions

View File

@ -0,0 +1,104 @@
package shkd.sys.sys.plugin.form;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.list.ListShowParameter;
import kd.bos.orm.query.QFilter;
import kd.bos.util.StringUtils;
import java.util.Arrays;
import java.util.EventObject;
import java.util.List;
/**
* 单据界面插件
*/
public class CasRecbillFormPlugin extends AbstractFormPlugin implements BeforeF7SelectListener {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
//监听基础资料
BasedataEdit laxv_itemclassfield = this.getView().getControl("shkd_xkuse");//单据类型星空
laxv_itemclassfield.addBeforeF7SelectListener(this);
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
List<String> list = Arrays.asList("1", "2", "3", "4", "5", "6");
String name = e.getProperty().getName();
if ("shkd_xkbilltype".equals(name)) {
String NewValue = (String) e.getChangeSet()[0].getNewValue();
String NewValuetype = getType(NewValue);
if (list.contains(NewValue)) {
DynamicObjectCollection entrys = (DynamicObjectCollection) this.getModel().getValue("entry");
int i=0;
for (DynamicObject entry : entrys) {
DynamicObject shkd_xkuse = entry.getDynamicObject("shkd_xkuse");//用途
if (shkd_xkuse != null) {
String shkd_businesstype = shkd_xkuse.getString("shkd_businesstype");
if (!NewValuetype.equals(shkd_businesstype)){
this.getModel().setValue("shkd_xkuse",null,i);
}
}
i++;
}
}
}
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
String name = beforeF7SelectEvent.getProperty().getName();
if (name.equals("shkd_xkuse")) {
String shkd_xkbilltype = (String) this.getModel().getValue("shkd_xkbilltype");//单据类型
QFilter qFilter = null;
ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
if (!StringUtils.isEmpty(shkd_xkbilltype)) {
switch (shkd_xkbilltype) {
case "1":
qFilter = new QFilter("shkd_businesstype", QFilter.equals, "采购业务");
showParameter.getListFilterParameter().setFilter(qFilter);
break;
case "2":
case "3":
case "4":
qFilter = new QFilter("shkd_businesstype", QFilter.equals, "其他业务");
showParameter.getListFilterParameter().setFilter(qFilter);
break;
case "5":
case "6":
qFilter = new QFilter("shkd_businesstype", QFilter.equals, "工资发放");
showParameter.getListFilterParameter().setFilter(qFilter);
break;
default:
System.out.println("其他数字");
break;
}
}
}
}
public String getType(String value) {
switch (value) {
case "1":
return "采购业务";
case "2":
case "3":
case "4":
return "其他业务";
case "5":
case "6":
return "工资发放";
default:
return null;
}
}
}