public TParmEditForm(AI_TemplateParmItem item, bool bLockName) { InitializeComponent(); // 是否锁定名字不允许编辑 if (bLockName) { this.txtName.Enabled = false; this.txtEname.Enabled = false; } this.Text = "编辑变量"; this.m_keyID = Int32.Parse(item.keyID); this.cmbVarType.Enabled = false; this.TemplateParmItem = item; // 填写变量名、变量类型 this.txtName.Text = item.Name; this.txtEname.Text = item.Ename; this.cmbVarType.Text = item.GetTypeString(); // 填写默认值 if (this.cmbVarType.Text == "数字" || this.cmbVarType.Text == "字符串") { this.cmbDefaultValue.Visible = false; this.txtDefaultValue.Visible = true; this.txtDefaultValue.Text = item.defaultValue; return; } else { this.cmbDefaultValue.Visible = true; this.txtDefaultValue.Visible = false; cmbDefaultValue.Items.Clear(); EnumType etype = EnumTable.GetEnumTypeByID(item.m_type.ToString()); cmbDefaultValue.Items.AddRange(etype.Items.ToArray()); if (item.defaultValue != null && item.defaultValue != "") { cmbDefaultValue.SelectedIndex = Int32.Parse((item.defaultValue)); } } }
public TParmEditForm(AI_TemplateParmItem item, bool bLockName) { InitializeComponent(); // 是否锁定名字不允许编辑 if(bLockName) { this.txtName.Enabled = false; this.txtEname.Enabled = false; } this.Text = "编辑变量"; this.m_keyID = Int32.Parse(item.keyID); this.cmbVarType.Enabled = false; this.TemplateParmItem = item; // 填写变量名、变量类型 this.txtName.Text = item.Name; this.txtEname.Text = item.Ename; this.cmbVarType.Text = item.GetTypeString(); // 填写默认值 if (this.cmbVarType.Text == "数字" || this.cmbVarType.Text == "字符串") { this.cmbDefaultValue.Visible = false; this.txtDefaultValue.Visible = true; this.txtDefaultValue.Text = item.defaultValue; return; } else { this.cmbDefaultValue.Visible = true; this.txtDefaultValue.Visible = false; cmbDefaultValue.Items.Clear(); EnumType etype = EnumTable.GetEnumTypeByID(item.m_type.ToString()); cmbDefaultValue.Items.AddRange(etype.Items.ToArray()); if(item.defaultValue!= null && item.defaultValue != "") cmbDefaultValue.SelectedIndex = Int32.Parse((item.defaultValue)); } }
private void buttonX1_Click(object sender, EventArgs e) { // 检查完整性 if (txtName.Text == "" || txtEname.Text == "" || (cmbVarType.Enabled && cmbVarType.SelectedItem == null)) { MessageBox.Show("请输入完整", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // 检查重名 if (this.Other_NameArray.Contains(this.txtName.Text)) { MessageBox.Show("显示名不能有重复", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.Other_ENameArray.Contains(this.txtEname.Text)) { MessageBox.Show("变量名不能有重复", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // 构造模板参数对象 AI_TemplateParmItem tpnew = new AI_TemplateParmItem(); if (this.Text == "编辑变量") // 编辑变量 { tpnew = this.TemplateParmItem; tpnew.Name = this.txtName.Text; tpnew.Ename = this.txtEname.Text; if (cmbDefaultValue.Visible) { // 存枚举默认值 if (cmbDefaultValue.SelectedItem != null) { tpnew.defaultValue = (cmbDefaultValue.SelectedItem as EnumItem).m_asParentsPos.ToString(); } } else { // 存数字字符串默认值 tpnew.defaultValue = txtDefaultValue.Text; } } else // 新增变量 { tpnew.Name = this.txtName.Text; tpnew.Ename = this.txtEname.Text; tpnew.keyID = this.m_keyID.ToString(); if (cmbVarType.SelectedItem.ToString() == "数字") { tpnew.m_type = -1; tpnew.defaultValue = txtDefaultValue.Text; } else if (cmbVarType.SelectedItem.ToString() == "字符串") { tpnew.m_type = -2; tpnew.defaultValue = txtDefaultValue.Text; } else { tpnew.m_type = Int32.Parse((cmbVarType.SelectedItem as EnumType).DBID); if (cmbDefaultValue.SelectedItem != null) { tpnew.defaultValue = (cmbDefaultValue.SelectedItem as EnumItem).m_asParentsPos.ToString(); } } } this.TemplateParmItem = tpnew; this.DialogResult = DialogResult.OK; this.Close(); }
/// <summary> /// 选择确定 /// </summary> /// <param name="sender">事件发送者</param> /// <param name="e">事件参数</param> private void buttonX1_Click(object sender, EventArgs e) { AI_Action newAction = null; if (tabControl1.SelectedTabIndex == 0) // 选择系统Action { Node currentNode = actionTree.SelectedNode; if (currentNode != null && currentNode.Level == 1) { AI_Action selectedAction = actionTable[currentNode.Tag.ToString()] as AI_Action; if (selectedAction != null) { // 第一步,检查输入数据正确性 for (int i = 0; i < selectedAction.Args.Count; i++) { if (!CheckParameterValid(selectedAction.Args[i].m_type, comboBoxArray[i].Text, checkBoxArray[i].Checked)) { MessageBox.Show(string.Format("{0}参数值无效!", labelArray[i].Text), "参数检查", MessageBoxButtons.OK, MessageBoxIcon.Error); comboBoxArray[i].Focus(); return; } } // 第二步,把输入数据存到Action里 newAction = selectedAction.Clone() as AI_Action; for (int i = 0; i < newAction.Args.Count; i++) { AI_Parm parm = newAction.Args[i]; object objSelect = comboBoxArray[i].SelectedItem; if (comboBoxArray[i].Text.StartsWith("<") && comboBoxArray[i].Text.EndsWith(">")) // 模板参数 { if (checkBoxArray[i].Checked) { MessageBox.Show("模板参数不能为变量类型!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); comboBoxArray[i].Focus(); return; } parm.m_IsTemplateParm = true; AI_TemplateParmItem tpitem = objSelect as AI_TemplateParmItem; if (objSelect == null) { MessageBox.Show("参数错误", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); comboBoxArray[i].Focus(); return; } int index = AI_TemplateParmTable.GetAIParamTemplateTable().GetAIParamIndex(tpitem.Name); parm.SetTemplateValue(index.ToString()); } else // 非模板参数 { parm.m_IsTemplateParm = false; if (objSelect == null) // 是填的,不是选的,那就是字符串或者数字了 { parm.m_Value = comboBoxArray[i].Text; } else if (objSelect is EnumItem) // 是枚举 { EnumItem ei = objSelect as EnumItem; parm.m_Value = ei.m_asParentsPos.ToString(); } } // 记录下是否是变量类型 parm.IsVar = checkBoxArray[i].Checked; } } } else { MessageBox.Show("请先选择动作!", "参数检查", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } else // 选择自定义Action { string functionName = actionNameBox.Text; string functionText = codeEditBox.Text; string returnValue = ""; if (functionName == "") { MessageBox.Show("动作名不能为空!", "参数检查", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (functionText == "") { MessageBox.Show("自定义脚本不能为空!", "参数检查", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } for (int i = 0; i < 3; i++) { if (returnValueBoxArray[i].Text.Trim() != "") { returnValue += string.Format("{0},", returnValueBoxArray[i].Text.Trim()); } else { break; } } returnValue = returnValue.TrimEnd(new char[] { ',' }); if (returnValue == "") { MessageBox.Show("至少需要有一个返回值!", "参数检查", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } int actionID = graphElementID + 2000; if (inActionGroup) // 动作组内的自定义动作需要重新分配ID { actionID = (graphElementID + 2000) * 10 + groupIndex; } string englishName = GetFunctionName(functionText); if (!CheckScriptValid(functionText)) // 检查脚本有效性 { MessageBox.Show("脚本必须在最后明确返回执行结果(如:return 1)!", "脚本检查", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (!AIDiagramHelper.CheckScript(codeEditBox, functionText)) // 没有通过脚本检查 { if (MessageBox.Show("没有通过脚本检查,是否重新编辑脚本?", "脚本检查", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { return; } } newAction = new AI_Action(); newAction.ActionID = actionID.ToString(); newAction.Name = functionName; newAction.Info = functionText; newAction.Ename = englishName; newAction.Args = new List <AI_Parm>(); newAction.rettype = returnValue; } singleAction.Action = newAction; editSuccess = true; this.DialogResult = DialogResult.OK; this.Close(); }
private void buttonX1_Click(object sender, EventArgs e) { // 检查完整性 if (txtName.Text == "" || txtEname.Text == "" || (cmbVarType.Enabled && cmbVarType.SelectedItem == null)) { MessageBox.Show("请输入完整", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // 检查重名 if(this.Other_NameArray.Contains(this.txtName.Text)) { MessageBox.Show("显示名不能有重复", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (this.Other_ENameArray.Contains(this.txtEname.Text)) { MessageBox.Show("变量名不能有重复", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // 构造模板参数对象 AI_TemplateParmItem tpnew = new AI_TemplateParmItem(); if (this.Text == "编辑变量") // 编辑变量 { tpnew = this.TemplateParmItem; tpnew.Name = this.txtName.Text; tpnew.Ename = this.txtEname.Text; if (cmbDefaultValue.Visible) { // 存枚举默认值 if (cmbDefaultValue.SelectedItem != null) tpnew.defaultValue = (cmbDefaultValue.SelectedItem as EnumItem).m_asParentsPos.ToString(); } else { // 存数字字符串默认值 tpnew.defaultValue = txtDefaultValue.Text; } } else // 新增变量 { tpnew.Name = this.txtName.Text; tpnew.Ename = this.txtEname.Text; tpnew.keyID = this.m_keyID.ToString(); if (cmbVarType.SelectedItem.ToString() == "数字") { tpnew.m_type = -1; tpnew.defaultValue = txtDefaultValue.Text; } else if (cmbVarType.SelectedItem.ToString() == "字符串") { tpnew.m_type = -2; tpnew.defaultValue = txtDefaultValue.Text; } else { tpnew.m_type = Int32.Parse((cmbVarType.SelectedItem as EnumType).DBID); if (cmbDefaultValue.SelectedItem != null) tpnew.defaultValue = (cmbDefaultValue.SelectedItem as EnumItem).m_asParentsPos.ToString(); } } this.TemplateParmItem = tpnew; this.DialogResult = DialogResult.OK; this.Close(); }