Esempio n. 1
0
        public bool AddDevAttribute()
        {
            long fid = 0, fno = 0, id = 0;

            if (!DBEntityFinder.Instance.GetG3EIds(objId, ref id, ref fid, ref fno))
            {
                return(false);
            }
            Fno = (int)fno;
            Fid = fid;
            rdt = DevEventHandler.GetDevTables(Fno, Fid);
            if (rdt == null)
            {
                return(false);
            }
            if (!DBEntityFinder.Instance.VerifyLTTID(objId))
            {
                PublicMethod.Instance.ShowMessage("\n当前设备未在工单锁定范围,禁止编辑...");
                GenerateHelper.SetAllReadOnly(rdt.DevObj, true);
            }
            GenerateHelper.SetAllBrowsable(rdt.DevObj, true);
            GenerateHelper.GenerateXPropsByAzwz(rdt.DevObj, Fno, false);
            AutoGenerationHelper.Instance.AddUITypeEditor(rdt.DevObj, Fno);
            pgDev.SelectedObject = rdt.DevObj;
            CurPropertyObj       = rdt.DevObj;
            pgDev.Refresh();
            // var simpleSymbolConfigEntry = SimpleSymbolConfig.Instance.Symbols.SingleOrDefault(o => o.Fno == Fno);
            //if (simpleSymbolConfigEntry != null)
            //    WindowManager.ChangeDevAttributePsText(simpleSymbolConfigEntry.LayerName + "(*表示必填项)-" +
            //                                           Fid.ToString(CultureInfo.InvariantCulture));
            //this.Refresh();
            //CommonHelp.Instance.RestoreValue(rdt.GnwzObj);
            return(true);
        }
Esempio n. 2
0
 public void PartialCopy(XProps newObj, XProps oldObj)
 {
     if (newObj.GetType() != oldObj.GetType())
     {
         throw new ArgumentException("拷贝的两对象的类型不一致");
     }
     foreach (var item in newObj)
     {
         if (item.ReadOnly)
         {
             continue;
         }
         var value = GenerateHelper.GetPropertyValue(newObj, item.Category, item.Name);
         if (item.ProType == typeof(DateTime))
         {
             if (!value.Equals(default(DateTime)))
             {
                 GenerateHelper.SetPropertyValue(oldObj, item.Category, item.Name, value);
             }
         }
         else
         {
             if (value != null && !string.IsNullOrEmpty(value.ToString().Trim()))
             {
                 GenerateHelper.SetPropertyValue(oldObj, item.Category, item.Name, value);
             }
         }
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 获取导线样式
        /// </summary>
        /// <param name="dx"></param>
        /// <returns></returns>
        private InsertSymbolEventArgs GetDxStyle(XProps dx)
        {
            var lineStyle = DCadApi.InitializeInsertSymbolValue(141, dx, null);

            lineStyle.lineWidth = lineStyle.lineWidth / MapConfig.Instance.earthscale;
            return(lineStyle);
        }
Esempio n. 4
0
 public static void FieldReflection(XProps source, RequiredDevTables rdt, int g3eFno)
 {
     try
     {
         GenerateHelper.ResetXProps(ref source);
         if (rdt.SelfObj != null)
         {
             GenerateHelper.PartialCopyToCAD(rdt.SelfObj, source, g3eFno);
         }
         if (rdt.ConnectObj != null)
         {
             GenerateHelper.PartialCopyToCAD(rdt.ConnectObj, source, g3eFno);
         }
         if (rdt.GnwzObj != null)
         {
             GenerateHelper.PartialCopyToCAD(rdt.GnwzObj, source, g3eFno);
         }
         //把这个放最后的目的是因为所有设备的BZ 字段都取公共表里面的BZ
         if (rdt.ComObj != null)
         {
             GenerateHelper.PartialCopyToCAD(rdt.ComObj, source, g3eFno);
         }
     }
     catch (Exception ex)
     {
         LogManager.Instance.Error(ex);
     }
 }
Esempio n. 5
0
        /// <summary>
        /// 确保所属单位,所属变电站,受电馈线三者同时修改
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public bool CheckIsNUll(XProps obj, int fno)
        {
            var          ssdw  = GenerateHelper.GetFirstXPropOfHasValue(obj, "CD_SSDW");
            var          ssbdz = GenerateHelper.GetFirstXPropOfHasValue(obj, "CD_SSBDZ");
            var          ssxl  = GenerateHelper.GetFirstXPropOfHasValue(obj, "CD_SSXL");
            List <XProp> temp  = new List <XProp>();

            if (fno == 159)
            {
                temp.AddRange(new List <XProp> {
                    ssdw, ssxl
                });
            }
            else
            {
                temp.AddRange(new List <XProp> {
                    ssdw, ssbdz, ssxl
                });
            }
            if (temp.All(o => o == null))
            {
                return(true);
            }
            if (temp.All(o => o != null && o.Value != null))
            {
                return(true);
            }
            return(false);
        }
Esempio n. 6
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);
        }
