特定单据转换控制只能整单转换

发布时间 2023-10-12 17:49:39作者: lanrenka
 

【业务需求】

《售后单》只能整单下推《产品序列号对照表》。

 

【 目录】

1、引入标准动态表单《单据转换操作界面》

2、扩展《单据转换操作界面》,并修改标识

3、新建BOS模块的表单插件项目

4、新建《单据转换操作界面》表单插件类

5、项目添加引用

6、修改为公共类,继承动态表单插件抽象基类AbstractDynamicFormPlugIn

7、重写事件

8、修改生成路径

9、编译插件工程

10、注册插件

11、提交元数据和插件代码

12、测试

 

【具体操作】

1、引入标准动态表单《单据转换操作界面》

 

 

标识:BOS_ConvertOpForm

 

2、扩展《单据转换操作界面》,并修改标识

重命名:开发商_BOS_ConvertOpForm

 

 

 

 

 

3、新建BOS模块的表单插件项目

如果已经存在则不需要创建了。

新建文件夹:ConvertPlugIn

 

4、新建《单据转换操作界面》表单插件类

新建类:ConvertOpFormEdit

 

 

5、项目添加引用:Kingdee.BOS.Core.dll、Kingdee.BOS.dll

 

 

 

 

 

 

6、修改为公共类,继承动态表单插件抽象基类AbstractDynamicFormPlugIn

 

 

 

 编写方法:

/// <summary>
        /// 《售后单》下推《产品序列号对照表》时,只能整单下推
        /// </summary>
        private void IsAfterOrderToReplace()
        {
            var parentFormid = this.View.ParentFormView.BillBusinessInfo.GetForm().Id;
            var FConvertRule = this.View.Model.GetValue("FConvertRule");
            if (parentFormid == "XHWT_AS_AfterOrder" && FConvertRule.Equals("XHWT_AS_AfterOrderToReplace"))
            {
                this.Model.SetValue("FSelectByBillId", true); //整单转换:全部分录行一并下推  打勾
                this.View.GetControl("FSelectByBillId").Enabled = false;//禁用
                this.View.GetControl("FSelectByBillId").Visible = false;//隐藏
                this.View.UpdateView("FSelectByBillId");
            }
            else
            {
                this.Model.SetValue("FSelectByBillId", false); //整单转换:全部分录行一并下推 取消打勾
                this.View.GetControl("FSelectByBillId").Enabled = true;//禁用
                this.View.GetControl("FSelectByBillId").Visible = true;//隐藏
                this.View.UpdateView("FSelectByBillId");
            }
        }
《售后单》下推《产品序列号对照表》时,只能整单下推

 

7、重写事件:

 

8、修改生成路径:

 

 9、编译插件工程:

 

 

 

10、注册插件

 

 

 

 

11、提交元数据和插件代码

 

 

 

 

12、测试:

 完美。