销售费用分摊二开增加字段

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

销售费用分摊二开增加字段

# 一、使用背景 # 目前星空旗舰版销售费用分摊功能,查询获取的应付单与销售出库单字段有限,不能满足用户的所有需求。 # 二、接口说明 # ``` type package kd.sdk.cms.cal.extpoint.saleFee; import kd.bos.algo.Row; import kd.bos.dataentity.entity.DynamicObject; import kd.sdk.annotation.SdkPlugin; import kd.sdk.annotation.SdkPublic; /** * @Date:2024/3/19 * @version:1.0 * @Description:通过二开自定义新增字段插件 * @author:wenjie_tong */ @SdkPlugin(name = "销售费用分摊增加二开字段插件") @SdkPublic public interface ISaleFeeSubPlugin { /** * 销售出库单额外查询字段 * * @return 返回新添加的销售出库单查询字段 */ default String getExtraTargetBillFields() { return ""; }//return "entryentity.number"; 返回值为需要额外查询的销售出库单上的字段标识,其余查询同理 /** * 暂估应付单额外查询字段 * * @return 返回新添加的暂估应付单查询字段 */ default String getExtraBusBillFields() { return ""; } /** * 财务应付单额外查询字段 * * @return 返回新添加的财务应付单查询字段 */ default String getExtraSourceBillFields() { return ""; } /** * 非整单分摊时销售出库单单据体加载方法 * 将row中数据加载到单据体对应字段中 * * @param dynamicObject DynamicObject为界面单据体 * @param row Row中为查询到的字段信息 */ default void loadExtraTargetBillFields(DynamicObject dynamicObject, Row row) { //dynamicObject.set("number",row.get("entryentity.number"));第一个"number"为界面上销售出库单单据体字段标识,后一个"entryentity.number"为销售出库单中单据体"entryentity"的字段标识"number"。其余加载方法同理 } /** * 整单分摊时销售出库单单据体加载方法 * 将row中数据加载到单据体对应字段中 * * @param dynamicObject DynamicObject为界面单据体 * @param row Row中为查询到的字段信息 */ default void loadWholeBillExtraTargetBillFields(DynamicObject dynamicObject, Row row) { } /** * 暂估应付单单据体加载方法 * 将row中数据加载到单据体对应字段中 * * @param dynamicObject DynamicObject为界面单据体 * @param row Row中为查询到的字段信息 */ default void loadExtraBusBillFields(DynamicObject dynamicObject, Row row) { } /** * 财务应付单单据体加载方法 * 将row中数据加载到单据体对应字段中 * * @param dynamicObject DynamicObject为界面单据体 * @param row Row中为查询到的字段信息 */ default void loadExtraSourceBillFields(DynamicObject dynamicObject, Row row) { } /** * 销售出库单整单分摊指定额外隐藏字段方法 * * @return 整单分摊时需额外隐藏的单据体字段标识 */ default String[] getExtraVisibleFields() { return new String[]{};//return new String[]{"number"}; 数组内字符串为在整单分摊时,需要额外隐藏的界面销售出库单单据体字段标识 } } ``` # 三、使用示例 # ## 1.拓展销售费用分摊界面 ## 想要增加二开字段,首先需要拓展销售费用分摊界面,并在需要添加字段的单据体上添加所需的字段,这里以销售出库单单据头业务员字段,与单据体税率字段为例。 ![业务员.webp](/download/01000954af76dc7c429fa73d10d8122bfac3.webp) ![税率.webp](/download/0100ac58354563f6466d807b50590e5c5b78.webp) ## 2.实现二开接口 ## 在拓展表单新增字段完成后,就需要进行二开代码的编写了。首先,需要编写一个java类以实现二开接口:**ISaleFeeSubPlugin** ```type import kd.bos.algo.Row; import kd.bos.dataentity.entity.DynamicObject; import kd.sdk.cms.cal.extpoint.saleFee.ISaleFeeSubPlugin; public class SaleFeeTestPlugin implements ISaleFeeSubPlugin { @Override /**销售出库单额外查询字段 * @return 返回新添加的销售出库单查询字段 */ public String getExtraTargetBillFields() {//返回新添加的销售出库单查询字段 return "bizoperator,billentry.taxrate";//此处返回的字符串为销售出库单上需要查询的字段标识,taxrate为销售出库单单据体上税率字段,因此需要增加对应单据体标识"billentry"在字段标识之前。 } @Override /** * 非整单分摊时销售出库单单据体加载方法 * 将row中数据加载到单据体对应字段中 * @param dynamicObject DynamicObject为界面单据体 * @param row Row中为查询到的字段信息 */ public void loadExtraTargetBillFields(DynamicObject dynamicObject, Row row) {//Row中为查询到的字段信息,DynamicObject为界面单据体,将row中数据加载到单据体对应字段中 dynamicObject.set("salefeebizoperator_id", row.get("bizoperator")); dynamicObject.set("salefeetaxrate", row.get("billentry.taxrate")); //此处salefeebizoperator与salefeetaxrate为销售费用分摊表单新增字段的标识,而salefeebizoperator是基础资料业务员的标识,因此需要在后方增加"_id"以正常加载基础资料。 } @Override /**整单分摊时销售出库单单据体加载方法 * 将row中数据加载到单据体对应字段中 * @param dynamicObject DynamicObject为界面单据体 * @param row Row中为查询到的字段信息 */ public void loadWholeBillExtraTargetBillFields(DynamicObject dynamicObject, Row row) { dynamicObject.set("salefeebizoperator_id", row.get("bizoperator")); } @Override /**销售出库单整单分摊指定额外隐藏字段方法 * @return 整单分摊时需额外隐藏的单据体字段标识 */ public String[] getExtraVisibleFields() { return new String[]{"salefeetaxrate"}; //此处返回的值为销售费用分摊界面上新增的,销售出库单需要在整单分摊时隐藏的字段名,通常,单据体字段需要在整单分摊时隐藏 } } ``` ## 3.注册插件 ## 打开**业务扩展场景**,选择业务场景编码为"**kd.fi.cal.formplugin.salefee.SaleFeeAllocPlugin.queryandload**"的业务场景,并点击绑定插件 ![业务场景搜索.webp](/download/01008f5bb526b68b44c2bd99a9b76ca80852.webp) ![业务扩展场景.webp](/download/0100ed8504681dd5415dbd3973e51c4a8a4d.webp) 然后点击增行,绑定插件引用路径并保存。此时,实现的接口功能就能正常生效了。 ![注册插件.webp](/download/0100e6e19d9d7a354466bd8e3eae9b24c0f1.webp) # 四、实现效果 # 如图时非整单分摊时,能获取销售出库单的业务员与税率字段。 ![销售费用非整单.webp](/download/0100c8d0d45c36244c77bd1b082469c1fe92.webp) 而在整单分摊时,税率字段被隐藏了 ![销售费用整单.webp](/download/01004442e2ef0a084d4297402020c7a95551.webp) # 五、注意事项 # 1.查询单据体字段时,注意**增加单据体标识**,如,查询标识为"entity"的单据体的字段"number"时,应使用字符串"**entity**.number"。 2.加载基础资料到页面上时,应使用"**_id**"作为基础资料的标识后缀,以正确加载基础资料。如加载标识为"salefeebizoperator"的基础资料字段时,使用 dynamicObject.set("**salefeebizoperator_id**", row.get("bizoperator"));

销售费用分摊二开增加字段

# 一、使用背景 #目前星空旗舰版销售费用分摊功能,查询获取的应付单与销售出库单字段有限,不能满足用户的所有需求。# 二、接口说明 #...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息