如何灵活使用界面规则+插件代码,锁定分录原创
金蝶云社区-吴锐雄
吴锐雄
8人赞赏了该文章 1,682次浏览 未经作者许可,禁止转载编辑于2023年01月12日 22:48:39
summary-icon摘要由AI智能服务提供

本文介绍了在不遍历单据体分录的情况下,通过界面规则和插件代码实现单据体字段及行的锁定与解锁的方法。通过单据头和单据体中的下拉列表字段作为控制条件,配置界面规则以根据条件锁定或解锁单据体字段或行。同时,提供了插件代码示例来控制下拉列表字段的值,并建议隐藏下拉字段控件。最后,还提到了开发环境版本、参考文档和附件信息。

关键字:分录,单据体,界面规则


一、需求

不经过遍历单据体分录,就能根据条件,将单据体锁定。

如果分录行比较多时,通过遍历分录行,锁定字段的方式,性能非常慢。

因此,需要一种灵活的方式来实现单据体分录的锁定和解锁。


二、思路与方案

1.采用界面规则+插件代码的方式来控制单据体锁定的逻辑,可以减少代码量。

不采用setEnable的方式来锁定单据体。

2.我们可以通过一个下拉字段(或者复选框)作为前置条件,使用界面规则锁定单据体的字段或者一行单据体。

3.用插件代码控制下拉列表的值。


三、实现过程

1.设计单据

创建单据,命名为kdec_building_materials_1。

拖入一些单据头字段和单据体字段。

image.png


单据头拖入下拉列表字段,标识为kdec_seten_enbale,名为“控制单据体字段锁定”,控制单据体列,即单据体字段的锁定与解锁;

单据体拖入下拉列表字段,标识为kdec_seten_enbale_line,名为“控制单据体行锁定”,控制单据体行锁定与解锁;

设置2个下拉列表字段的下拉项。

注意:

我会使用kdec_seten_enbale,单据头的下拉列表字段控制

image.png

image.png


2.配置锁定单据体字段的界面规则

(1)选中单据体节点,打开界面规则配置

image.png

(2)配置前置条件,kdec_seten_enbale下拉列表字段为A时。

注意区分,kdec_seten_enbale是单据头的字段,用来控制 单据体字段锁定

image.png

(3)成立时,锁定单据体字段;不成立时,解锁字段

image.png

image.png


3.配置锁定单据体行的界面规则

(1)选中单据体节点,打开界面规则配置

image.png

(2)配置前置条件

注意区分,kdec_seten_enbale_line 是单据体上面的字段,用来控制 单据体当前这一行的锁定

image.png

(3)成立时,锁定单据体行上面正在显示的字段;不成立时,解锁字段

image.png

image.png


3.插件代码控制下拉列表字段值

这里仅作为参考案例,在afterBindData事件中设置下拉列表字段值,请开发者根据自身业务在不同的事件中设置下拉列表的值。

@Override
public void afterBindData(EventObject e) {
    super.afterBindData(e);

    /* 开发者根据自身业务逻辑,在此处判断,控制字段值 */
    if (true  ) {
        getModel().setValue("kdec_seten_enbale", "B");
    }

    /* 开发者根据自身业务逻辑,在此处判断,控制单据体下拉字段值 */
    EntryGrid entryGrid = getControl("kdec_bu_ma_en_1");
    int enCount = entryGrid.getEntryData().getDataEntitys().length;
    if (enCount > 2) {
        getModel().setValue("kdec_seten_enbale_line", "A", 0);
        getModel().setValue("kdec_seten_enbale_line", "B", 1);
        getModel().setValue("kdec_seten_enbale_line", "A", 2);
    }

}


4.隐藏下拉字段控件

正常情况下,下拉字段控件起到控制锁定性的效果,不需要对用户展示,所以建议将其隐藏。

image.png


四、效果图

锁定的字段

image.png


锁定的数据行

image.png


五、开发环境版本

image.png

六、参考文档

界面规则

【开发平台】指导手册


七、附件


控插件代码:DemoBuMaPlugin.java

元数据zip包:kdec_wrx_test-kdec_wrx_col_app-20221220164527.zip

元数据说明

业务云编码:kdec_wrx_test;应用编码:kdec_wrx_col_app;页面:kdec_building_materials_1;





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