FrmBaseInfoNew.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Windows.Forms;
  8. using Core.Mes.Client.Comm.Control;
  9. using Core.Mes.Client.Comm.Server;
  10. using Core.Mes.Client.Comm.Tool;
  11. using Core.StlMes.Client.Mcp.Control.Entity;
  12. using CoreFS.CA06;
  13. using Infragistics.Win.UltraWinGrid;
  14. using Infragistics.Win.UltraWinTree;
  15. namespace Core.StlMes.Client.Mcp.Control.Base
  16. {
  17. public partial class FrmBaseInfoNew : FrmBase
  18. {
  19. private List<string> Codes = new List<string>();
  20. public FrmBaseInfoNew()
  21. {
  22. InitializeComponent();
  23. ExceptionHelper.RegistException();
  24. //this.IsLoadUserView = true; //平台F1功能
  25. }
  26. public override void ToolBar_Click(object sender, string ToolbarKey)
  27. {
  28. switch (ToolbarKey)
  29. {
  30. case "doQuery":
  31. try
  32. {
  33. this.Cursor = Cursors.WaitCursor;
  34. doQuery();
  35. }
  36. finally
  37. {
  38. this.Cursor = Cursors.Default;
  39. }
  40. break;
  41. case "doAdd":
  42. doAdd();
  43. break;
  44. case "doModify":
  45. doModify();
  46. break;
  47. case "doDelete":
  48. this.doDeleteOrResume(true);
  49. break;
  50. case "doResume":
  51. this.doDeleteOrResume(false);
  52. break;
  53. case "Close":
  54. this.Close();
  55. break;
  56. }
  57. }
  58. /// <summary>
  59. /// 树节点选中事件触发时,存储父节点id,防止当父节点选中项转移到其他焦点时,无法获取数据。
  60. /// </summary>
  61. private static string parentCode = "";
  62. /// <summary>
  63. /// 用于修改时验证重复项
  64. /// </summary>
  65. private static string VName = "";
  66. private bool IsExistValidChild(string baseCode)
  67. {
  68. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isExistValidChild", new object[]{baseCode}, ob);
  69. if (dt != null && dt.Rows[0][0].ToString() != "0")
  70. {
  71. return true;
  72. }
  73. return false;
  74. }
  75. private bool IsExistValidParent(string sortCode)
  76. {
  77. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isExistValidParent", new object[]{sortCode}, ob);
  78. if (dt != null && dt.Rows[0][0].ToString() != "0")
  79. {
  80. return true;
  81. }
  82. return false;
  83. }
  84. /// <summary>
  85. /// 作废或恢复
  86. /// </summary>
  87. /// <param name="isDelete">true作废 false恢复</param>
  88. private void doDeleteOrResume(bool isDelete)
  89. {
  90. //已经没有批量作废功能,单表作废功能实现。
  91. ArrayList param = new ArrayList();
  92. if (ultraGrid1.ActiveRow == null)
  93. {
  94. MessageBox.Show("请选择需要" + (isDelete ? "作废" : "恢复") + "的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  95. return;
  96. }
  97. string validflagStr = ultraGrid1.ActiveRow.Cells["VALIDFLAG"].Value.ToString();
  98. //无效数据不允许作废
  99. if ("0".Equals(validflagStr))
  100. {
  101. if (isDelete)
  102. {
  103. MessageBox.Show("无效数据不支持作废操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  104. return;
  105. }
  106. }
  107. else
  108. {
  109. //有效数据不允许恢复
  110. if (!isDelete)
  111. {
  112. MessageBox.Show("有效数据不支持恢复操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  113. return;
  114. }
  115. }
  116. string baseCode = ultraGrid1.ActiveRow.Cells["BASECODE"].Value.ToString();
  117. string parentCode = ultraGrid1.ActiveRow.Cells["SORTCODE"].Value.ToString();
  118. if (isDelete && IsExistValidChild(baseCode))
  119. {
  120. MessageUtil.ShowWarning("该节点包含有效的子节点,不能作废!");
  121. return;
  122. }
  123. if (isDelete == false && IsExistValidParent(parentCode) == false)
  124. {
  125. MessageUtil.ShowWarning("该节点没有有效的父节点,不能恢复!");
  126. return;
  127. }
  128. ArrayList parm = new ArrayList();
  129. param.Add(baseCode);
  130. if (param.Count > 0 && MessageBox.Show("是否确认" + (isDelete ? "作废" : "恢复") + "选中的数据!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
  131. {
  132. try
  133. {
  134. int count = ServerHelper.SetData("com.steering.pss.qcm.CoreBaseInfoNew.deleteLineInfo", new Object[] { param, UserInfo.GetUserName(), isDelete }, this.ob);
  135. if (count > 0)
  136. {
  137. binUltraGrid(parentCode);
  138. //作废聚焦
  139. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  140. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  141. {
  142. row = ultraGrid1.Rows[i];
  143. if (row.Cells["BASECODE"].Value.ToString().Equals(baseCode))
  144. {
  145. row.Activate();
  146. break;
  147. }
  148. }
  149. }
  150. }
  151. catch (Exception ex)
  152. {
  153. MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  154. }
  155. }
  156. }
  157. /// <summary>
  158. /// 验证必填项
  159. /// </summary>
  160. /// <returns></returns>
  161. private bool ValidInput()
  162. {
  163. if (string.IsNullOrEmpty(txtName.Text.Trim()))
  164. {
  165. MessageBox.Show("请输入基础分类名称!","提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  166. return false;
  167. }
  168. return true;
  169. }
  170. /// <summary>
  171. /// 修改操作
  172. /// </summary>
  173. private void doModify()
  174. {
  175. //判断当前树节点是否有选中项,如果没有则不允许新增。 || !(treeView1.SelectedNode.Nodes.Count > 0)
  176. //if (treeView1.SelectedNode == null)
  177. //{
  178. // MessageBox.Show("请先选中左侧基础分类树节点!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  179. // return;
  180. //}
  181. if (parentCode == "")
  182. {
  183. MessageBox.Show("请先选中左侧基础分类树节点!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  184. return;
  185. }
  186. //BASECODE,BASENAME,SORTCODE,ISVISIBLE,MNEMONIC_CODE,SEQ,FLAG
  187. //基础分类编码,基础分类名称,快速检索码,可编辑标志(1:可编辑,0:不可编辑),拼音助记码,序号(排序用),
  188. //是否允许增加子类(1:允许,0:不允许)
  189. if (ultraGrid1.ActiveRow == null)
  190. {
  191. MessageBox.Show("请选择需要修改的数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  192. return;
  193. }
  194. string validflagStr = ultraGrid1.ActiveRow.Cells["VALIDFLAG"].Value.ToString();
  195. //无效数据不允许修改
  196. if ("0".Equals(validflagStr))
  197. {
  198. MessageBox.Show("无效数据不支持修改操作。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  199. return;
  200. }
  201. if (ValidInput())
  202. {
  203. ArrayList parm = new ArrayList();
  204. //父节点的编号+当前手动输入的后半段编号,需要提供验证功能。
  205. string baseCode = this.ultraGrid1.ActiveRow.Cells["baseCode"].Value.ToString();
  206. //先判断基础分类名称是否重复,如果重复则return,并提示他。
  207. string name = txtName.Text.Trim();
  208. //验证是否修改了name
  209. if (!VName.Equals(name))
  210. {
  211. //验证名称是否重复。
  212. if (isRepeatName(parentCode, name))
  213. {
  214. MessageBox.Show("基础分类名称\"" + name + "\"已存在,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  215. return;
  216. }
  217. }
  218. if (MessageBox.Show("是否确认修改?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  219. {
  220. return;
  221. }
  222. //基础分类名称
  223. parm.Add(name);
  224. //快速检索码,父节点编号
  225. //string parentCode = this.parentCode;
  226. //parm.Add(parentCode);
  227. //可编辑标识
  228. //parm.Add(cmbEdit.Value.ToString().Trim());
  229. //拼音助记码
  230. parm.Add("");
  231. //序号也应该是自动生成的
  232. //parm.Add(txtSEQ.Text.Trim());
  233. //是否允许添加子类,因此,实际上在新增时,还需要判断该字段,假设为否,则提示他不可以新增子类。
  234. if (chbxAddChild.Checked)
  235. {
  236. parm.Add(1);
  237. }
  238. else
  239. {
  240. parm.Add(0);
  241. }
  242. //admin
  243. parm.Add(this.UserInfo.GetUserName());
  244. //备注
  245. parm.Add(txtMemo.Text);
  246. //属性A
  247. parm.Add("");
  248. //属性B
  249. parm.Add("");
  250. //责任部门
  251. parm.Add("");
  252. //标准
  253. parm.Add("");
  254. //id最后加入
  255. parm.Add(baseCode);
  256. CoreClientParam ccp = new CoreClientParam();
  257. ccp.ServerName = "com.steering.pss.qcm.CoreBaseInfoNew";
  258. ccp.MethodName = "doModify";
  259. ccp.ServerParams = new object[] { parm };
  260. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  261. if (ccp.ReturnCode == -1) return;
  262. //刷新Grid数据
  263. binUltraGrid(parentCode);
  264. //刷新树节点数据
  265. //treeView1.SelectedNode.Nodes.Find(baseCode,false) = name;
  266. //修改树节点数据
  267. foreach (UltraTreeNode anode in treeView1.ActiveNode.Nodes)
  268. {
  269. if (baseCode.Equals(anode.Tag.ToString()))
  270. {
  271. anode.Text = name;
  272. }
  273. }
  274. //高亮显示新增的数据
  275. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  276. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  277. {
  278. row = ultraGrid1.Rows[i];
  279. if (row.Cells["BASECODE"].Value.ToString().Equals(baseCode))
  280. {
  281. row.Activate();
  282. break;
  283. }
  284. }
  285. }
  286. }
  287. /// <summary>
  288. /// 查找树节点根据tag
  289. /// </summary>
  290. /// <param name="treeview">要查找的树</param>
  291. /// <param name="treeTag">treetag</param>
  292. /// <returns></returns>
  293. public TreeNode[] FindTreeNodeByNodeTag(TreeView treeview, string treeTag)
  294. {
  295. if (treeview.Nodes == null)
  296. {
  297. return null;
  298. }
  299. TreeNode[] treeNodeList = null;
  300. ArrayList treelist = new ArrayList();
  301. foreach (TreeNode trnode in treeview.Nodes)
  302. {
  303. FindTreeNodeFromTag(trnode, treeTag, ref treelist);
  304. }
  305. if (treelist.Count > 0)
  306. {
  307. treeNodeList = new TreeNode[treelist.Count];
  308. for (int i = 0; i < treelist.Count; i++)
  309. {
  310. treeNodeList[i] = (TreeNode)treelist[i];
  311. }
  312. }
  313. return treeNodeList;
  314. }
  315. /// <summary>
  316. /// 查找具体的tag
  317. /// </summary>
  318. /// <param name="trnode"></param>
  319. /// <param name="treeTag"></param>
  320. /// <param name="treelist"></param>
  321. private void FindTreeNodeFromTag(TreeNode trnode, string treeTag, ref ArrayList treelist)
  322. {
  323. if (trnode.Tag != null && trnode.Tag.ToString() == treeTag)
  324. {
  325. treelist.Add(trnode);
  326. }
  327. foreach (TreeNode anode in trnode.Nodes)
  328. {
  329. FindTreeNodeFromTag(anode, treeTag, ref treelist);
  330. }
  331. }
  332. /// <summary>
  333. /// 验证名称是否重复。
  334. /// </summary>
  335. /// <param name="name"></param>
  336. /// <returns></returns>
  337. private bool isRepeatName(string sortCode,string baseName)
  338. {
  339. DataTable dt = new DataTable();
  340. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.GetName", new Object[] { sortCode, baseName }, this.ob);
  341. if (dt.Rows.Count > 0)
  342. {
  343. return true;
  344. }
  345. else
  346. {
  347. return false;
  348. }
  349. }
  350. /// <summary>
  351. /// 验证是否允许添加子项
  352. /// </summary>
  353. /// <param name="parentCode"></param>
  354. /// <returns></returns>
  355. private bool isAddChild(string baseCode)
  356. {
  357. DataTable dt = new DataTable();
  358. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.isAddChild", new Object[] { baseCode }, this.ob);
  359. if ("1".Equals(dt.Rows[0]["FLAG"].ToString()))
  360. {
  361. return true;
  362. }
  363. else
  364. {
  365. return false;
  366. }
  367. }
  368. /// <summary>
  369. /// 新增操作
  370. /// </summary>
  371. private void doAdd()
  372. {
  373. //判断当前树节点是否有选中项,如果没有则不允许新增。
  374. //单击新增时,树节点势必没有选中。
  375. //if (treeView1.SelectedNode == null || !(treeView1.SelectedNode.Nodes.Count > 0))
  376. //{
  377. // MessageBox.Show("请先选中树节点!", "提示");
  378. // return;
  379. //}
  380. if (parentCode == "")
  381. {
  382. MessageBox.Show("请先选中左侧基础分类树节点!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  383. return;
  384. }
  385. if (ValidInput())
  386. {
  387. //基础分类名称
  388. string name = txtName.Text.Trim();
  389. if (isRepeatName(parentCode, name))
  390. {
  391. MessageBox.Show("基础分类名称\"" + name + "\"已存在,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  392. return;
  393. }
  394. //string parentCode = parentCode;
  395. //判断当前父类是否允许增加子类
  396. if (!isAddChild(parentCode))
  397. {
  398. MessageBox.Show("当前父类基础信息不允许增加子类!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  399. return;
  400. }
  401. if (MessageBox.Show("是否确认新增?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  402. {
  403. return;
  404. }
  405. ArrayList parm = new ArrayList();
  406. //BASECODE,BASENAME,SORTCODE,ISVISIBLE,MNEMONIC_CODE,SEQ,FLAG
  407. //基础分类编码,基础分类名称,快速检索码,可编辑标志(1:可编辑,0:不可编辑),拼音助记码,序号(排序用),
  408. //是否允许增加子类(1:允许,0:不允许)
  409. //自动生成编号,需要查询出当前父节点下最大编号。
  410. DataTable dt = new DataTable();
  411. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.GetMaxBaseCode", new Object[] { parentCode }, this.ob);
  412. string baseCode = "";
  413. if (dt.Rows.Count > 0&&!"".Equals(dt.Rows[0][0].ToString()))
  414. {
  415. baseCode = (Convert.ToInt64(dt.Rows[0][0]) + 1).ToString();
  416. }
  417. else
  418. {
  419. if (parentCode.Length > 1)
  420. {
  421. baseCode = parentCode + "01";
  422. }
  423. else
  424. {
  425. baseCode = parentCode + "001";
  426. }
  427. }
  428. parm.Add(baseCode);
  429. parm.Add(name);
  430. //快速检索码,父节点编号
  431. parm.Add(parentCode);
  432. //可编辑标识
  433. //parm.Add(cmbEdit.Value.ToString());
  434. //拼音助记码
  435. parm.Add("");
  436. //序号也应该是自动生成的
  437. //parm.Add(txtSEQ.Text.Trim());
  438. //是否允许添加子类,因此,实际上在新增时,还需要判断该字段,假设为否,则提示他不可以新增子类。
  439. if (chbxAddChild.Checked)
  440. {
  441. parm.Add(1);
  442. }
  443. else
  444. {
  445. parm.Add(0);
  446. }
  447. //admin
  448. parm.Add(this.UserInfo.GetUserName());
  449. //备注
  450. parm.Add(txtMemo.Text);
  451. //属性A
  452. parm.Add("");
  453. //属性B
  454. parm.Add("");
  455. //责任部门
  456. parm.Add("");
  457. //属性B
  458. parm.Add("");
  459. CoreClientParam ccp = new CoreClientParam();
  460. ccp.ServerName = "com.steering.pss.qcm.CoreBaseInfoNew";
  461. ccp.MethodName = "doAdd";
  462. ccp.ServerParams = new object[] { parm };
  463. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  464. if (ccp.ReturnCode == -1) return;
  465. //刷新数据源
  466. binUltraGrid(parentCode);
  467. //树节点刷新,树节点会折叠起来。
  468. //bandTreeView();
  469. //当前父节点新增一个子节点
  470. UltraTreeNode tn = new UltraTreeNode();
  471. tn.Text = name;
  472. tn.Tag = baseCode;
  473. treeView1.ActiveNode.Nodes.Add(tn);
  474. //高亮显示新增的数据
  475. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  476. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  477. {
  478. row = ultraGrid1.Rows[i];
  479. if (row.Cells["BASECODE"].Value.ToString().Equals(baseCode))
  480. {
  481. row.Activate();
  482. break;
  483. }
  484. }
  485. }
  486. }
  487. /// <summary>
  488. /// 刷新操作
  489. /// </summary>
  490. private void doQuery()
  491. {
  492. //查询按钮就当刷新功能。
  493. bandTreeView();
  494. }
  495. /// <summary>
  496. /// 刷新树控件
  497. /// </summary>
  498. /// <param name="sender"></param>
  499. /// <param name="e"></param>
  500. private void FrmBaseInfoNew_Load(object sender, EventArgs e)
  501. {
  502. //绑定是否可编辑控件
  503. //bandCmbEdit();
  504. Codes = this.CustomInfo.ToString2().Split(';').ToList();
  505. //根据已选择的项,绑定树控件。
  506. bandTreeView();
  507. }
  508. /// <summary>
  509. /// //绑定是否可编辑控件
  510. /// </summary>
  511. //public void bandCmbEdit()
  512. //{
  513. // DataTable dt = new DataTable();
  514. // dt.Columns.Add("display");
  515. // dt.Columns.Add("value");
  516. // DataRow dr = dt.NewRow();
  517. // dr["display"] = "是";
  518. // dr["value"] = "1";
  519. // DataRow drB = dt.NewRow();
  520. // drB["display"] = "否";
  521. // drB["value"] = "0";
  522. // dt.Rows.Add(dr);
  523. // dt.Rows.Add(drB);
  524. // cmbEdit.DataSource = dt;
  525. // cmbEdit.DisplayMember = "display";
  526. // cmbEdit.ValueMember = "value";
  527. //}
  528. /// <summary>
  529. /// 树控件绑定数据源
  530. /// </summary>
  531. public void bandTreeView()
  532. {
  533. List<ComBaseInfoEntity> list = EntityHelper.GetData<ComBaseInfoEntity>(
  534. "com.steering.pss.qcm.CoreBaseInfoNew.getTreeDataNew",
  535. new object[] { Codes },
  536. ob);
  537. AddChildNodes(treeView1, list);
  538. }
  539. /// <summary>
  540. /// top复选框选中事件触发,更新树控件数据源
  541. /// </summary>
  542. /// <param name="sender"></param>
  543. /// <param name="e"></param>
  544. private void chbx_CheckedChanged(object sender, EventArgs e)
  545. {
  546. if (this.Cursor == Cursors.WaitCursor) return;
  547. //刷新功能。
  548. try
  549. {
  550. this.Cursor = Cursors.WaitCursor;
  551. bandTreeView();
  552. }
  553. finally
  554. {
  555. this.Cursor = Cursors.Default;
  556. }
  557. }
  558. /// <summary>
  559. /// 刷新Grid数据源
  560. /// </summary>
  561. /// <param name="basecode"></param>
  562. private void binUltraGrid(string basecode)
  563. {
  564. this.dataTable1.Clear();
  565. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreBaseInfoNew.doQuery", new Object[] { basecode }, this.ob);
  566. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  567. //不同颜色区分是否有效数据
  568. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  569. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  570. {
  571. row = ultraGrid1.Rows[i];
  572. if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("1"))
  573. {
  574. row.Appearance.ForeColor = Color.Red;
  575. }
  576. else
  577. {
  578. row.Appearance.ForeColor = Color.Black;
  579. }
  580. }
  581. //内容自适应
  582. GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, new UltraGridColumn[] {
  583. ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"]
  584. });
  585. }
  586. public void AddChildNodes(UltraTree Root, List<ComBaseInfoEntity> Data)
  587. {
  588. Root.Nodes.Clear();
  589. Data.Where(p =>Codes.Contains(p.Basecode)).ToList().ForEach(p =>
  590. {
  591. UltraTreeNode child = new UltraTreeNode
  592. {
  593. Text = p.Basename,
  594. Tag = p.Basecode
  595. };
  596. AddChildNodes(child, Data, p.Basecode);
  597. Root.Nodes.Add(child);
  598. }
  599. );
  600. }
  601. public void AddChildNodes(UltraTreeNode Root, List<ComBaseInfoEntity> Data, string Key)
  602. {
  603. Data.Where(p => p.Sortcode == Key).ToList().ForEach(p =>
  604. {
  605. UltraTreeNode child = new UltraTreeNode
  606. {
  607. Text = p.Basename,
  608. Tag = p.Basecode
  609. };
  610. AddChildNodes(child, Data, p.Basecode);
  611. Root.Nodes.Add(child);
  612. }
  613. );
  614. }
  615. /// <summary>
  616. /// 为编辑区域赋值
  617. /// </summary>
  618. /// <param name="sender"></param>
  619. /// <param name="e"></param>
  620. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  621. {
  622. //BASECODE,BASENAME,SORTCODE,ISVISIBLE,MNEMONIC_CODE,SEQ,FLAG
  623. //基础分类编码,基础分类名称,快速检索码,可编辑标志(1:可编辑,0:不可编辑),拼音助记码,序号(排序用),
  624. //是否允许增加子类(1:允许,0:不允许)
  625. Infragistics.Win.UltraWinGrid.UltraGridRow row = ultraGrid1.ActiveRow;
  626. if (row != null)
  627. {
  628. //基础分类编码
  629. //txtCodePart2.Text = row.Cells["BASECODE"].Value.ToString();
  630. //基础分类名称
  631. txtName.Text = row.Cells["BASENAME"].Value.ToString();
  632. //存储name,用于修改时验证重复项。
  633. VName = row.Cells["BASENAME"].Value.ToString();
  634. //快速检索码,进入Grid之前就已经进行赋值。
  635. //txtCodePart2.Text = row.Cells["SORTCODE"].Value.ToString();
  636. //可编辑标志
  637. //cmbEdit.Value = row.Cells["ISVISIBLE"].Value.ToString();
  638. //拼音助记码
  639. //txtPym.Text = row.Cells["MNEMONIC_CODE"].Value.ToString();
  640. //序号
  641. //txtSEQ.Text = row.Cells["SEQ"].Value.ToString();
  642. //是否允许增加子类
  643. if ("1".Equals(row.Cells["FLAG"].Value.ToString()))
  644. {
  645. chbxAddChild.Checked = true;
  646. }
  647. else
  648. {
  649. chbxAddChild.Checked = false;
  650. }
  651. //备注
  652. txtMemo.Text = row.Cells["MEMO"].Value.ToString();
  653. }
  654. }
  655. private void treeView1_AfterActivate(object sender, NodeEventArgs e)
  656. {
  657. try
  658. {
  659. this.Cursor = Cursors.WaitCursor;
  660. //给编辑区域控件赋值。
  661. //基础分类编码
  662. //txtCodePart1.Text = e.Node.Tag.ToString();
  663. //快速检索码
  664. //txtSCode.Text = e.Node.Tag.ToString();
  665. //刷新Grid数据源,将父节点等于当前选中节点的数据全部取出来,构建数据源。
  666. parentCode = e.TreeNode.Tag.ToString();
  667. binUltraGrid(parentCode);
  668. }
  669. finally
  670. {
  671. this.Cursor = Cursors.Default;
  672. }
  673. }
  674. }
  675. }