FrmMenuzConfigure.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Server;
  3. using Core.Mes.Client.Comm.Tool;
  4. using CoreFS.CA06;
  5. using Infragistics.Win.UltraWinGrid;
  6. using Infragistics.Win.UltraWinTree;
  7. using System;
  8. using System.Collections;
  9. using System.Data;
  10. using System.Drawing;
  11. using System.Windows.Forms;
  12. namespace Core.StlMes.Client.Qcm
  13. {
  14. public partial class FrmMenuzConfigure : FrmBase
  15. {
  16. public FrmMenuzConfigure()
  17. {
  18. InitializeComponent();
  19. ExceptionHelper.RegistException();
  20. //this.IsLoadUserView = true; //平台F1功能
  21. }
  22. public override void ToolBar_Click(object sender, string ToolbarKey)
  23. {
  24. switch (ToolbarKey)
  25. {
  26. case "doQuery":
  27. try
  28. {
  29. this.Cursor = Cursors.WaitCursor;
  30. doQuery();
  31. }
  32. finally
  33. {
  34. this.Cursor = Cursors.Default;
  35. }
  36. break;
  37. case "Close":
  38. this.Close();
  39. break;
  40. }
  41. }
  42. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  43. {
  44. if ("doQuery".Equals(e.Tool.Key))
  45. {
  46. DoQueryPage();
  47. }
  48. if ("doAdd".Equals(e.Tool.Key))
  49. {
  50. DoAdd();
  51. }
  52. if ("doUpdate".Equals(e.Tool.Key))
  53. {
  54. DoUpdate();
  55. }
  56. if ("doDelete".Equals(e.Tool.Key))
  57. {
  58. DoDelete();
  59. }
  60. }
  61. public void DoQueryPage()
  62. {
  63. this.dataTable1.Clear();
  64. if (treeView1.ActiveNode == null)
  65. return;
  66. parentCode = treeView1.ActiveNode.Tag.ToString();
  67. DataTable dt = new DataTable();
  68. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.getPageData", new Object[] { "10", parentCode }, this.ob);
  69. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  70. //不同颜色区分是否有效数据
  71. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  72. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  73. {
  74. row = ultraGrid1.Rows[i];
  75. if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("10"))
  76. {
  77. row.Appearance.ForeColor = Color.Red;
  78. }
  79. else
  80. {
  81. row.Appearance.ForeColor = Color.Black;
  82. }
  83. }
  84. //内容自适应
  85. GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, new UltraGridColumn[] {
  86. ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"]
  87. });
  88. }
  89. public void DoAdd()
  90. {
  91. if (treeView1.ActiveNode == null)
  92. return;
  93. parentCode = treeView1.ActiveNode.Tag.ToString();
  94. PageEdit page = new PageEdit();
  95. page.ShowDialog();
  96. if (string.IsNullOrEmpty(page.isClickYes))
  97. return;
  98. ArrayList parm = new ArrayList();
  99. DataTable dt = new DataTable();
  100. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { parentCode }, this.ob);
  101. string baseCode = "";
  102. if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString()))
  103. {
  104. baseCode = parentCode + (Convert.ToInt64(dt.Rows[0][0].ToString().Substring(parentCode.Length, 2)) + 1).ToString().PadLeft(2, '0');
  105. }
  106. else
  107. {
  108. baseCode = parentCode + "01";
  109. }
  110. parm.Add(baseCode);
  111. parm.Add(page.Content);
  112. parm.Add(page.Key);
  113. parm.Add(page.icoKey);
  114. parm.Add("P");
  115. parm.Add(parentCode);
  116. parm.Add(page.Seq);
  117. parm.Add("10");
  118. parm.Add(page.Memo);
  119. parm.Add(UserInfo.GetUserID());
  120. parm.Add(UserInfo.GetUserName());
  121. CoreClientParam ccp = new CoreClientParam();
  122. ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
  123. ccp.MethodName = "doAddMemu";
  124. ccp.ServerParams = new object[] { parm };
  125. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  126. if (ccp != null)
  127. {
  128. if (ccp.ReturnCode == -1)
  129. {
  130. MessageUtil.ShowWarning(ccp.ReturnInfo);
  131. return;
  132. }
  133. }
  134. else
  135. {
  136. return;
  137. }
  138. MessageUtil.ShowTips("新增成功");
  139. //查询
  140. DoQueryPage();
  141. }
  142. public void DoUpdate()
  143. {
  144. if (ultraGrid1.ActiveRow == null)
  145. return;
  146. UltraGridRow row = ultraGrid1.ActiveRow;
  147. String baseCode = row.Cells["PAGE_ID"].Text;
  148. PageEdit page = new PageEdit();
  149. page.Content = row.Cells["PAGE_NAME"].Text;
  150. page.Key = row.Cells["PAGE_KEY"].Text;
  151. page.icoKey = row.Cells["ICO_KEY"].Text;
  152. page.Seq = row.Cells["PAGE_SEQ"].Text;
  153. page.Memo = row.Cells["MEMO"].Text;
  154. page.ShowDialog();
  155. if (string.IsNullOrEmpty(page.isClickYes))
  156. return;
  157. ArrayList parm = new ArrayList();
  158. DataTable dt = new DataTable();
  159. parm.Add(page.Content);
  160. parm.Add(page.Key);
  161. parm.Add(page.icoKey);
  162. parm.Add(page.Seq);
  163. parm.Add(page.Memo);
  164. parm.Add(UserInfo.GetUserID());
  165. parm.Add(UserInfo.GetUserName());
  166. parm.Add(baseCode);
  167. CoreClientParam ccp = new CoreClientParam();
  168. ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
  169. ccp.MethodName = "doUpdatePage";
  170. ccp.ServerParams = new object[] { parm };
  171. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  172. if (ccp != null)
  173. {
  174. if (ccp.ReturnCode == -1)
  175. {
  176. MessageUtil.ShowWarning(ccp.ReturnInfo);
  177. return;
  178. }
  179. }
  180. else
  181. {
  182. return;
  183. }
  184. MessageUtil.ShowTips("修改成功");
  185. DoQueryPage();
  186. }
  187. public void DoDelete()
  188. {
  189. if (ultraGrid1.ActiveRow == null)
  190. {
  191. MessageUtil.ShowTips("请先选中需要删除的数据");
  192. return;
  193. }
  194. UltraGridRow row = ultraGrid1.ActiveRow;
  195. String baseCode = row.Cells["PAGE_ID"].Text;
  196. ArrayList parm = new ArrayList();
  197. parm.Add("00");
  198. parm.Add(UserInfo.GetUserID());
  199. parm.Add(UserInfo.GetUserName());
  200. parm.Add(baseCode);
  201. CoreClientParam ccp = new CoreClientParam();
  202. ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
  203. ccp.MethodName = "doDelete";
  204. ccp.ServerParams = new object[] { parm };
  205. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  206. if (ccp != null)
  207. {
  208. if (ccp.ReturnCode == -1)
  209. {
  210. MessageUtil.ShowWarning(ccp.ReturnInfo);
  211. return;
  212. }
  213. }
  214. else
  215. {
  216. return;
  217. }
  218. MessageUtil.ShowTips("作废成功");
  219. DoQueryPage();
  220. }
  221. /// <summary>
  222. /// 树节点选中事件触发时,存储父节点id,防止当父节点选中项转移到其他焦点时,无法获取数据。
  223. /// </summary>
  224. private static string parentCode = "";
  225. /// <summary>
  226. /// 用于修改时验证重复项
  227. /// </summary>
  228. private static string VName = "";
  229. private bool IsExistValidChild(string baseCode)
  230. {
  231. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isExistValidChild", new object[] { baseCode }, ob);
  232. if (dt != null && dt.Rows[0][0].ToString() != "0")
  233. {
  234. return true;
  235. }
  236. return false;
  237. }
  238. private bool IsExistValidParent(string sortCode)
  239. {
  240. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isExistValidParent", new object[] { sortCode }, ob);
  241. if (dt != null && dt.Rows[0][0].ToString() != "0")
  242. {
  243. return true;
  244. }
  245. return false;
  246. }
  247. /// <summary>
  248. /// 查找具体的tag
  249. /// </summary>
  250. /// <param name="trnode"></param>
  251. /// <param name="treeTag"></param>
  252. /// <param name="treelist"></param>
  253. private void FindTreeNodeFromTag(TreeNode trnode, string treeTag, ref ArrayList treelist)
  254. {
  255. if (trnode.Tag != null && trnode.Tag.ToString() == treeTag)
  256. {
  257. treelist.Add(trnode);
  258. }
  259. foreach (TreeNode anode in trnode.Nodes)
  260. {
  261. FindTreeNodeFromTag(anode, treeTag, ref treelist);
  262. }
  263. }
  264. /// <summary>
  265. /// 刷新操作
  266. /// </summary>
  267. private void doQuery()
  268. {
  269. //查询按钮就当刷新功能。
  270. bandTreeView();
  271. }
  272. /// <summary>
  273. /// 刷新树控件
  274. /// </summary>
  275. /// <param name="sender"></param>
  276. /// <param name="e"></param>
  277. private void FrmBaseInfoNew_Load(object sender, EventArgs e)
  278. {
  279. bandTreeView();
  280. }
  281. /// <summary>
  282. /// 树控件绑定数据源
  283. /// </summary>
  284. public void bandTreeView()
  285. {
  286. treeView1.Nodes.Clear();
  287. DataTable dt = new DataTable();
  288. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.getTreeData", new Object[] { }, this.ob);
  289. //树控件递归绑定方法。
  290. Bind_Tv(dt, treeView1.Nodes, null, "PAGE_ID", "SORT_CODE", "PAGE_NAME");
  291. }
  292. /// <summary>
  293. /// top复选框选中事件触发,更新树控件数据源
  294. /// </summary>
  295. /// <param name="sender"></param>
  296. /// <param name="e"></param>
  297. private void chbx_CheckedChanged(object sender, EventArgs e)
  298. {
  299. if (this.Cursor == Cursors.WaitCursor) return;
  300. //刷新功能。
  301. try
  302. {
  303. this.Cursor = Cursors.WaitCursor;
  304. bandTreeView();
  305. }
  306. finally
  307. {
  308. this.Cursor = Cursors.Default;
  309. }
  310. }
  311. /// <summary>
  312. /// 刷新Grid数据源
  313. /// </summary>
  314. /// <param name="basecode"></param>
  315. //private void binUltraGrid(string basecode)
  316. //{
  317. // this.dataTable1.Clear();
  318. // DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { basecode }, this.ob);
  319. // GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  320. // //不同颜色区分是否有效数据
  321. // Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  322. // for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  323. // {
  324. // row = ultraGrid1.Rows[i];
  325. // if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("1"))
  326. // {
  327. // row.Appearance.ForeColor = Color.Red;
  328. // }
  329. // else
  330. // {
  331. // row.Appearance.ForeColor = Color.Black;
  332. // }
  333. // }
  334. // //内容自适应
  335. // GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, new UltraGridColumn[] {
  336. // ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"]
  337. // });
  338. //}
  339. /// <summary>
  340. /// 绑定TreeView(利用TreeNodeCollection)
  341. /// </summary>
  342. /// <param name="tnc">TreeNodeCollection(TreeView的节点集合)</param>
  343. /// <param name="pid_val">父id的值</param>
  344. /// <param name="id">数据库 id 字段名</param>
  345. /// <param name="pid">数据库 父id 字段名</param>
  346. /// <param name="text">数据库 文本 字段值</param>
  347. private void Bind_Tv(DataTable dtOld, TreeNodesCollection tnc, string pid_val, string id, string pid, string text)
  348. {
  349. dtOld.DefaultView.Sort = id + " Asc";
  350. DataTable dt = dtOld.DefaultView.ToTable();
  351. DataView dv = new DataView(dt);//将DataTable存到DataView中,以便于筛选数据
  352. UltraTreeNode tn;//建立TreeView的节点(TreeNode),以便将取出的数据添加到节点中
  353. //以下为三元运算符,如果父id为空,则为构建“父id字段 is null”的查询条件,否则构建“父id字段=父id字段值”的查询条件
  354. string filter = string.IsNullOrEmpty(pid_val) ? pid + " is null" : string.Format(pid + "='{0}'", pid_val);
  355. dv.RowFilter = filter;//利用DataView将数据进行筛选,选出相同 父id值 的数据
  356. dt.DefaultView.Sort = id + " Asc";
  357. foreach (DataRowView drv in dv)
  358. {
  359. tn = new UltraTreeNode();//建立一个新节点(学名叫:一个实例)
  360. tn.Tag = drv[id].ToString();//节点的Value值,一般为数据库的id值
  361. tn.Text = drv[text].ToString();//节点的Text,节点的文本显示
  362. tnc.Add(tn);//将该节点加入到TreeNodeCollection(节点集合)中
  363. Bind_Tv(dt, tn.Nodes, tn.Tag.ToString(), id, pid, text);//递归(反复调用这个方法,直到把数据取完为止)
  364. }
  365. }
  366. private void treeView1_AfterActivate(object sender, NodeEventArgs e)
  367. {
  368. try
  369. {
  370. this.Cursor = Cursors.WaitCursor;
  371. DoQueryPage();
  372. }
  373. finally
  374. {
  375. this.Cursor = Cursors.Default;
  376. }
  377. }
  378. private void addParent_Click(object sender, EventArgs e)
  379. {
  380. MenuzEdit menu = new MenuzEdit();
  381. //parentCode = treeView1.ActiveNode.Tag.ToString();
  382. menu.ShowDialog();
  383. if (string.IsNullOrEmpty(menu.isClickYes))
  384. return;
  385. ArrayList parm = new ArrayList();
  386. DataTable dt = new DataTable();
  387. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { "" }, this.ob);
  388. string baseCode = "";
  389. if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString()))
  390. {
  391. baseCode = "A"+(Convert.ToInt64(dt.Rows[0][0].ToString().Substring(1,2)) + 1).ToString().PadLeft(2,'0');
  392. }
  393. else
  394. {
  395. baseCode = "A01";
  396. }
  397. parm.Add(baseCode);
  398. parm.Add(menu.Content);
  399. parm.Add("");
  400. parm.Add(menu.Key);
  401. parm.Add("M");
  402. parm.Add("");
  403. parm.Add(menu.Seq);
  404. parm.Add("10");
  405. parm.Add("");
  406. parm.Add(UserInfo.GetUserID());
  407. parm.Add(UserInfo.GetUserName());
  408. CoreClientParam ccp = new CoreClientParam();
  409. ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
  410. ccp.MethodName = "doAddMemu";
  411. ccp.ServerParams = new object[] { parm };
  412. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  413. if (ccp.ReturnCode == -1) return;
  414. bandTreeView();
  415. }
  416. private void addChild_Click(object sender, EventArgs e)
  417. {
  418. MenuzEdit menu = new MenuzEdit();
  419. if (treeView1.ActiveNode==null)
  420. {
  421. MessageUtil.ShowTips("请先选中上级模块");
  422. return;
  423. }
  424. parentCode = treeView1.ActiveNode.Tag.ToString();
  425. menu.ShowDialog();
  426. if (string.IsNullOrEmpty(menu.isClickYes))
  427. return;
  428. ArrayList parm = new ArrayList();
  429. DataTable dt = new DataTable();
  430. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreMenuzConfigure.GetMaxBaseCode", new Object[] { parentCode }, this.ob);
  431. string baseCode = "";
  432. if (dt.Rows.Count > 0 && !"".Equals(dt.Rows[0][0].ToString()))
  433. {
  434. baseCode = parentCode + (Convert.ToInt64(dt.Rows[0][0].ToString().Substring(parentCode.Length, 2)) + 1).ToString().PadLeft(2, '0');
  435. }
  436. else
  437. {
  438. baseCode = parentCode+ "01";
  439. }
  440. parm.Add(baseCode);
  441. parm.Add(menu.Content);
  442. parm.Add("");
  443. parm.Add(menu.Key);
  444. parm.Add("M");
  445. parm.Add(parentCode);
  446. parm.Add(menu.Seq);
  447. parm.Add("10");
  448. parm.Add("");
  449. parm.Add(UserInfo.GetUserID());
  450. parm.Add(UserInfo.GetUserName());
  451. CoreClientParam ccp = new CoreClientParam();
  452. ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
  453. ccp.MethodName = "doAddMemu";
  454. ccp.ServerParams = new object[] { parm };
  455. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  456. if (ccp.ReturnCode == -1) return;
  457. //当前父节点新增一个子节点
  458. UltraTreeNode tn = new UltraTreeNode();
  459. tn.Text = menu.Content;
  460. tn.Tag = baseCode;
  461. treeView1.ActiveNode.Nodes.Add(tn);
  462. }
  463. private void update_Click(object sender, EventArgs e)
  464. {
  465. MenuzEdit menu = new MenuzEdit();
  466. if (treeView1.ActiveNode == null)
  467. {
  468. MessageUtil.ShowTips("请先选中需要修改的数据");
  469. return;
  470. }
  471. parentCode = treeView1.ActiveNode.Tag.ToString();
  472. menu.Content = treeView1.ActiveNode.Text;
  473. menu.ShowDialog();
  474. if (string.IsNullOrEmpty(menu.isClickYes))
  475. return;
  476. ArrayList parm = new ArrayList();
  477. DataTable dt = new DataTable();
  478. parm.Add(menu.Content);
  479. parm.Add(menu.Key);
  480. parm.Add(UserInfo.GetUserID());
  481. parm.Add(UserInfo.GetUserName());
  482. parm.Add(parentCode);
  483. CoreClientParam ccp = new CoreClientParam();
  484. ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
  485. ccp.MethodName = "doUpdateMemu";
  486. ccp.ServerParams = new object[] { parm };
  487. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  488. if (ccp.ReturnCode == -1) return;
  489. bandTreeView();
  490. }
  491. private void delete_Click(object sender, EventArgs e)
  492. {
  493. if (treeView1.ActiveNode == null)
  494. {
  495. MessageUtil.ShowTips("请先选中需要删除的数据");
  496. return;
  497. }
  498. String basecode = treeView1.ActiveNode.Tag.ToString();
  499. ArrayList parm = new ArrayList();
  500. DataTable dt = new DataTable();
  501. parm.Add("00");
  502. parm.Add(UserInfo.GetUserID());
  503. parm.Add(UserInfo.GetUserName());
  504. parm.Add(basecode);
  505. CoreClientParam ccp = new CoreClientParam();
  506. ccp.ServerName = "com.steering.pss.qcm.CoreMenuzConfigure";
  507. ccp.MethodName = "doDelete";
  508. ccp.ServerParams = new object[] { parm };
  509. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  510. if (ccp.ReturnCode == -1) return;
  511. bandTreeView();
  512. }
  513. }
  514. }