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)
{
}
}
}