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

二开案例.表单插件.直接SQL账表双击数据行打开新窗体

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

二开案例.表单插件.直接SQL账表双击数据行打开新窗体

【应用场景】直接SQL账表双击数据行打开新窗体。

【案例演示】采购订单明细报表,实现双击数据行打开新窗体的功能。

【实现步骤】

<1>基于案例【二开案例.直接SQL账表.从零开始设计直接SQL账表】https://vip.kingdee.com/article/94805228373112064

准备好直接SQL账表。


<2>编写表单插件,实现直接SQL账表双击数据行打开新窗体的功能。

using Kingdee.BOS.Core.Bill;

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

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

using Kingdee.BOS.Core.List;

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Core.Permission;

using Kingdee.BOS.ServiceHelper;

using Kingdee.BOS.Util;

using Kingdee.BOS.Web.Report.SQLReport;

using System;

using System.ComponentModel;

using System.Data;

using System.Reflection;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【表单插件】直接SQL账表双击数据行打开新窗体

    /// </summary>

    [Description("【表单插件】直接SQL账表双击数据行打开新窗体"), HotUpdate]

    public class OpenListByRowDoubleClickFormPlugIn : AbstractDynamicFormPlugIn

    {

        public override void EntityRowDoubleClick(EntityRowClickEventArgs e)

        {

            base.EntityRowDoubleClick(e);

            var view = this.View as SQLReportView;

            if (view == null)

            {

                return;

            }


            if (e.ColKey.Equals("单据编号", StringComparison.OrdinalIgnoreCase))

            {

                // 只有在双击单据编号列时,才打开该编号对应的采购订单

                // 版本PT-146850  [7.5.1.202008]前用此方法

                var currentRowValue = GetCurrentRowValue(view, "单据编号");

                // 版本PT-146850  [7.5.1.202008]后用此方法

                //var currentRowValue = view.GetCurrentRowValue("单据编号");

                if (currentRowValue == null)

                {

                    return;

                }


                var billNo = currentRowValue.ToString();

                // 使用单据视图打开

                ShowBillForm(billNo);

                // 使用列表视图打开

                //ShowListForm(billNo);

            }

        }


        /// <summary>

        /// 使用单据视图打开

        /// </summary>

        /// <param name="billNo">单据编号</param>

        private void ShowBillForm(string billNo)

        {

            var sql = string.Format("SELECT FID FROM T_PUR_POORDER WHERE FBILLNO='{0}'", billNo);

            var pkId = DBServiceHelper.ExecuteScalar<long>(this.Context, sql, 0);

            if (pkId <= 0)

            {

                return;

            }


            var param = new BillShowParameter();

            param.FormId = "PUR_PurchaseOrder"; // 业务对象标识

            param.PKey = pkId.ToString(); // 单据内码

            param.Status = OperationStatus.VIEW; // 查看模式打开

            //param.Status = OperationStatus.EDIT; // 编辑模式打开

            this.View.ShowForm(param);

        }


        /// <summary>

        /// 使用列表视图打开

        /// </summary>

        /// <param name="billNo">单据编号</param>

        private void ShowListForm(string billNo)

        {

            var param = new ListShowParameter();

            param.FormId = "PUR_PurchaseOrder"; // 业务对象标识

            param.PermissionItemId = PermissionConst.View; // 验证当前用户查看权限

            param.OpenStyle.ShowType = Show

二开案例.表单插件.直接SQL账表双击数据行打开新窗体

【应用场景】直接SQL账表双击数据行打开新窗体。【案例演示】采购订单明细报表,实现双击数据行打开新窗体的功能。【实现步骤】<1>基于案例...
点击下载文档文档为doc格式

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

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