二开案例.表达式.获取分录行的最大日期

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

二开案例.表达式.获取分录行的最大日期

【应用场景】获取分录行的最大日期。

【案例演示】采购订单,单据头和单据体分别增加日期字段,该案例演示通过使用实体服务规则,获取分录行的最大日期,并赋值给单据头的日期字段。

【实现步骤】

<1>BOSIDE扩展采购订单,单据头和单据体分别新增两个长日期字段。

<2>在单据头上新增实体服务规则,如下图,保存元数据,开发完毕。

前置条件:

F_Jac_Datetime1 <> null AND FPOOrderEntry <> null AND FPOOrderEntry.Count > 0 AND len(filter(lambda row: row.F_Jac_Datetime1 <> null, FPOOrderEntry)) > 0


计算公式:

F_Jac_Datetime = max(map(lambda x : x.F_Jac_Datetime1, filter(lambda row: row.F_Jac_Datetime1 <> null, FPOOrderEntry)))



现在可以登录业务站点,打开采购订单编辑界面,单据体中录入日期,验证一下实体服务规则的控制效果啦。




【扩充知识】

<1>如果是求日期的最小值,把max改为min即可。

F_Jac_Datetime = min(map(lambda x : x.F_Jac_Datetime1, filter(lambda row: row.F_Jac_Datetime1 <> null, FPOOrderEntry)))

<2>前置条件,必须加上表达式中出现的所有字段不为null的判断(F_Jac_Datetime1<>null),如果不加,实体服务规则可能会感应不到这些字段的值更新事件,导致规则未执行。

<3>map函数要求遍历的集合不能为空,因此,前置条件要加上单据体满足条件的行是否大于0的判断,如果不加,当不存在满足map运算的数据行时,运行时可能报错。

<4>更多疑问,可百度关键字【python max】【python map】【python lambda】















【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.表达式.获取分录行的最大日期

【应用场景】获取分录行的最大日期。【案例演示】采购订单,单据头和单据体分别增加日期字段,该案例演示通过使用实体服务规则,获取分录行...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息