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

金蝶云星空二次开发写操作日志

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

金蝶云星空二次开发写操作日志

需要引入的dll

  1. Kingdee.BOS.Core.dll

  2. Kingdee.BOS.ServiceHelper.dll

注意:BusinessInfo,在Kingdee.BOS.Core.Metadata.FormElement; 在验证类AbstractValidator是不存在相应方法的

这里贴出自己的代码备忘:

using System;

using System.Collections.Generic;

using Kingdee.BOS.Core;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

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

using Kingdee.BOS.Core.Validation;

using System.ComponentModel;

using Kingdee.BOS.App.Data;

using Kingdee.BOS.Orm.DataEntity;

using Kingdee.BOS.Core.Log;

using Kingdee.BOS.Core.Metadata.FormElement;

using Kingdee.BOS.ServiceHelper;


namespace Kingdee.BOS.WillFillInNetWeight

{

    [Description("检验单净重字段必填校验插件")]

    public class InspectionSheet: AbstractOperationServicePlugIn

    {        

        /// <summary>

        /// 优先加载字段

        /// </summary>

        /// <param name="e"></param>

        public override void OnPreparePropertys(PreparePropertysEventArgs e)

        {

            base.OnPreparePropertys(e);

            e.FieldKeys.Add("FSupplierId");

            e.FieldKeys.Add("FNetWeight");            

        }


        public override void OnAddValidators(AddValidatorsEventArgs e)

        {

            base.OnAddValidators(e);

            InspectionSheetValidators inspectionSheetValidators = new InspectionSheetValidators(this.BusinessInfo.GetForm());

            inspectionSheetValidators.AlwaysValidate = true;

            inspectionSheetValidators.EntityKey = "FEntity";

            e.Validators.Add(inspectionSheetValidators);

        }

        private class InspectionSheetValidators : AbstractValidator

        {

            private Form form;

            public InspectionSheetValidators(Form form)

            {

                this.form = form;

            }

            public override void Validate(ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Context ctx)

            {

                if (dataEntities!=null)

                {

                    List<LogObject> logs = new List<LogObject>();

                    foreach(ExtendedDataEntity obj in dataEntities)

                    {

                        if (Convert.ToInt32(obj.DataEntity["SupplierId_Id"]) !=0) {

                            string sql = string.Format(@"/*dialect*/SELECT *FROM T_BD_SUPPLIER WHERE FSUPPLIERID={0}", Convert.ToInt32(obj.DataEntity["SupplierId_Id"]));

                            DynamicObjectCollection doc = DBUtils.ExecuteDynamicObject(this.Context, sql);

                            DynamicObject dyo = doc[0];

                            if (Convert.ToInt32(dyo["F_AI_JHJJJGYS"])==1)

                            {

                                if (Convert.ToDouble(obj.DataEntity["FNetWeight"])==0)

                                {

                                    validateContext.AddError(

                                        obj.DataEntity,

                                        new ValidationErrorInfo(

                                            "FNetWeight",

                                            obj.DataEntity["Id"].ToString(),

                                            obj.DataEntityIndex,

                                            obj.RowIndex,

                                            "ALAOK00002000",

                                            "单据" + obj.BillNo + "第" + (obj.RowIndex + 1) + "行,净重字段必填",

                                            "审核:" + obj.BillNo,

                                            ErrorLevel.Error

                                            )

                                        );

                     

金蝶云星空二次开发写操作日志

需要引入的dllKingdee.BOS.Core.dllKingdee.BOS.ServiceHelper.dll注意:BusinessInfo,在Kingdee.BOS.Core.Metadata.FormElement; 在验证...
点击下载文档文档为doc格式

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

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