电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.列表插件.自建视图调用分录操作

来源:金蝶云社区作者:金蝶2024-09-237

二开案例.列表插件.自建视图调用分录操作

【应用场景】模拟界面操作,给单据体的指定数据行执行分录菜单绑定的操作。

【案例演示】采购订单,编辑界面,明细信息单据体的分录菜单上有一个【终止】菜单,可以对选中数据行执行终止操作,现在将在采购订单列表上,通过列表插件模拟执行【终止】菜单的点击事件完成业务终止操作。

【实现步骤】

<1>编写列表插件,代码如下。

using Kingdee.BOS;

using Kingdee.BOS.Core.Bill;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;

using Kingdee.BOS.Core.List.PlugIn;

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.JSON;

using Kingdee.BOS.Util;

using Kingdee.BOS.Web.Bill;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【列表插件】自建视图调用分录操作

    /// </summary>

    [Description("【列表插件】自建视图调用分录操作"), HotUpdate]

    public class CreateViewAndInvokeFormOperationListPlugIn : AbstractListPlugIn

    {

        /// <summary>

        /// 列表主菜单点击事件

        /// </summary>

        /// <param name="e"></param>

        public override void BarItemClick(BarItemClickEventArgs e)

        {

            base.BarItemClick(e);

            if (e.BarItemKey.EqualsIgnoreCase("tbInvokeFormOperation"))

            {

                if (this.ListView.CurrentSelectedRowInfo == null)

                {

                    this.View.ShowWarnningMessage("没有选择任何数据,请先选择数据!");

                    return;

                }


                // 获取当前选中单据的主键值

                var pkId = this.ListView.CurrentSelectedRowInfo.PrimaryKeyValue;

                // 创建采购订单的单据视图(编辑状态)

                var billView = CreateBillView(this.Context, "PUR_PurchaseOrder", pkId);

                // 设置采购订单的明细信息单据体的第三行选中

                var grid = billView.GetControl<EntryGrid>("FPOOrderEntry");

                grid.SetFocusRowIndex(2);

                var postDatas = CreateSelectedRowPostData("FPOOrderEntry", 2);

                billView.LoadPostBackData(postDatas);

                // 对采购订单的明细信息单据体的第三行数据执行终止操作

                var success = billView.InvokeFormOperation("Terminate");

                billView.Close();

                if (success)

                {

                    this.View.ShowMessage("操作成功,明细信息第三行已被终止");

                }

            }

        }


        /// <summary>

        /// 创建最简单据视图

        /// </summary>

        /// <param name="ctx"></param>

        /// <param name="formId"></param>

        /// <param name="pkId"></param>

        /// <returns></returns>

        private static BillView CreateBillView(Context ctx, string formId, object pkId)

        {

            var meta = (FormMetadata)Kingdee.BOS.ServiceHelper.MetaDataServiceHelper.Load(ctx, formId); //单据唯一标识

            var form = meta.BusinessInfo.GetForm();

            var param = new BillOpenParameter(formId, "");

            param.Context = ctx;

            param.FormMetaData = meta;

            param.Status = OperationStatus.E

二开案例.列表插件.自建视图调用分录操作

【应用场景】模拟界面操作,给单据体的指定数据行执行分录菜单绑定的操作。【案例演示】采购订单,编辑界面,明细信息单据体的分录菜单上有...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信