Esempio n. 7
0
        /// <summary>
        /// 更新属性面板
        /// </summary>
        /// <param name="isSyncTz">是否是同步台帐调用次方法</param>
        private void SelectDevAttribute(bool isSyncTz)
        {
            var value = DevEventHandler.GetDevTables(CurrentFno, CurrentFid);

            if (value == null)
            {
                return;
            }
            if (value.DevObj == null)
            {
                return;
            }
            GenerateHelper.SetAllBrowsable(value.DevObj, true);

            isLTTID = DBEntityFinder.Instance.VerifyLTTID(CurrentFid);
            if (!isLTTID)
            {
                PublicMethod.Instance.ShowMessage("\n当前设备未被锁定,禁止编辑...");
                GenerateHelper.SetAllReadOnly(value.DevObj, true);
            }
            else
            {
                if (isSyncTz)
                {
                    GenerateHelper.SetAllReadOnly(value.DevObj, false);
                }
                DevPropertyGrid.Enabled = true;
            }
            AutoGenerationHelper.Instance.AddUITypeEditor(value.DevObj, CurrentFno);
            GenerateHelper.GenerateXPropsByAzwz(value.DevObj, CurrentFno, false);
            DevPropertyGrid.SelectedObject = value.DevObj;
            CurPropertyObj = value.DevObj;

            if (!DBEntityFinder.Instance.MemoryDevice.Keys.Contains(CurrentFno))
            {
                DBEntityFinder.Instance.MemoryDevice.Add(CurrentFno, CurPropertyObj);
            }
            else
            {
                DBEntityFinder.Instance.MemoryDevice[CurrentFno] = CurPropertyObj;
            }

            DevPropertyGrid.Refresh();
            var simpleSymbolConfigEntry = SimpleDBSymbolsConfig.Instance.DBSymbol.SingleOrDefault(o => o.G3E_FNO == CurrentFno);

            if (simpleSymbolConfigEntry != null)
            {
                DevNameGroup.Text = simpleSymbolConfigEntry.OtherProperty.LayerName + "(*表示必填项)-" + CurrentFid.ToString(CultureInfo.InvariantCulture);
            }
            //保证面板属性和点击设备对应
            isclickDev = true;
            oldFno     = 0;

            //绑定受电馈线
            GetSDKXBEntity();
        }
Esempio n. 8
0
        private static string GetCXD(XProps obj, int fno)
        {
            var cxd   = string.Empty;
            var cdcxd = GenerateHelper.GetPropertyValue(obj, GenerateHelper.GetSelfTableNameByFno(fno), "CXD");

            if (cdcxd != null)
            {
                cxd = cdcxd.ToString();
            }
            return(cxd);
        }
Esempio n. 9
0
        private static string GetDQZT(XProps obj)
        {
            var dqzt   = string.Empty;
            var cddqzt = GenerateHelper.GetPropertyValue(obj, "Connectivity_n", "CD_DQZT");

            if (cddqzt != null)
            {
                dqzt = cddqzt.ToString();
            }
            return(dqzt);
        }
Esempio n. 10
0
        /// <summary>
        /// 获取生命周期
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private static string GetCD_SMZQ(XProps obj)
        {
            var smzq   = string.Empty;
            var cdsmzq = GenerateHelper.GetPropertyValue(obj, "Common_n", "CD_SMZQ");

            if (cdsmzq != null)
            {
                smzq = cdsmzq.ToString();
            }
            return(smzq);
        }
Esempio n. 11
0
        //获取是否带电
        private static string GetCD_SFDD(XProps obj)
        {
            var sfdd   = string.Empty;
            var cdsfdd = GenerateHelper.GetPropertyValue(obj, "Connectivity_n", "CD_SFDD");

            if (cdsfdd != null)
            {
                sfdd = cdsfdd.ToString();
            }
            return(sfdd);
        }
Esempio n. 12
0
        private static string GetDYDJ(XProps obj)
        {
            var dydj   = string.Empty;
            var cddydj = GenerateHelper.GetPropertyValue(obj, "Common_n", "CD_DYDJ");

            if (cddydj != null)
            {
                dydj = cddydj.ToString();
            }
            return(dydj);
        }
Esempio n. 13
0
        /// <summary>
        /// 记录当前选择的对象
        /// </summary>
        private void RecordCurrentSelectObj()
        {
            var ent = bulkChangeEnts.FirstOrDefault(
                o => o.LayerName.Equals(_tempItem));

            currentFno = ent.SingleG3EObject.G3E_FNO;
            objDev     = GenerateObj.Instance.GenderObjByFno(currentFno);
            GenerateHelper.SetAllBrowsable(objDev, true);
            GenerateHelper.ResetXProps(ref objDev);
            AutoGenerationHelper.Instance.AddUITypeEditor(objDev, currentFno);
            pGridBulkChange.SelectedObject = objDev;
        }
