/// <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;
}