Exemplo n.º 1
0
        /// <summary>
        /// 更新选择的同类设备自身属性
        /// </summary>
        public UpdataResult UpdataSelfAttribute(ref List <BulkChangeEnt> Current, XProps objDev)
        {
            UpdataResult ur = new UpdataResult();

            try
            {
                DCadApi.isModifySymbol = true;
                foreach (var ent in Current)
                {
                    try
                    {
                        var value = DevEventHandler.GetDevTables(ent.SingleG3EObject.G3E_FNO, ent.SingleG3EObject.G3E_FID);
                        if (value.DevObj != null)
                        {
                            PartialCopy(objDev, value.DevObj);
                            //查找看看该设备是否有符号,有的就要根据属性更新符号
                            ObjectId objId = DBEntityFinder.Instance.GetObjectIdByFid(ent.SingleG3EObject.G3E_FID);
                            if (objId.IsNull)
                            {
                                UpdateAttribute(value, value.DevObj, false);
                                ur.UpdataSucceedNum++;
                            }
                            else
                            {
                                ObjectId newObjId = ObjectId.Null;
                                bool     isUpdate = DCadApi.UpdateSymbol(objId, value.DevObj, out newObjId);
                                if (isUpdate)
                                {
                                    UpdateAttribute(value, value.DevObj, false);
                                    ur.UpdataSucceedNum++;
                                }
                                else
                                {
                                    //存放更新失败的设备
                                    ur.UpdataFailedNum++;
                                    ur.UpdataErrorLog.AppendLine("Fid=" + ent.SingleG3EObject.G3E_FID + "的设备更新失败");
                                }
                            }
                        }
                        PublicMethod.Instance._isSelectedEntityChoice = false;
                    }
                    catch (Exception)
                    {
                        ur.UpdataFailedNum++;
                        ur.UpdataErrorLog.AppendLine("Fid=" + ent.SingleG3EObject.G3E_FID + "的设备更新失败");
                    }
                }
            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex);
            }
            finally
            {
                DCadApi.isModifySymbol = false;
            }
            return(ur);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 更新公共属性
        /// </summary>
        public UpdataResult UpdataCommonAttribute(ref List <BulkChangeEnt> Current, XProps objDev)
        {
            UpdataResult ur = new UpdataResult();

            try
            {
                DCadApi.isModifySymbol = true;

                foreach (var ent in Current)
                {
                    try
                    {
                        //查看是否有没有公共属性表
                        var simpleEntry = DeviceAttributeConfig.Instance.Attributes.SingleOrDefault(o => o.Fno == ent.SingleG3EObject.G3E_FNO);
                        if (simpleEntry != null)
                        {
                            if (!simpleEntry.Common.PropertiesFromTable.Any())
                            {
                                ur.UpdataFailedNum++;
                                ur.UpdataErrorLog.AppendLine(ent.SingleG3EObject.G3E_FID.ToString() + "没有公共属性表");
                                continue;
                            }
                        }
                    }
                    catch (Exception)
                    {
                        ur.UpdataFailedNum++;
                        //ur.UpdataErrorLog.AppendLine("CAD实体查找错误,ObjectID="+ent.SingleG3EObject.G3E_FID);
                    }

                    #region
                    try
                    {
                        var value = DevEventHandler.GetDevTables(ent.SingleG3EObject.G3E_FNO, ent.SingleG3EObject.G3E_FID);
                        if (value.DevObj != null)
                        {
                            PartialCopy(objDev, value.DevObj);

                            //查找看看该设备是否有符号,有的就要根据属性更新符号
                            ObjectId objId = DBEntityFinder.Instance.GetObjectIdByFid(ent.SingleG3EObject.G3E_FID);
                            if (objId.IsNull)
                            {
                                UpdateAttribute(value, value.DevObj, true);
                                ur.UpdataSucceedNum++;
                            }
                            else
                            {
                                ObjectId newObjId = ObjectId.Null;
                                bool     isUpdate = DCadApi.UpdateSymbol(objId, value.DevObj, out newObjId);
                                if (isUpdate)
                                {
                                    UpdateAttribute(value, value.DevObj, true);
                                    ur.UpdataSucceedNum++;
                                }
                                else
                                {
                                    //存放更新失败的设备
                                    ur.UpdataFailedNum++;
                                    ur.UpdataErrorLog.AppendLine("Fid=" + ent.SingleG3EObject.G3E_FID + "的设备更新失败 ");
                                }
                            }
                        }
                    }
                    catch (Exception)
                    {
                        ur.UpdataFailedNum++;
                        ur.UpdataErrorLog.AppendLine("Fid=" + ent.SingleG3EObject.G3E_FID + "的设备更新失败 ");
                    }
                    PublicMethod.Instance._isSelectedEntityChoice = false;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex);
            }
            finally
            {
                DCadApi.isModifySymbol = false;
            }
            return(ur);
        }
Exemplo n.º 3
0
        private void btRef_Click(object sender, EventArgs e)
        {
            UpdataResult ur = null;

            try
            {
                //检测有无修改了才更新
                if (!GenerateHelper.IsAllDefault(objDev))
                {
                    _isRef = true;
                }
                if (_isRef)
                {
                    if (MessageBox.Show("确定更新属性吗?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
                    {
                        if (!CommonHelp.Instance.CheckIsNUll(objDev, currentFno))
                        {
                            MessageBox.Show("为确保数据统一建议所属单位、所属变电站、受电馈线同时修改.", "提示", MessageBoxButtons.OK,
                                            MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
                            return;
                        }
                        _isRef = false;
                        //根据更改选项之前的值来更新属性
                        if (_tempItem.Contains("全部"))
                        {
                            ur = CommonHelp.Instance.UpdataCommonAttribute(ref bulkChangeEnts, objDev);
                        }
                        else
                        {
                            //过滤出要更新的设备
                            var ents = bulkChangeEnts.Where(o => o.LayerName.Equals(_tempItem)).ToList();
                            ur = CommonHelp.Instance.UpdataSelfAttribute(ref ents, objDev);
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                if (MenuControl.orderVerify != null)
                {
                    List <BulkChangeEnt> temp = new List <BulkChangeEnt>();
                    if (!_tempItem.Equals("全部"))
                    {
                        var ents = bulkChangeEnts.Where(o => o.LayerName.Equals(_tempItem));
                        temp.AddRange(ents);
                    }
                    else
                    {
                        temp.AddRange(bulkChangeEnts);
                    }
                    bulkOrderWorkifyArgs bulkArgs = new bulkOrderWorkifyArgs
                    {
                        bulkChangeList = temp
                    };
                    if (RefBulkModify != null)
                    {
                        RefBulkModify(new object(), bulkArgs);
                    }
                }
                if (ur != null)
                {
                    MessageBox.Show(
                        string.Format("成功修改{0}个设备\n修改失败{1}个设备\n{2}", ur.UpdataSucceedNum, ur.UpdataFailedNum,
                                      ur.UpdataFailedNum != 0 ? "未修改成功的设备:\n" + ur.UpdataErrorLog.ToString() : ""), "CAD提示",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Information);
                }
            }
        }