Esempio n. 14
0
        private void AddSwitch_Click(object sender, EventArgs e)
        {
            if (!DBEntityFinder.Instance.VerifyLTTID(dfG3eFid))
            {
                PublicMethod.Instance.Editor.WriteMessage("\n电房未在工单锁定范围之内,禁止编辑!!!\n");
                return;
            }
            try
            {
                if (lbSwitchCabinetcol.Items.Count > 0)
                {
                    lbSwitchCabinetcol.SetSelected(lbSwitchCabinetcol.SelectedIndex, false);
                }
                isModify = false;
                isAdd    = true;

                XProps kgg = GenerateObj.Instance.GenderObjByFno(198);
                GenerateHelper.SetAllBrowsable(kgg, true);
                if (dict.Count > 0)
                {
                    var oldkgg = DevEventHandler.GetDevTables(198, dict[0]);
                    if (oldkgg.DevObj != null)
                    {
                        DBEntityFinder.Instance.CopyValueFromOldDev(kgg, oldkgg.DevObj);
                    }
                }
                else
                {
                    var dfCom = DBManager.Instance.GetEntity <Common_n>(dfG3eFid);
                    if (dfCom != null)
                    {
                        GenerateHelper.SetPropertyValue(kgg, "Common_n", "CD_SSDW", dfCom.CD_SSDW);
                        GenerateHelper.SetPropertyValue(kgg, "Common_n", "CD_SSBDZ", dfCom.CD_SSBDZ);
                        GenerateHelper.SetPropertyValue(kgg, "Common_n", "CD_SSXL", dfCom.CD_SSXL);
                        GenerateHelper.SetPropertyValue(kgg, "Common_n", "WHBS", dfCom.WHBS);
                        //GenerateHelper.SetPropertyValue(kgg, "Common_n", "GNWZ_SSGDS", dfCom.GNWZ_SSGDS);
                    }
                }
                pgSwitchCabinet.SelectedObject = kgg;
                pgSwitchCabinet.Enabled        = true;
            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex);
            }
            finally
            {
                ResetSwitch(false);
            }
        }
Esempio n. 15
0
 /// <summary>
 /// 清空控件值
 /// </summary>
 private void ClearPropertyGrid()
 {
     if (listView1.SelectedItems.Count > 0)
     {
         listView1.SelectedItems[0].ForeColor = Color.Empty;
     }
     DevPropertyGrid.Text           = string.Empty;
     DevNameGroup.Text              = "属性";
     isclickDev                     = false;
     CurrentFno                     = oldFno = 0;
     DevPropertyGrid.SelectedObject = null;
     CurPropertyObj                 = null;
     DevPropertyGrid.Refresh();
 }
Esempio n. 16
0
 /// <summary>
 /// 保存之前插入地图的设置必填属性值
 /// </summary>
 /// <param name="fno"></param>
 /// <param name="obj"></param>
 private void AddDevToDict(int fno, XProps obj)
 {
     if (DBEntityFinder.Instance.MemoryDevice.Count <= 0)
     {
         DBEntityFinder.Instance.MemoryDevice.Add(fno, obj);
     }
     if (!DBEntityFinder.Instance.MemoryDevice.ContainsKey(fno))
     {
         DBEntityFinder.Instance.MemoryDevice.Add(fno, obj);
     }
     else
     {
         DBEntityFinder.Instance.MemoryDevice[fno] = obj;
     }
 }
Esempio n. 17
0
        /// <summary>
        /// 给指定的字段设置选择框
        /// </summary>
        /// <param name="fno"></param>
        /// <param name="xprops"></param>
        /// <param name="tableName"></param>
        /// <param name="fieldName"></param>
        private void SetEditor(int fno, XProps xprops, string tableName, string fieldName)
        {
            var xprop = GenerateHelper.GetSingleXProp(xprops, tableName, fieldName);

            if (xprop != null)
            {
                if (fno == 148 && fieldName.Equals("GNWZ_SSTJ"))
                {
                    xprop.Converter = new NoEditConverter();
                }
                else
                {
                    xprop.Editor    = editors[fieldName];
                    xprop.Converter = new NoEditConverter();
                }
            }
        }
Esempio n. 18
0
        public void ProChanged(XProps obj, PropertyValueChangedEventArgs e)
        {
            string temp = e.ChangedItem.Label;

            if (temp.Contains('*'))
            {
                temp = temp.Replace('*', ' ').Trim();
            }
            switch (temp)
            {
            case "杆号":
            {
                var dxSbmc = GenerateHelper.GetPropertyValue(dxXprops, "Common_n", "SBMC");
                //GenerateHelper.SetPropertyValue(obj, "", dxSbmc.ToString() + e.ChangedItem.Value + DevStr);
            }
            break;
            }
        }
Esempio n. 19
0
        public void RefreshUI()
        {
            if (myView == null)
            {
                this.NodeInfo = null;
                return;
            }
            IGoNode nn = (myView.Selection != null ? myView.Selection.Primary as IGoNode : null);

            if (nn != null && nn.UserObject != null)
            {
                this.NodeInfo = (nn.UserObject as ToolBase).Settings;
            }
            else
            {
                this.NodeInfo = null;
            }
        }
