/// <summary> /// 填充要更新的数据到数据表。 /// </summary> /// <param name="stepUpdateTable">包含工步更新数据的数据表。</param> /// <param name="stepUDAs">包含工步自定义属性更新数据的数据表。</param> /// <param name="stepParams">包含工步参数更新数据的数据表。</param> internal void ParseUpdateDataToDataTable(ref DataTable stepUpdateTable, ref DataTable stepUDAs, ref DataTable stepParams) { if (null == stepUpdateTable || null == stepUDAs || !IsDirty) { return; } foreach (string Key in this.DirtyList.Keys) { Dictionary <string, string> rowData = new Dictionary <string, string>() { { COMMON_FIELDS.FIELD_COMMON_UPDATE_KEY, _stepKey }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_NAME, Key }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_OLD_VALUE, this.DirtyList[Key].FieldOriginalValue }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_NEW_VALUE, this.DirtyList[Key].FieldNewValue } }; FanHai.Hemera.Utils.Common.Utils.AddRowDataToDataTable(ref stepUpdateTable, rowData); } //组织工步自定义属性。 if (_stepUDAs.IsDirty) { _stepUDAs.ParseUpdateDataToDataTable(ref stepUDAs); } //组织工步参数。 if (this.Params != null) { DataTable dtStepParamChange = this.Params.GetChanges(); if (dtStepParamChange != null) { stepParams.Merge(dtStepParamChange, false, MissingSchemaAction.Ignore); } foreach (DataRow dr in stepParams.Rows) { dr[POR_ROUTE_STEP_PARAM_FIELDS.FIELD_EDIT_TIME] = DBNull.Value; dr[POR_ROUTE_STEP_PARAM_FIELDS.FIELD_EDIT_TIMEZONE] = PropertyService.Get(PROPERTY_FIELDS.TIMEZONE); dr[POR_ROUTE_STEP_PARAM_FIELDS.FIELD_EDITOR] = PropertyService.Get(PROPERTY_FIELDS.USER_NAME); } } }
private bool ComputerUpdate() { bool bReturn = false; DataSet dataSet = new DataSet(); if (IsDirty) { if (DirtyList.Count > 0)// { DataTable entityTable = DataTableHelper.CreateDataTableForUpdateBasicData(COMPUTER_FIELDS.DATABASE_TABLE_NAME); foreach (string Key in this.DirtyList.Keys) { Dictionary <string, string> rowData = new Dictionary <string, string>() { { COMMON_FIELDS.FIELD_COMMON_UPDATE_KEY, _codeKey }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_NAME, Key }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_OLD_VALUE, this.DirtyList[Key].FieldOriginalValue }, { COMMON_FIELDS.FIELD_COMMON_UPDATE_NEW_VALUE, this.DirtyList[Key].FieldNewValue } }; FanHai.Hemera.Utils.Common.Utils.AddRowDataToDataTable(ref entityTable, rowData); } if (entityTable.Rows.Count > 0) { dataSet.Tables.Add(entityTable); } } if (_UDAs.IsDirty) { DataTable dtUDAs = DataTableHelper.CreateDataTableForUDA(COMPUTER_ATTR_FIELDS.DATABASE_TABLE_NAME, COMPUTER_ATTR_FIELDS.FIELDS_COMPUTER_KEY); _UDAs.ParseUpdateDataToDataTable(ref dtUDAs); dataSet.Tables.Add(dtUDAs); } try { DataSet dsReturn = null; IServerObjFactory serverFactory = CallRemotingService.GetRemoteObject(); dsReturn = serverFactory.CreateIComputerEngine().UpdateComputer(dataSet); string returnMsg = FanHai.Hemera.Share.Common.ReturnMessageUtils.GetServerReturnMessage(dsReturn); if (returnMsg.Length < 1) { foreach (UserDefinedAttr uda in _UDAs.UserDefinedAttrList) { uda.OperationAction = OperationAction.Update; } this.ResetDirtyList(); bReturn = true; } else { MessageService.ShowError(returnMsg); } } catch (Exception ex) { MessageService.ShowError(ex.Message); } finally { CallRemotingService.UnregisterChannel(); } } else { MessageService.ShowMessage ("${res:Global.UpdateItemDataMessage}", "${res:Global.SystemInfo}"); } return(bReturn); }
/// <summary> /// 更新工序记录。 /// </summary> /// <returns>true:更新成功。false:更新失败。</returns> public override bool Update() { if (IsDirty) { DataSet dsParams = new DataSet(); Hashtable htCommon = new Hashtable(); htCommon.Add(COMMON_FIELDS.FIELD_COMMON_EDIT_TIMEZONE, this.EditTimeZone); htCommon.Add(COMMON_FIELDS.FIELD_COMMON_EDITOR, this.Editor); htCommon.Add(COMMON_FIELDS.FIELD_COMMON_EDIT_TIME, this.EditTime); DataTable dtCommon = CommonUtils.ParseToDataTable(htCommon); dtCommon.TableName = TRANS_TABLES.TABLE_MAIN_DATA; dsParams.Tables.Add(dtCommon); //组织工序数据 if (this.DirtyList.Count > 0) { Hashtable htOpeartion = new Hashtable(); htOpeartion.Add(POR_ROUTE_OPERATION_VER_FIELDS.FIELD_ROUTE_OPERATION_VER_KEY, _operationVerKey); foreach (string Key in this.DirtyList.Keys) { htOpeartion.Add(Key, this.DirtyList[Key].FieldNewValue); } DataTable dtOperation = CommonUtils.ParseToDataTable(htOpeartion); dtOperation.TableName = POR_ROUTE_OPERATION_VER_FIELDS.DATABASE_TABLE_NAME; dsParams.Tables.Add(dtOperation); } //组织自定义属性。 if (_operationUDAs.IsDirty) { DataTable operationUdaTable = DataTableHelper.CreateDataTableForUDA (POR_ROUTE_OPERATION_ATTR_FIELDS.DATABASE_TABLE_NAME, POR_ROUTE_OPERATION_ATTR_FIELDS.FIELD_OPERATION_VER_KEY); _operationUDAs.ParseUpdateDataToDataTable(ref operationUdaTable); DealUdaTable(operationUdaTable, "I"); dsParams.Tables.Add(operationUdaTable); } //组织工序参数数据表。 DataTable dtOperationParams = this._params.GetChanges(); if (dtOperationParams != null) { dtOperationParams.TableName = POR_ROUTE_OPERATION_PARAM_FIELDS.DATABASE_TABLE_NAME; foreach (DataRow dr in dtOperationParams.Rows) { dr[POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_EDITOR] = this.Editor; dr[POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_EDIT_TIME] = DBNull.Value; dr[POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_EDIT_TIMEZONE] = this.EditTimeZone; } dsParams.Tables.Add(dtOperationParams); } try { string msg = string.Empty; DataSet dsReturn = null; IServerObjFactory factor = CallRemotingService.GetRemoteObject(); if (null != factor) { dsReturn = factor.CreateIOperationEngine().OperationUpdate(dsParams); msg = ReturnMessageUtils.GetServerReturnMessage(dsReturn); if (msg != string.Empty) { this.ErrorMsg = msg; MessageService.ShowError(msg); return(false); } else { foreach (UserDefinedAttr uda in _operationUDAs.UserDefinedAttrList) { uda.OperationAction = OperationAction.Update; } foreach (DataRow dr in this._params.Rows) { int isDeleted = Convert.ToInt32(dr[POR_ROUTE_OPERATION_PARAM_FIELDS.FIELD_IS_DELETED]); if (isDeleted == 1) { dr.Delete(); } } this._params.AcceptChanges(); this.ResetDirtyList(); MessageService.ShowMessage("${res:Global.SuccessMessage}", "${res:Global.SystemInfo}"); } } } catch (Exception ex) { this.ErrorMsg = ex.Message; MessageService.ShowError(ex); } finally { CallRemotingService.UnregisterChannel(); } } else { MessageService.ShowMessage ("${res:Global.UpdateItemDataMessage}", "${res:Global.SystemInfo}"); } return(true); }