单据体第一行实体服务规则不生效的处理方法原创
金蝶云社区-小红没有帽
小红没有帽
103人赞赏了该文章 760次浏览 未经作者许可,禁止转载编辑于2024年02月19日 15:54:50

不少客户遇到设置了单据体的实体服务规则,但是单据首次加载时不生效的情况,产生此类问题的原因是实体服务规则需要新增行,值更新等去触发,以费用报销单为例,image.png

报销明细单据体默认行数是1,则在单据加载时,默认会创建一行数据,此时是不触发实体服务规则的,避免此类问题的方式有两种:

  1. 简单处理,将此值改为0,即第一行也需要点击新增行实现,这样就可以触发实体服务规则

  2. 使用python插件,将第一行的实体服务规则内容补上,例子如下:

    image.png

python源码如下:

def AfterBindData(e):
    iCount = this.View.Model.GetEntryRowCount("FEntity"
    for i in range(iCount): 
        #获取每一行中xxx字段的值
        acc0 = this.Model.GetValue("xxx", i) 
        #todo 对值进行判断做相关操作
        if acc0 is not None and acc0=='123':
            #举例,将abc字段设为不可编辑
            this.View.GetControl("abc").Enabled = False;

图标赞 103
103人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0