采集策略.cs 13 KB

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