移动BOS
  • 移动BOS说明
  • 移动表单
    • 移动表单设计
    • 移动表单插件
    • 移动BOS开发技巧
    • 自定义基础资料
    • 移动特性接口
    • 底部菜单插件开发
  • 移动单据
    • 移动单据设计
    • 移动单据列表插件
    • 移动单据插件
    • 单据列表过滤
    • 单据附件
  • 移动单据分录
    • 标准分录详情
    • 自定义分录详情
  • 移动报表
    • 表格式报表
    • 图表式报表
  • 移动打印
    • 云之家打印
    • Android App标签打印
  • 业务审批
    • 移动平台单据启用设置
    • 移动单据编辑
  • 移动开发调试
    • 移动开发如何本地调试
  • 集成
    • 云之家集成
    • 微信集成
    • 第三方平台集成
Powered by GitBook
On this page
  • 【新建移动分录详情表单】
  • 【编写移动表单插件】
  • 【注册插件】
  • 【设置自定义分录详情】
  • 【运行时效果】

Was this helpful?

  1. 移动单据分录

自定义分录详情

自定义分录详情

Previous标准分录详情Next移动报表

Last updated 6 years ago

Was this helpful?

由于标准的分录详情界面是所有移动单据公用的界面,对于没有特殊需求的移动单据是适用。但也存在有些特殊的移动单据,需要做个性化二开,这时如果去扩展修改标准的分录详情界面,那其他所有的移动单据都会受影响,所以7.3的PT134511[7.3.1260.6]补丁开始,支持自定义移动分录详情。开发请参考以下说明做二次开发。

【新建移动分录详情表单】

如下图所示新建移动表单,表单继承自“MOB_EntryDetailBase”基类表单

【编写移动表单插件】

插件必须继承基类插件“EntryDetailBaseEdit”,如下图示例代码:

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Mobile.FormPlugIns.EntryDetails;
using Kingdee.BOS.Orm.DataEntity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LKD.MobileDemoPlugins
{
    /// <summary>
    /// 采购订单移动分录编辑界面插件
    /// </summary>
    public class SOEntryDetailTestEdit : EntryDetailBaseEdit
    {
        /// <summary>
        /// 填充分录编辑界面:处理移动分录编辑界面打开时,移动分录的数据填充到移动分录编辑界面对应字段
        /// </summary>
        protected override void FillEntryDetail()
        {
            base.FillEntryDetail();

            //物料赋值,FMaterialId 来源单据物料字段的唯一标识,F_LKD_MaterialId分录编辑界面物料字段的唯一标识
            var material = this.GetSourceFieldValue("FMaterialId") as DynamicObject;
            if (material != null)
            {
                var materialId = material["Id"];
                this.Model.SetItemValueByID("F_LKD_MaterialId", materialId, -1);
            }

            //单位赋值,FUnitID 来源单据单位字段的唯一标识,F_LKD_UnitID分录编辑界面单位字段的唯一标识
            var unit = this.GetSourceFieldValue("FUnitID") as DynamicObject;
            if (unit != null)
            {
                var unitlId = unit["Id"];
                this.Model.SetItemValueByID("F_LKD_UnitID", unitlId, -1);
            }

            //数量赋值,FQty 来源单据数量字段的唯一标识,F_LKD_Qty分录编辑界面数量字段的唯一标识
            var qty = this.GetSourceFieldValue("FQty");
            this.Model.SetValue("F_LKD_Qty", qty);

            //单价赋值,FTaxPrice 来源单据单价字段的唯一标识,F_LKD_TaxPrice分录编辑界面单价字段的唯一标识
            var taxPrice = this.GetSourceFieldValue("FTaxPrice");
            this.Model.SetValue("F_LKD_TaxPrice", taxPrice);
        }

        /// <summary>
        /// 返回移动分录:处理移动分录编辑界面点击确定时,移动分录编辑界面回填移动分录
        /// </summary>
        protected override void ReturnToProxyEntry()
        {
            base.ReturnToProxyEntry();

            //物料赋值,FMaterialId 来源单据物料字段的唯一标识,F_LKD_MaterialId分录编辑界面物料字段的唯一标识
            var material = this.Model.GetValue("F_LKD_MaterialId") as DynamicObject;
            if (material != null)
            {
                var materialId = material["Id"];
                this.SetSourceItemValueByID("FMaterialId", materialId);
            }

            //物料赋值,FUnitID 来源单据单位字段的唯一标识,F_LKD_UnitID分录编辑界面单位字段的唯一标识
            var unit = this.Model.GetValue("F_LKD_UnitID") as DynamicObject;
            if (unit != null)
            {
                var unitlId = unit["Id"];
                this.SetSourceItemValueByID("FUnitID", unitlId);
            }

            //数量赋值,FQty 来源单据数量字段的唯一标识,F_LKD_Qty分录编辑界面数量字段的唯一标识
            var qty = this.Model.GetValue("F_LKD_Qty");
            this.SetSourceFieldValue("FQty", qty);

            //单价赋值,FTaxPrice 来源单据单价字段的唯一标识,F_LKD_TaxPrice分录编辑界面单价字段的唯一标识
            var taxPrice = this.Model.GetValue("F_LKD_TaxPrice");
            this.SetSourceFieldValue("FTaxPrice", taxPrice);
        }        


        public override void BeforeF7Select(BeforeF7SelectEventArgs e)
        {
            if (e.FieldKey == "F_LKD_MaterialId") //分录编辑界面的物料字段
            {
                //获取来源单据对应基础资料的使用组织
                var orgId = this.GetSourceFieldUserOrgId("FMaterialId");
                if (orgId > 0)
                {
                    //设置基础资料使用组织内码
                    ((ListShowParameter)e.DynamicFormShowParameter).UseOrgId = orgId;
                }
            }

        }

    }

}

【注册插件】

【设置自定义分录详情】

【运行时效果】

注册上一步编写好的插件

如下图所示,选择分录详情表单(选中“移动分录”,在属性栏中找到“分录详情”,点开属性编辑框,选中前面设计好的分录详情表单。)