public override void OnSetBusinessInfo(SetBusinessInfoArgs e) { new ExtensionPresenter(this); base.OnSetBusinessInfo(e); // 创建当前单据元数据副本,避免直接修改原始元数据,并发时串账 FormMetadata currmetadata = (FormMetadata)ObjectUtils.CreateCopy( this.View.OpenParameter.FormMetaData); _currBusinessInfo = currmetadata.BusinessInfo; _currLayoutInfo = currmetadata.GetLayoutInfo(); // 取单据头的元数据模型 currEntityKey = "FBillHead"; currEntity = _currBusinessInfo.GetEntity(currEntityKey); // 取配置字段的模板,动态添加的字段,是基于模板字段的一个分身 modelTextField = _currBusinessInfo.GetField("FModelText"); //文本模板 modelDecimalField = _currBusinessInfo.GetField("FModelDecimal"); //小数模板 modelF8Field = _currBusinessInfo.GetField("FModelF8"); //F8模板 modelAssistantField = _currBusinessInfo.GetField("FModelAssistant"); //辅助资料模板 var simpleExtension = this.View.OpenParameter.GetCustomParameter("simpleExtension") as DynamicObject; presenter.GenerateByJson(simpleExtension["FExtension"] as string); _currBusinessInfo.GetDynamicObjectType(true); e.BusinessInfo = _currBusinessInfo; e.BillBusinessInfo = _currBusinessInfo; }
private void btnSave_Click(object sender, EventArgs e) { try { //登录系统 userServiceProxy.HostURL = txtServer.Text; var loginInfo = new Kingdee.BOS.Authentication.LoginInfo(); loginInfo.AcctID = txtDbId.Text; loginInfo.Lcid = 2052; loginInfo.Username = txtUser.Text; loginInfo.Password = txtPassword.Text; var res = userServiceProxy.ValidateUser(txtServer.Text, loginInfo); if (res.LoginResultType == LoginResultType.Success) { metaServiceProxy.HostURL = txtServer.Text; //据业务对象Id 取得元数据 FormMetadata meta = metaServiceProxy.GetFormMetadata("PAEZ_Phone"); BusinessInfo info = meta.BusinessInfo; //创建手机数据包 DynamicObject row = new DynamicObject(info.GetDynamicObjectType()); row["F_PAEZ_Brand"] = txtBrand.Text; row["F_PAEZ_Model"] = txtModel.Text; //保存至数据库 dataServiceProxy.HostURL = txtServer.Text; var oResult = dataServiceProxy.SaveData(info, row); if (oResult.IsSuccess) { MessageBox.Show("保存成功!"); } else { MessageBox.Show("保存失败!"); } } else { MessageBox.Show(string.Format("登录失败!{0}", res.Message)); } } catch (Exception ex) { MessageBox.Show(string.Format("保存失败!{0}", ex.Message)); } }
public static IOperationResult DoAction(Context context, string[] selPKArray, Enum_OPPAction action) { IOperationResult operationResult = new OperationResult(); OperateResultCollection operateResultCollection = new OperateResultCollection(); Dictionary <string, string> dictionary = new Dictionary <string, string>(); List <DynamicObject> list = new List <DynamicObject>(); FormMetadata formMetadata = (FormMetadata)MetaDataServiceHelper.Load(context, "CRM_OPP_Opportunity", true); BusinessInfo businessInfo = formMetadata.BusinessInfo; DynamicObject[] array = BusinessDataServiceHelper.Load(context, selPKArray, businessInfo.GetDynamicObjectType()); if (array == null || array.Length == 0) { operateResultCollection.Add(OpportunityCommon.CreateOperateResult(false, ResManager.LoadKDString("未找到对应的数据,可能已被删除!", "006008030001276", SubSystemType.CRM, new object[0]))); operationResult.OperateResult = operateResultCollection; return(operationResult); } DynamicObject[] array2 = array; for (int i = 0; i < array2.Length; i++) { DynamicObject dynamicObject = array2[i]; string text = CheckBeforeAction(dynamicObject, action); if (text != "") { operateResultCollection.Add(OpportunityCommon.CreateOperateResult(false, text)); operationResult.OperateResult = operateResultCollection; } else { if (action == Enum_OPPAction.WIN) { dynamicObject["FDocumentStatus"] = "E"; } else { if (action == Enum_OPPAction.LOSE) { dynamicObject["FDocumentStatus"] = "F"; } else { if (action == Enum_OPPAction.UNWIN || action == Enum_OPPAction.UNLOSE) { dynamicObject["FDocumentStatus"] = "G"; } } } if (action == Enum_OPPAction.WIN || action == Enum_OPPAction.LOSE) { DynamicObjectCollection dynamicObjectCollection = dynamicObject["T_CRM_OppPhase"] as DynamicObjectCollection; foreach (DynamicObject current in dynamicObjectCollection) { if (current["FIsCurrent"].ToString() == "True") { current["FEndtimeReal"] = DateTime.Now; break; } } } dictionary.Add(dynamicObject["Id"].ToString(), dynamicObject["FOPPName"].ToString()); list.Add(dynamicObject); } } if (list.Count > 0) { IOperationResult operationResult2 = BusinessDataServiceHelper.Save(context, businessInfo, list.ToArray(), null, ""); if (action == Enum_OPPAction.WIN || action == Enum_OPPAction.LOSE) { Dictionary <string, string> dictionary2 = new Dictionary <string, string>(); string format = ResManager.LoadKDString("赢单商机【{0}】", "006008030001476", SubSystemType.CRM, new object[0]); string text2 = "Win"; if (action == Enum_OPPAction.LOSE) { format = ResManager.LoadKDString("输单商机【{0}】", "006008030001477", SubSystemType.CRM, new object[0]); text2 = "Lose"; } foreach (OperateResult current2 in operationResult2.OperateResult) { if (current2.SuccessStatus) { dictionary2.Add(current2.PKValue.ToString(), string.Format(format, dictionary[current2.PKValue.ToString()])); } } if (dictionary2.Count > 0) { ILatestInfoService latestInfoService = ServiceFactory.GetLatestInfoService(context); latestInfoService.AddActionInfo(context, "CRM_OPP_Opportunity", text2, dictionary2); } } if (operationResult.OperateResult.Count > 0) { using (IEnumerator <OperateResult> enumerator3 = operationResult2.OperateResult.GetEnumerator()) { while (enumerator3.MoveNext()) { OperateResult current3 = enumerator3.Current; operationResult.OperateResult.Add(current3); } return(operationResult); } } operationResult.OperateResult = operationResult2.OperateResult; } return(operationResult); }
//创建销售预测变更单 private void CreateForecastChangeBill() { //分组集合 List <string> lstGroups = new List <string>(); string sGroup = string.Empty; foreach (DynamicObject lstEntry in lstEntrys) { sGroup = Convert.ToString(lstEntry["FSaleOrgId_ID"]) + "+" + Convert.ToString(lstEntry["FSaleDeptId_ID"]) + "+" + Convert.ToString(lstEntry["FSaleGroupId_ID"]) + "+" + Convert.ToString(lstEntry["FSalerId_ID"]); if (!lstGroups.Contains(sGroup)) { lstGroups.Add(sGroup); } } //插入数据 //销售预测变更单的信息 BusinessInfo businessInfo = ((FormMetadata)MetaDataServiceHelper.Load(this.Context, "JN_YDL_SAL_ForecastChange", true)).BusinessInfo; DynamicObject billHead = null; DynamicObjectCollection billEntrys = null; List <DynamicObject> lstBills = new List <DynamicObject>(); List <DynamicObject> lstSelectEntrys; long lSaleOrgId = 0; long lSaleDeptId = 0; long lSaleGroupId = 0; long lSalerId = 0; foreach (string lstGroup in lstGroups) { //单据头 billHead = businessInfo.GetDynamicObjectType().CreateInstance() as DynamicObject; //单据体 billEntrys = billHead["FEntity"] as DynamicObjectCollection; if (billHead == null || billEntrys == null) { continue; } string[] sGroupSplit = lstGroup.Split('+'); if (sGroupSplit == null || sGroupSplit.Count() != 4) { continue; } lSaleOrgId = Convert.ToInt64(sGroupSplit[0]); lSaleDeptId = Convert.ToInt64(sGroupSplit[1]); lSaleGroupId = Convert.ToInt64(sGroupSplit[2]); lSalerId = Convert.ToInt64(sGroupSplit[3]); billHead["FBillTypeID_Id"] = "58b2a721c7f776"; billHead["FJNSaleOrgId_Id"] = lSaleOrgId; billHead["FJNSaleDeptId_Id"] = lSaleDeptId; billHead["FJNSaleGroupId_Id"] = lSaleGroupId; billHead["FJNSalerId_Id"] = lSalerId; billHead["FDocumentStatus"] = "A"; billHead["FJNDate"] = DateTime.Now; billHead["FDirection"] = sAdjustType == "A" ? "B" : "A"; billHead["FCreateDate"] = DateTime.Now; billHead["FCreatorId_Id"] = this.Context.UserId; lstSelectEntrys = lstEntrys.Where(p => Convert.ToInt64(p["FSaleOrgId_Id"]) == lSaleOrgId && Convert.ToInt64(p["FSaleDeptId_Id"]) == lSaleDeptId && Convert.ToInt64(p["FSaleGroupId_Id"]) == lSaleGroupId && Convert.ToInt64(p["FSalerId_Id"]) == lSalerId).ToList(); if (lstSelectEntrys == null || lstSelectEntrys.Count() <= 0) { continue; } int seq = 1; foreach (DynamicObject entry in lstSelectEntrys) { DynamicObject billEntry = new DynamicObject(billEntrys.DynamicCollectionItemPropertyType); billEntry["Seq"] = seq; billEntry["FJNMaterialId_Id"] = entry["FMaterialId_Id"]; billEntry["FJNAUXPROP_Id"] = entry["FAuxPropId_Id"]; billEntry["FJNForecastQty"] = entry["FAdjustQty"]; billEntry["FJNUnitID_Id"] = entry["FUnitID_Id"]; billEntry["FJNBaseUnitID_Id"] = entry["FUnitID_Id"]; billEntry["FJNBaseUnitQty"] = entry["FAdjustQty"]; billEntry["FJNStockOrg_Id"] = this.Context.CurrentOrganizationInfo.ID; billEntry["FJNSettleOrg_Id"] = this.Context.CurrentOrganizationInfo.ID; billEntry["FJNSupplyOrg_Id"] = this.Context.CurrentOrganizationInfo.ID; DynamicObject material = entry["FMaterialId"] as DynamicObject; if (material != null) { string Materialname = material["Name"].ToString(); string sql = ""; if (Materialname.IndexOf("(内蒙)") > 0 || Materialname.IndexOf("(内蒙)") > 0 || Materialname.IndexOf("(内蒙)") > 0) { billEntry["FJNSupplyOrg_Id"] = 100063; sql = string.Format(@"select t2.FWORKSHOPID as FWORKSHOPID from T_BD_MATERIAL t1 join T_BD_MATERIALPRODUCE t2 on t1.FMATERIALID=t2.FMATERIALID where t1.FMASTERID in( select FMASTERID from T_BD_MATERIAL where FMATERIALID={0}) and t1.FUSEORGID={1}", Convert.ToInt32(entry["FMaterialId_Id"]), 100063); } else { billEntry["FJNSupplyOrg_Id"] = 100062; sql = string.Format(@"select t2.FWORKSHOPID as FWORKSHOPID from T_BD_MATERIAL t1 join T_BD_MATERIALPRODUCE t2 on t1.FMATERIALID=t2.FMATERIALID where t1.FMASTERID in( select FMASTERID from T_BD_MATERIAL where FMATERIALID={0}) and t1.FUSEORGID={1}", Convert.ToInt32(entry["FMaterialId_Id"]), 100062); } DynamicObjectCollection FWORKSHOPID = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); if (FWORKSHOPID.Count > 0) { int WORKSHOP = Convert.ToInt32(FWORKSHOPID[0]["FWORKSHOPID"]); billEntry["F_VTR_PrdDeptId_Id"] = WORKSHOP; } /* else * { * billEntry["F_VTR_PrdDeptId"] = 0; * }*/ } billEntrys.Add(billEntry); seq++; } lstBills.Add(billHead); } if (lstBills.Count <= 0) { return; } //生成编码 MakeBillNo(lstBills); Kingdee.BOS.ServiceHelper.DBServiceHelper.LoadReferenceObject(this.Context, lstBills.ToArray(), businessInfo.GetDynamicObjectType(), false); DynamicObject[] billDatas = BusinessDataServiceHelper.Save(this.Context, lstBills.ToArray()); if (billDatas == null || billDatas.Count() <= 0) { //K3DisplayerModel model = K3DisplayerModel.Create(this.Context, "调整失败,未成功创建销售预测变更单"); //// 创建一个交互提示错误对象,并设置错误来源,相互隔离 //KDInteractionException ie = new KDInteractionException("错误提示"); //ie.InteractionContext.InteractionFormId = FormIdConst.BOS_K3Displayer; // 提示信息显示界面 //ie.InteractionContext.K3DisplayerModel = model; // 提示内容 //ie.InteractionContext.IsInteractive = true; // 是否需要交互 //throw ie; // 抛出错误,终止流程 this.OperationResult.OperateResult[0].SuccessStatus = false; this.OperationResult.OperateResult[0].Message = "创建销售预测变更单失败"; } else { OperateResult result; foreach (var item in billDatas) { result = new OperateResult { SuccessStatus = true, Message = "创建销售预测变更单成功", MessageType = MessageType.Normal, Name = "生成销售预测变更单:" + Convert.ToString(item["FBillNo"]) + "成功", PKValue = item }; this.OperationResult.OperateResult.Add(result); } } this.OperationResult.IsShowMessage = true; }
public override void ButtonClick(ButtonClickEventArgs e) { if (e.Key.EqualsIgnoreCase("F_JD_BTNOK")) { this.View.GetControl("F_JD_BTNOK").Enabled = false; if (FileNameList.Count < 1) { this.View.ShowMessage("未检测到需要引入的txt文件!", MessageBoxType.Error); } else { string result = ""; for (int f = 0; f < FileNameList.Count; f++) { result += "\r\n《" + _FileList[f] + "》结果:"; try { string CustomKey = this.View.OpenParameter.GetCustomParameter("CustomKey").ToString();//获取父级页面传参的参数 List <object> analysis = new List <object> { }; if (CustomKey == "2001") { analysis = GetAnalysisTxt(FileNameList[f]); } else { analysis = GetAnalysisTxt2(FileNameList[f]); } string sql_3 = @"select tt.FID,t1.FENTRYID,t2.FMATERIALID,t2.FNUMBER from t_STK_InStock tt left outer join T_STK_INSTOCKENTRY t1 on tt.FID=t1.FID left outer join T_BD_MATERIAL t2 on t1.FMATERIALID=t2.FMATERIALID where tt.FCancelStatus='A' and tt.FDocumentStatus in('A','B') and tt.F_PAEZ_Text='" + analysis[0].ToString() + "'"; DataSet ds_3 = DBServiceHelper.ExecuteDataSet(this.Context, sql_3); DataTable dt_head = ds_3.Tables[0]; dt_head.PrimaryKey = new DataColumn[] { dt_head.Columns["FENTRYID"] }; if (dt_head.Rows.Count < 1) { result += "\r\n 不存在Invoice No:“" + analysis[0].ToString() + "”的单据或已提交或已审核,无法更新单价。\r\n________________________________________________________________________\r\n"; continue; } long BillID = Convert.ToInt64(dt_head.Rows[0]["FID"]); DataTable dt_entry = (DataTable)analysis[1]; #region 修改单据数据 FormMetadata meta = MetaDataServiceHelper.Load(this.Context, "STK_InStock") as FormMetadata; BusinessInfo info = meta.BusinessInfo; DynamicObject toModifyObj = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.LoadSingle(this.Context, BillID, info.GetDynamicObjectType()); if (toModifyObj != null) { decimal FEXCHANGERATE = 1; DynamicObjectCollection InStockFin = toModifyObj["InStockFin"] as DynamicObjectCollection; foreach (DynamicObject StockFin in InStockFin) { FEXCHANGERATE = Convert.ToDecimal(info.GetField("FEXCHANGERATE").DynamicProperty.GetValue(StockFin));//汇率 } DynamicObjectCollection entryObjs = toModifyObj["InStockEntry"] as DynamicObjectCollection; string FNUMBER = string.Empty; decimal FTaxPrice = 0; decimal FTAXRATE = 0; decimal FPRICEUNITQTY = 0; string err_row = ""; foreach (DynamicObject entryObj in entryObjs) { int FENTRYID = Convert.ToInt32(entryObj["Id"]); FTAXRATE = Convert.ToDecimal(info.GetField("FTAXRATE").DynamicProperty.GetValue(entryObj)) / 100; FPRICEUNITQTY = Convert.ToDecimal(info.GetField("FPRICEUNITQTY").DynamicProperty.GetValue(entryObj)); DataRow dr = dt_head.Rows.Find(FENTRYID); if (dr != null) { FNUMBER = dr["FNUMBER"].ToString(); DataRow[] dr_r = dt_entry.Select("FPartID='" + FNUMBER + "'"); if (dr_r.Length > 0) { FTaxPrice = Convert.ToDecimal(dr_r[0]["FUnitPrice"]); decimal FPRICE = Math.Round((FTaxPrice / (1 + FTAXRATE)), 6, MidpointRounding.AwayFromZero); decimal FALLAMOUNT = Math.Round((FTaxPrice * FPRICEUNITQTY), 2, MidpointRounding.AwayFromZero); decimal FAMOUNT = Math.Round((FTaxPrice / (1 + FTAXRATE) * FPRICEUNITQTY), 2, MidpointRounding.AwayFromZero); info.GetField("FPRICE").DynamicProperty.SetValue(entryObj, FPRICE); info.GetField("FTaxPrice").DynamicProperty.SetValue(entryObj, FTaxPrice); info.GetField("FALLAMOUNT").DynamicProperty.SetValue(entryObj, FALLAMOUNT); info.GetField("FAMOUNT").DynamicProperty.SetValue(entryObj, FAMOUNT); info.GetField("FTAXAMOUNT").DynamicProperty.SetValue(entryObj, FALLAMOUNT - FAMOUNT); info.GetField("FTAXNETPRICE").DynamicProperty.SetValue(entryObj, FTaxPrice); info.GetField("FTAXAMOUNT_LC").DynamicProperty.SetValue(entryObj, Math.Round((FALLAMOUNT - FAMOUNT) * FEXCHANGERATE, 2, MidpointRounding.AwayFromZero)); //税额(本位币) info.GetField("FAMOUNT_LC").DynamicProperty.SetValue(entryObj, Math.Round((FAMOUNT * FEXCHANGERATE), 2, MidpointRounding.AwayFromZero)); //金额(本位币)FAMOUNT_LC info.GetField("FALLAMOUNT_LC").DynamicProperty.SetValue(entryObj, Math.Round((FALLAMOUNT * FEXCHANGERATE), 2, MidpointRounding.AwayFromZero)); //含税金额(本位币)FAMOUNT_LC } else { err_row += "物料【" + FNUMBER + "】未检测到导入的数据。\r\n"; continue; } } else { err_row += "分录【" + FENTRYID + "】未检测对应物料数据,请检查。\r\n"; continue; } } if (err_row == "") { IOperationResult save_result = Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.Save(this.Context, info, new DynamicObject[] { toModifyObj }, null, "Save"); if (save_result.IsSuccess) { Import = true; result += "\r\n引入成功!\r\n________________________________________________________________________\r\n"; continue; } else { for (int mf = 0; mf < save_result.ValidationErrors.Count; mf++) { result += "\r\n" + save_result.ValidationErrors[mf].Message; } result += "\r\n________________________________________________________________________\r\n"; continue; } } else { result += "\r\n" + err_row; result += "\r\n________________________________________________________________________\r\n"; continue; } } #endregion } catch (Exception ex) { result += "\r\n" + ex.Message.ToString() + "\r\n________________________________________________________________________\r\n"; continue; } } this._FileList.Clear(); this.FileNameList.Clear(); this.View.GetControl("F_JD_FileUpdate").SetValue(DBNull.Value); this.View.Refresh(); this.View.ShowMessage("导入完成,以下为具体的引入情况:" + result, MessageBoxType.Advise); } } else if (e.Key.EqualsIgnoreCase("F_JD_BTNCancel")) { this.View.ReturnToParentWindow(new FormResult(Import)); this.View.Close(); } }
public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { ExtendedDataEntity[] dataEntitys = e.Result.FindByEntityKey("FBillHead"); if (dataEntitys == null || dataEntitys.Count() == 0) { return; } foreach (var dataEntity in dataEntitys) { DynamicObject data = dataEntity.DataEntity; //往来单位类型=客户,一级业务员=往来单位.一级业务员 if (Convert.ToString(data["CONTACTUNITTYPE"]).EqualsIgnoreCase("BD_Customer")) { DynamicObject contact = data["CONTACTUNIT"] as DynamicObject; BusinessInfo customerBusinfo = ((FormMetadata)Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>().Load(this.Context, "BD_Customer")).BusinessInfo; DynamicObject customer = Kingdee.BOS.App.ServiceHelper.GetService <IViewService>().LoadSingle(this.Context, contact["Id"], customerBusinfo.GetDynamicObjectType()); if (customer != null) { data["FJNFistSaler_Id"] = customer["JN_SalesId_Id"]; } Kingdee.BOS.ServiceHelper.DBServiceHelper.LoadReferenceObject(this.Context, new DynamicObject[] { data }, e.TargetBusinessInfo.GetDynamicObjectType()); } } }
public override void OnSetBusinessInfo(SetBusinessInfoArgs e) { base.OnSetBusinessInfo(e); FormMetadata currmetadata = (FormMetadata)ObjectUtils.CreateCopy(this.View.OpenParameter.FormMetaData); _currBusinessInfo = currmetadata.BusinessInfo; _currLayoutInfo = currmetadata.GetLayoutInfo(); // 获取单据体表格的元数据及布局 string entityKey = "FEntity"; Entity entity = _currBusinessInfo.GetEntity(entityKey); //EntityAppearance entityApp = _currLayoutInfo.GetEntityAppearance(entityKey); string FSDate = this.View.OpenParameter.GetCustomParameter("FSDate") == null ? "" : this.View.OpenParameter.GetCustomParameter("FSDate").ToString(); string FEDate = this.View.OpenParameter.GetCustomParameter("FEDate") == null ? "" : this.View.OpenParameter.GetCustomParameter("FEDate").ToString(); string FOrgId = this.View.OpenParameter.GetCustomParameter("FOrgId") == null ? "0" : this.View.OpenParameter.GetCustomParameter("FOrgId").ToString(); string FDeptID = this.View.OpenParameter.GetCustomParameter("FDeptID") == null ? "0" : this.View.OpenParameter.GetCustomParameter("FDeptID").ToString(); string FAccountId = this.View.OpenParameter.GetCustomParameter("FAccountId") == null ? "0" : this.View.OpenParameter.GetCustomParameter("FAccountId").ToString(); string sql = string.Format(@"EXEC proc_czly_AccountDept @SDt='{0}', @EDt='{1}', @FOrgId='{2}', @FDeptId='{3}', @FAccountId='{4}'", FSDate, FEDate, FOrgId, FDeptID, FAccountId); Field textField = _currBusinessInfo.GetField("FField"); Field decimalField = _currBusinessInfo.GetField("FDecimal"); //var textApp = _currLayoutInfo.GetEntityAppearance("FField"); entityData = DBUtils.ExecuteDataSet(this.Context, sql).Tables[0]; // 获取生成的费用项目列 sql = string.Format(@"EXEC proc_czly_AccountOrg @SDt='{0}', @EDt='{1}', @FOrgId='{2}', @FDeptId='{3}', @FAccountId='{4}'", FSDate, FEDate, FOrgId, FDeptID, FAccountId); costItems = DBUtils.ExecuteDataSet(this.Context, sql).Tables[0]; for (int i = 0; i < entityData.Columns.Count; i++) { string name = "FField_" + (i + 1).ToString(); //Field field = new Field(); Field field; if (i == 0) { field = (Field)ObjectUtils.CreateCopy(textField); } else { field = (Field)ObjectUtils.CreateCopy(decimalField); // 增加合计列 GroupSumColumn sumColumn = new GroupSumColumn(); sumColumn.FieldKey = name; sumColumn.Precision = -1; sumColumn.SumType = 1; entity.GroupColumnInfo.AddGroupSumColumn(sumColumn); } field.DynamicProperty = null; //field.ElementType = ElementType.BarItemElementType_TextField; field.Entity = entity; field.EntityKey = entityKey; field.Key = name; field.FieldName = name; field.PropertyName = name; field.Name = new LocaleValue(name); _currBusinessInfo.Add(field); } _currBusinessInfo.Remove(textField); _currBusinessInfo.Remove(decimalField); // 强制要求重新构建单据的ORM模型 _currBusinessInfo.GetDynamicObjectType(true); // 输出动态调整后的单据逻辑元数据模型(BusinessInfo) e.BusinessInfo = _currBusinessInfo; e.BillBusinessInfo = _currBusinessInfo; }
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 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