public DynamicObject GetSimpleExtensionByNumber(String number) { FormMetadata meta = MetaDataServiceHelper.Load(context, Constant.FormID.WJ_Extension) as FormMetadata; // 构建查询参数,设置过滤条件 QueryBuilderParemeter queryParam = new QueryBuilderParemeter { FormId = Constant.FormID.WJ_Extension, BusinessInfo = meta.BusinessInfo, FilterClauseWihtKey = string.Format(" {0} = '{1}' ", meta.BusinessInfo.GetForm().NumberFieldKey, number) }; var bdObjs = BusinessDataServiceHelper.Load(context, meta.BusinessInfo.GetDynamicObjectType(), queryParam); if (bdObjs.Length == 1) { return(bdObjs.FirstOrDefault()); } else if (bdObjs.Length == 0) { return(null); } else { throw new Exception("编码 " + number + " formId " + Constant.FormID.WJ_Extension + "找到多个数据"); } }
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { base.BeforeExecuteOperationTransaction(e); if (e.DataEntitys.Count() < 1) { return; } var dataEntities = e.DataEntitys.ToArray(); foreach (DynamicObject dataEntry in dataEntities) { DynamicObject BillEntry = dataEntry["BillEntry"].AsType <DynamicObjectCollection>().First(); //获取收货通知数据 string OrginBillNo = BillEntry["OriginBillNo"].ToString(); string OriginFormId = "BAH_WMS_InNotice"; FormMetadata meta = MetaDataServiceHelper.Load(this.Context, OriginFormId) as FormMetadata; QueryBuilderParemeter queryParam = new QueryBuilderParemeter(); queryParam.FormId = OriginFormId; queryParam.BusinessInfo = meta.BusinessInfo; queryParam.FilterClauseWihtKey = string.Format(" {0} = '{1}' ", meta.BusinessInfo.GetBillNoField().Key, OrginBillNo); var objs = BusinessDataServiceHelper.Load(this.Context, meta.BusinessInfo.GetDynamicObjectType(), queryParam); if (objs[0]["FBAHGenTargetStatus"].ToString().Equals('B') == true) { throw new Exception(string.Format("编号为{0}的收货通知已生成目标单据,不允许反审核!", OrginBillNo)); } } }
private DynamicObject getbandobject(Context ctx, JNBandPara actband) { int actbandid = actband.bandid; DynamicObject[] bandIDs = BusinessDataServiceHelper.Load(ctx, new object[] { actbandid }, (MetaDataServiceHelper.Load(ctx, "CN_BANKACNT") as FormMetadata).BusinessInfo.GetDynamicObjectType()); return(bandIDs.FirstOrDefault()); }
/// <summary> /// 提交 /// </summary> /// <param name="ctx"></param> /// <param name="FormID"></param> /// <param name="ids"></param> /// <returns></returns> public IOperationResult SubmitBill(Context ctx, string FormID, object[] ids) { IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务 FormMetadata Meta = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据 OperateOption submitOption = OperateOption.Create(); IOperationResult submitResult = BusinessDataServiceHelper.Submit(ctx, Meta.BusinessInfo, ids, "Submit", submitOption); return(submitResult); //IMetaDataService metaService = ServiceHelper.GetService<IMetaDataService>(); //FormMetadata targetBillMeta = metaService.Load(ctx, FormID) as FormMetadata; //// 构建保存操作参数:设置操作选项值,忽略交互提示 //OperateOption submitOption = OperateOption.Create(); //// 忽略全部需要交互性质的提示,直接保存; ////saveOption.SetIgnoreWarning(true); // 忽略交互提示 ////saveOption.SetInteractionFlag(this.Option.GetInteractionFlag()); // 如果有交互,传入用户选择的交互结果 //// using Kingdee.BOS.Core.Interaction; ////saveOption.SetIgnoreInteractionFlag(this.Option.GetIgnoreInteractionFlag()); ////// 如下代码,强制要求忽略交互提示(演示案例不需要,注释掉) //submitOption.SetIgnoreWarning(true); ////// using Kingdee.BOS.Core.Interaction; //submitOption.SetIgnoreInteractionFlag(true); //// 调用保存服务,自动保存 //ISubmitService submitService = ServiceHelper.GetService<ISubmitService>(); //IOperationResult submitResult = submitService.Submit(ctx, targetBillMeta.BusinessInfo, ids, "Submit", submitOption); //return submitResult; }
public override void OnParseFilterOptions(ParseFilterOptionsEventArgs e) { string MaterialQualityDTF = Convert.ToString(e.TargetData["F_PAEZ_Material_Id"]); string MaterialQualityFilterDTF = ""; //先查物料表 查出物料ID 然后去即时库存表查 DynamicObject[] lotMasters = null; string filter = string.Format("F_BEM_CZ ='{0}'", MaterialQualityDTF); OQLFilter of = OQLFilter.CreateHeadEntityFilter(filter); lotMasters = BusinessDataServiceHelper.Load(this.Context, "BD_MATERIAL", null, of); if (lotMasters.Count() > 0) { foreach (DynamicObject objma in lotMasters) { materialList.Add(Convert.ToString(objma[0])); } } MaterialQualityFilterDTF = String.Format(" FMATERIALID in ('{0}')", string.Join("','", materialList)); if (String.IsNullOrEmpty(e.FilterOptionsSQL)) { e.FilterOptionsSQL = MaterialQualityFilterDTF; } }
private void SaveCheckBill(IBillView billView, OperateOption saveOption) { // 设置FormId Form form = billView.BillBusinessInfo.GetForm(); if (form.FormIdDynamicProperty != null) { form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id); } // 调用保存操作 IOperationResult saveResult = BusinessDataServiceHelper.Save(this.Context, billView.BillBusinessInfo, billView.Model.DataObject, saveOption, "Save"); if (saveResult.IsSuccess) { object[] primaryKeys = saveResult.SuccessDataEnity.Select(u => u.GetPrimaryKeyValue()).ToArray(); // 提交 OperateOption submitOption = OperateOption.Create(); IOperationResult submitResult = BusinessDataServiceHelper.Submit(this.Context, billView.BillBusinessInfo, primaryKeys, "Submit", submitOption); if (submitResult.IsSuccess) { // 审核 OperateOption auditOption = OperateOption.Create(); IOperationResult auditResult = BusinessDataServiceHelper.Audit(this.Context, billView.BillBusinessInfo, primaryKeys, auditOption); } } }
private void GetCustInfo(long lCustid) { List <SelectorItemInfo> selector = new List <SelectorItemInfo> { new SelectorItemInfo("FWEBSITE"), new SelectorItemInfo("FFAX"), new SelectorItemInfo("FADDRESS") }; OQLFilter ofilter = OQLFilter.CreateHeadEntityFilter($"FCustID={lCustid}"); DynamicObject[] objArray = BusinessDataServiceHelper.Load(base.Context, "CRM_CUST", selector, ofilter); string str = ""; string str2 = ""; string str3 = ""; if ((objArray != null) && (objArray.Length > 0)) { DynamicObject obj2 = objArray[0]; str = obj2["WEBSITE"].ToString(); str2 = obj2["FAX"].ToString(); str3 = obj2["ADDRESS"].ToString(); base.View.Model.SetValue("FHomePage", str); base.View.Model.SetValue("FFax", str2); base.View.Model.SetValue("FAddress", str3); } }
public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { var billGroups = e.DataEntitys; foreach (var billGroup in billGroups) { DynamicObjectCollection BILLENTRYDATAs = billGroup["PAYBILLENTRY"] as DynamicObjectCollection; foreach (var BILLENTRYDATA in BILLENTRYDATAs) { string FBandStatus = Convert.ToString(BILLENTRYDATA["BankStatus"]); string FSubmitStatus = Convert.ToString(BILLENTRYDATA["SubmitStatus"]); Int32 EntryID = Convert.ToInt32(BILLENTRYDATA["Id"]); if ((FBandStatus == "D" || FBandStatus == "E") && FSubmitStatus == "B") { BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "A", "FEntryID", new object[] { EntryID }); BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FSubmitStatus", "A", "FEntryID", new object[] { EntryID }); } } } }
public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e) { base.BeginOperationTransaction(e); if (e.DataEntitys == null || e.DataEntitys.Count() <= 0) { return; } foreach (DynamicObject data in e.DataEntitys) { string FCONTACTUNITTYPE = Convert.ToString(data["CONTACTUNITTYPE"]); int FCONTACTUNIT_Id = Convert.ToInt32(data["CONTACTUNIT_Id"]); DynamicObject FCONTACTUNIT = data["CONTACTUNIT"] as DynamicObject; DynamicObject FJNFistSaler = data["FJNFistSaler"] as DynamicObject; if (FCONTACTUNITTYPE == "BD_Customer" && FCONTACTUNIT != null && FJNFistSaler == null) { FormMetadata formMetadata = MetaDataServiceHelper.Load(this.Context, "BD_Customer") as FormMetadata; DynamicObject CustObject = BusinessDataServiceHelper.LoadSingle( this.Context, FCONTACTUNIT_Id, formMetadata.BusinessInfo.GetDynamicObjectType()); if (CustObject != null) { DynamicObject Saler = CustObject["JN_SalesId"] as DynamicObject; if (Saler != null) { int Saler_Id = Convert.ToInt32(Saler["id"]); int billid = Convert.ToInt32(data["id"]); string strSQL = string.Format("/*dialect*/update T_AR_RECEIVEBILL set FJNFISTSALER ={0} where fid={1}", Saler_Id, billid); DBUtils.Execute(this.Context, strSQL); } } } //AppServiceContext.SaveService.Save(this.Context, formMetadata.BusinessInfo, dataObjects); } }
}//end static method public static Context CreateInstanceFromCache(this Context ctx, string dataCenterId, long userId) { Context contextByDataCenterId = DataCenterService.GetDataCenterContextFromCache(dataCenterId); //处理用户登录名 { FormMetadata metadata = FormMetaDataCache.GetCachedFormMetaData(contextByDataCenterId, FormIdConst.SEC_User); BusinessInfo businessInfo = metadata.BusinessInfo.GetSubBusinessInfo(new List <string> { "FNumber", "FUserAccount", "FName" }); DynamicObject dataObject = BusinessDataServiceHelper.LoadFromCache(contextByDataCenterId, new object[] { userId }, businessInfo.GetDynamicObjectType()).FirstOrDefault(); contextByDataCenterId.UserId = dataObject.PkId <long>(); if (businessInfo.GetField("FNumber") != null) { contextByDataCenterId.LoginName = dataObject.FieldProperty <string>(businessInfo.GetField("FNumber")); } if (businessInfo.GetField("FUserAccount") != null) { contextByDataCenterId.LoginName = dataObject.FieldProperty <string>(businessInfo.GetField("FUserAccount")); } contextByDataCenterId.UserName = dataObject.FieldProperty <string>(businessInfo.GetField("FName")); } return(contextByDataCenterId); }//end static method
/// <summary> /// 禁用单据 /// </summary> /// <param name="ctx"></param> /// <param name="FormID">单据标识</param> /// <param name="ids">禁用单据内码集合</param> /// <param name="pkId">表主键列</param> /// <param name="tableName">表名</param> /// <param name="fieldName">禁用状态列</param> /// <param name="fieldValue">禁用值</param> /// <returns></returns> public void SetState(Context ctx, string FormID, object[] ids, string pkId, string tableName, string fieldName, string fieldValue) { IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务 FormMetadata Meta = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据 OperateOption AuditOption = OperateOption.Create(); BusinessDataServiceHelper.SetState(ctx, tableName, fieldName, fieldValue, pkId, ids); }
//数据同步 public void dataSync(DynamicObject obj) { IBillView billView = this.CreateBillView(this.Context); ((IBillViewService)billView).LoadData(); DynamicFormViewPlugInProxy eventProxy = billView.GetService <DynamicFormViewPlugInProxy>(); eventProxy.FireOnLoad(); this.FillBillPropertys(this.Context, billView, obj); IOperationResult saveResult = null; object[] primaryKeys = null; IOperationResult auditResult = null; if (this.FormOperation.Operation.Equals("Save"))//保存 { if (isExsit(Convert.ToInt64(obj["Id"]))) { updateAssistData(Convert.ToInt64(obj["Id"]), Convert.ToString(obj["Number"]), Convert.ToString(obj["Name"])); //存在则修改 } else //不存则新增 // 调用保存操作 { OperateOption saveOption = OperateOption.Create(); // 调用保存操作 saveResult = BusinessDataServiceHelper.Save(this.Context, billView.BillBusinessInfo, billView.Model.DataObject, saveOption, "Save"); } } else if (this.FormOperation.Operation.Equals("Submit"))//提交 { updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "B"); } else if (this.FormOperation.Operation.Equals("Audit"))//审核 { updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "C"); } else if (this.FormOperation.Operation.Equals("UnAudit")) //反审核 { if (getExsitOldData(Convert.ToString(obj["Number"])) != null) //判断辅助资料表是否有对应的老数据 { DynamicObject oo = getExsitOldData(Convert.ToString(obj["Number"])); updateAssistDataOld(Convert.ToString(oo["fentryid"]), Convert.ToString(obj["Number"]));//如果存在则把外键编码字段关联上 } updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "D"); } else if (this.FormOperation.Operation.Equals("Forbid"))//禁用 { updateAssistForbidStatus(Convert.ToInt64(obj["Id"]), "B"); } else if (this.FormOperation.Operation.Equals("Enable"))//反禁用 { updateAssistForbidStatus(Convert.ToInt64(obj["Id"]), "A"); } else if (this.FormOperation.Operation.Equals("Delete"))//删除 { deleteData(Convert.ToInt64(obj["Id"])); } }
/// <summary> /// 另一种保存服务 /// </summary> /// <param name="ctx"></param> /// <param name="FormID"></param> /// <param name="dyObject"></param> /// <returns></returns> public IOperationResult BatchSaveBill(Context ctx, string FormID, DynamicObject[] dyObject) { IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务 FormMetadata Meta = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据 OperateOption SaveOption = OperateOption.Create(); IOperationResult SaveResult = BusinessDataServiceHelper.Save(ctx, Meta.BusinessInfo, dyObject, SaveOption, "Save"); return(SaveResult); }
public IOperationResult AuditBill(Context ctx, string FormID, object[] ids) { IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务 FormMetadata Meta = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据 OperateOption AuditOption = OperateOption.Create(); IOperationResult AuditResult = BusinessDataServiceHelper.Audit(ctx, Meta.BusinessInfo, ids, AuditOption); return(AuditResult); }
} //end method public static DynamicObject[] AutoSetBillNo(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, bool isUpdateMaxNum = true) { DynamicObject[] dataArray = dataObject.ToArray(); if (dataArray.Any()) { BusinessDataServiceHelper.GetBillNo(ctx, businessInfo, dataArray, isUpdateMaxNum); } //end if return(dataArray); } //end method
/// <summary> /// 暂存单据 /// </summary> /// <param name="ctx"></param> /// <param name="FormID"></param> /// <param name="dyObject"></param> /// <returns></returns> public IOperationResult DraftBill(Context ctx, string FormID, DynamicObject[] dyObject) { IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务 FormMetadata Meta = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据 OperateOption DraftOption = OperateOption.Create(); IOperationResult DraftResult = BusinessDataServiceHelper.Draft(ctx, Meta.BusinessInfo, dyObject, DraftOption, "Draft"); return(DraftResult); }
/// <summary> /// 获取收货通知数据 /// </summary> /// <param name="billno">收货通知单编号</param> /// <returns>返回服务结果。</returns> public ServiceResult ExecuteService(string billno) { var result = new ServiceResult <JSONObject>(); var ctx = this.KDContext.Session.AppContext; // 检查上下文对象 if (this.IsContextExpired(result)) { return(result); } // 检查传入参数 if (string.IsNullOrWhiteSpace(billno)) { result.Code = (int)ResultCode.Fail; result.Message = "收货通知单编号不能为空!"; return(result); } //获取相关信息 try { //TODO:通过平台动态引擎获取数据 var metadata = FormMetaDataCache.GetCachedFormMetaData(ctx, "BAH_WMS_InNotice"); var businessInfo = metadata.BusinessInfo; var queryParameter = new QueryBuilderParemeter(); queryParameter.FormId = businessInfo.GetForm().Id; queryParameter.FilterClauseWihtKey = "FDOCUMENTSTATUS = @FDOCUMENTSTATUS"; queryParameter.SqlParams.Add(new SqlParam("@FDOCUMENTSTATUS", KDDbType.String, "C")); queryParameter.FilterClauseWihtKey = "FBillNo = @BillNo"; queryParameter.SqlParams.Add(new SqlParam("@BillNo", KDDbType.String, billno)); var dataObjectCollection = BusinessDataServiceHelper.Load(ctx, businessInfo.GetDynamicObjectType(), queryParameter); JSONObject Finaldata = new JSONObject(); List <JSONObject> return_data = new List <JSONObject>(); foreach (DynamicObject dataObject in dataObjectCollection) { JSONObject data = new JSONObject(); data.Add("FID", dataObject["Id"].ToString()); data.Add("FNUMBER", dataObject["Number"].ToString()); data.Add("FName", dataObject["Name"].ToString()); return_data.Add(data); } Finaldata.Add("WareHouse", return_data); //返回数据 result.Code = (int)ResultCode.Success; result.Data = Finaldata; result.Message = "成功返回数据!"; } catch (Exception ex) { result.Code = (int)ResultCode.Fail; result.Message = ex.Message; } return(result); }
}//end method public static void Delete(this IEnumerable <DynamicObject> dataObject, Context ctx, Func <DynamicObject, object> selector = null) { DynamicObject[] dataArray = dataObject.ToArray(); if (dataArray.Any()) { var group = dataArray.Select(data => new { DataEntity = data, DataType = data.DynamicObjectType }) .GroupBy(a => a.DataType) .Select(g => new { DataType = g.Key, Ids = g.Select(a => a.DataEntity).Select(data => selector != null ? selector(data) : data.PkId()).ToArray() }) .ToList(); group.ForEach(g => BusinessDataServiceHelper.Delete(ctx, g.Ids, g.DataType)); } //end if } //end method
}//end method public static IOperationResult DoNothing(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, string operationNumber, OperateOption option = null) { if (option == null) { option = OperateOption.Create(); } option.SetIgnoreWarning(true); option.SetIgnoreInteractionFlag(true); IOperationResult result = BusinessDataServiceHelper.DoNothingWithDataEntity(ctx, businessInfo, dataObject.ToArray(), operationNumber, option); return(result); } //end method
/// <summary> /// 目标单单据构建完毕,且已经创建好与源单的关联关系之后,触发此事件 /// </summary> /// <param name="e"></param> /// <remarks> /// 本事件的时机,刚好能够符合需求, /// 而AfterConvert事件,则在执行表单服务策略之后 /// </remarks> public override void OnAfterCreateLink(CreateLinkEventArgs e) { // 目标单单据体元数据 Entity entity = e.TargetBusinessInfo.GetEntity("FEntity"); Entity es = e.SourceBusinessInfo.GetEntity("FSaleOrderEntry"); // 读取已经生成的付款单 ExtendedDataEntity[] bills = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead"); // 定义一个集合,存储新拆分出来的单据体行 List <ExtendedDataEntity> newRows = new List <ExtendedDataEntity>(); // 对目标单据进行循环 foreach (var bill in bills) { // 取单据体集合 DynamicObjectCollection rowObjs = entity.DynamicProperty.GetValue(bill.DataEntity) as DynamicObjectCollection; // 对单据体进行循环:从后往前循环,新拆分的行,避开循环 int rowCount = rowObjs.Count; int newRowCount = 1; DateTime CreateDate = Convert.ToDateTime(bill["CreateDate"]); for (int i = rowCount - 1; i >= 0; i--) { DynamicObject rowObj = rowObjs[i]; //获取ID为149808的供应商(内蒙) DynamicObject[] superIDs = BusinessDataServiceHelper.Load(this.Context, new object[] { 149808 }, (MetaDataServiceHelper.Load(this.Context, "BD_Supplier") as FormMetadata).BusinessInfo.GetDynamicObjectType()); rowObj["SuggestSupplierId"] = superIDs[0]; rowObj["SuggestSupplierId_Id"] = 149808; rowObj["SupplierId"] = superIDs[0]; rowObj["SupplierId_Id"] = 149808; long MaterialId = Convert.ToInt64(rowObj["MaterialId_Id"]); long SupplierId = 149808; DynamicObject auxprop = rowObj["AuxpropId"] as DynamicObject; string auxpropId = ""; if (auxprop != null) { auxpropId = Convert.ToString(auxprop["F100001_Id"]); } DynamicObjectCollection prices = ServiceHelper.YDLCommServiceHelper.GetAuxpropPriceListId(this.Context, MaterialId, auxpropId, SupplierId, CreateDate); if (prices.Count > 0) { rowObj["FTAXPRICE"] = prices[0][2]; rowObj["EvaluatePrice"] = prices[0][1]; rowObj["FTAXRATE"] = 17; } } } }
/// <summary> /// 提示是否分配 /// </summary> /// <param name="_FCrmHolder"></param> /// <param name="_FCrmHdOrgID"></param> /// <param name="_FCrmHdDept"></param> private void ConfirmMsg() { string FDocumentStatus = CZ_GetValue("FDocumentStatus"); if (FDocumentStatus == "Z") { this.View.BillModel.SetValue("FClueStatus", "2"); return; } string _FCrmHolder = CZ_GetValue("FCrmHolder", "Id"); string _FCrmHdOrgID = CZ_GetValue("FCrmHdOrgID", "Id"); string _FCrmHdDept = CZ_GetValue("FCrmHdDept", "Id"); if (_FCrmHolder != "" && _FCrmHdOrgID != "" && _FCrmHdDept != "") { string FCrmHolderName = CZ_GetValue("FCrmHolder", "Name"); this.View.ShowMessage("是否确定将本条线索分配给" + FCrmHolderName + "?", MessageBoxOptions.YesNo, new Action <MessageBoxResult>((result) => { if (result == MessageBoxResult.Yes) { this.View.BillModel.SetValue("FClueStatus", "2"); //锁定持有信息 this.View.StyleManager.SetEnabled("FCrmHdOrgID", "", false); this.View.StyleManager.SetEnabled("FCrmHdDept", "", false); this.View.StyleManager.SetEnabled("FCrmHolder", "", false); //保存单据 IOperationResult saveResult = BusinessDataServiceHelper.Save( this.Context, this.View.BillView.BillBusinessInfo, this.View.BillModel.DataObject ); this.View.Refresh(); this.View.ShowMessage("分配完成!", MessageBoxOptions.OK, new Action <MessageBoxResult>((rslt) => { this.View.Close(); })); } else { this.View.BillModel.SetValue("FClueStatus", "1"); //解锁持有信息 this.View.StyleManager.SetEnabled("FCrmHdOrgID", "", true); this.View.StyleManager.SetEnabled("FCrmHdDept", "", true); this.View.StyleManager.SetEnabled("FCrmHolder", "", true); } })); } }
public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { oldvaluesfoItem = new List <Dictionary <string, string> >(); //newvaluesfoItem = new List<Dictionary<string, string>>(); string[] arr = new string[e.SelectedRows.Count()]; //DynamicObject[] newData = new DynamicObject[e.SelectedRows.Count()]; for (int i = 0; i < arr.Length; i++) { //获取新值的DataEntity //newData[i] = e.SelectedRows.ElementAt(i).DataEntity; arr[i] = e.SelectedRows.ElementAt(i).DataEntity["id"].ToString(); } DynamicObject[] oldData = BusinessDataServiceHelper.Load(this.Context, arr, BusinessInfo.GetDynamicObjectType()); GetOldOrNewDataList(oldData, oldvaluesfoItem); }
}//end method public static IOperationResult Submit(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, OperateOption option = null, Func <DynamicObject, object> selector = null) { if (option == null) { option = OperateOption.Create(); } option.SetIgnoreWarning(true); option.SetIgnoreInteractionFlag(true); object[] pkIds = selector != null?dataObject.Select(selector).ToArray() : dataObject.Select(data => data.PkId()).ToArray(); IOperationResult result = BusinessDataServiceHelper.Submit(ctx, businessInfo, pkIds, "Submit", option); return(result); }//end method
/// <summary> /// 保存物料,并显示保存结果 /// </summary> /// <param name="billView"></param> /// <returns></returns> private void SaveMaterial(IBillView billView, OperateOption saveOption) { // 设置FormId Form form = billView.BillBusinessInfo.GetForm(); if (form.FormIdDynamicProperty != null) { form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id); } // 调用保存操作 IOperationResult saveResult = BusinessDataServiceHelper.Save( this.Context, billView.BillBusinessInfo, billView.Model.DataObject, saveOption, "Save"); // 显示处理结果 if (saveResult == null) { this.View.ShowErrMessage("未知原因导致保存物料失败!"); return; } else if (saveResult.IsSuccess == true) {// 保存成功,直接显示 this.View.ShowOperateResult(saveResult.OperateResult); return; } else if (saveResult.InteractionContext != null && saveResult.InteractionContext.Option.GetInteractionFlag().Count > 0) {// 保存失败,需要用户确认问题 InteractionUtil.DoInteraction(this.View, saveResult, saveOption, new Action <FormResult, IInteractionResult, OperateOption>(( formResult, opResult, option) => { // 用户确认完毕,重新调用保存处理 this.SaveMaterial(billView, option); })); } // 保存失败,显示错误信息 if (saveResult.IsShowMessage) { saveResult.MergeValidateErrors(); this.View.ShowOperateResult(saveResult.OperateResult); return; } }
}//end method public static IOperationResult Forbid(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, OperateOption option = null, Func <DynamicObject, object> selector = null) { if (option == null) { option = OperateOption.Create(); } option.SetIgnoreWarning(true); option.SetIgnoreInteractionFlag(true); var pkIds = dataObject.Select(data => new KeyValuePair <object, object>(selector != null ? selector(data) : data.PkId(), "")) .ToList(); IOperationResult result = BusinessDataServiceHelper.SetBillStatus(ctx, businessInfo, pkIds, null, OperationNumberConst.OperationNumber_Forbid, option); return(result); }//end method
/// <summary> ///累加日计划面积 /// </summary> /// <param name="e"></param> public override void EndOperationTransaction(EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (selectedRows != null && selectedRows.Count() != 0) { IMetaDataService metadataService = Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>(); //获取单据元数据 FormMetadata BilMetada = metadataService.Load(Context, "SZXY_LYJTRSCJH") as FormMetadata; foreach (DynamicObject dy in selectedRows) { string Id = Convert.ToString(dy["Id"]); string FormId = "SZXY_LYJTRSCJH"; if (dy["SZXY_XYLYEntry"] is DynamicObjectCollection entry) { decimal Area = 0; string RJHFid = string.Empty; string RJHRowId = string.Empty; foreach (var item in entry.Where(m => !Convert.ToString(m["F_SZXY_PlasticNo"]).IsNullOrEmptyOrWhiteSpace())) { RJHFid = Convert.ToString(item["F_SZXY_FID"]); Area = Convert.ToDecimal(item["F_SZXY_Area"]); RJHRowId = Convert.ToString(item["F_SZXY_FEntryID"]); if (Area != 0 && !RJHFid.IsNullOrEmptyOrWhiteSpace()) { DynamicObject RJHObejct = Utils.LoadFIDBillObject(this.Context, FormId, RJHFid); if (RJHObejct["SZXY_LYJTRSCJHEntry"] is DynamicObjectCollection SoureEntry) { var Row = from row in SoureEntry where Convert.ToString(row["id"]).EqualsIgnoreCase(RJHRowId) select row; foreach (DynamicObject SoureRow in SoureEntry.Where(p => Convert.ToString(p["id"]).EqualsIgnoreCase(RJHRowId))) { Area += Convert.ToDecimal(SoureRow["F_SZXY_ProductionArea"]); SoureRow["F_SZXY_ProductionArea"] = Area; } } var saveResult = BusinessDataServiceHelper.Save(Context, BilMetada.BusinessInfo, RJHObejct); } } } } } }
/// <summary> /// 目标单单据构建完毕,且已经创建好与源单的关联关系之后,触发此事件 /// </summary> /// <param name="e"></param> /// <remarks> /// 本事件的时机,刚好能够符合需求, /// 而AfterConvert事件,则在执行表单服务策略之后 /// </remarks> public override void OnAfterCreateLink(CreateLinkEventArgs e) { // 目标单单据体元数据 Entity entity = e.TargetBusinessInfo.GetEntity("FSaleOrderEntry"); //源单单单据体元数据 //Entity es = e.SourceBusinessInfo.GetEntity("FSaleOrderEntry"); // 读取已经生成的销售订单 ExtendedDataEntity[] bills = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead"); // 定义一个集合,存储新拆分出来的单据体行 List <ExtendedDataEntity> newRows = new List <ExtendedDataEntity>(); // 对目标单据进行循环 foreach (var bill in bills) { // 取单据体集合 DynamicObjectCollection rowObjs = entity.DynamicProperty.GetValue(bill.DataEntity) as DynamicObjectCollection; // 对单据体进行循环:从后往前循环,新拆分的行,避开循环 int rowCount = rowObjs.Count; for (int i = rowCount - 1; i >= 0; i--) { DynamicObject rowObj = rowObjs[i]; DynamicObject FMaterialId = rowObj["MaterialId"] as DynamicObject; DynamicObjectCollection MaterialBase = FMaterialId["MaterialBase"] as DynamicObjectCollection; DynamicObject FCategoryID = MaterialBase[0]["CategoryID"] as DynamicObject; string FCategoryname = Convert.ToString(FCategoryID["Name"]); if (FCategoryname == "产成品") { //获取ID为100440的仓库 DynamicObject[] STOCKIDs = BusinessDataServiceHelper.Load(this.Context, new object[] { 100440 }, (MetaDataServiceHelper.Load(this.Context, "BD_STOCK") as FormMetadata).BusinessInfo.GetDynamicObjectType()); rowObj["FSTOCKID_MX"] = STOCKIDs[0]; } if (FCategoryname == "半成品") { //获取ID为100424的仓库 DynamicObject[] STOCKIDs = BusinessDataServiceHelper.Load(this.Context, new object[] { 100424 }, (MetaDataServiceHelper.Load(this.Context, "BD_STOCK") as FormMetadata).BusinessInfo.GetDynamicObjectType()); rowObj["FSTOCKID_MX"] = STOCKIDs[0]; } } } }
public override void AfterBarItemClick(AfterBarItemClickEventArgs e) { if (e.BarItemKey.Equals("tbsave")) { long entryid = 0; getTableName(); Entity entity = this.View.BusinessInfo.GetEntity("FEntity"); DynamicObjectCollection objs = this.View.Model.GetEntityDataObject(entity); DynamicObject[] lotMasters = null; if (!lotIds.IsEmpty() && !lotIds.Equals("0")) { string filter = string.Format("FLOTID IN ('{0}')", lotIds); OQLFilter of = OQLFilter.CreateHeadEntityFilter(filter); lotMasters = BusinessDataServiceHelper.Load(this.Context, "BD_BatchMainFile", null, of); } foreach (DynamicObject obj in objs) { value = obj["F_QANo"]; entryid = Convert.ToInt64(obj["F_BEM_billentryid"]); if (entryid == 0) { continue; } foreach (DynamicObject lotobj in lotMasters) { if (lotobj["id"].Equals(obj["FLOT_Id"])) { lotobj["F_QANo"] = obj["F_QANo"]; } } updateSqls.Add(string.Format(@"UPDATE {0} set F_QANo ='{1}' WHERE fentryid = {2} ", tableName, value, entryid)); } ISaveService service = Kingdee.BOS.App.ServiceHelper.GetService <ISaveService>(); service.Save(this.Context, lotMasters); DBUtils.ExecuteBatch(this.Context, updateSqls, updateSqls.Count); //返回值到父窗口 this.View.ReturnToParentWindow("true"); this.View.Close(); } base.AfterBarItemClick(e); }
public override void EndOperationTransaction(EndOperationTransactionArgs e) { base.EndOperationTransaction(e); if (selectedRows != null && selectedRows.Count() != 0) { IMetaDataService metadataService = Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>(); string SoureFormId = "SZXY_FHJTRSCJH"; //获取单据元数据 FormMetadata BilMetada = metadataService.Load(Context, SoureFormId) as FormMetadata; foreach (DynamicObject dy in selectedRows) { string Id = Convert.ToString(dy["Id"]); decimal Area = 0; string RJHFid = string.Empty; string RJHRowId = string.Empty; RJHFid = Convert.ToString(dy["F_SZXY_FIDH"]); Area = Convert.ToDecimal(dy["F_SZXY_InArea"]); RJHRowId = Convert.ToString(dy["F_SZXY_FEntryIDH"]); string F_SZXY_MotherVolume = Convert.ToString(dy["F_SZXY_MotherVolume"]); string F_SZXY_ligature = Convert.ToString(dy["F_SZXY_ligature"]); if (Area != 0 && !RJHFid.IsNullOrEmptyOrWhiteSpace()) { DynamicObject RJHObejct = Utils.LoadFIDBillObject(this.Context, SoureFormId, RJHFid); if (RJHObejct["SZXY_FHJTRSCJHEntry"] is DynamicObjectCollection SoureEntry) { //var Row = from row in SoureEntry // where Convert.ToString(row["id"]).EqualsIgnoreCase(RJHRowId) // select row; foreach (DynamicObject SoureRow in SoureEntry.Where(p => Convert.ToString(p["id"]).EqualsIgnoreCase(RJHRowId))) { decimal ResArea = Convert.ToDecimal(SoureRow["F_SZXY_ProductionArea"]) - Area; SoureRow["F_SZXY_ProductionArea"] = ResArea; } } var saveResult = BusinessDataServiceHelper.Save(Context, BilMetada.BusinessInfo, RJHObejct); } } } }
public static DynamicObject[] GetDynamicObjects(Context ctx, string formId, string filterClauseWihtKey) { if (!string.IsNullOrEmpty(formId)) { FormMetadata metaData = MetaDataServiceHelper.Load(ctx, formId) as FormMetadata; DynamicObjectType type = metaData.BusinessInfo.GetDynamicObjectType(); QueryBuilderParemeter queryParemeter = new QueryBuilderParemeter(); queryParemeter.FormId = formId; if (!string.IsNullOrEmpty(filterClauseWihtKey)) { queryParemeter.FilterClauseWihtKey = filterClauseWihtKey; } DynamicObject[] objects = BusinessDataServiceHelper.Load(ctx, type, queryParemeter); return(objects); } return(null); }