Esempio n. 20
0
        public object GetChooseValueByFnoArray(IServiceProvider provider, ITypeDescriptorContext context, int[] fno,
                                               object oldValue)
        {
            IWindowsFormsEditorService edSvc =
                (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            if (edSvc != null)
            {
                var pd = context.Instance;
                if (pd != null)
                {
                    XProps xprops = (XProps)pd;
                    var    ssxl   = GenerateHelper.GetFirstXPropOfHasValue(xprops, "CD_SSXL");
                    if (ssxl != null && !string.IsNullOrEmpty(ssxl.Value.ToString()))
                    {
                        SpecialDeviceList DevCol = new SpecialDeviceList(fno, ssxl.Value.ToString());
                        if (SpecialDeviceList.devCount <= 0)
                        {
                            MessageBox.Show("当前搜索设备个数为:" + SpecialDeviceList.devCount, "提示", MessageBoxButtons.OK,
                                            MessageBoxIcon.Information);
                            return(oldValue);
                        }

                        Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(DevCol);
                        if (string.IsNullOrEmpty(GenerateHelper.choiceDevice.G3eFid))
                        {
                            return(oldValue);
                        }
                        return(GenerateHelper.choiceDevice.DeviceSbmc);
                    }
                    else
                    {
                        MessageBox.Show("当前设备所填属性值是根据受电馈线过滤而得.", "提示", MessageBoxButtons.OK,
                                        MessageBoxIcon.Information);
                        return(oldValue);
                    }
                }
            }
            return(oldValue);
        }
Esempio n. 21
0
        private void LoadFeatureList()
        {
            CmbBulkChange.Items.Clear();
            GenerateHelper.EmptyFidRecord();
            var items = bulkChangeEnts.Select(o => o.LayerName).Distinct();

            if (items.Count() == 1)
            {
                CmbBulkChange.Items.Add(items.FirstOrDefault() + "  (" + bulkChangeEnts.Count + ")");
                CmbBulkChange.SelectedIndex = 0;
                _tempItem = items.FirstOrDefault();
                RecordCurrentSelectObj();
            }
            else
            {
                CmbBulkChange.Items.Add("全部" + "  (" + bulkChangeEnts.Count + ")");
                var query =
                    from p in bulkChangeEnts
                    group p by p.LayerName
                    into g
                    select new
                {
                    g.Key,
                    num = g.Count()
                };
                foreach (var i in query)
                {
                    CmbBulkChange.Items.Add(i.Key + "  (" + i.num + ")");
                }

                CmbBulkChange.Text = CmbBulkChange.Items[0].ToString();
                objDev             = GenerateObj.Instance.GenderObjByFno(0);
                GenerateHelper.ResetXProps(ref objDev);
                GenerateHelper.SetAllBrowsable(objDev, true);
                AutoGenerationHelper.Instance.AddUITypeEditor(objDev, currentFno);
                pGridBulkChange.SelectedObject = objDev;
                currentFno = 0;
                _tempItem  = "全部";
            }
        }
Esempio n. 22
0
        private void AddLateral_Load(object sender, EventArgs e)
        {
            dxXprops = GenerateObj.Instance.GenderObjByFno(141);
            dxXprops = DBEntityFinder.Instance.GetMemoryDevice(141, dxXprops);

            //默认为连接导线
            GenerateHelper.SetPropertyValue(dxXprops, "Gg_pd_gnwzmc_n", "GNWZ_XLFL", "支线");

            propertyGrid1.SelectedObject = dxXprops;
            dgXprops = GenerateObj.Instance.GenderObjByFno(201);
            dgXprops = DBEntityFinder.Instance.GetMemoryDevice(201, dgXprops);



            //电杆的维护班所隐藏
            GenerateHelper.SetSingleBrowsable(dgXprops, "Common_n", "WHBS", false);
            //GenerateHelper.SetSingleBrowsable(dgXprops, "Common_n", "GNWZ_SSGDS", false);

            GenerateHelper.SetAllBrowsable(dgXprops, propertyList, false);
            propertyGrid2.SelectedObject = dgXprops;
            comboBox1.SelectedIndex      = 0;
        }
Esempio n. 23
0
        /// <summary>
        /// 根据生命周期和是否带电获取样式
        /// </summary>
        /// <param name="obj"> </param>
        /// <param name="userName"> </param>
        /// <returns></returns>
        private static string GetUserNameBySMZQorSFDD(XProps obj, string userName)
        {
            var smzq = GetCD_SMZQ(obj);
            var sfdd = GetCD_SFDD(obj);

            if (!string.IsNullOrEmpty(smzq))
            {
                //停运和不带电情况
                if (smzq.Equals("停运") || sfdd.Equals("不带电"))
                {
                    userName += "-停运";
                }
                else if (smzq.Equals("投运") && sfdd.Equals("带电"))
                {
                    userName += "-投运";
                }
                else
                {
                    userName += "-" + smzq;
                }
            }
            return(userName);
        }
Esempio n. 24
0
        public void UpdateAttribute(XProps CurPropertyObj, ref ObjectId objId, RequiredDevTables rdt)
        {
            if (rdt == null || objId.IsNull || CurPropertyObj == null)
            {
                return;
            }
            ObjectId newObjId = ObjectId.Null;

            //只有块才可以更换符号
            if (!DCadApi.UpdateSymbol(objId, CurPropertyObj, out newObjId))
            {
                objId = newObjId;
            }
            else
            {
                FixEntity.Instance.ResetEntityRecord(newObjId, objId);
                if (objId != newObjId)
                {
                    objId = newObjId;
                }
            }
            UpdateAttribute(rdt, CurPropertyObj, false);
        }
Esempio n. 25
0
 private void CmbBulkChange_SelectedIndexChanged(object sender, EventArgs e)
 {
     if (CmbBulkChange.SelectedIndex < 0)
     {
         CmbBulkChange.Text = CmbBulkChange.Items[0].ToString();
         return;
     }
     GenerateHelper.EmptyFidRecord();
     if (CmbBulkChange.SelectedItem.ToString().Trim().Split(' ')[0].Equals("全部"))
     {
         _tempItem  = "全部";
         currentFno = 0;
         objDev     = GenerateObj.Instance.GenderObjByFno(0);
         GenerateHelper.SetAllBrowsable(objDev, true);
         GenerateHelper.ResetXProps(ref objDev);
         AutoGenerationHelper.Instance.AddUITypeEditor(objDev, currentFno);
         pGridBulkChange.SelectedObject = objDev;
     }
     else
     {
         _tempItem = CmbBulkChange.SelectedItem.ToString().Trim().Split(' ')[0];
         RecordCurrentSelectObj();
     }
 }
Esempio n. 26
0
        private void SwitchCabinetManage_Load(object sender, EventArgs e)
        {
            AddSwitch.ImageIndex    = 0;
            ModifySwitch.ImageIndex = 2;
            DelSwitch.ImageIndex    = 4;
            btSave.ImageIndex       = 8;
            TZInfo.ImageIndex       = 6;
            XProps kgg = GenerateObj.Instance.GenderObjByFno(198);

            GenerateHelper.SetAllBrowsable(kgg, true);
            pgSwitchCabinet.SelectedObject = kgg;
            var values = DBEntityFinder.Instance.GetSymbolByFno(198);

            GenerateHelper.Unrf.kggG3EID = g3eId;
            btSave.Enabled = false;
            if (values.Count > 0)
            {
                RefDict(values);
                if (lbSwitchCabinetcol.Items.Count > 0)
                {
                    lbSwitchCabinetcol.SetSelected(0, true);
                }
            }
        }
Esempio n. 27
0
        /// <summary>
        /// 更新指定的实体属性
        /// </summary>
        /// <param name="values"></param>
        /// <param name="objDev"></param>
        /// <param name="flag">是否是批量修改公共表</param>
        private void UpdateAttribute(RequiredDevTables values, XProps objDev, bool flag)
        {
            try
            {
                DCadApi.isModifySymbol = true;

                #region

                if (values.Fno == 148)
                {
                    var    currentAzwz = GenerateHelper.GetPropertyValue(objDev, GenerateHelper.GetGnwzTableNameByFno(148), "GNWZ_FL2");
                    string oldAzwz     = string.Empty;
                    if (values.GnwzObj != null)
                    {
                        oldAzwz = values.GnwzObj.GNWZ_FL2;
                    }
                    //安装位置由非台架变成台架
                    if (currentAzwz != null && currentAzwz.ToString().Equals("台架"))
                    {
//以前是台架只需更新
                        if (oldAzwz.Equals("台架"))
                        {
                            RefAttribute(objDev, values, 148, flag);
                            //因为都是台架所以更新完148后还要更新199,
                            long tjFid = 0;
                            if (values.GnwzObj != null && long.TryParse(values.GnwzObj.GNWZ_SSTJ, out tjFid))
                            {
                                var tjTables = DevEventHandler.GetDevTables(199, tjFid);
                                RefAttribute(objDev, tjTables, 199, flag);
                            }
                        }
                        else //以前为空或不是台架
                        {
                            //先添加一条台架记录
                            //注意在添加新的台架数据之前先看看有没有对应的原始的台架数据(即被标记为Delete的数据)
                            try
                            {
                                var tj =
                                    DBManager.Instance.GetEntity <Gg_gz_tj_n>(o => o.HasAttribute("GNWZ_FID") && o.GNWZ_FID != null && o.GNWZ_FID.Equals(values.Fid.ToString()));
                                if (tj != null)
                                {
                                    tj.EntityState = EntityState.Update;
                                    tj.IsErased    = false;
                                    DBManager.Instance.Update(tj);
                                    var tjcom = DBManager.Instance.GetEntity <Common_n>(tj.G3E_FID);
                                    if (tjcom != null)
                                    {
                                        tjcom.EntityState = EntityState.Update;
                                        tjcom.IsErased    = false;
                                        DBManager.Instance.Update(tjcom);
                                    }
                                    var tjGnwz = DBManager.Instance.GetEntity <Gg_pd_gnwzmc_n>(tj.G3E_FID);
                                    if (tjGnwz != null)
                                    {
                                        tjGnwz.EntityState = EntityState.Update;
                                        tjGnwz.IsErased    = false;
                                        DBManager.Instance.Update(tjGnwz);
                                    }
                                    GenerateHelper.Unrf.tjFid = tj.G3E_FID.ToString();
                                    var tjTables = DevEventHandler.GetDevTables(199, tj.G3E_FID);
                                    RefAttribute(objDev, tjTables, 199, flag);
                                }
                                else
                                {
                                    var tjRes = DCadApi.AddAttribute(objDev, 199, values.Fid);
                                    GenerateHelper.Unrf.tjFid = tjRes.G3eFid;
                                }
                            }
                            catch (NotExistException ex)
                            {
                                var tjRes = DCadApi.AddAttribute(objDev, 199, values.Fid);
                                GenerateHelper.Unrf.tjFid = tjRes.G3eFid;
                            }
                            RefAttribute(objDev, values, 148, flag);
                        }
                    } //安装位置由台架变成非台架
                    else if (currentAzwz == null || !currentAzwz.ToString().Equals("台架"))
                    {
                        //以前是台架只需删除
                        if (oldAzwz.Equals("台架"))
                        {
                            //先删除台架数据
                            DBEntityErased.Instance.ErasedTjDBEntity(values.ComObj.G3E_FID, new List <DBEntity>());
                            //把变压器的GNWZ_SSTJ变成null
                            GenerateHelper.Unrf.tjFid = null;
                            //GenerateHelper.SetPropertyValue(objDev, "GNWZ_SSTJ", null);
                            if (values.GnwzObj != null)
                            {
                                values.GnwzObj.GNWZ_SSTJ = null;
                            }
                            RefAttribute(objDev, values, 148, flag);
                        }
                        else
                        {
                            RefAttribute(objDev, values, 148, flag);
                        }
                    }
                }
                else
                {
                    RefAttribute(objDev, values, values.Fno, flag);
                }
                UpdataShbAdnJlbValue(values.Fno, values.Fid);
                #endregion
            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex);
            }
            finally
            {
                DCadApi.isModifySymbol = false;
            }
        }
