ivr流程编辑器

CtlIVRCompare.cs 5.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using HySoft.IVRFlowEditor.IVRControlUtility;
  10. using HySoft.IVRFlowEditor.Utility;
  11. using HySoft.IVRFlowEditor.Model;
  12. namespace HySoft.IVRFlowEditor.IVRControl
  13. {
  14. public partial class CtlIVRCompare : UserControl
  15. {
  16. IVRCompare _IVRCompare;
  17. public CtlIVRCompare(IVRCompare obj)
  18. {
  19. InitializeComponent();
  20. _IVRCompare = obj;
  21. this.Load += new EventHandler(CtlIVRCompare_Load);
  22. }
  23. void CtlIVRCompare_Load(object sender, EventArgs e)
  24. {
  25. this.tb_NodeID.Text = _IVRCompare.Pos;
  26. this.tb_NodeName.Text = _IVRCompare.Name;
  27. this.rtb_Note.Text = _IVRCompare.Note;
  28. GlobalController.BindComBoBoxOfEnumDesc(this.cmb_dataType1, _IVRCompare.Data1Type);
  29. GlobalController.BindComBoBoxOfEnumDesc(this.cmb_dataType2, _IVRCompare.Data2Type);
  30. GlobalController.BindComBoBoxOfEnumDesc(this.cmb_dataType3, _IVRCompare.Data3Type);
  31. GlobalController.BindComBoBoxOfEnumDesc(this.cmb_VarType, _IVRCompare.VarType);
  32. GlobalController.BindComBoBoxOfEnumDesc(this.cmb_CompareType, _IVRCompare.CompareType);
  33. this.cmb_successNextNode.DataSource = GlobalController.GetComBoBoxofIVR();
  34. this.cmb_successNextNode.DisplayMember = "Note";//2017-5-8将Name改为Note
  35. this.cmb_successNextNode.ValueMember = "ID";
  36. if (_IVRCompare.TruePos != null)
  37. cmb_successNextNode.SelectedItem = _IVRCompare.TruePos;
  38. this.cmb_failNextNode.DataSource = GlobalController.GetComBoBoxofIVR();
  39. this.cmb_failNextNode.DisplayMember = "Note";//2017-5-8将Name改为Note
  40. this.cmb_failNextNode.ValueMember = "ID";
  41. if (_IVRCompare.FalsePos != null)
  42. cmb_failNextNode.SelectedItem = _IVRCompare.FalsePos;//2017-5-2将success修改为fail
  43. this.cmb_Data1.Text = _IVRCompare.Data1;
  44. this.cmb_Data2.Text = _IVRCompare.Data2;
  45. this.cmb_Data3.Text = _IVRCompare.Data3;
  46. }
  47. private void btn_enter_Click(object sender, EventArgs e)
  48. {
  49. _IVRCompare.TruePos = this.cmb_successNextNode.SelectedItem as IVRControlBase;
  50. _IVRCompare.FalsePos = this.cmb_failNextNode.SelectedItem as IVRControlBase;
  51. if (string.IsNullOrEmpty(this.cmb_Data1.Text))
  52. {
  53. MessageBox.Show("数据1不允许为空!");
  54. return;
  55. }
  56. if (this.cmb_CompareType.SelectedText == "介之间" &&(string.IsNullOrEmpty(this.cmb_dataType3.Text)||string.IsNullOrEmpty(this.cmb_dataType3.Text)))
  57. {
  58. MessageBox.Show("比较方式为介子间时数据2和数据3都不允许为空");
  59. return ;
  60. }
  61. _IVRCompare.Data1Type = GlobalController.GetEnumByComBoBoxValueOFDesc<NumberType>(this.cmb_dataType1.Text);
  62. _IVRCompare.Data2Type = GlobalController.GetEnumByComBoBoxValueOFDesc<NumberType>(this.cmb_dataType2.Text);
  63. _IVRCompare.Data3Type = GlobalController.GetEnumByComBoBoxValueOFDesc<NumberType>(this.cmb_dataType3.Text);
  64. _IVRCompare.VarType = GlobalController.GetEnumByComBoBoxValueOFDesc<VarType>(this.cmb_VarType.Text);
  65. _IVRCompare.CompareType = GlobalController.GetEnumByComBoBoxValueOFDesc<CompareType>(this.cmb_CompareType.Text);
  66. _IVRCompare.Pos = this.tb_NodeID.Text;
  67. _IVRCompare.Name = this.tb_NodeName.Text;
  68. _IVRCompare.Note = this.rtb_Note.Text;
  69. _IVRCompare.Data1 = this.cmb_Data1.Text;
  70. _IVRCompare.Data2 = this.cmb_Data2.Text;
  71. _IVRCompare.Data3 = this.cmb_Data3.Text;
  72. this.FindForm().DialogResult = DialogResult.OK;
  73. this.FindForm().Close();
  74. }
  75. private void btn_cancel_Click(object sender, EventArgs e)
  76. {
  77. this.FindForm().DialogResult = DialogResult.No;
  78. this.FindForm().Close();
  79. }
  80. private void BindComData(ComboBox com, NumberType type)
  81. {
  82. switch (type)
  83. {
  84. case NumberType.变量:
  85. com.DataSource = GlobalController.GetFlowVar().ToList();
  86. com.DisplayMember = "VarName";
  87. com.ValueMember = "VarVal";
  88. break;
  89. case NumberType.具体值:
  90. com.DataSource = null;
  91. break;
  92. }
  93. }
  94. private void cmb_dataType1_SelectedIndexChanged(object sender, EventArgs e)
  95. {
  96. BindComData(this.cmb_Data1, GlobalController.GetEnumByComBoBoxValueOFDesc<NumberType>(cmb_dataType1.Text));
  97. }
  98. private void cmb_dataType2_SelectedIndexChanged(object sender, EventArgs e)
  99. {
  100. BindComData(this.cmb_Data2, GlobalController.GetEnumByComBoBoxValueOFDesc<NumberType>(cmb_dataType2.Text));
  101. }
  102. private void cmb_dataType3_SelectedIndexChanged(object sender, EventArgs e)
  103. {
  104. BindComData(this.cmb_Data3, GlobalController.GetEnumByComBoBoxValueOFDesc<NumberType>(cmb_dataType3.Text));
  105. }
  106. }
  107. }