コード例 #1
0
        /// <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);
                }
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        /// <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);
        }