using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using com.force.json; namespace WCS { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button20_Click(object sender, EventArgs e) { JSONObject json = new JSONObject(); json.put("mapName", tb_mapName.Text); json.put("rackCount", int.Parse(tb_rackCount.Text)); json.put("crnCount", int.Parse(tb_crnCount.Text)); json.put("stbCount", int.Parse(tb_stnCount.Text)); json.put("hpPosition",radioButton1.Checked ? 0 : 1); //0表示左边是原点,1表示右边是原点 json.put("minBayNo", int.Parse(tb_minBay.Text)); json.put("floors", int.Parse(tb_floors.Text)); //输送站点楼层数 JSONArray racks = getRackArray(1); if (racks.length() > 0) { json.put("racks", racks); } JSONArray rackDescs = getRackArray(5); if (rackDescs.length() > 0) { json.put("rackDescs", rackDescs); } JSONArray crns = getRackArray(2); if (crns.length() > 0) { json.put("crns", crns); } //JSONArray tracks = getRackArray(3); //if (tracks.length() > 0) //{ // json.put("tracks", tracks); //} //if (int.Parse(tb_floors.Text) > 1) //{ JSONArray areas = getFloorsArray(); if (areas.length() > 0) { json.put("areas", areas); } //} //else //{ // JSONArray stns = getRackArray(4); // if (stns.length() > 0) // { // json.put("stns", stns); // } //} bool result = writeJsonFile(tb_mapName.Text + ".json", json.ToString()); if (result) { MessageBox.Show("保存成功"); } else { MessageBox.Show("保存失败"); } } /// /// 保存json文件 /// /// /// public bool writeJsonFile(string fileName, string json) { bool result = false; DateTime dt = DateTime.Now; string FileName = Application.StartupPath + "\\json\\" + fileName; try { if (!Directory.Exists(Application.StartupPath + "\\json")) { Directory.CreateDirectory(Application.StartupPath + "\\json"); } if (File.Exists(FileName)) { DialogResult dr = MessageBox.Show("文件已存在,确定覆盖吗?", "保存文件", MessageBoxButtons.OKCancel); if (dr == DialogResult.Cancel)//如果点击“确定”按钮 { return result; } else { File.Delete(FileName); } } StreamWriter fs1 = new StreamWriter(FileName, true);//创建写入文件 //StreamWriter sw = new StreamWriter(fs1); //fs1.Write(json);//开始写入值 fs1.WriteLine(json);//开始写入值 //sw.Close(); fs1.Close(); result = true; } catch (Exception em) { MessageBox.Show("保存json出错===>>" + em.Message); } return result; } /// /// 货架排数JSON数组,控件类型,1==>货架,2==>堆垛机,3==>轨道,4==>站点,5==>货架编号 /// /// 控件类型,1==>货架,2==>堆垛机,3==>轨道,4==>站点,5==>货架编号 /// private JSONArray getRackArray(int type) { JSONArray jsonArray = new JSONArray(); for (int i = 0; i < this.Controls.Count; i++) { if (type == 1) { if (this.Controls[i] is System.Windows.Forms.Panel) { Panel panel = this.Controls[i] as System.Windows.Forms.Panel; if (panel.Name.IndexOf("rack") >= 0) { JSONObject json = new JSONObject(); json.put("type", "rack"); json.put("id", panel.Name); json.put("top", panel.Top); json.put("left", panel.Left); json.put("width", panel.Width); json.put("height", panel.Height); json.put("minBayNo", int.Parse(tb_minBay.Text)); json.put("maxBayNo", Convert.ToInt32(panel.Tag)); jsonArray.put(json); //MessageBox.Show(panel.Name); } } } else if (type == 2) { //堆垛机 if (this.Controls[i] is DevComponents.DotNetBar.LabelX) { DevComponents.DotNetBar.LabelX lb_crn = this.Controls[i] as DevComponents.DotNetBar.LabelX; if (lb_crn.Name.IndexOf("lb_crn") >= 0) { JSONObject json = new JSONObject(); json.put("type", "crane"); string crnId = lb_crn.Name.Substring(3, 3) + "-" + lb_crn.Name.Substring(6, 1); json.put("id", crnId); json.put("text", lb_crn.Text); json.put("top", lb_crn.Top); json.put("left", lb_crn.Left); json.put("width", lb_crn.Width); json.put("height", lb_crn.Height); jsonArray.put(json); } } //轨道 if (this.Controls[i] is System.Windows.Forms.Label) { System.Windows.Forms.Label lb_track = this.Controls[i] as System.Windows.Forms.Label; if (lb_track.Name.IndexOf("lb_track") >= 0) { JSONObject json = new JSONObject(); json.put("type", "track"); json.put("id", lb_track.Name); json.put("text", lb_track.Text); json.put("top", lb_track.Top); json.put("left", lb_track.Left); json.put("width", lb_track.Width); json.put("height", lb_track.Height); jsonArray.put(json); } } } else if (type == 3) { if (this.Controls[i] is System.Windows.Forms.Label) { System.Windows.Forms.Label lb_track = this.Controls[i] as System.Windows.Forms.Label; if (lb_track.Name.IndexOf("lb_track") >= 0) { JSONObject json = new JSONObject(); json.put("type", "track"); json.put("id", lb_track.Name); json.put("text", lb_track.Text); json.put("top", lb_track.Top); json.put("left", lb_track.Left); json.put("width", lb_track.Width); json.put("height", lb_track.Height); jsonArray.put(json); } } } else if (type == 4) { if (this.Controls[i] is DevComponents.DotNetBar.LabelX) { DevComponents.DotNetBar.LabelX lb_stn = this.Controls[i] as DevComponents.DotNetBar.LabelX; if (lb_stn.Name.IndexOf("stn") >= 0) { JSONObject json = new JSONObject(); json.put("type", "stn"); string stnId = "site-" + lb_stn.Name.Replace("stn", ""); json.put("id", stnId); json.put("text", lb_stn.Text); json.put("top", lb_stn.Top); json.put("left", lb_stn.Left); json.put("width", lb_stn.Width); json.put("height", lb_stn.Height); jsonArray.put(json); } } } else if (type == 5) { if (this.Controls[i] is System.Windows.Forms.Label) { System.Windows.Forms.Label lb_desc = this.Controls[i] as System.Windows.Forms.Label; if (lb_desc.Name.IndexOf("lb_desc") >= 0) { JSONObject json = new JSONObject(); json.put("type", "rackDescs"); json.put("id", lb_desc.Name); json.put("text", lb_desc.Text); json.put("top", lb_desc.Top); json.put("left", lb_desc.Left); json.put("width", lb_desc.Width); json.put("height", lb_desc.Height); jsonArray.put(json); } } } } return jsonArray; } /// /// 多楼层站点信息 /// /// private JSONArray getFloorsArray() { JSONArray jsonArray = new JSONArray(); for (int i = 0; i < this.Controls.Count; i++) { if (this.Controls[i] is System.Windows.Forms.TabControl) { TabControl tabControl_floor = this.Controls[i] as System.Windows.Forms.TabControl; if (tabControl_floor.Name.IndexOf("tabControl_floor") >= 0) { JSONObject jsonControl = new JSONObject(); jsonControl.put("type", "Control_floor"); jsonControl.put("id", tabControl_floor.Name); jsonControl.put("text", "楼层"); jsonControl.put("top", tabControl_floor.Top); jsonControl.put("left", tabControl_floor.Left); jsonControl.put("width", tabControl_floor.Width); jsonControl.put("height", tabControl_floor.Height); JSONArray pageArray = new JSONArray(); for (int j = 0; j < this.Controls[i].Controls.Count; j++) { if (this.Controls[i].Controls[j] is System.Windows.Forms.TabPage) { TabPage page_floor = this.Controls[i].Controls[j] as System.Windows.Forms.TabPage; if (page_floor.Name.IndexOf("page_floor") >= 0) { JSONObject jsonPageFloor = new JSONObject(); jsonPageFloor.put("type", "floor"); jsonPageFloor.put("id", page_floor.Name); jsonPageFloor.put("text", page_floor.Text); jsonPageFloor.put("top", page_floor.Top); jsonPageFloor.put("left", page_floor.Left); jsonPageFloor.put("width", page_floor.Width); jsonPageFloor.put("height", page_floor.Height); JSONArray stnsArray = new JSONArray(); for (int k = 0; k < this.Controls[i].Controls[j].Controls.Count; k++) { //站点 if (this.Controls[i].Controls[j].Controls[k] is DevComponents.DotNetBar.LabelX) { DevComponents.DotNetBar.LabelX lb_stn = this.Controls[i].Controls[j].Controls[k] as DevComponents.DotNetBar.LabelX; if (lb_stn.Name.IndexOf("stn") >= 0) { JSONObject json = new JSONObject(); json.put("type", "stn"); string stnId = "site-" + lb_stn.Name.Replace("stn", ""); json.put("id", stnId); json.put("text", lb_stn.Text); json.put("top", lb_stn.Top + tabControl_floor.Top + 4); json.put("left", lb_stn.Left + tabControl_floor.Left + 22); json.put("width", lb_stn.Width); json.put("height", lb_stn.Height); stnsArray.put(json); } } //轨道 if (this.Controls[i].Controls[j].Controls[k] is System.Windows.Forms.Label) { System.Windows.Forms.Label lb_trCart = this.Controls[i].Controls[j].Controls[k] as System.Windows.Forms.Label; if (lb_trCart.Name.IndexOf("lb_trCart") >= 0) { JSONObject json = new JSONObject(); json.put("type", "track"); json.put("id", lb_trCart.Name); json.put("text", lb_trCart.Text); json.put("top", lb_trCart.Top + tabControl_floor.Top + 4); json.put("left", lb_trCart.Left + tabControl_floor.Left + 22); json.put("width", lb_trCart.Width); json.put("height", lb_trCart.Height); stnsArray.put(json); } } } jsonPageFloor.put("stns",stnsArray); pageArray.put(jsonPageFloor); } } } jsonControl.put("floors", pageArray); jsonArray.put(jsonControl); } } } return jsonArray; } private void tabControl1_DrawItem(object sender, DrawItemEventArgs e) { //SolidBrush _Brush = new SolidBrush(Color.Black);//单⾊画刷 //RectangleF _TabTextArea = (RectangleF)tabControl_floor1.GetTabRect(e.Index);//绘制区域 //StringFormat _sf = new StringFormat();//封装⽂本布局格式信息 //_sf.LineAlignment = StringAlignment.Center; //_sf.Alignment = StringAlignment.Center; //e.Graphics.DrawString(tabControl_floor1.Controls[e.Index].Text, SystemInformation.MenuFont, _Brush, _TabTextArea,_sf); } private void stn105_Click(object sender, EventArgs e) { } private void stn102_Click(object sender, EventArgs e) { } private void page_floor4_Click(object sender, EventArgs e) { } private void panel2_Paint(object sender, PaintEventArgs e) { } private void label8_Click(object sender, EventArgs e) { } private void label9_Click(object sender, EventArgs e) { } private void labelX1_Click(object sender, EventArgs e) { } private void rack2_Paint(object sender, PaintEventArgs e) { } private void label9_Click_1(object sender, EventArgs e) { } private void labelX16_Click(object sender, EventArgs e) { } private void labelX1_Click_1(object sender, EventArgs e) { } private void lb_track3_Click(object sender, EventArgs e) { } private void lb_desc1_Click(object sender, EventArgs e) { } private void rack16_Paint(object sender, PaintEventArgs e) { } private void rack15_Paint(object sender, PaintEventArgs e) { } private void lb_track4_Click(object sender, EventArgs e) { } private void lb_crn4_Click(object sender, EventArgs e) { } private void rack14_Paint(object sender, PaintEventArgs e) { } private void rack13_Paint(object sender, PaintEventArgs e) { } private void rack12_Paint(object sender, PaintEventArgs e) { } private void rack11_Paint(object sender, PaintEventArgs e) { } private void lb_track5_Click(object sender, EventArgs e) { } private void lb_crn3_Click(object sender, EventArgs e) { } private void rack10_Paint(object sender, PaintEventArgs e) { } private void rack9_Paint(object sender, PaintEventArgs e) { } private void rack8_Paint(object sender, PaintEventArgs e) { } private void rack7_Paint(object sender, PaintEventArgs e) { } private void lb_crn2_Click(object sender, EventArgs e) { } private void lb_track2_Click(object sender, EventArgs e) { } private void rack6_Paint(object sender, PaintEventArgs e) { } private void rack5_Paint(object sender, PaintEventArgs e) { } private void rack4_Paint(object sender, PaintEventArgs e) { } private void stn002_Click(object sender, EventArgs e) { } private void stn005_Click(object sender, EventArgs e) { } private void lb_track1_Click(object sender, EventArgs e) { } private void lb_crn1_Click(object sender, EventArgs e) { } private void Form2_Load(object sender, EventArgs e) { } private void lb_trCart22_Click(object sender, EventArgs e) { } private void lb_track2_Click_1(object sender, EventArgs e) { } private void lb_crn4_Click_1(object sender, EventArgs e) { } private void lb_track4_Click_1(object sender, EventArgs e) { } } }