金蝶云星空企业版 审核反写插件

news/2024/9/20 2:32:23/文章来源:https://www.cnblogs.com/wishit/p/18419546

金蝶云星空企业版 审核反写插件 亮点:只需配置好参数,代码无需改动

using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using System;
using System.ComponentModel;namespace CQXR.DDL.K3.BOS.BusinessPlugIn.ServicePlugIn
{[Kingdee.BOS.Util.HotUpdate][Description("xxx模块-下推xxx--审核服务插件反写")]public class XxxxYyyy : AbstractOperationServicePlugIn{//上下游单据 参数public string sourceid = "PNYO_8DBG";// 源单(上游)单据标识public string sourceEntity = "F_QGXM_8DBGJUCS";// 分录ORM实体(上游)public string currentEntity = "F_QGXM_8DBGJUCS";// 分录ORM实体(下游)public string currentid = "QGXM_YZCS";// 当前(下游)单据标识public string ydbh = "F_QGXM_YDBH";// 源单编号标识public string ydid = "F_QGXM_YDID";// 源单idpublic string flid = "F_QGXM_8DBGJUCS_038";// 变更分录标识public string check = "F_QGXM_CheckBox_iyi";// 变更分录 是否下推行 标识public string ydhid = "F_QGXM_YDHID";// 变更分录 源单行id 标识// 变更分录 字段 标识 public string[] field ={"F_QGXM_Text_795_vb1_jdx","F_QGXM_Base_qku_c1c_2om","F_QGXM_YZWCRQ_kyb","F_QGXM_Text_h1g_391"};// ORM实体名 字段 如果字段属性=基础资料 后面要加 _Idpublic string[] orm ={"F_QGXM_Text_795","F_QGXM_Base_qku_Id","F_QGXM_YZWCRQ","F_QGXM_Text_h1g"};#region 代码部分无特殊情况无需改动,只需将上下游参数配置完成即可public override void OnPreparePropertys(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PreparePropertysEventArgs e){base.OnPreparePropertys(e);e.FieldKeys.Add(ydbh);//源单编号e.FieldKeys.Add(ydid);//源单id
e.FieldKeys.Add(flid);//变更分录标识for (int k = 0; k < field.Length; k++) {e.FieldKeys.Add(field[k]);}e.FieldKeys.Add(check);e.FieldKeys.Add(ydhid);}public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e){base.EndOperationTransaction(e);if (e.DataEntitys == null || e.DataEntitys.Length <= 0){return;}foreach (DynamicObject dyObject in e.DataEntitys){long FID = Convert.ToInt64(dyObject["Id"]);long FSouceID = Convert.ToInt64(dyObject[ydid]);FormMetadata Meta = (FormMetadata)MetaDataServiceHelper.Load(this.Context, currentid, true);//当前单据标识DynamicObject ObjChange = BusinessDataServiceHelper.LoadSingle(this.Context, FID, Meta.BusinessInfo.GetDynamicObjectType());FormMetadata EmpinfoMeta = (FormMetadata)MetaDataServiceHelper.Load(this.Context, sourceid, true);//源单据标识DynamicObject Obj = BusinessDataServiceHelper.LoadSingle(this.Context, FSouceID, EmpinfoMeta.BusinessInfo.GetDynamicObjectType());#region 变更明细反写DynamicObjectCollection FEntityChange = ObjChange[currentEntity] as DynamicObjectCollection;        //变更分录实体DynamicObjectCollection FEntity = Obj[sourceEntity] as DynamicObjectCollection;                    //源单分录实体for (int i = 0; i < FEntityChange.Count; i++){if (FEntityChange[i][check].ToString().Equals("False", StringComparison.OrdinalIgnoreCase)){DynamicObject AddEntry = new DynamicObject(FEntity.DynamicCollectionItemPropertyType);for (int k = 0; k < orm.Length; k++){AddEntry[orm[k]] = FEntityChange[i][orm[k]];}FEntity.Add(AddEntry);}if (FEntityChange[i][check].ToString().Equals("True", StringComparison.OrdinalIgnoreCase)){int j = 0; bool done = false;while (!done && j < FEntity.Count){if (FEntity[j]["Id"].ToString().Equals(FEntityChange[i][ydhid].ToString(), StringComparison.OrdinalIgnoreCase)){for (int k = 0; k < orm.Length; k++){FEntity[j][orm[k]] = FEntityChange[i][orm[k]];}done = true;}j++;}}}for (int y = 0; y < FEntity.Count; y++){FEntity[y]["Seq"] = y + 1;}#endregionBusinessDataServiceHelper.Save(this.Context, Obj);}}#endregion}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799590.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes Ingress

目录一、为什么需要 Ingress二、什么是Ingress,Ingress Controller三、Ingress 的工作原理四、Ingress 配置资源模版五、实例1、搭建 Ingress 环境1.1、Ingress-Nginx官网地址1.2、master 节点下载 deploy.yaml1.3、所有节点提前 pull 必须的镜像1.4、修改并应用 deploy.yaml 文…

JVM--解析运行期优化与JIT编译器

JVM开发团队一直在努力,缩小Java与C/C++语言在运行效率上的差距。 本篇博客,我们来谈一谈JVM(HotSpot)为了提高Java程序的运行效率,都实现了哪些激动人心的技术~ 1 JIT编译器的引入 首先我们这篇文章中所说的编译器都是指JVM的组成部分之一---即时编译器(JIT),与生成J…

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式) @目录十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)1. Spring Boot 配置 MyBatis 的详细步骤2. 最后:MyBatis 的官方文档:https://mybatis.p2hp.com/ 关于 MyBatis 的学习的详细内容,大家可以移步至:✏️✏️…