Esempio n. 28
0
        public void ChangeAttributeRunTime(XProps xprop, int currentFno, List <long> fidList, string PropertyName, string newValue, object oldValue)
        {
            if (xprop == null || string.IsNullOrEmpty(PropertyName))
            {
                return;
            }
            #region
            int len = 0;
            if (!string.IsNullOrEmpty(newValue))
            {
                len = Encoding.Default.GetByteCount(newValue);
            }
            try
            {
                switch (PropertyName)
                {
                case "SBMC":
                {
                    //if (CheckInput.IsSpecialCharacter(newValue))
                    //{
                    //    PublicMethod.Instance.ShowMessage("\n功能位置名称不能包含特殊字符!!!");
                    //    GenerateHelper.SetPropertyValue(xprop, GenerateHelper.GetCommonTableNameByFno(currentFno), PropertyName, oldValue);
                    //    return;
                    //}
                    if (len > 200)
                    {
                        PublicMethod.Instance.ShowMessage("\n功能位置名称最大输入200,当前为" + len);
                        GenerateHelper.SetPropertyValue(xprop, GenerateHelper.GetCommonTableNameByFno(currentFno), PropertyName, oldValue);
                        return;
                    }
                    if (currentFno == 148)
                    {
                        var value = GenerateHelper.GetPropertyValue(xprop, GenerateHelper.GetGnwzTableNameByFno(currentFno), "GNWZ_FL2");
                        if (value != null && value.ToString().Equals("台架"))
                        {
                            GenerateHelper.SetSingleBrowsable(xprop, GenerateHelper.GetGnwzTableNameByFno(currentFno), "GNWZ_SSTJ", true);
                            var sbmc = GenerateHelper.GetPropertyValue(xprop, GenerateHelper.GetCommonTableNameByFno(currentFno), "SBMC");
                            GenerateHelper.SetPropertyValue(xprop, GenerateHelper.GetGnwzTableNameByFno(currentFno), "GNWZ_SSTJ", sbmc);
                        }
                    }
                }
                break;

                case "SBBM":
                {
                    if (len > 20)
                    {
                        PublicMethod.Instance.ShowMessage("\n设备编码最大输入20,当前为" + len);
                        GenerateHelper.SetPropertyValue(xprop, GenerateHelper.GetCommonTableNameByFno(currentFno), PropertyName, oldValue);
                    }
                }
                break;

                case "CD_SMZQ":
                {
                    if (currentFno == 147 || currentFno == 151)
                    {
                        var smzq = GenerateHelper.GetPropertyValue(xprop, GenerateHelper.GetCommonTableNameByFno(currentFno), "CD_SMZQ");
                        if (smzq != null && smzq.ToString().Equals("待投运"))
                        {
                            GenerateHelper.SetPropertyValue(xprop, GenerateHelper.GetCommonTableNameByFno(currentFno), "BZ", "备用");
                        }
                        else
                        {
                            GenerateHelper.SetPropertyValue(xprop, GenerateHelper.GetCommonTableNameByFno(currentFno), "BZ", null);
                        }
                    }
                }
                break;

                case "CD_SSDW":
                {
                    GenerateHelper.SetSSDW(xprop, oldValue, newValue);
                }
                break;

                case "CD_SSBDZ":
                {
                    GenerateHelper.SetSSBDZ(xprop, oldValue, newValue);
                }
                break;

                case "CD_SSXL":
                {
                    //SsxlList.str = newValue;
                    //如果馈线改了相应的特殊字段必须清空,因为那些值都是按馈线过滤出来的
                    if (!string.IsNullOrEmpty(newValue))
                    {
                        if (oldValue == null || (!newValue.Equals(oldValue.ToString())))
                        {
                            DBEntityFinder.Instance.EmptySpecialFieldValue(xprop);
                        }
                    }
                }
                break;

                case "AZWZ":
                case "GNWZ_FL2":
                case "DLT":
                {
                    GenerateHelper.GenerateByAzwz(ref xprop, newValue.Trim(), currentFno, true);
                    AutoGenerationHelper.Instance.AddUITypeEditor(xprop, currentFno);
                    // 根据安装位置清空从属关系
                    OwnerMethods.delDevOwner(fidList);
                    if (ViewHelper.ConnetPs != null && (fidList.Any() && ViewHelper.ConnetPs.Visible))
                    {
                        MenuControl.showConnectManager(fidList.Last());
                    }
                }
                break;

                case "GNWZ_SSGT":
                {
                    GenerateHelper.Unrf.gtFid = GenerateHelper.choiceDevice.G3eFid;
                }
                break;

                case "GNWZ_SSTJ":
                {
                    if (currentFno == 148)
                    {
                        var azwz = GenerateHelper.GetPropertyValue(xprop, GenerateHelper.GetGnwzTableNameByFno(currentFno), "GNWZ_FL2");
                        if (azwz != null && azwz.ToString().Equals("台架"))
                        {
                            var sbmc = GenerateHelper.GetPropertyValue(xprop, GenerateHelper.GetCommonTableNameByFno(currentFno), "SBMC");
                            GenerateHelper.SetPropertyValue(xprop, GenerateHelper.GetGnwzTableNameByFno(currentFno), "GNWZ_SSTJ", sbmc);
                        }
                    }
                    else
                    {
                        GenerateHelper.Unrf.tjFid = GenerateHelper.choiceDevice.G3eFid;
                    }
                }
                break;

                case "DYKGG":
                case "GNWZ_SSKGG":
                {
                    GenerateHelper.Unrf.kggFid = GenerateHelper.choiceDevice.G3eFid;
                }
                break;

                case "SSDF":
                case "GNWZ_SSDF":
                {
                    GenerateHelper.Unrf.dfFid = GenerateHelper.choiceDevice.G3eFid;
                }
                break;

                case "PBMC":
                case "SSBYQ":
                {
                    GenerateHelper.Unrf.byqFid = GenerateHelper.choiceDevice.G3eFid;
                }
                break;

                case "GNWZ_SSTQHTJ":
                {
                    GenerateHelper.Unrf.tqtjFid = GenerateHelper.choiceDevice.G3eFid;
                }
                break;

                case "BZ1":
                case "BZ2":
                {
                    GenerateHelper.Unrf.zxFid = GenerateHelper.choiceDevice.G3eFid;
                }
                break;
                }
            }
            catch (Exception ex)
            {
                LogManager.Instance.Error(ex.Message);
            }
            finally
            {
                GenerateHelper.choiceDevice.G3eFid     = null;
                GenerateHelper.choiceDevice.DeviceSbmc = null;
            }
            #endregion
        }
