コード例 #1
0
        public DynamicObject installCostRequestPackage(Context ctx, string FormID, Action <IDynamicFormViewService> fillBillPropertys, string BillTypeId = "")
        {
            //IMetaDataService metaService = ServiceHelper.GetService<IMetaDataService>();//元数据服务
            //FormMetadata Meta = metaService.Load(ctx, FormID) as FormMetadata;//获取元数据
            FormMetadata            Meta = MetaDataServiceHelper.Load(ctx, FormID) as FormMetadata;//获取元数据
            Form                    form = Meta.BusinessInfo.GetForm();
            IDynamicFormViewService dynamicFormViewService = (IDynamicFormViewService)Activator.CreateInstance(Type.GetType("Kingdee.BOS.Web.Import.ImportBillView,Kingdee.BOS.Web"));
            // 创建视图加载参数对象,指定各种参数,如FormId, 视图(LayoutId)等
            BillOpenParameter openParam = new BillOpenParameter(form.Id, Meta.GetLayoutInfo().Id);

            openParam.Context      = ctx;
            openParam.ServiceName  = form.FormServiceName;
            openParam.PageId       = Guid.NewGuid().ToString();
            openParam.FormMetaData = Meta;
            openParam.Status       = OperationStatus.ADDNEW;
            openParam.CreateFrom   = CreateFrom.Default;
            // 单据类型
            openParam.DefaultBillTypeId = BillTypeId;
            openParam.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false);
            // 插件
            List <AbstractDynamicFormPlugIn> plugs = form.CreateFormPlugIns();

            openParam.SetCustomParameter(FormConst.PlugIns, plugs);
            PreOpenFormEventArgs args = new PreOpenFormEventArgs(ctx, openParam);

            foreach (var plug in plugs)
            {
                plug.PreOpenForm(args);
            }
            // 动态领域模型服务提供类,通过此类,构建MVC实例
            IResourceServiceProvider provider = form.GetFormServiceProvider(false);

            dynamicFormViewService.Initialize(openParam, provider);
            IBillView billView = dynamicFormViewService as IBillView;

            ((IBillViewService)billView).LoadData();

            // 触发插件的OnLoad事件:
            // 组织控制基类插件,在OnLoad事件中,对主业务组织改变是否提示选项进行初始化。
            // 如果不触发OnLoad事件,会导致主业务组织赋值不成功
            DynamicFormViewPlugInProxy eventProxy = billView.GetService <DynamicFormViewPlugInProxy>();

            eventProxy.FireOnLoad();
            if (fillBillPropertys != null)
            {
                fillBillPropertys(dynamicFormViewService);
            }
            // 设置FormId
            form = billView.BillBusinessInfo.GetForm();
            if (form.FormIdDynamicProperty != null)
            {
                form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id);
            }
            return(billView.Model.DataObject);
        }
コード例 #2
0
        public static IBillView CreateBillView(this FormMetadata metadata, Context ctx, Action <BillOpenParameter> openParamAction = null)
        {
            //创建用于引入数据的单据view
            Type type     = Type.GetType("Kingdee.BOS.Web.Import.ImportBillView,Kingdee.BOS.Web");
            var  billView = (IDynamicFormViewService)Activator.CreateInstance(type);

            //获取表单元素
            Form form = metadata.BusinessInfo.GetForm();

            //开始初始化billView:
            //创建视图加载参数对象,指定各种参数,如FormId, 视图(LayoutId)等
            //指定FormId, LayoutId
            BillOpenParameter openParam = new BillOpenParameter(form.Id, metadata.GetLayoutInfo().Id);

            openParam.Context               = ctx;                                 //数据库上下文
            openParam.ServiceName           = form.FormServiceName;                //本单据模型使用的MVC框架
            openParam.PageId                = Guid.NewGuid().ToString();           //随机产生一个不重复的PageId,作为视图的标识
            openParam.FormMetaData          = metadata;                            //元数据
            openParam.Status                = OperationStatus.ADDNEW;              //界面状态:新增 (修改、查看)
            openParam.PkValue               = null;                                //单据主键:本案例演示新建物料,不需要设置主键
            openParam.CreateFrom            = CreateFrom.Default;                  //界面创建目的:普通无特殊目的 (为工作流、为下推、为复制等)
            openParam.GroupId               = string.Empty;                        //基础资料分组维度:基础资料允许添加多个分组字段,每个分组字段会有一个分组维度。具体分组维度Id,请参阅 form.FormGroups 属性
            openParam.ParentId              = 0;                                   //基础资料分组:如果需要为新建的基础资料指定所在分组,请设置此属性
            openParam.DefaultBillTypeId     = string.Empty;                        //单据类型
            openParam.DefaultBusinessFlowId = string.Empty;                        //业务流程
            openParam.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false); //主业务组织改变时,不用弹出提示界面
            openParamAction?.Invoke(openParam);

            //插件
            List <AbstractDynamicFormPlugIn> plugs = form.CreateFormPlugIns();

            openParam.SetCustomParameter(FormConst.PlugIns, plugs);
            PreOpenFormEventArgs args = new PreOpenFormEventArgs(ctx, openParam);

            foreach (var plug in plugs)
            {
                //触发插件PreOpenForm事件,供插件确认是否允许打开界面
                plug.PreOpenForm(args);
            }
            if (args.Cancel == true)
            {
                //插件不允许打开界面
                //本案例不理会插件的诉求,继续....
            }//end if

            //动态领域模型服务提供类,通过此类,构建MVC实例
            var provider = form.GetFormServiceProvider();

            billView.Initialize(openParam, provider);
            return(billView as IBillView);
        }
