二开-操作服务插件通过构建View层给单据体进行赋值操作
public class BeginSaveCreateEngCLEntity:AbstractOperationServicePlugIn { public override void BeginOperationTransaction(BeginOperationTransactionArgs e) { base.BeginOperationTransaction(e); if (this.FormOperation.Operation != "Save") return; //获取工艺参数元数据 FormMetadata paraMeta = MetaDataServiceHelper.GetFormMetaData(this.Context, "QPUB_BL_Parameter"); for (int i = 0; i < e.DataEntitys.Count();i++ ) { var status = e.DataEntitys[i]["DocumentStatus"]; //单据为暂存状态-返回不进行操作 if (status.ToString().Equals("Z")) return; //查询所有工艺参数对应的参数信息 String parasql = string.Format(@"/*dialect*/select FID from T_BL_ProcessParameter where F_BL_ROUTEID ={0}", e.DataEntitys[i]["Id"]); var resut = DBServiceHelper.ExecuteDynamicObject(this.Context, parasql); if (resut.Count == 0) return; var paraData = BusinessDataServiceHelper.Load(this.Context, resut.Select(o => o["FID"]).ToArray(), paraMeta.BusinessInfo.GetDynamicObjectType()); if (paraData.Count() > 0) { //创建材料汇总表 e.DataEntitys[i] = this.CreateCLEntity(paraData, e.DataEntitys[i]); //创建工具汇总表 e.DataEntitys[i] = this.CreateGJEntity(paraData, e.DataEntitys[i]); } } } public IBillView CreateBillView(Context ctx, String formId,object BillId) { //读取物料BOM的元数据 FormMetadata meta = MetaDataServiceHelper.Load(ctx, formId) as FormMetadata; Form form = meta.BusinessInfo.GetForm(); // 创建用于引入数据的单据view Type type = Type.GetType("Kingdee.BOS.Web.Import.ImportBillView,Kingdee.BOS.Web"); var billView = (IDynamicFormViewService)Activator.CreateInstance(type); // 开始初始化billView: // 创建视图加载参数对象,指定各种参数,如FormId, 视图(LayoutId)等 BillOpenParameter openParam = CreateOpenParameter(meta, ctx,BillId); // 动态领域模型服务提供类,通过此类,构建MVC实例 var provider = form.GetFormServiceProvider(); billView.Initialize(openParam, provider); billView.LoadData();//加载单据数据 return billView as IBillView; } //创建视图加载参数对象,指定各种初始化视图时,需要指定的属性 public BillOpenParameter CreateOpenParameter(FormMetadata meta, Context ctx,object billId) { Form form = meta.BusinessInfo.GetForm(); // 指定FormId, LayoutId BillOpenParameter openParam = new BillOpenParameter(form.Id, meta.GetLayoutInfo().Id); openParam.Context = ctx; // 本单据模型使用的MVC框架 openParam.ServiceName = form.FormServiceName; // 随机产生一个不重复的PageId,作为视图的标识 openParam.PageId = Guid.NewGuid().ToString(); // 元数据 openParam.FormMetaData = meta; // 界面状态:新增 (修改、查看) if (billId.IsNullOrEmptyOrWhiteSpace() || billId.ToString().Equals("0")) { openParam.Status = OperationStatus.ADDNEW; //创建新单据 } else { openParam.Status = OperationStatus.EDIT; //修改单据 } //若指定PKValue的值 即为调用指定单据的视图数据包,若为Null,则为新增状态 openParam.PkValue = billId; // 界面创建目的:普通无特殊目的 (为工作流、为下推、为复制等) openParam.CreateFrom = CreateFrom.Default; // 基础资料分组维度:基础资料允许添加多个分组字段,每个分组字段会有一个分组维度 // 具体分组维度Id,请参阅 form.FormGroups 属性 openParam.GroupId = ""; // 基础资料分组:如果需要为新建的基础资料指定所在分组,请设置此属性 openParam.ParentId = 0; // 单据类型 openParam.DefaultBillTypeId = ""; // 业务流程 openParam.DefaultBusinessFlowId = ""; // 主业务组织改变时,不用弹出提示界面 openParam.SetCustomParameter("ShowConfirmDialogWhenChangeOrg", false); // 插件 var plugs = form.CreateFormPlugIns(); openParam.SetCustomParameter(FormConst.PlugIns, plugs); PreOpenFormEventArgs args = new PreOpenFormEventArgs(ctx, openParam); foreach (var plug in plugs) { // 触发插件PreOpenForm事件,供插件确认是否允许打开界面 plug.PreOpenForm(args); } return openParam; } }
二开-操作服务插件通过构建View层给单据体进行赋值操作
public class BeginSaveCreateEngCLEntity:AbstractOperationServicePlugIn { public override void BeginOperationTransaction(...
点击下载文档
本文2024-09-16 18:28:28发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-22374.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf
热门文章