using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using MeasureData; using FileManager; using System.Xml; namespace HOZProject { public partial class UControl_ParaInfo : UserControl { /// /// 开始时间 /// private string startTime; /// /// 结束时间 /// private string endTime; /// /// 状态 /// private string state; /// /// 位置 /// private SemPosition position; private bool isSwitch; private string cutHoleName; private FormHOZMain formHOZMain; private TimeLineItem[] tlItem = null; private UCTimeLine uCTimeLine=null; private int flowCode = 1; public FormHOZMain FormHOZMainObject { get => formHOZMain; set => formHOZMain = value; } public string StartTime { get => startTime; set => startTime = value; } public string EndTime { get => endTime; set => endTime = value; } public string State { get => state; set => state = value; } public SemPosition Position { get => position; set => position = value; } public string CutHoleName { get => cutHoleName; set => cutHoleName = value; } public bool IsSwitch { get => isSwitch; set => isSwitch = value; } public TimeLineItem[] TlItem { get => tlItem; set => tlItem = value; } public UControl_ParaInfo(FormHOZMain formHOZ) { InitializeComponent(); FormHOZMainObject = formHOZ; ShowMeasureFlow("1"); } private void btnClose_Click(object sender, EventArgs e) { foreach (Control item in FormHOZMainObject.plFill.Controls) { if (item is Panel) { foreach (Control itemControl in item.Controls) { if (itemControl.Name == this.Name) { item.Controls.Remove(this); this.Dispose(); item.Visible = false; break; } } } } } public void ShowUCTimeLine(TimeLineItem[] tlItem) { if (plTimeLine.Controls.Count == 0) { uCTimeLine = new UCTimeLine(tlItem); uCTimeLine.Dock = DockStyle.Fill; plTimeLine.Controls.Add(uCTimeLine); } } public void TimeLineInvalidate() { plTimeLine.Invalidate(); uCTimeLine.Invalidate(); } /// /// 显示切孔参数信息 /// public void ShowParaInfo() { int multiple = 1000; //设置Position参数 lblX.Text = (Position.X * multiple).ToString("f3"); lblY.Text = (Position.Y * multiple).ToString("f3"); lblZ.Text = (Position.Z * multiple).ToString("f3"); lblR.Text = Position.R.ToString(); lblT.Text = Position.T.ToString(); lblM.Text = Position.M.ToString(); lblShowStartTime.Text = StartTime; lblShowEndTime.Text = EndTime; lblShowState.Text = State; lblCutHoleName.Text = CutHoleName; CkIsSwitch.Checked = IsSwitch; } /// /// 绑定流程信息 /// /// private void ShowMeasureFlow(string flowCode) { if (TlItem == null) { TlItem = GetMeasureFlowStructInfo(flowCode); } if (TlItem != null) { ShowUCTimeLine(TlItem); } } private TimeLineItem[] GetMeasureFlowStructInfo(string MeasureCode) { string xmlfullname = Application.StartupPath+ @"\MeasureXML\MeasureStructXml.xml"; XmlNodeList nodeList = XmlManager.GetXmlMeasureFlowNodeInfo(xmlfullname, MeasureCode); if (nodeList != null) { return XmlConvertTimeListItem(nodeList); } return null; } private TimeLineItem[] XmlConvertTimeListItem(XmlNodeList nodeList) { TimeLineItem[] timeLineItem = new TimeLineItem[nodeList.Count]; for (int i = 0; i < nodeList.Count; i++) { TimeLineItem tlItem = new TimeLineItem(); tlItem.Details = nodeList[i].Attributes["Details"].Value; tlItem.Code = nodeList[i].Attributes["Code"].Value; tlItem.State = 0; tlItem.Title = nodeList[i].Attributes["Title"].Value; tlItem.IsData = Convert.ToBoolean(nodeList[i].Attributes["IsData"].Value); timeLineItem[i] = tlItem; } return timeLineItem; } } }