private void BindDateTodtSectionNumber() { Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor; Boolean chk = true; SectionCode.Clear(); for (int i = 0; i < SelectedList.Count; i++) { chk = true; Atend.Global.Calculation.General.General.AutocadSelectedList cadInfo = (Atend.Global.Calculation.General.General.AutocadSelectedList)SelectedList[i]; Atend.Base.Design.DPoleSection poleSection = Atend.Base.Design.DPoleSection.AccessSelectByProductCodeProductType(cadInfo.ProductGuid, cadInfo.ProductType); if (poleSection.SectionCode != Guid.Empty) { if (SectionCode.Count != 0) { for (int j = 0; j < SectionCode.Count; j++) { if ((Guid)SectionCode[j] == poleSection.SectionCode) { chk = false; } } if (chk) { SectionCode.Add(poleSection.SectionCode); } } else { SectionCode.Add(poleSection.SectionCode); } } } for (int i = 0; i < SectionCode.Count; i++) { Atend.Base.Design.DSection sectionNUmber = Atend.Base.Design.DSection.AccessSelectByCode((Guid)SectionCode[i]); System.Data.DataRow dr = dtSectionNumber.NewRow(); ed.WriteMessage("Sec.Number={0},Sec.Code={1}\n", sectionNUmber.Number, sectionNUmber.Code); dr["SectionNumber"] = sectionNUmber.Number.ToString(); dr["SectionCode"] = sectionNUmber.Code.ToString(); dtSectionNumber.Rows.Add(dr); } }
private void btnSelect_Click(object sender, EventArgs e) { Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor; SelectedList.Clear(); SectionCode.Clear(); int gvCount = gvNetCross.Rows.Count - 1; for (int i = gvCount; i >= 0; i--) { gvNetCross.Rows.RemoveAt(i); } //gvNetCross.Rows.Clear(); gvNetCross.Refresh(); section = new Atend.Global.Calculation.Section(); section.DetermineSection(); #region Select this.Hide(); // ~~~~~~~~~~~~ Start Select Entities int PoleCounter = 0; int ConductorCounter = 0; PromptSelectionOptions pso = new PromptSelectionOptions(); pso.MessageForAdding = "Select area where you want: \n"; PromptSelectionResult psr = ed.GetSelection(pso); if (psr.Status == PromptStatus.OK) { SelectionSet ss = psr.Value; ObjectId[] SelectedObjectID = ss.GetObjectIds(); foreach (ObjectId so in SelectedObjectID) { Atend.Base.Acad.AT_INFO at_info = Atend.Base.Acad.AT_INFO.SelectBySelectedObjectId(so); if (at_info.ParentCode != "NONE" && (at_info.NodeType == (int)Atend.Control.Enum.ProductType.Pole || at_info.NodeType == (int)Atend.Control.Enum.ProductType.PoleTip)) { Atend.Global.Calculation.General.General.AutocadSelectedList Item = new Atend.Global.Calculation.General.General.AutocadSelectedList(); Item.ProductGuid = new Guid(at_info.NodeCode); Item.ProductType = at_info.NodeType; Item.ConductorAngle = 0; string PoleNumber = ""; Atend.Base.Acad.AT_SUB poleSub = Atend.Base.Acad.AT_SUB.SelectBySelectedObjectId(so); foreach (ObjectId oi in poleSub.SubIdCollection) { Atend.Base.Acad.AT_INFO subinfo = Atend.Base.Acad.AT_INFO.SelectBySelectedObjectId(oi); if (subinfo.ParentCode != "NONE" && subinfo.NodeType == (int)Atend.Control.Enum.ProductType.Comment) { MText dbt = Atend.Global.Acad.UAcad.GetEntityByObjectID(oi) as MText; if (dbt != null) { PoleNumber = dbt.Contents; } } } Item.PoleNumber = PoleNumber; SelectedList.Add(Item); PoleCounter++; } else if (at_info.ParentCode != "NONE" && at_info.NodeType == (int)Atend.Control.Enum.ProductType.Conductor) { Atend.Global.Calculation.General.General.AutocadSelectedList Item = new Atend.Global.Calculation.General.General.AutocadSelectedList(); Item.ProductGuid = new Guid(at_info.NodeCode); Item.ProductType = (int)Atend.Control.Enum.ProductType.Conductor; Item.ConductorAngle = 0; Item.PoleNumber = ""; SelectedList.Add(Item); ConductorCounter++; } else if (at_info.ParentCode != "NONE" && at_info.NodeType == (int)Atend.Control.Enum.ProductType.SelfKeeper) { Atend.Global.Calculation.General.General.AutocadSelectedList Item = new Atend.Global.Calculation.General.General.AutocadSelectedList(); Item.ProductGuid = new Guid(at_info.NodeCode); Item.ProductType = (int)Atend.Control.Enum.ProductType.SelfKeeper; Item.ConductorAngle = 0; Item.PoleNumber = ""; SelectedList.Add(Item); ConductorCounter++; } } lblPole.Text = PoleCounter.ToString(); lblConductor.Text = ConductorCounter.ToString(); ed.WriteMessage("Finish\n"); } else { lblPole.Text = "0"; lblConductor.Text = "0"; } // ~~~~~~~~~~~~ End Select Entities this.Show(); #endregion //********************** ed.WriteMessage("~~~~~~~~~~after select \n"); dtSectionNumber = new System.Data.DataTable(); System.Data.DataColumn dcColumn = new System.Data.DataColumn("Name"); System.Data.DataColumn dcColumn1 = new System.Data.DataColumn("Code"); dtSectionNumber.Columns.Add(dcColumn); dtSectionNumber.Columns.Add(dcColumn1); Boolean chk = true; //ed.WriteMessage("SelectedList.Count= " + SelectedList.Count.ToString() + "\n"); for (int i = 0; i < SelectedList.Count; i++) { chk = true; Atend.Global.Calculation.General.General.AutocadSelectedList cadInfo = (Atend.Global.Calculation.General.General.AutocadSelectedList)SelectedList[i]; //ed.WriteMessage("Guid= "+cadInfo.ProductGuid.ToString()+"ProductType = "+cadInfo.ProductType.ToString()+"\n"); Atend.Base.Design.DPoleSection poleSection = Atend.Base.Design.DPoleSection.AccessSelectByProductCodeProductType(cadInfo.ProductGuid, cadInfo.ProductType); //ed.WriteMessage("PoleSection.SectionCode Is= "+poleSection.SectionCode.ToString()+"\n"); if (SectionCode.Count != 0) { for (int j = 0; j < SectionCode.Count; j++) { if ((Guid)SectionCode[j] == poleSection.SectionCode) { chk = false; } } if (chk) { // ed.WriteMessage("Add To SectionCode,SectionCode Is={0}\n", poleSection.SectionCode); SectionCode.Add(poleSection.SectionCode); } } else { // ed.WriteMessage("Add To SectionCode Else,SectionCode Is={0}\n", poleSection.SectionCode); SectionCode.Add(poleSection.SectionCode); } //ed.WriteMessage("SectionCodeList.Count= "+SectionCode.Count.ToString()+"\n"); } //ed.WriteMessage("Finish Full SectionCode\n"); ////Add SectionNumber To DataTable for (int i = 0; i < SectionCode.Count; i++) { //ed.WriteMessage("**Sec.Code={0}\n", SectionCode[i].ToString()); Atend.Base.Design.DSection sectionNUmber = Atend.Base.Design.DSection.AccessSelectByCode((Guid)SectionCode[i]); System.Data.DataRow dr = dtSectionNumber.NewRow(); ed.WriteMessage("Sec.Number={0},Sec.Code={1}\n", sectionNUmber.Number, sectionNUmber.Code); dr["Name"] = sectionNUmber.Number.ToString(); dr["Code"] = sectionNUmber.Code.ToString(); dtSectionNumber.Rows.Add(dr); } //ed.WriteMessage("Finsh Add SectionNumber To DataTable\n"); ////BindDataToGrid In Combo Box For NetCross DataGridViewComboBoxColumn c = (DataGridViewComboBoxColumn)gvNetCross.Columns["Column2"]; c.DisplayMember = "Name"; c.ValueMember = "Code"; c.DataSource = Atend.Base.Calculating.CNetWorkCross.AccessSelectAll(); c.Selected = true; gvNetCross.AutoGenerateColumns = false; gvNetCross.DataSource = dtSectionNumber; //Bind Data To ComboBoxSelect Section cboSelectSection.DisplayMember = "Name"; cboSelectSection.ValueMember = "Code"; cboSelectSection.DataSource = dtSectionNumber; //************************* }