二开案例.列表插件.显示窗体

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.列表插件.显示窗体

【应用场景】通过插件的方式,显示单据窗体、列表窗体和动态表单窗体。

【案例演示】采购订单,列表界面,新增多个菜单,显示不同类型的窗体。

【实现步骤】

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

using Kingdee.BOS.Core.Bill;

using Kingdee.BOS.Core.DynamicForm;

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

using Kingdee.BOS.Core.List;

using Kingdee.BOS.Core.List.PlugIn;

using Kingdee.BOS.Core.Metadata;

using Kingdee.BOS.Core.Permission;

using Kingdee.BOS.Util;

using System;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【列表插件】显示窗体

    /// </summary>

    [Description("【列表插件】显示窗体"), HotUpdate]

    public class ShowFormListPlugIn : AbstractListPlugIn

    {

        public override void BarItemClick(BarItemClickEventArgs e)

        {

            base.BarItemClick(e);

            // 更多ShowForm示例可参考:Kingdee.BOS.Core.ViewUtils.OpenSpecFormsByStartArgs

            if (e.BarItemKey.Equals("tbShowBillForm", StringComparison.OrdinalIgnoreCase))

            {

                #region 显示单据界面


                // 打开单据编号为【CGDD169050】的采购订单的单据界面

                // 执行以下SQL语句获取该单据的内码:SELECT FID AS 单据内码,* FROM T_PUR_POORDER WHERE FBILLNO='CGDD169050'

                var pkId = "100791";

                var showParameter = new BillShowParameter();

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

                showParameter.PageId = Guid.NewGuid().ToString();

                showParameter.ParentPageId = this.View.PageId;

                showParameter.NoBusy = true;

                showParameter.PKey = pkId; // 单据内码           

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

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

                this.View.ShowForm(showParameter);


                #endregion

            }


            if (e.BarItemKey.Equals("tbShowListForm", StringComparison.OrdinalIgnoreCase))

            {

                #region 显示列表界面


                // 打开采购申请单的列表界面

                var showParameter = new ListShowParameter();

                showParameter.FormId = "PUR_Requisition";

                showParameter.PageId = Guid.NewGuid().ToString();

                showParameter.ParentPageId = this.View.PageId;

                showParameter.PermissionItemId = PermissionConst.View;

                showParameter.ListFilterParameter.Filter = "FDocumentStatus='C'"; // 只显示已审核的单据

                //showParameter.OpenStyle.ShowType = ShowType.MainNewTabPage; // 主界面新页签

                this.View.ShowForm(showParameter);


                #endregion

            }


            if (e.BarItemKey.Equals("tbShowDynamicForm", StringComparison.OrdinalIgnoreCase))

            {

                #region 显示动态表单界面


                // 打开采购初始化指引界面

                var showParameter = new DynamicFormShowParameter();

                showParameter.FormId = "PUR_OperateGuide";

                showParameter.PageId = Guid.NewGuid().ToString();

                showParameter.ParentPageId = this.View.PageId;

                showParameter.PermissionItemId = PermissionConst.View;

                this.View.ShowForm(showParameter);


                #endregion

            }

        }

    }

}




/*

/// <summary>

/// 展示风格

/// </summary>

public enum ShowType

{

    /// <summary>

    /// 默认风格

    /// </summary>

    Default = 0,


    /// <summary>

    /// 新页签

    /// </summary>

    NewTabPage = 1,


    /// <summary>

    /// 包含

    /// </summary>

    InContainer = 3,


    /// <summary>

    /// 浮动

    /// </summary>

    Floating = 4,


    /// <summary>

    /// 非模态

    /// </summary>

    NonModal = 5,


    /// <summary>

    /// 模态显示

    /// </summary>

    Modal = 6,

    /// <summary>

    /// 主界面新页签

    /// </summary>

    MainNewTabPage = 7,

    /// <summary>

    /// 当前页面重新载入元数据重新刷新

    /// </summary>

    InCurrentForm = 8,


    /// <summary>

    /// 点击外部区域自动隐藏的浮动窗口

    /// </summary>

    FloatingAutoHide = 9,


    /// <summary>

    /// 显示单据在独立的IE窗口中,仅支持HTML端的应用,不支持Sivlerlight和WPF端的应用。

    /// </summary>

    NewWindow = 10,


    /// <summary>

    /// 非选中主界面页签打开方式

    /// </summary>

    NoSelectMainNewTabPage = 11,


    /// <summary>

    /// 移动中转页面专用

    /// </summary>

    MobTransferPage = 12,


    /// <summary>

    /// 移动本页跳转打开新页专用

    /// </summary>

    MobSelfOpenPage = 13


    ///// <summary>

    ///// 包含

    ///// </summary>

    //InMobileContainer = 14

}

*/




<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展采购订单,新增列表菜单,注册列表插件,保存元数据,开发完毕。



现在可以登录业务站点,打开采购订单列表,检验一下插件效果啦。

打开单据窗体:

打开列表窗体:

打开动态表单窗体:




【知识点】

<1>修改参数的OpenStyle.ShowType可以将窗体显示成不同的风格。

例如,显示成模式窗体:showParameter.OpenStyle.ShowType = ShowType.Modal

更多窗体显示风格,可参考枚举类型:Kingdee.BOS.Core.DynamicForm.ShowType。













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.列表插件.显示窗体

【应用场景】通过插件的方式,显示单据窗体、列表窗体和动态表单窗体。【案例演示】采购订单,列表界面,新增多个菜单,显示不同类型的窗体...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息