コード例 #3
0
ファイル: Test1.cs プロジェクト: szzend/CLOUDDOC
        private BillOpenParameter CreateOpenParameter(FormMetadata meta)
        {
            Form form = meta.BusinessInfo.GetForm();
            // 指定FormId, LayoutId
            BillOpenParameter openParam = new BillOpenParameter(form.Id, meta.GetLayoutInfo().Id);

            // 数据库上下文
            openParam.Context = this.Context;
            // 本单据模型使用的MVC框架
            openParam.ServiceName = form.FormServiceName;
            // 随机产生一个不重复的PageId,作为视图的标识
            openParam.PageId = Guid.NewGuid().ToString();
            // 元数据
            openParam.FormMetaData = meta;
            // 界面状态:新增 (修改、查看)
            openParam.Status = OperationStatus.ADDNEW;
            // 单据主键:本案例演示新建物料,不需要设置主键
            openParam.PkValue = null;
            // 界面创建目的:普通无特殊目的 (为工作流、为下推、为复制等)
            openParam.CreateFrom = CreateFrom.Default;
            // 基础资料分组维度:基础资料允许添加多个分组字段,每个分组字段会有一个分组维度
            // 具体分组维度Id,请参阅 form.FormGroups 属性
            openParam.GroupId = "";
            // 基础资料分组:如果需要为新建的基础资料指定所在分组,请设置此属性
            openParam.ParentId = 0;
            // 单据类型
            openParam.DefaultBillTypeId = "";
            // 业务流程
            openParam.DefaultBusinessFlowId = "";
            // 主业务组织改变时,不用弹出提示界面
            openParam.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false);
            // 插件
            List <AbstractDynamicFormPlugIn> plugs = form.CreateFormPlugIns();

            openParam.SetCustomParameter(FormConst.PlugIns, plugs);
            PreOpenFormEventArgs args = new PreOpenFormEventArgs(this.Context, openParam);

            foreach (var plug in plugs)
            {// 触发插件PreOpenForm事件,供插件确认是否允许打开界面
                plug.PreOpenForm(args);
            }
            if (args.Cancel == true)
            {// 插件不允许打开界面
             // 本案例不理会插件的诉求,继续....
            }
            // 返回
            return(openParam);
        }
コード例 #4
0
        private BillOpenParameter CreateOpenParameter(FormMetadata meta)
        {
            Form form = meta.BusinessInfo.GetForm();
            BillOpenParameter openParam = new BillOpenParameter(form.Id, meta.GetLayoutInfo().Id);

            openParam.Context               = this.Context;
            openParam.ServiceName           = form.FormServiceName;
            openParam.PageId                = Guid.NewGuid().ToString();
            openParam.FormMetaData          = meta;
            openParam.Status                = OperationStatus.ADDNEW;
            openParam.PkValue               = null;
            openParam.CreateFrom            = CreateFrom.Default;
            openParam.GroupId               = "";
            openParam.ParentId              = 0;
            openParam.DefaultBillTypeId     = "";
            openParam.DefaultBusinessFlowId = "";
            openParam.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false);
            List <AbstractDynamicFormPlugIn> plugs = form.CreateFormPlugIns();

            openParam.SetCustomParameter(FormConst.PlugIns, plugs);
            PreOpenFormEventArgs args = new PreOpenFormEventArgs(this.Context, openParam);

            return(openParam);
        }
コード例 #5
0
 public override void PreOpenForm(PreOpenFormEventArgs e)
 {
     //Kingdee.BOS.Core.Metadata.OperationStatus.ADDNEW
     //e.OpenParameter.InitStatus;
     //this.Model.OpenParameter.InitStatus
 }
コード例 #6
0
 public override void PreOpenForm(PreOpenFormEventArgs e)
 {
     base.PreOpenForm(e);
 }