Esempio n. 29
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="objDev"></param>
        /// <param name="ObjCom"></param>
        /// <param name="ObjSelf"></param>
        /// <param name="ObjGnwz"></param>
        /// <param name="flag">是否是批量</param>
        public void UpdateAttribute(XProps objDev, Common_n ObjCom, DBEntity ObjSelf, Gg_pd_gnwzmc_n ObjGnwz, bool flag)
        {
            var tableName = string.Empty;

            try
            {
                if (ObjCom != null)
                {
                    tableName = ObjCom.GetType().Name;
                    if (flag)
                    {
                        string sbmc = ObjCom.SBMC;
                        GenerateHelper.PartialCopyFromCAD(objDev, ObjCom, 198);
                        ObjCom.SBMC = sbmc;
                    }
                    else
                    {
                        GenerateHelper.PartialCopyFromCAD(objDev, ObjCom, 198);
                    }
                    if (GenerateHelper.Atff.com != null && ObjCom.CompareProperties(GenerateHelper.Atff.com).Any())
                    {
                        if (ObjCom.EntityState == EntityState.None)
                        {
                            ObjCom.EntityState = EntityState.Update;
                        }
                        DBManager.Instance.Update(ObjCom);
                    }
                }
                if (ObjSelf != null)
                {
                    tableName = ObjSelf.GetType().Name;
                    GenerateHelper.PartialCopyFromCAD(objDev, ObjSelf, 198);
                    if (GenerateHelper.Atff.self != null && ObjSelf.CompareProperties(GenerateHelper.Atff.self).Any())
                    {
                        if (ObjSelf.EntityState == EntityState.None)
                        {
                            ObjSelf.EntityState = EntityState.Update;
                        }
                        DBManager.Instance.Update(ObjSelf);
                    }
                }
                if (ObjGnwz != null)
                {
                    tableName = ObjGnwz.GetType().Name;
                    if (flag)
                    {
                        string mc = ObjGnwz.MC;
                        GenerateHelper.PartialCopyFromCAD(objDev, ObjGnwz, 198);
                        ObjGnwz.MC = mc;
                    }
                    else
                    {
                        GenerateHelper.PartialCopyFromCAD(objDev, ObjGnwz, 198);
                        ObjGnwz.SetAttribute("MC", GenerateHelper.GetPropertyValue((XProps)pgSwitchCabinet.SelectedObject, "Common_n", "SBMC"));
                    }
                    if (GenerateHelper.Atff.gnwz != null && ObjGnwz.CompareProperties(GenerateHelper.Atff.gnwz).Any())
                    {
                        if (ObjGnwz.EntityState == EntityState.None)
                        {
                            ObjGnwz.EntityState = EntityState.Update;
                        }
                        DBManager.Instance.Update(ObjGnwz);
                    }
                }
            }
            catch (UpdataArgumentException ee)
            {
                CommonHelp.Instance.ShowErrorMsg();
                GenerateHelper.SetPropertyValue(objDev, tableName, ee.FieldName, null);
            }
        }
