采集策略.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. using System;
  2. using System.Data;
  3. using System.Text;
  4. using System.Windows.Forms;
  5. using UAS_LabelMachine.PublicMethod;
  6. namespace UAS_LabelMachine
  7. {
  8. public partial class 采集策略 : Form
  9. {
  10. AutoSizeFormClass asc = new AutoSizeFormClass();
  11. DataHelper dh;
  12. StringBuilder sql = new StringBuilder();
  13. DataTable dt;
  14. public 采集策略()
  15. {
  16. InitializeComponent();
  17. si_type1.CheckedChanged += CheckChanged;
  18. si_type3.CheckedChanged += CheckChanged;
  19. si_type4.CheckedChanged += CheckChanged;
  20. si_type2.CheckedChanged += CheckChanged;
  21. }
  22. public 采集策略(string SG_CODE)
  23. {
  24. InitializeComponent();
  25. sg_code.Text = SG_CODE;
  26. si_type1.CheckedChanged += CheckChanged;
  27. si_type3.CheckedChanged += CheckChanged;
  28. si_type4.CheckedChanged += CheckChanged;
  29. si_type2.CheckedChanged += CheckChanged;
  30. }
  31. private void 采集策略_Load(object sender, EventArgs e)
  32. {
  33. asc.controllInitializeSize(this);
  34. dh = new DataHelper();
  35. pb_name.FormName = Name;
  36. pb_name.SetValueField = new string[] { "pb_name" };
  37. pb_name.TableName = "productbrand";
  38. pb_name.SelectField = "pb_name # 品牌名称,pb_remark # 备注";
  39. si_kind1.Text = "全部";
  40. si_kind2.Text = "全部";
  41. si_kind3.Text = "全部";
  42. si_kind4.Text = "全部";
  43. if (sg_code.Text != "")
  44. {
  45. KeyEventArgs e2 = new KeyEventArgs(Keys.Enter);
  46. sg_code_KeyDown(sender, e2);
  47. }
  48. }
  49. private void 采集策略_SizeChanged(object sender, EventArgs e)
  50. {
  51. asc.controlAutoSize(this);
  52. }
  53. private void Save_Click(object sender, EventArgs e)
  54. {
  55. if (sg_code.Text == "")
  56. {
  57. BaseUtil.ShowError("策略编号不能为空");
  58. }
  59. //如果是Enter获取的数据之后则这个隐藏字段的值不为空
  60. if (sg_id.Text != "")
  61. {
  62. sql.Clear();
  63. sql.Append("update scangroup set sg_name='" + sg_name.Text + "',sg_code='" + sg_code.Text + "',sg_brand='" + pb_name.Text + "',");
  64. sql.Append("sg_separator=:sg_separator where sg_id=" + sg_id.Text);
  65. dh.ExecuteSql(sql.ToString(), "update", new string[] { sg_separator.Text });
  66. for (int i = 1; i < 5; i++)
  67. {
  68. //如果从表的ID不为空则表示此条记录已存在需要更新
  69. if (Controls["si_id" + i].Text != "")
  70. {
  71. int Enable = 0;
  72. if ((Controls["si_type" + i] as CheckBox).Checked)
  73. {
  74. Enable = 1;
  75. }
  76. sql.Clear();
  77. sql.Append("update scanitem set si_item='" + Controls["si_item" + i].Text + "',si_detno='" + Controls["si_detno" + i].Text + "',");
  78. sql.Append("si_index='" + Controls["si_index" + i].Text + "',si_indexstring='" + Controls["si_indexstring" + i].Text + "',");
  79. sql.Append("si_kind='" + Controls["si_kind" + i].Text + "', si_length='" + Controls["si_length" + i].Text + "',");
  80. sql.Append("si_expression=:si_expression,si_enable=" + Enable + " where si_id=" + Controls["si_id" + i].Text);
  81. dh.ExecuteSql(sql.ToString(), "update", new string[] { Controls["si_expression" + i].Text });
  82. }
  83. }
  84. MessageBox.Show("保存成功");
  85. }
  86. else
  87. {
  88. //判断策略编号是否存在
  89. if (!dh.CheckExist("scangroup", "sg_code='" + sg_code.Text + "'"))
  90. {
  91. //如果是新增的从序列获取主键的ID
  92. string sg_id1 = dh.GetSEQ("scangroup_seq");
  93. sql.Clear();
  94. sql.Append("insert into scangroup (sg_id,sg_code,sg_name,sg_brand,sg_separator) values(" + sg_id1 + ",'" + sg_code.Text + "','" + sg_name.Text + "',");
  95. sql.Append("'" + pb_name.Text + "',:sg_separator)");
  96. dh.ExecuteSql(sql.ToString(), "insert", new string[] { sg_separator.Text });
  97. //遍历需要采集的字段
  98. for (int i = 1; i < 5; i++)
  99. {
  100. //保存四条记录,通过si_enable字段来判断是否启用
  101. int Enable = 0;
  102. if ((Controls["si_type" + i] as CheckBox).Checked)
  103. {
  104. Enable = 1;
  105. }
  106. string si_id = dh.GetSEQ("scanitem_seq");
  107. sql.Clear();
  108. sql.Append("insert into scanitem(si_id,si_sgid,si_detno,si_item,si_kind,si_indexstring,si_index,si_expression,si_enable) values(" + si_id + "," + sg_id1);
  109. sql.Append(",'" + Controls["si_detno" + i].Text + "','" + Controls["si_item" + i].Text + "','" + Controls["si_kind" + i].Text + "',");
  110. sql.Append("'" + Controls["si_indexstring" + i].Text + "','" + Controls["si_index" + i].Text + "',:si_expression," + Enable + ")");
  111. dh.ExecuteSql(sql.ToString(), "insert", new string[] { Controls["si_expression" + i].Text });
  112. Controls["si_id" + i].Text = si_id;
  113. }
  114. MessageBox.Show("保存成功");
  115. //保存成功后将值更新回界面,再次点击保存就是更新操作
  116. sg_id.Text = sg_id1;
  117. }
  118. else {
  119. MessageBox.Show("策略编号" + sg_code.Text + "已存在!");
  120. }
  121. }
  122. }
  123. private void Delete_Click(object sender, EventArgs e)
  124. {
  125. if (sg_id.Text != "")
  126. {
  127. string close = MessageBox.Show(this.ParentForm, "是否删除此策略", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
  128. if (close.ToString() == "Yes")
  129. {
  130. dh.ExecuteSql("delete from scangroup where sg_id=" + sg_id.Text, "delete");
  131. dh.ExecuteSql("delete from scanitem where si_sgid=" + sg_id.Text, "delete");
  132. MessageBox.Show("删除成功");
  133. BaseUtil.CleanForm(this);
  134. }
  135. }
  136. }
  137. private void CheckChanged(object sender, EventArgs e)
  138. {
  139. CheckBox cb = sender as CheckBox;
  140. //用来表示当前的勾选框的所属的TextBox
  141. int i = 0;
  142. switch (cb.Text)
  143. {
  144. case "DateCode":
  145. i = 1;
  146. break;
  147. case "LotNo":
  148. i = 2;
  149. break;
  150. case "QTY":
  151. i = 3;
  152. break;
  153. case "MPN":
  154. i = 4;
  155. break;
  156. default:
  157. break;
  158. }
  159. //通过勾选状态来控制TextBox是否启用
  160. if (cb.Checked)
  161. {
  162. Controls["si_detno" + i].Enabled = true;
  163. Controls["si_item" + i].Text = cb.Text;
  164. Controls["si_kind" + i].Enabled = true;
  165. Controls["si_expression" + i].Enabled = true;
  166. Controls["si_index" + i].Enabled = true;
  167. Controls["si_indexstring" + i].Enabled = true;
  168. Controls["si_length" + i].Enabled = true;
  169. }
  170. else {
  171. Controls["si_detno" + i].Enabled = false;
  172. Controls["si_item" + i].Enabled = false;
  173. Controls["si_kind" + i].Enabled = false;
  174. Controls["si_expression" + i].Enabled = false;
  175. Controls["si_index" + i].Enabled = false;
  176. Controls["si_indexstring" + i].Enabled = false;
  177. Controls["si_length" + i].Enabled = false;
  178. }
  179. }
  180. private void sg_code_KeyDown(object sender, KeyEventArgs e)
  181. {
  182. if (e.KeyCode == Keys.Enter)
  183. {
  184. dt = (DataTable)dh.ExecuteSql("select sg_id,sg_code,sg_name,sg_brand as pb_name,sg_separator from scangroup where sg_code='" + sg_code.Text + "'", "select");
  185. if (dt.Rows.Count > 0)
  186. {
  187. BaseUtil.SetFormValue(this.Controls, dt);
  188. dt = (DataTable)dh.ExecuteSql("select * from scanitem where si_sgid=" + sg_id.Text, "select");
  189. //通过匹配采集的字段名称给界面赋值
  190. for (int i = 0; i < dt.Rows.Count; i++)
  191. {
  192. for (int j = 1; j < 5; j++)
  193. {
  194. //如果Item和CheckBox的文字相等
  195. if (dt.Rows[i]["si_item"].ToString() == Controls["si_type" + j].Text)
  196. {
  197. Console.WriteLine(dt.Rows[i]["si_item"].ToString());
  198. //如果状态不为0则表示启用
  199. if (dt.Rows[i]["si_enable"].ToString() != "0")
  200. (Controls["si_type" + j] as CheckBox).CheckState = CheckState.Checked;
  201. else
  202. (Controls["si_type" + j] as CheckBox).CheckState = CheckState.Unchecked;
  203. Controls["si_id" + j].Text = dt.Rows[i]["si_id"].ToString();
  204. Controls["si_detno" + j].Text = dt.Rows[i]["si_detno"].ToString();
  205. Controls["si_kind" + j].Text = dt.Rows[i]["si_kind"].ToString();
  206. Controls["si_indexstring" + j].Text = dt.Rows[i]["si_indexstring"].ToString();
  207. Controls["si_index" + j].Text = dt.Rows[i]["si_index"].ToString();
  208. Controls["si_item" + j].Text = dt.Rows[i]["si_item"].ToString();
  209. Controls["si_kind" + j].Text = dt.Rows[i]["si_kind"].ToString();
  210. Controls["si_length" + j].Text = dt.Rows[i]["si_length"].ToString();
  211. Controls["si_expression" + j].Text = dt.Rows[i]["si_expression"].ToString();
  212. }
  213. }
  214. }
  215. }
  216. else
  217. MessageBox.Show("不存在编号为" + sg_code.Text + "的采集策略");
  218. }
  219. }
  220. /// <summary>
  221. /// 清除界面的信息
  222. /// </summary>
  223. /// <param name="sender"></param>
  224. /// <param name="e"></param>
  225. private void Add_Click(object sender, EventArgs e)
  226. {
  227. BaseUtil.CleanForm(this);
  228. for (int i = 1; i < 5; i++)
  229. (Controls["si_type" + i] as CheckBox).Checked = false;
  230. }
  231. }
  232. }