学习高校课程-软件工程-软件流程(ch3)

3.1 A GENERIC PROCESS MODEL 通用过程模型 线性流和迭代流演化流和并行流3.2 DEFINING A FRAMEWORK ACTIVITY 定义框架活动 What actions are appropriate for a framework activity, given the nature of the problem to be solved, the characteristics of the people doing…

字符编码发展史2 — ISO-8859-N

2.2. 第二个阶段 本地化2.2.1. ANSI 2.2.2. ISO/IEC 8859-N2.2.2.1. 什么是ISO/IEC 8859-N? 2.2.2.2. ISO 8859-1的编码表上一篇《字符编码发展史1 — ASCII和EASCII》我们讲解了字符编码的起源ASCII和EASCII。本篇我们将继续讲解字符编码的第二个发展阶段中的ISO 8859-N。 2.…

?

CF1194G 在外层枚举\(x\)和\(y\),令\(x=x\times t,y=y\times t\),且\(x\times t\)十进制包含\(x\),\(y\)同理。 因为有进位,从低位向高位dp。 设\(f[T][0/1][0/1][i][j][0/1][0/1]\)表示处理到第T位,在当前这些为中\(x\times t\)是否大于\(n\),\(y\times t\)是否大于\(n\),…

网络补充

1. 网卡配置(ip,dns)目标:修改网卡的名字为eth0. 修改网卡配置文件,ip,dns,网关,子网掩码.(物理机,虚拟机(私有云)) 公有云自动获取即可,服务器数量巨大自动获取.1.1 网卡命名 结论: 工作有需求的时候再去修改. 做好记录,后面使用的时候参考即可. # 网卡命名规则: ens33 ensxxx…

在idea中使用mysql失败

在idea中测试mysql显示失败idea方面视图 - 工具窗口 - 数据库 或者右边有图标直接点开新建 - 数据源 - mysql名称 - 用户(root) - 密码 - 测试连接如果测试连接有切换相关提示直接点击, 如果出绿色对勾就成功了 到这里本可以结束了, 但是我最开始做的时候这个流程没有成功 以防…

Pyhton调用R语言rpy2包概要

随着深度学习、大数据和AI的发展,Python的热度持续上升,引发了关于选择Python还是R的讨论。作为数据分析工具,两者各有优缺点。在特定领域,如生态学,R仍被广泛应用,而Python则更多用于日常办公自动化,如批量处理文档和Excel。由于数据处理占用了我们大量时间,很多人希望…

自动驾驶运动规划学习_碰撞检测算法_GJK

自动驾驶运动规划学习:碰撞检测算法:GJK Gilbert–Johnson–Keerthi(GJK)算法,是一种用于检测两个凸集是否重叠的高效算法,并且可以得到两个凸集的最小距离.1.4.1 GJK算法原理1.4.1.1 闵可夫斯基差(Minkowski Difference)1.4.1.3 凸性 在二维空间中,如果一个凸集包含原点,…

设计模式之——代理模式

代理模式 前言: 我们一般在租房子时会去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做;再比如我们打官司需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们的想法;再比如在淘宝上面买东西,你使用支付宝平台…