public IOListViewItem GetListViewItem(IO_PARA para) { for (int i = 0; i < ioListView.ListView.Items.Count; i++) { IOListViewItem item = ioListView.ListView.Items[i] as IOListViewItem; if (item.Para == para) { return(item); } } return(null); }
/// <summary> /// 异步初始化ListView控件 /// </summary> /// <param name="device"></param> public void InitListView(IO_SERVER Server, IO_COMMUNICATION Communication, IO_DEVICE Device) { this.ioListView.ListView.Items.Clear(); this.ioListView.Server = Server; this.ioListView.Communication = Communication; this.ioListView.Device = Device; this.ioListView.IOPath = Server.SERVER_NAME + "\\" + Communication.IO_COMM_NAME + "\\" + Device.IO_DEVICE_NAME; try { for (int i = 0; i < Device.IOParas.Count; i++) { IOListViewItem lvi = new IOListViewItem(Device.IOParas[i]); this.ioListView.AddListViewItem(lvi); } } catch (Exception ex) { FormManager.DisplayException(ex); } }
private void wizardTabControl_ButtonOK(object sender, EventArgs e) { try { if (tb_paraname.Text.Trim() == "") { MessageBox.Show("请输入IO参数名称"); return; } if (cb_paratype.SelectedItem == null) { MessageBox.Show("请选择IO类型"); return; } if (cb_datatype.SelectedItem == null) { MessageBox.Show("请选择IO模拟量数据类型"); return; } //量程转换输入判断 if (this.cb_range.Checked) { if (Convert.ToDouble(this.tb_maxrange.Text) <= Convert.ToDouble(this.tb_minrange.Text)) { MessageBox.Show("量程范围不匹配"); return; } if (Convert.ToDouble(this.tb_valuemax.Text) <= Convert.ToDouble(this.tb_valuemin.Text)) { MessageBox.Show("裸数据范围不匹配"); return; } } if (cb_paratype.SelectedIndex == 5) { cb_datatype.SelectedIndex = 8; } Para.IO_ADDRESS = this.tb_address.Text.Trim(); Para.IO_ALERT_ENABLE = Convert.ToInt32(cb_alarm.Checked); Para.IO_COMM_ID = Comunication.IO_COMM_ID; Para.IO_DATATYPE = cb_datatype.SelectedItem.ToString(); Para.IO_DEVICE_ID = Device.IO_DEVICE_ID; Para.IO_ENABLEALARM = Convert.ToInt32(cb_alarm.Checked); Para.IO_ENABLERANGECONVERSION = Convert.ToInt32(cb_range.Checked); Para.IO_HISTORY = 1; Para.IO_INITALVALUE = tb_initvalue.Text; Para.IO_LABEL = tb_parachname.Text; Para.IO_MAXVALUE = tb_valuemax.Text; Para.IO_MINVALUE = tb_valuemin.Text; Para.IO_NAME = tb_paraname.Text.Trim(); Para.IO_ONE = tb_one.Text.Trim(); Para.IO_OUTLIES = tbDecimalplace.Text.Trim(); if (DeviceKernel != null) { Para.IO_PARASTRING = DeviceKernel.ParaCtrl.GetUIParameter(); } Para.IO_POINTTYPE = cb_paratype.SelectedItem.ToString(); Para.IO_RANGEMAX = tb_maxrange.Text; Para.IO_RANGEMIN = tb_minrange.Text; Para.IO_SERVER_ID = Server.SERVER_ID; Para.IO_SYSTEM = 0; Para.IO_UNIT = cb_unittype.Text.Trim(); Para.IO_ZERO = tb_zone.Text; //公式配置部分 Para.IO_FORMULA = txtFormula.Text.Trim(); //数据源设置部分 #region { Para.IO_DATASOURCE = ""; Para.IO_DATASOURCE = this.txtDataSourceIP.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceName.Text; Para.IO_DATASOURCE += "," + this.cbDatabaseType.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceUser.Text; Para.IO_DATASOURCE += "," + this.txtDataSourcePassword.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceTable.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceValueRecord.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceValueRecordType.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceDateRecord.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceDateRecordRange.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceOrderRecord.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceOrderRecordType.Text; Para.IO_DATASOURCE += "," + this.txtDataSourceWhere.Text; } #endregion //报警部分设置 Para.AlarmConfig.IO_SERVER_ID = Para.IO_SERVER_ID; Para.AlarmConfig.IO_COMM_ID = Para.IO_COMM_ID; Para.AlarmConfig.IO_DEVICE_ID = Para.IO_DEVICE_ID; Para.AlarmConfig.IO_ID = Para.IO_ID; Para.AlarmConfig.IO_ENABLE_MAX = Convert.ToInt32(cb_maxenable.Checked); Para.AlarmConfig.IO_ENABLE_MAXMAX = Convert.ToInt32(cb_maxmaxenable.Checked); Para.AlarmConfig.IO_ENABLE_MIN = Convert.ToInt32(cb_minenable.Checked); Para.AlarmConfig.IO_ENABLE_MINMIN = Convert.ToInt32(cb_minminenable.Checked); if (cbo_minmin.SelectedItem != null) { Para.AlarmConfig.IO_MINMIN_TYPE = cbo_minmin.SelectedItem.ToString(); } if (cbo_min.SelectedItem != null) { Para.AlarmConfig.IO_MIN_TYPE = cbo_min.SelectedItem.ToString(); } if (cbo_max.SelectedItem != null) { Para.AlarmConfig.IO_MAX_TYPE = cbo_max.SelectedItem.ToString(); } if (cbo_maxmax.SelectedItem != null) { Para.AlarmConfig.IO_MAXMAX_TYPE = cbo_maxmax.SelectedItem.ToString(); } Para.AlarmConfig.IO_MINMIN_VALUE = nb_minmin.Value; Para.AlarmConfig.IO_MIN_VALUE = nb_min.Value; Para.AlarmConfig.IO_MAX_VALUE = nb_max.Value; Para.AlarmConfig.IO_MAXMAX_VALUE = nb_maxmax.Value; Para.AlarmConfig.IO_ALARM_LEVEL = ""; if (this.cb_alarm.Checked) { if (nb_maxmax.Value <= Para.AlarmConfig.IO_MIN_VALUE || nb_maxmax.Value <= Para.AlarmConfig.IO_MINMIN_VALUE || nb_maxmax.Value <= Para.AlarmConfig.IO_MAX_VALUE) { MessageBox.Show("超高限值不能小于等于高限、低限、超低限值"); return; } if (nb_max.Value <= Para.AlarmConfig.IO_MINMIN_VALUE || nb_max.Value <= Para.AlarmConfig.IO_MIN_VALUE) { MessageBox.Show("高限值不能小于等于低限、超低限值"); return; } if (nb_min.Value <= Para.AlarmConfig.IO_MINMIN_VALUE) { MessageBox.Show("超高限值不能小于等于高限、低限、超低限值"); return; } } string strs = ""; for (int i = 0; i < listCons.Items.Count; i++) { strs += listCons.Items[i].ToString() + ","; } if (strs != "") { strs = strs.Remove(strs.Length - 1, 1); } Para.AlarmConfig.IO_CONDITION = strs; if (Para.IO_ID == null || Para.IO_ID == "")//新建 { for (int i = 0; i < this.Device.IOParas.Count; i++) { if (this.Device.IOParas[i] != Para && Para.IO_NAME.Trim() == this.Device.IOParas[i].IO_NAME.Trim()) { MessageBox.Show("已经存" + Para.IO_NAME.Trim() + "名称的IO点"); return; } } Para.IO_ID = GUIDTo16.GuidToLongID().ToString(); IOListViewItem lvi = new IOListViewItem(Para); this.Device.IOParas.Add(Para); FormManager.mediator.IOParaForm.AddListViewItem(lvi); FormManager.mediator.IOLogForm.AppendText(FormManager.mediator.IOParaForm.IOListView.IOPath + " 创建IO点" + Para.IO_NAME + "成功!"); } else { for (int i = 0; i < this.Device.IOParas.Count; i++) { if (this.Device.IOParas[i] != Para && Para.IO_NAME.Trim() == this.Device.IOParas[i].IO_NAME.Trim()) { MessageBox.Show("已经存" + Para.IO_NAME.Trim() + "名称的IO点"); return; } } IOListViewItem lvi = FormManager.mediator.IOParaForm.GetListViewItem(Para); if (lvi != null) { lvi.ResetSubItems(); FormManager.mediator.IOLogForm.AppendText(FormManager.mediator.IOParaForm.IOListView.IOPath + " 修改IO点" + Para.IO_NAME + "成功!"); } } this.DialogResult = DialogResult.OK; } catch (Exception emx) { FormManager.DisplayException(emx); } }
public void AddListViewItem(IOListViewItem lvi) { ioListView.AddListViewItem(lvi); }