Esempio n. 30
0
        /// <summary>
        /// 按表逐个更新属性
        /// </summary>
        /// <param name="CurPropertyObj"></param>
        /// <param name="rdt"></param>
        /// <param name="g3e_fno"></param>
        /// <param name="flag">是否是批量修改公共属性</param>
        private void RefAttribute(XProps CurPropertyObj, RequiredDevTables rdt, int g3e_fno, bool flag)
        {
            var tablename = string.Empty;

            try
            {
                if (rdt.ComObj != null)
                {
                    tablename = rdt.ComObj.GetType().Name;
                    GenerateHelper.PartialCopyFromCAD(CurPropertyObj, rdt.ComObj, g3e_fno);
                    if (GenerateHelper.Atff.com != null && rdt.ComObj.CompareProperties(GenerateHelper.Atff.com).Any())
                    {
                        if (rdt.ComObj.EntityState == EntityState.None)
                        {
                            rdt.ComObj.EntityState = EntityState.Update;
                        }
                        DBManager.Instance.Update(rdt.ComObj);
                    }
                }
                if (!flag)
                {
                    #region  如果是批量修改公共属性表就只针对公共属性表做修改别的表不处理
                    if (rdt.SelfObj != null)
                    {
                        tablename = rdt.SelfObj.GetType().Name;
                        GenerateHelper.PartialCopyFromCAD(CurPropertyObj, rdt.SelfObj, g3e_fno);
                        if (GenerateHelper.Atff.self != null && rdt.SelfObj.CompareProperties(GenerateHelper.Atff.self).Any())
                        {
                            if (rdt.SelfObj.EntityState == EntityState.None)
                            {
                                rdt.SelfObj.EntityState = EntityState.Update;
                            }
                            DBManager.Instance.Update(rdt.SelfObj);
                        }
                    }
                    if (rdt.ConnectObj != null)
                    {
                        tablename = rdt.ConnectObj.GetType().Name;
                        GenerateHelper.PartialCopyFromCAD(CurPropertyObj, rdt.ConnectObj, g3e_fno);
                        if (GenerateHelper.Atff.connectivity != null &&
                            rdt.ConnectObj.CompareProperties(GenerateHelper.Atff.connectivity).Any())
                        {
                            if (rdt.ConnectObj.EntityState == EntityState.None)
                            {
                                rdt.ConnectObj.EntityState = EntityState.Old_Nal_Nal;
                            }
                            DBManager.Instance.Update(rdt.ConnectObj);
                        }
                    }
                    if (rdt.GnwzObj != null)
                    {
                        tablename = rdt.GnwzObj.GetType().Name;
                        GenerateHelper.PartialCopyFromCAD(CurPropertyObj, rdt.GnwzObj, g3e_fno);
                        if (g3e_fno == 199)
                        {
                            rdt.GnwzObj.GNWZ_SSTJ = rdt.ComObj != null ? rdt.ComObj.SBMC : null;
                        }
                        if (g3e_fno == 198)
                        {
                            rdt.GnwzObj.MC = rdt.ComObj != null ? rdt.ComObj.SBMC : null;
                        }
                        if (GenerateHelper.Atff.gnwz != null && rdt.GnwzObj.CompareProperties(GenerateHelper.Atff.gnwz).Any())
                        {
                            if (rdt.GnwzObj.EntityState == EntityState.None)
                            {
                                rdt.GnwzObj.EntityState = EntityState.Update;
                            }
                            DBManager.Instance.Update(rdt.GnwzObj);
                        }
                    }
                    #endregion
                }
                SymbolLabel.ShowSymbolLabel(rdt.Fno, rdt.Fid); //更新的时候自动更新标注
            }
            catch (UpdataArgumentException ee)
            {
                throw new UpdataArgumentException(tablename, ee.FieldName);
            }
            finally
            {
                if (RefreshFeatureAttributeEvent != null)
                {
                    RefreshFeatureAttributeEvent(null, new RefreshAttributeArgs
                    {
                        Rdt = rdt
                    });
                }
            }
        }