金蝶插件开发笔记

        /// <summary>
        /// 日志输出(默认路径:C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\App_Data\Log\年-月-日\Cloud.log年-月-日\Cloud.log)
        /// </summary>
        /// <param name="ThisBill">参数:this[输出(本单)整张单据数据信息]</param>
        public static void Xlog(AbstractDynamicFormPlugIn ThisBill)
        {
            //日志输出(本单)整张单据数据信息
            Kingdee.BOS.Log.Logger.Info("(本单)整张单据数据信息", Newtonsoft.Json.JsonConvert.SerializeObject(ThisBill.Model.DataObject as DynamicObject));
        }
        /// <summary>
        /// 日志输出(默认路径:C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\App_Data\Log\年-月-日\Cloud.log年-月-日\Cloud.log)
        /// </summary>
        /// <param name="str1">日志标记</param>
        /// <param name="str2">日志类容</param>
        public static void Xlog(string str1, string str2)
        {
            Kingdee.BOS.Log.Logger.Info(str1, str2);
        }
        /// <summary>
        /// 获取远程单据数据
        /// </summary>
        /// <param name="_Context">连接上下文</param>
        /// <param name="RemoteBillMark">远程单据唯一标识</param>
        /// <param name="SourceBillNum">源单编号</param>
        /// <returns>object[] -> 0:BusinessInfo、1:DynamicObject</returns>
        public static object[] GetRemoteBillData(Context _Context, String RemoteBillMark, Int64 SourceBillNum)
        {
            // 根据源单编号远程取数据
            BusinessInfo _rBusinessInfo = (MetaDataServiceHelper.Load(_Context, RemoteBillMark) as FormMetadata).BusinessInfo;
            DynamicObject _rDynamicObject = BusinessDataServiceHelper.LoadSingle(_Context, SourceBillNum, _rBusinessInfo.GetDynamicObjectType());
            // 0=BusinessInfo、1=DynamicObject
            return new object[] { _rBusinessInfo, _rDynamicObject };
        }
        /// <summary>
        /// 强制保存单据数据
        /// </summary>
        /// <param name="_Context">连接上下文</param>
        /// <param name="_rBusinessInfo">BusinessInfo</param>
        /// <param name="_rDynamicObject">DynamicObject</param>
        public static void SaveData(Context _Context, BusinessInfo _rBusinessInfo, DynamicObject _rDynamicObject)
        {
            // 忽略保存时的校验规则
            OperateOption option = OperateOption.Create();
            option.SetValidateFlag(false);
            // 保存远程单据数据
            BusinessDataServiceHelper.Save(_Context, _rBusinessInfo, _rDynamicObject, option, OperationNumber.Save);
        }
        /// <summary>
        /// 依据基础资料Id赋值
        /// </summary>
        /// <param name="_Context">连接上下文</param>
        /// <param name="_BusinessInfo">字段所在元数据</param>
        /// <param name="DataPacket">赋值实体(构建数据包)</param>
        /// <param name="BaseDataKey">基础资料字段名</param>
        /// <param name="BaseDataId">基础资料Id</param>
        public static void SetBaseDataById(Context _Context, BusinessInfo _BusinessInfo, ref DynamicObject DataPacket, string BaseDataKey, Int64 BaseDataId)
        {
            if (DataPacket != null)
            {
                BaseDataField baseField = _BusinessInfo.GetField(BaseDataKey) as BaseDataField;

                if (baseField != null)
                {
                    DynamicObject[] baseObjs = BusinessDataServiceHelper.LoadFromCache(_Context, new object[] { BaseDataId }, baseField.RefFormDynamicObjectType);

                    if (baseObjs.Length > 0)
                    {
                        baseField.RefIDDynamicProperty.SetValue(DataPacket, baseObjs[0][0]);
                        //baseField.DynamicProperty.SetValue(DataPacket, baseObjs[0]);
                    }
                }
            }
        }
        /// <summary>
        /// 依据基础资料Id赋值
        /// </summary>
        /// <param name="_Context">连接上下文</param>
        /// <param name="_BusinessInfo">字段所在元数据</param>
        /// <param name="DataPacket">赋值实体(构建数据包)</param>
        /// <param name="BaseDataKey">基础资料字段名</param>
        /// <param name="BaseDataId">基础资料Id</param>
        public static void SetBaseDataById_1(Context _Context, BusinessInfo _BusinessInfo, ref DynamicObject DataPacket, string BaseDataKey, Int64 BaseDataId)
        {
            if (DataPacket != null)
            {
                BaseDataField baseField = _BusinessInfo.GetField(BaseDataKey) as BaseDataField;

                if (baseField != null)
                {
                    DynamicObject[] baseObjs = BusinessDataServiceHelper.LoadFromCache(_Context, new object[] { BaseDataId }, baseField.RefFormDynamicObjectType);

                    if (baseObjs.Length > 0)
                    {
                        //baseField.RefIDDynamicProperty.SetValue(DataPacket, baseObjs[0][0]);
                        baseField.DynamicProperty.SetValue(DataPacket, baseObjs[0]);
                    }
                }
            }
        }
        /// <summary>
        /// 获取基础资料数据包 
        /// </summary>
        /// <param name="Context">连接上下文</param>
        /// <param name="Fid">基础资料Fid</param>
        /// <param name="OnlySign">基础资料唯一标识</param>
        /// <returns>返回基础资料DynamicObject数据包</returns>
        public static DynamicObject GetBasicDataPacket(Context Context, Int64 Fid, string OnlySign)
        {
            DynamicObject[] objs = BusinessDataServiceHelper.Load(
                Context,
                new object[] { Fid },
                (MetaDataServiceHelper.Load(Context, OnlySign) as FormMetadata).
                BusinessInfo.GetDynamicObjectType());
            return objs.Length > 0 ? objs[0] : null;
        }

 

转载于:https://my.oschina.net/u/1447820/blog/1596048

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值