二开案例-报销单分录增加可手输可选择客户字段原创
金蝶云社区-ice0_o
ice0_o
3人赞赏了该文章 145次浏览 未经作者许可,禁止转载编辑于2023年05月29日 17:41:44

一、二开需求

费用报销单分录增加客户字段,既能手动输入,又能选择

二、实现步骤

1、分录实体增加客户、客户名称字段;客户用于F7选择,绑定客户数据源,客户名称用于存储手动输入名称字段

image.png

image.pngimage.png


2、费用报销单编辑页面引入字段,客户字段配置隐藏

image.png


3、分录下方增加客户信息,不需要绑定任何属性,查询对象赋值客户绑定的对象,并且记录此时客户信息的元素id为ext_F7

image.png



4、给客户名称增加一个编辑器:wafKhF7

image.png

编辑器脚本逻辑:点击客户名称打开客户信息F7

image.png

脚本:

waf.defineCustomeClass("celleditor.wafKhF7", celleditor.defaultEditor, {

show: function() {

//celleditor.defaultEditor.prototype.createEditor.call(this, value);

var btnId = this.opts.id + "btn";

var btnOpts = {

tagClass: "g-icon-search",

style: "height: 24px; width: 20px;position: relative;margin-left: -25px;text-decoration: none;",

id: btnId

};

var searchBtn = waf.createDOM("linkButton", btnOpts);

//$(this.elem).css("padding-right", "20px");

var initData = bizCollBillBase.getModelInitData();

this.elem = $("<div style='width:100%;height:100%;border:none;display:inline-block;'></div>")

.append(this.elem).append(searchBtn);

        waf.initComponent("linkButton", btnOpts, searchBtn);

        waf(searchBtn).find("span").addClass("qsBtn");

        waf(searchBtn).wafLinkButton("option", "onclick", waf("#ext_F7").wafPromptStandard("open"));

        celleditor.defaultEditor.prototype.show.call(this);

}

});


5、客户信息增加触发事件:khchange,选择后赋值客户和客户名称

image.png

image.png

脚本:

var entryDom = waf("#entries"),

currentRowId = entryDom.dataGrid("getSelectedRow"),

selectValue = value.current;

if (!selectValue) return;

        entryDom.wafGrid("editStop");

        var khName = selectValue.name.l2 ? selectValue.name.l2 : selectValue.name;

        entryDom.wafGrid("setCell", currentRowId, "khName", khName);

        entryDom.wafGrid("setCell", currentRowId, "kh", selectValue);

        waf("#ext_F7").wafPromptBox("setValue", null);

6、给客户名称增加触发事件:khNameChange,当客户名称是手动输入的,需要清空客户F7的值

image.png

var entryDom = waf("#entries"),

currentRowId = entryDom.dataGrid("getSelectedRow"),

selectValue = ui.current;

       entryDom.wafGrid("editStop");        

       entryDom.wafGrid("setCell", currentRowId, "kh", null);


赞 3