以前我们集团有一个需求:由于各家公司银企接入的进度不同,只有少部分公司可以使用银企直连,我们需要过滤结算方式,只对这一部分公司开放银企直联的结算方式,其他公司都只展示网银结算方式。听起来也不是很难的功能,但坑就坑在这个功能以前是写在Java插件里面的,每次有新公司接入银企了,都需要修改代码再重启服务器,十分不方便。

从财政厅刚回来的那段时间比较闲,琢磨了一下金蝶的脚本插件,即插即用无需重启,而且前端就可以编写,那个时候我还写了一个教程:金蝶系统中,设置点击超链接打开不同的页面

说实话,又没有文档,又没有教程,所有的代码都是我一行一行瞎试出来的。但我今天突然发现,ChatGPT居然会写,我真是服了。并且我也在金蝶社区找到了KDE脚本开发文档,有些函数ChatGPT实在不会的情况下可以先喂给他文档。

然后我就让它帮我把原先的Java插件改写成脚本插件了,要不然我每次都得去麻烦人家改代码+重启,还影响员工正常使用。代码如下:

var plugin = new FormPlugin({
    initialize:function(){
        var paymode = this.getView()
            .getControl("paymode");

        if(paymode){
            paymode.addBeforeF7SelectListener(this);
        }
    },

    beforeF7Select:function(e){

        var listShowParameter =
            e.getFormShowParameter();

        // F7显示方式
        listShowParameter.setF7Style(3);

        // 获取费用承担公司
        var costcompany =
            this.getModel()
            .getValue("costcompany");

        if(costcompany == null){
            return;
        }

        var companyNumber =
            costcompany.getString("number");

        var filterParameter =
            listShowParameter
            .getListFilterParameter();

        var qFilters =
            filterParameter.getQFilters();

        if(
            companyNumber == "000001"
            || companyNumber == "000002"
            || companyNumber == "000003"
        ){

            qFilters.add(
                new QFilter(
                    "number",
                    "!=",
                    "JSFS002"
                )
            );

            qFilters.add(
                new QFilter(
                    "number",
                    "!=",
                    "JSFS009"
                )
            );

        }else{

            qFilters.add(
                new QFilter(
                    "number",
                    "!=",
                    "JSFS001"
                )
            );

        }

    }
});

不仅如此,我把之前用python写的金蝶插件给封装成Chrome插件,这下能很方便地推广给新入职的员工了。

感谢ChatGPT。