FrmPack.cs 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992
  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.UltraWinEditors;
  6. using Infragistics.Win.UltraWinGrid;
  7. using System;
  8. using System.Collections;
  9. using System.Collections.Generic;
  10. using System.Data;
  11. using System.Drawing;
  12. using System.Windows.Forms;
  13. namespace Core.StlMes.Client.Qcm
  14. {
  15. public partial class FrmPack : FrmBase
  16. {
  17. public FrmPack()
  18. {
  19. InitializeComponent();
  20. this.IsLoadUserView = true; //平台F1功能
  21. }
  22. private string msc;
  23. private string msc_desc;
  24. public UltraGridRow rowparm;
  25. private List<string> MSCCodes = new List<string>(); //做过操作的冶金规范码和序号
  26. ArrayList parentParm = new ArrayList(); //主表批量参数 新增
  27. ArrayList parentParmU = new ArrayList(); //主表批量数据 修改
  28. ArrayList childParm = new ArrayList(); //从表批量数据 新增
  29. ArrayList childParmU = new ArrayList(); //从表批量数据 修改
  30. /// <summary>
  31. /// 初始化下拉框
  32. /// </summary>
  33. /// <param name="uce">下拉框comboEditor</param>
  34. /// <param name="MethodId">服务方法,包名+类名+方法名</param>
  35. /// <param name="memberValue">下拉框的值成员</param>
  36. private void initJGDropDown(UltraComboEditor uce, string MethodId, string memberValue)
  37. {
  38. //初始化编辑区域下拉框
  39. DataTable dt = ServerHelper.GetData(MethodId, null, this.ob);
  40. if (dt != null && dt.Rows.Count > 0)
  41. {
  42. if (uce == ultraComboEditor4 || uce == ultraComboEditor1)
  43. {
  44. DataRow dr = dt.NewRow();
  45. object[] obj = { "", "" };
  46. dr.ItemArray = obj;
  47. dt.Rows.Add(dr);
  48. }
  49. uce.DataSource = dt;
  50. uce.ValueMember = memberValue;
  51. }
  52. }
  53. private void FrmPack_Load(object sender, EventArgs e)
  54. {
  55. InitMSC();
  56. initJGDropDown(this.ultraComboEditor1, "com.steering.pss.qcm.PackAndMSC.GetXZSpec", "BASECODE");
  57. initJGDropDown(this.ultraComboEditor4, "com.steering.pss.qcm.PackAndMSC.GetJGSpec", "SPEC_CODE");
  58. initJGDropDown(this.ultraComboEditor5, "com.steering.pss.qcm.PackAndMSC.GetBase", "BASECODE");
  59. initJGDropDown(this.ultraComboEditor6, "com.steering.pss.qcm.PackAndMSC.GetItem", "BASECODE");
  60. initJGDropDown(this.ultraComboEditor7, "com.steering.pss.qcm.PackAndMSC.GetNote", "BASECODE");
  61. }
  62. private void InitMSC()
  63. {
  64. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.PackAndMSC.GetMSC", null, this.ob);
  65. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable3, true);
  66. GridHelper.RefreshAndAutoSize(ultraGrid1);
  67. if (dt != null && dt.Rows.Count > 0)
  68. {
  69. this.ultraGrid2.DisplayLayout.Override.AllowAddNew = AllowAddNew.TemplateOnBottom;
  70. ultraGrid1.Rows[0].Activate();
  71. }
  72. else
  73. {
  74. this.ultraGrid2.DisplayLayout.Override.AllowAddNew = AllowAddNew.No;
  75. }
  76. }
  77. public override void ToolBar_Click(object sender, string ToolbarKey)
  78. {
  79. switch (ToolbarKey)
  80. {
  81. case "Query":
  82. this.InitMSC();
  83. break;
  84. case "Query1":
  85. this.doQuery(true);
  86. break;
  87. case "Save":
  88. this.doSave();
  89. break;
  90. case "Delete":
  91. this.doDeleteOrResume(true);
  92. break;
  93. case "Resume":
  94. this.doDeleteOrResume(false);
  95. break;
  96. case "Close":
  97. this.Close();
  98. break;
  99. }
  100. }
  101. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  102. {
  103. UltraGridRow ugr1 = this.ultraGrid1.ActiveRow;
  104. msc = ugr1.Cells["MSC"].Value.ToString();
  105. msc_desc = ugr1.Cells["MSC_DESC"].Value.ToString();
  106. doQuery(false);
  107. }
  108. //在客户端自动生成编号,但为了最大程度的并发,编号已改为服务端生成,这里只是界面上的显示数据,并非写入数据库的编号。
  109. private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
  110. {
  111. UltraGridRow ugr2 = this.ultraGrid2.ActiveRow; //当前激活行,其实可以用e
  112. UltraGridRow ugr3 = this.ultraGrid2.ActiveRow;
  113. for (int j = 1; j < ugr2.Cells.Count; j++)
  114. {
  115. ugr2.Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  116. }
  117. if (ugr2.Cells["MSC"].Value.ToString() == "")
  118. {
  119. ugr2.Cells["MSC"].Value = msc;
  120. }
  121. this.ultraGrid2.UpdateData();
  122. if (ugr2.Cells["MSC"].Value.ToString() != "" && !ugr2.HasParent())
  123. {
  124. int index_seq = 0;
  125. DataRow[] dr = dataTable1.Select("", "INDEX_SEQ DESC");
  126. if (dr.Length > 0) //界面上有数据
  127. {
  128. index_seq = Convert.ToInt32(dr[0]["INDEX_SEQ"]); //取得界面上序号最大的数据
  129. }
  130. index_seq += 1; //界面上的序号+1
  131. ugr2.Cells["INDEX_SEQ"].Value = index_seq;
  132. }
  133. if (ugr3.Cells["MSC"].Value.ToString() != "" && ugr3.HasParent())
  134. {
  135. DataRow[] dr = dataTable2.Select("INDEX_SEQ='" + ugr3.Cells["INDEX_SEQ"].Value.ToString() + "'", "INDEX_SEQ_C DESC");
  136. int index_seq_c = 0;
  137. if (dr.Length > 0)
  138. {
  139. index_seq_c = Convert.ToInt32(dr[0]["INDEX_SEQ_C"]); //界面上子表的序号
  140. }
  141. index_seq_c += 1;
  142. ugr3.Cells["INDEX_SEQ_C"].Value = index_seq_c;
  143. }
  144. }
  145. /// <summary>
  146. /// 表格点击事件(扣型选择)
  147. /// </summary>
  148. /// <param name="sender"></param>
  149. /// <param name="e"></param>
  150. private void ultraGrid2_ClickCellButton(object sender, CellEventArgs e)
  151. { //单击表格按钮时间(有一列格子设为按钮)
  152. UltraGridRow ugr = this.ultraGrid2.ActiveRow;
  153. if (e.Cell.Column.Key.Equals("MODEL_DESC") && ugr.Cells["CHK"].Value.ToString().ToUpper() != "FALSE")
  154. { //这一按钮列被点击,同时被点击的这一行被勾选了。
  155. this.rowparm = this.ultraGrid2.ActiveRow;
  156. FrmModel fm = new FrmModel();
  157. fm.FrmOb = this.ob; //ob对象传到扣型选择界面
  158. fm.Desc = rowparm.Cells["MODEL_DESC"].Value.ToString(); //激活行的扣型描述
  159. fm.ShowDialog();
  160. rowparm.Cells["MODEL_CODE"].Value = fm.Code; //选择的扣型集合代码
  161. rowparm.Cells["MODEL_DESC"].Value = fm.Desc; //选择的扣型集合描述 //返回到点击界面。
  162. }
  163. }
  164. private void ultraGrid2_AfterCellUpdate(object sender, CellEventArgs e)
  165. {//界面上的值更新了
  166. UltraGridRow ugr = this.ultraGrid2.ActiveRow;
  167. if (e.Cell.Column.Key.Equals("SIZE_NAME2"))
  168. {
  169. if (ugr.Cells["SIZE_NAME2"].Value.ToString() != "")
  170. {
  171. this.ultraComboEditor1.Text = ugr.Cells["SIZE_NAME2"].Text.ToString();
  172. ugr.Cells["SIZE_CODE2"].Value = this.ultraComboEditor1.Value.ToString();
  173. }
  174. }
  175. if (e.Cell.Column.Key.Equals("SIZE_NAME"))
  176. {
  177. if (ugr.Cells["SIZE_NAME"].Value.ToString() != "")
  178. {
  179. this.ultraComboEditor1.Text = ugr.Cells["SIZE_NAME"].Text.ToString();
  180. ugr.Cells["SIZE_CODE"].Value = this.ultraComboEditor1.Value.ToString();
  181. }
  182. }
  183. if (e.Cell.Column.Key.Equals("SIZE_JG_NAME"))
  184. {
  185. if (ugr.Cells["SIZE_JG_NAME"].Value.ToString() != "")
  186. {
  187. this.ultraComboEditor4.Text = ugr.Cells["SIZE_JG_NAME"].Text.ToString();
  188. ugr.Cells["SIZE_JG_CODE"].Value = this.ultraComboEditor4.Value.ToString();
  189. }
  190. }
  191. if (e.Cell.Column.Key.Equals("BASE_DESC"))
  192. {
  193. this.ultraComboEditor5.Text = ugr.Cells["BASE_DESC"].Text.ToString();
  194. ugr.Cells["BASE_CODE"].Value = this.ultraComboEditor5.Value.ToString();
  195. }
  196. if (e.Cell.Column.Key.Equals("ITEM_DESC"))
  197. {
  198. this.ultraComboEditor6.Text = ugr.Cells["ITEM_DESC"].Text.ToString();
  199. ugr.Cells["ITEM_CODE"].Value = this.ultraComboEditor6.Value.ToString();
  200. }
  201. if (e.Cell.Column.Key.Equals("NOTE_DESC"))
  202. {
  203. this.ultraComboEditor7.Text = ugr.Cells["NOTE_DESC"].Text.ToString();
  204. ugr.Cells["NOTE_CODE"].Value = this.ultraComboEditor7.Value.ToString();
  205. }
  206. }
  207. /// <summary>
  208. /// 获取界面上的数据
  209. /// </summary>
  210. /// <returns>0成功,-1失败</returns>
  211. private int GetGridData()
  212. {//获取主表的数据
  213. int checkflag = 0;
  214. double max1 = 0;
  215. double min1 = 0;
  216. double max = 0;
  217. double min = 0;
  218. this.ultraGrid2.UpdateData();
  219. parentParm = new ArrayList();
  220. childParm = new ArrayList();
  221. parentParmU = new ArrayList();
  222. childParmU = new ArrayList();
  223. UltraGridRow ug = this.ultraGrid1.ActiveRow;
  224. if (ug == null)
  225. {
  226. MessageBox.Show("您没有选择冶金规范码,系统不允许添加", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  227. return -1;
  228. }
  229. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in ultraGrid2.Rows)
  230. {
  231. if (row.Cells["CHK"].Value.ToString().ToUpper() != "FALSE")
  232. {
  233. checkflag += 1;
  234. if (row.Cells["SIZE_NAME2"].Value.ToString() == "" && row.Cells["SIZE_NAME"].Value.ToString() == ""
  235. && row.Cells["SIZE_JG_NAME"].Value.ToString() == "")
  236. {
  237. MessageBox.Show("请在限制规格描述或接箍规格描述中选择一项数据", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  238. row.Activate();
  239. return -1;
  240. }
  241. //限制规格和接箍规格不能同时存在。
  242. if (row.Cells["SIZE_NAME2"].Value.ToString() != "" || row.Cells["SIZE_NAME"].Value.ToString() != "")
  243. {
  244. if (row.Cells["SIZE_NAME2"].Value.ToString() == row.Cells["SIZE_NAME"].Value.ToString())
  245. {
  246. MessageBox.Show("限制规格1描述和限制规格2描述不能一样", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  247. row.Activate();
  248. return -1;
  249. }
  250. }
  251. if (row.Cells["SIZE_JG_NAME"].Value.ToString().Trim() != "" && (row.Cells["SIZE_NAME2"].Value.ToString().Trim() != ""
  252. || row.Cells["SIZE_NAME"].Value.ToString().Trim() != ""))
  253. {
  254. MessageBox.Show("限制规格和接箍规格不能同时存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  255. row.Activate();
  256. return -1;
  257. }
  258. if (row.Cells["SIZE_NAME2"].Value.ToString() != "")
  259. {//限制规格1描述不为空
  260. if (row.Cells["SIZE_MIN_SIGN2"].Value.ToString() == "" && row.Cells["SIZE_MAX_SIGN2"].Value.ToString() == "")
  261. {
  262. MessageBox.Show("限制规格1描述存在的情况下,限制规格1上限符号和限制1下限符号至少存在一个", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  263. row.Activate();
  264. return -1;
  265. }
  266. else if (row.Cells["SIZE_MIN_SIGN2"].Value.ToString().Trim() != "")
  267. {
  268. if (row.Cells["SIZE_MIN2"].Value.ToString() == "")
  269. {
  270. MessageBox.Show("请输入限制规格1下限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  271. row.Activate();
  272. return -1;
  273. }
  274. }
  275. else if (row.Cells["SIZE_MIN_SIGN2"].Value.ToString().Trim() == "")
  276. {
  277. if (row.Cells["SIZE_MIN2"].Value.ToString().Trim() != "")
  278. {
  279. MessageBox.Show("限制规格1下限符号不存在,请选择限制规格1下限符号或者清空限制规格1下限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  280. row.Activate();
  281. return -1;
  282. }
  283. }
  284. if (row.Cells["SIZE_MAX_SIGN2"].Value.ToString().Trim() != "")
  285. {
  286. if (row.Cells["SIZE_MAX2"].Value.ToString().Trim() == "")
  287. {
  288. MessageBox.Show("请输入限制规格1上限值", "提示");
  289. row.Activate();
  290. return -1;
  291. }
  292. }
  293. else if (row.Cells["SIZE_MAX_SIGN2"].Value.ToString().Trim() == "")
  294. {
  295. if (row.Cells["SIZE_MAX2"].Value.ToString().Trim() != "")
  296. {
  297. MessageBox.Show("限制规格1上限符号不存在,请选择限制规格1上限符号或者清空限制规格1上限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  298. row.Activate();
  299. return -1;
  300. }
  301. }
  302. //上下限数值转化 比较大小
  303. if (row.Cells["SIZE_MIN2"].Value.ToString() != "")
  304. {
  305. if (StringUtil.IsNumber(row.Cells["SIZE_MIN2"].Value.ToString()))
  306. {
  307. min1 = Convert.ToDouble(row.Cells["SIZE_MIN2"].Value.ToString());
  308. }
  309. else if (row.Cells["SIZE_MIN_SIGN2"].Value.ToString().Trim() != "=" && row.Cells["SIZE_MIN_SIGN2"].Value.ToString().Trim() != "")
  310. {
  311. MessageBox.Show("限制规格1下限请输入数字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  312. row.Activate();
  313. return -1;
  314. }
  315. }
  316. if (row.Cells["SIZE_MAX2"].Value.ToString().Trim() != "")
  317. {
  318. if (StringUtil.IsNumber(row.Cells["SIZE_MAX2"].Value.ToString()))
  319. {
  320. max1 = Convert.ToDouble(row.Cells["SIZE_MAX2"].Value.ToString());
  321. }
  322. else if (row.Cells["SIZE_MAX_SIGN2"].Value.ToString().Trim() != "")
  323. {
  324. MessageBox.Show("限制规格1上限请输入数字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  325. row.Activate();
  326. return -1;
  327. }
  328. }
  329. }
  330. else if (row.Cells["SIZE_MIN_SIGN2"].Value.ToString() != "" || row.Cells["SIZE_MAX_SIGN2"].Value.ToString() != ""
  331. || row.Cells["SIZE_MIN2"].Value.ToString() != "" || row.Cells["SIZE_MAX2"].Value.ToString() != "")
  332. {
  333. MessageBox.Show("请选择限制规格1描述,或者清空限制规格1下的数据的值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  334. row.Activate();
  335. return -1;
  336. }
  337. if (min1 > max1 && max1 != 0)
  338. {
  339. MessageBox.Show("您输入的限制规格1上限值不能小于下限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  340. row.Activate();
  341. return -1;
  342. }
  343. if (row.Cells["SIZE_NAME"].Value.ToString().Trim() != "")
  344. {
  345. if (row.Cells["SIZE_MIN_SIGN"].Value.ToString() == "" && row.Cells["SIZE_MAX_SIGN"].Value.ToString() == "")
  346. {
  347. MessageBox.Show("限制规格2描述存在的情况下,限制规格2上限符号和限制规格2下限符号至少存在一个", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  348. row.Activate();
  349. return -1;
  350. }
  351. else if (row.Cells["SIZE_MIN_SIGN"].Value.ToString().Trim() != "")
  352. {
  353. if (row.Cells["SIZE_MIN"].Value.ToString().Trim() == "")
  354. {
  355. MessageBox.Show("请输入限制规格2下限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  356. row.Activate();
  357. return -1;
  358. }
  359. }
  360. else if (row.Cells["SIZE_MIN_SIGN"].Value.ToString().Trim() == "")
  361. {
  362. if (row.Cells["SIZE_MIN"].Value.ToString().Trim() != "")
  363. {
  364. MessageBox.Show("限制规格2下限符号不存在,请选择限制规格2下限符号或者清空限制规格2下限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  365. row.Activate();
  366. return -1;
  367. }
  368. }
  369. if (row.Cells["SIZE_MAX_SIGN"].Value.ToString().Trim() != "")
  370. {
  371. if (row.Cells["SIZE_MAX"].Value.ToString().Trim() == "")
  372. {
  373. MessageBox.Show("请输入限制规格2上限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  374. row.Activate();
  375. return -1;
  376. }
  377. }
  378. else if (row.Cells["SIZE_MAX_SIGN"].Value.ToString().Trim() == "")
  379. {
  380. if (row.Cells["SIZE_MAX"].Value.ToString().Trim() != "")
  381. {
  382. MessageBox.Show("限制规格2上限符号不存在,请选择限制规格2上限符号或者清空限制规格2上限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  383. row.Activate();
  384. return -1;
  385. }
  386. }
  387. if (row.Cells["SIZE_MIN"].Value.ToString().Trim() != "")
  388. {
  389. if (StringUtil.IsNumber(row.Cells["SIZE_MIN"].Value.ToString()))
  390. {
  391. min = Convert.ToDouble(row.Cells["SIZE_MIN"].Value.ToString());
  392. }
  393. else if (row.Cells["SIZE_MIN_SIGN"].Value.ToString().Trim() != "=" && row.Cells["SIZE_MIN_SIGN"].Value.ToString().Trim() != "")
  394. {
  395. MessageBox.Show("限制规格2下限请输入数字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  396. row.Activate();
  397. return -1;
  398. }
  399. }
  400. if (row.Cells["SIZE_MAX"].Value.ToString().Trim() != "")
  401. {
  402. if (StringUtil.IsNumber(row.Cells["SIZE_MAX"].Value.ToString()))
  403. {
  404. max = Convert.ToDouble(row.Cells["SIZE_MAX"].Value.ToString());
  405. }
  406. else if (row.Cells["SIZE_MAX_SIGN"].Value.ToString().Trim() != "")
  407. {
  408. MessageBox.Show("限制规格2上限请输入数字", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  409. row.Activate();
  410. return -1;
  411. }
  412. }
  413. }
  414. else if (row.Cells["SIZE_MIN_SIGN"].Value.ToString() != "" || row.Cells["SIZE_MAX_SIGN"].Value.ToString() != ""
  415. || row.Cells["SIZE_MIN"].Value.ToString() != "" || row.Cells["SIZE_MAX"].Value.ToString() != "")
  416. {
  417. MessageBox.Show("请选择限制规格2描述,或者清空限制规格2下的数据的值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  418. row.Activate();
  419. return -1;
  420. }
  421. if (max < min && (max != 0))
  422. {
  423. MessageBox.Show("您输入的限制规格2上限值不能小于下限值", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  424. row.Activate();
  425. return -1;
  426. }
  427. ArrayList pparm = new ArrayList();
  428. ArrayList pparmU = new ArrayList();
  429. if (row.Cells["VALIDFLAG"].Value.ToString() == "")
  430. {
  431. pparm.Add(row.Cells["MSC"].Value.ToString());
  432. pparm.Add(row.Cells["INDEX_SEQ"].Value.ToString());
  433. pparm.Add(row.Cells["MODEL_CODE"].Value.ToString());
  434. pparm.Add(row.Cells["MODEL_DESC"].Value.ToString());
  435. pparm.Add(row.Cells["SIZE_CODE2"].Value.ToString());
  436. pparm.Add(row.Cells["SIZE_NAME2"].Text);
  437. pparm.Add(row.Cells["SIZE_MIN_SIGN2"].Value.ToString());
  438. pparm.Add(row.Cells["SIZE_MIN2"].Value.ToString());
  439. pparm.Add(row.Cells["SIZE_MAX_SIGN2"].Value.ToString());
  440. pparm.Add(row.Cells["SIZE_MAX2"].Value.ToString());
  441. pparm.Add(row.Cells["SIZE_CODE"].Value.ToString());
  442. pparm.Add(row.Cells["SIZE_NAME"].Text);
  443. pparm.Add(row.Cells["SIZE_MIN_SIGN"].Value.ToString());
  444. pparm.Add(row.Cells["SIZE_MIN"].Value.ToString());
  445. pparm.Add(row.Cells["SIZE_MAX_SIGN"].Value.ToString());
  446. pparm.Add(row.Cells["SIZE_MAX"].Value.ToString());
  447. pparm.Add(row.Cells["SIZE_JG_CODE"].Value.ToString());
  448. pparm.Add(row.Cells["SIZE_JG_NAME"].Text);
  449. pparm.Add(this.UserInfo.GetUserName());
  450. pparm.Add(row.Cells["MEMO"].Value.ToString());
  451. parentParm.Add(pparm);
  452. }
  453. if (row.Cells["VALIDFLAG"].Value.ToString() != "")
  454. {
  455. pparmU.Add(row.Cells["MSC"].Value.ToString());
  456. pparmU.Add(row.Cells["INDEX_SEQ"].Value.ToString());
  457. pparmU.Add(row.Cells["MODEL_CODE"].Value.ToString());
  458. pparmU.Add(row.Cells["MODEL_DESC"].Value.ToString());
  459. pparmU.Add(row.Cells["SIZE_CODE2"].Value.ToString());
  460. pparmU.Add(row.Cells["SIZE_NAME2"].Text);
  461. pparmU.Add(row.Cells["SIZE_MIN_SIGN2"].Value.ToString());
  462. pparmU.Add(row.Cells["SIZE_MIN2"].Value.ToString());
  463. pparmU.Add(row.Cells["SIZE_MAX_SIGN2"].Value.ToString());
  464. pparmU.Add(row.Cells["SIZE_MAX2"].Value.ToString());
  465. pparmU.Add(row.Cells["SIZE_CODE"].Value.ToString());
  466. pparmU.Add(row.Cells["SIZE_NAME"].Text);
  467. pparmU.Add(row.Cells["SIZE_MIN_SIGN"].Value.ToString());
  468. pparmU.Add(row.Cells["SIZE_MIN"].Value.ToString());
  469. pparmU.Add(row.Cells["SIZE_MAX_SIGN"].Value.ToString());
  470. pparmU.Add(row.Cells["SIZE_MAX"].Value.ToString());
  471. pparmU.Add(row.Cells["SIZE_JG_CODE"].Value.ToString());
  472. pparmU.Add(row.Cells["SIZE_JG_NAME"].Text);
  473. pparmU.Add(this.UserInfo.GetUserName());
  474. pparmU.Add(row.Cells["MEMO"].Value.ToString());
  475. parentParmU.Add(pparmU);
  476. }
  477. }
  478. if (row.ChildBands[0].Rows.Count > 0)
  479. {
  480. for (int i = 0; i < row.ChildBands[0].Rows.Count; i++)
  481. {
  482. Infragistics.Win.UltraWinGrid.UltraGridRow crow = row.ChildBands[0].Rows[i];
  483. if (Convert.ToBoolean(crow.Cells["CHK"].Value))
  484. {
  485. checkflag += 1;
  486. if (crow.Cells["BASE_DESC"].Value.ToString() == "")
  487. {
  488. MessageBox.Show("请选择包装项大类描述", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  489. crow.Activate();
  490. return -1;
  491. }
  492. if (crow.Cells["ITEM_DESC"].Value.ToString() == "")
  493. {
  494. MessageBox.Show("请选择包装项目描述", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  495. crow.Activate();
  496. return -1;
  497. }
  498. if (crow.Cells["NOTE_DESC"].Value.ToString() == "")
  499. {
  500. MessageBox.Show("请选择包装要求描述", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  501. crow.Activate();
  502. return -1;
  503. }
  504. ArrayList cparm = new ArrayList();
  505. ArrayList cparmU = new ArrayList();
  506. if (crow.Cells["VALIDFLAG"].Value.ToString() == "")
  507. {
  508. cparm.Add(crow.Cells["MSC"].Value.ToString());
  509. cparm.Add(crow.Cells["INDEX_SEQ"].Value.ToString());
  510. cparm.Add(crow.Cells["INDEX_SEQ_C"].Value.ToString());
  511. cparm.Add(crow.Cells["BASE_CODE"].Value.ToString());
  512. cparm.Add(crow.Cells["BASE_DESC"].Text);
  513. cparm.Add(crow.Cells["ITEM_CODE"].Value.ToString());
  514. cparm.Add(crow.Cells["ITEM_DESC"].Text);
  515. cparm.Add(crow.Cells["NOTE_CODE"].Value.ToString());
  516. cparm.Add(crow.Cells["NOTE_DESC"].Text);
  517. cparm.Add(this.UserInfo.GetUserName());
  518. cparm.Add(crow.Cells["MEMO"].Value.ToString());
  519. childParm.Add(cparm);
  520. }
  521. if (crow.Cells["VALIDFLAG"].Value.ToString() != "")
  522. {
  523. cparmU.Add(crow.Cells["MSC"].Value.ToString());
  524. cparmU.Add(crow.Cells["INDEX_SEQ"].Value.ToString());
  525. cparmU.Add(crow.Cells["INDEX_SEQ_C"].Value.ToString());
  526. cparmU.Add(crow.Cells["BASE_CODE"].Value.ToString());
  527. cparmU.Add(crow.Cells["BASE_DESC"].Text);
  528. cparmU.Add(crow.Cells["ITEM_CODE"].Value.ToString());
  529. cparmU.Add(crow.Cells["ITEM_DESC"].Text);
  530. cparmU.Add(crow.Cells["NOTE_CODE"].Value.ToString());
  531. cparmU.Add(crow.Cells["NOTE_DESC"].Text);
  532. cparmU.Add(this.UserInfo.GetUserName());
  533. cparmU.Add(crow.Cells["MEMO"].Value.ToString());
  534. childParmU.Add(cparmU);
  535. }
  536. }
  537. }
  538. }
  539. }
  540. if (checkflag == 0)
  541. {
  542. MessageBox.Show("请选择需要操作的记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  543. return -1;
  544. }
  545. return 0;
  546. }
  547. /// <summary>
  548. /// 查询
  549. /// </summary>
  550. /// <param name="flag">false有效数据 true有效+无效数据</param>
  551. private void doQuery(bool flag)
  552. {
  553. bool validFlag = flag;
  554. UltraGridRow ugr = ultraGrid1.ActiveRow;
  555. dataTable2.Clear();
  556. dataTable1.Clear();
  557. string msc = ugr.Cells["MSC"].Value.ToString().Trim();
  558. DataTable parentdt = ServerHelper.GetData("com.steering.pss.qcm.PackAndMSC.doQuery", new Object[] { validFlag, msc }, this.ob);
  559. GridHelper.CopyDataToDatatable(ref parentdt, ref this.dataTable1, true);
  560. if (parentdt != null && parentdt.Rows.Count > 0)
  561. {
  562. ultraGrid2.Rows[0].Activate(); //默认激活首行。
  563. }
  564. //从表的记录也要查询出来。
  565. DataTable childdt = ServerHelper.GetData("com.steering.pss.qcm.PackAndMSC.doQuery1", new Object[] { validFlag, msc }, this.ob);
  566. GridHelper.CopyDataToDatatable(ref childdt, ref this.dataTable2, true);
  567. UltraGridColumn[] col = new UltraGridColumn[] { this.ultraGrid2.DisplayLayout.Bands[0].Columns["MEMO"]
  568. , this.ultraGrid2.DisplayLayout.Bands[0].Columns["SIZE_NAME2"] , this.ultraGrid2.DisplayLayout.Bands[0].Columns["SIZE_NAME"]
  569. , this.ultraGrid2.DisplayLayout.Bands[1].Columns["BASE_DESC"], this.ultraGrid2.DisplayLayout.Bands[1].Columns["ITEM_DESC"]
  570. , this.ultraGrid2.DisplayLayout.Bands[1].Columns["NOTE_DESC"],this.ultraGrid2.DisplayLayout.Bands[0].Columns["MODEL_DESC"]
  571. ,this.ultraGrid2.DisplayLayout.Bands[1].Columns["MEMO"] };
  572. GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid2, col);
  573. //不同颜色区分是否有效数据
  574. Infragistics.Win.UltraWinGrid.UltraGridRow row = null;
  575. Infragistics.Win.UltraWinGrid.UltraGridRow minrow = null;
  576. for (int i = 0; i < ultraGrid2.Rows.Count; i++)
  577. {
  578. for (int j = 1; j < ultraGrid2.Rows[i].Cells.Count; j++)
  579. {
  580. ultraGrid2.Rows[i].Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  581. } //主表每一行除了第一列外都不可编辑。
  582. row = ultraGrid2.Rows[i];
  583. if (row.ChildBands[0].Rows.Count > 0) //子表
  584. {
  585. for (int j = 0; j < row.ChildBands[0].Rows.Count; j++)
  586. {
  587. minrow = row.ChildBands[0].Rows[j];
  588. for (int k = 1; k < minrow.Cells.Count; k++)
  589. {
  590. minrow.Cells[k].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  591. }//主表每一行除了第一列外都不可编辑。
  592. if (!minrow.Cells["VALIDFLAG"].Value.ToString().Equals("有效"))
  593. {
  594. minrow.Appearance.ForeColor = Color.Red;
  595. row.ExpandAll(); //展开主表
  596. row.Activate();
  597. }
  598. else
  599. {
  600. minrow.Appearance.ForeColor = Color.Black;
  601. }
  602. }
  603. }
  604. if (!row.Cells["VALIDFLAG"].Value.ToString().Equals("有效")) //主表
  605. {
  606. row.Appearance.ForeColor = Color.Red;
  607. }
  608. else
  609. {
  610. row.Appearance.ForeColor = Color.Black;
  611. }
  612. }
  613. }
  614. /// <summary>
  615. /// 保存数据(新增+修改)
  616. /// </summary>
  617. private void doSave()
  618. {
  619. if (GetGridData() == 0 && (parentParm.Count > 0 || childParm.Count > 0 || parentParmU.Count > 0 || childParmU.Count > 0))
  620. {
  621. if (MessageBox.Show("是否确认保存修改?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  622. {
  623. return;
  624. }
  625. CoreClientParam ccp = new CoreClientParam(); //CoreClientParam是平台用来向服务端传递存放所有相关参数信息的。
  626. ccp.ServerName = "com.steering.pss.qcm.PackAndMSC"; //服务名指的是服务端的包名+类名
  627. ccp.MethodName = "doSave"; //方法名指的是服务名指定类里的方法
  628. ccp.ServerParams = new object[] { parentParm, childParm, parentParmU, childParmU };//服务端方法的参数
  629. //ExecuteNonQuery主要用来执行添加、修改、删除、存储过程的操作。
  630. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  631. if (ccp.ReturnCode == -1)
  632. return;
  633. MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  634. doQuery(false);
  635. ExpandRow();
  636. MSCCodes.Clear();
  637. }
  638. }
  639. /// <summary>
  640. /// 删除和恢复
  641. /// </summary>
  642. /// <param name="flag">true删除 false恢复</param>
  643. private void doDeleteOrResume(bool flag)
  644. {
  645. parentParm = new ArrayList();
  646. childParm = new ArrayList();
  647. if (flag)
  648. {
  649. int deleteflag = 0;
  650. ultraGrid2.UpdateData();
  651. ArrayList pparam = new ArrayList();
  652. ArrayList cparam = new ArrayList();
  653. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in ultraGrid2.Rows)
  654. {
  655. pparam = new ArrayList();
  656. cparam = new ArrayList();
  657. //主表勾选了,从表跟着删除。
  658. if (row.Cells["CHK"].Value.ToString().ToUpper() == "TRUE")
  659. {
  660. deleteflag += 1;
  661. pparam.Add(this.UserInfo.GetUserName());
  662. pparam.Add(row.Cells["MSC"].Value.ToString());
  663. pparam.Add(row.Cells["INDEX_SEQ"].Value.ToString());
  664. cparam.Add(this.UserInfo.GetUserName());
  665. cparam.Add(row.Cells["MSC"].Value.ToString());
  666. cparam.Add(row.Cells["INDEX_SEQ"].Value.ToString());
  667. parentParm.Add(pparam);
  668. childParm.Add(cparam);
  669. }
  670. //主表未勾选,从表勾选了。主表是半选状态
  671. else if (row.ChildBands[0].Rows.Count > 0 && row.Cells["CHK"].Value.ToString().ToUpper() == "")
  672. {
  673. for (int i = 0; i < row.ChildBands[0].Rows.Count; i++)
  674. {
  675. cparam = new ArrayList();
  676. Infragistics.Win.UltraWinGrid.UltraGridRow crow = row.ChildBands[0].Rows[i];
  677. if (Convert.ToBoolean(crow.Cells["CHK"].Value))
  678. {
  679. deleteflag += 1;
  680. cparam.Add(this.UserInfo.GetUserName());
  681. cparam.Add(crow.Cells["MSC"].Value.ToString());
  682. cparam.Add(crow.Cells["INDEX_SEQ"].Value.ToString());
  683. cparam.Add(crow.Cells["INDEX_SEQ_C"].Value.ToString());
  684. childParm.Add(cparam);
  685. }
  686. }
  687. }
  688. }
  689. if (deleteflag == 0)
  690. {
  691. MessageBox.Show("请选择需要操作的记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  692. return;
  693. }
  694. if (MessageBox.Show("是否确认作废勾选的数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  695. {
  696. return;
  697. }
  698. CoreClientParam ccp = new CoreClientParam(); //CoreClientParam是平台用来向服务端传递存放所有相关参数信息的。
  699. ccp.ServerName = "com.steering.pss.qcm.PackAndMSC"; //服务名指的是服务端的包名+类名
  700. ccp.MethodName = "doDelete"; //方法名指的是服务名指定类里的方法
  701. ccp.ServerParams = new object[] { parentParm, childParm };//服务端方法的参数
  702. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  703. if (ccp.ReturnCode == -1)
  704. return;
  705. MessageBox.Show("作废成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  706. doQuery(false);
  707. ExpandRow();
  708. MSCCodes.Clear();
  709. }
  710. else
  711. {
  712. ultraGrid2.UpdateData();
  713. int resumeflag = 0;
  714. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in ultraGrid2.Rows)
  715. {
  716. ArrayList pparam = new ArrayList();
  717. ArrayList cparam = new ArrayList();
  718. //主表勾选了,从表未勾选,只恢复主表信息。(允许主表存在,从表不存在)
  719. if (row.Cells["CHK"].Value.ToString().ToUpper() != "FALSE")
  720. {
  721. resumeflag += 1;
  722. pparam.Add(row.Cells["MSC"].Value.ToString());
  723. pparam.Add(row.Cells["INDEX_SEQ"].Value.ToString());
  724. parentParm.Add(pparam);
  725. //主表未勾选,从表勾选了。主表未恢复,从表不能恢复。(主表不存在,从表不可能存在)
  726. if (row.ChildBands[0].Rows.Count > 0)
  727. {
  728. for (int i = 0; i < row.ChildBands[0].Rows.Count; i++)
  729. {
  730. cparam = new ArrayList();
  731. Infragistics.Win.UltraWinGrid.UltraGridRow crow = row.ChildBands[0].Rows[i];
  732. if (Convert.ToBoolean(crow.Cells["CHK"].Value))
  733. {
  734. resumeflag += 1;
  735. cparam.Add(crow.Cells["MSC"].Value.ToString());
  736. cparam.Add(crow.Cells["INDEX_SEQ"].Value.ToString());
  737. cparam.Add(crow.Cells["INDEX_SEQ_C"].Value.ToString());
  738. childParm.Add(cparam);
  739. }
  740. }
  741. }
  742. }
  743. else if (row.Cells["VALIDFLAG"].Value.ToString() == "有效")
  744. {
  745. for (int i = 0; i < row.ChildBands[0].Rows.Count; i++)
  746. {
  747. cparam = new ArrayList();
  748. Infragistics.Win.UltraWinGrid.UltraGridRow crow = row.ChildBands[0].Rows[i];
  749. if (Convert.ToBoolean(crow.Cells["CHK"].Value))
  750. {
  751. resumeflag += 1;
  752. cparam.Add(crow.Cells["MSC"].Value.ToString());
  753. cparam.Add(crow.Cells["INDEX_SEQ"].Value.ToString());
  754. cparam.Add(crow.Cells["INDEX_SEQ_C"].Value.ToString());
  755. childParm.Add(cparam);
  756. }
  757. }
  758. }
  759. }
  760. if (resumeflag == 0)
  761. {
  762. MessageBox.Show("请选择需要操作的记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  763. return;
  764. }
  765. if (MessageBox.Show("是否确认恢复勾选的数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  766. {
  767. return;
  768. }
  769. CoreClientParam ccp = new CoreClientParam(); //CoreClientParam是平台用来向服务端传递存放所有相关参数信息的。
  770. ccp.ServerName = "com.steering.pss.qcm.PackAndMSC"; //服务名指的是服务端的包名+类名
  771. ccp.MethodName = "doResume"; //方法名指的是服务名指定类里的方法
  772. ccp.ServerParams = new object[] { parentParm, childParm };//服务端方法的参数
  773. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  774. if (ccp.ReturnCode == -1)
  775. return;
  776. MessageBox.Show("恢复成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  777. doQuery(false);
  778. ExpandRow();
  779. MSCCodes.Clear();
  780. }
  781. }
  782. private void ultraGrid2_CellChange(object sender, CellEventArgs e)
  783. {//主表和从表的选择列都叫"CHK"
  784. this.ultraGrid2.UpdateData();
  785. //主表勾选,从表全选。
  786. if (e.Cell.Column.Key.Equals("CHK"))
  787. {
  788. if (!e.Cell.Row.HasParent())
  789. {
  790. foreach (UltraGridRow row in e.Cell.Row.ChildBands[0].Rows)
  791. {
  792. row.Cells["CHK"].Value = e.Cell.Value; //从表状态全选或不全选
  793. for (int k = 1; k < row.Cells.Count; k++)
  794. {//同时改变从表选上后的可编辑状态
  795. if (Convert.ToBoolean(e.Cell.Value))
  796. {
  797. if (k == 5 || k == 7 || k == 9)
  798. {
  799. row.Cells[k].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  800. row.Cells["MEMO"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  801. }
  802. }
  803. else
  804. {
  805. row.Cells[k].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  806. }
  807. }
  808. }
  809. if (Convert.ToBoolean(e.Cell.Value))
  810. {
  811. if (e.Cell.Row.ChildBands[0].Rows.Count > 0)
  812. {
  813. e.Cell.Row.ExpandAll();
  814. }
  815. for (int j = 1; j < e.Cell.Row.Cells.Count; j++)
  816. {
  817. if ((j > 5) && (j < 19) && j != 11 && j != 17)
  818. {
  819. e.Cell.Row.Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  820. e.Cell.Row.Cells["MEMO"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  821. }
  822. }
  823. }
  824. else
  825. {
  826. for (int t = 1; t < e.Cell.Row.Cells.Count; t++)
  827. {
  828. e.Cell.Row.Cells[t].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  829. }
  830. }
  831. }
  832. else //(e.Cell.Row.HasParent())
  833. {
  834. int flag = 0; //判断从表状态参数
  835. foreach (UltraGridRow row in e.Cell.Row.ParentRow.ChildBands[0].Rows)
  836. {
  837. if (Convert.ToBoolean(row.Cells["CHK"].Value))
  838. {
  839. flag += 1; //从表勾选了 状态参数+1
  840. }
  841. }
  842. if (flag < e.Cell.Row.ParentRow.ChildBands[0].Rows.Count && flag != 0)
  843. {//状态参数小于从表的行数,说明未全勾选,主表为半选状态
  844. e.Cell.Row.ParentRow.Cells["CHK"].Value = null;
  845. for (int j = 1; j < e.Cell.Row.ParentRow.Cells.Count; j++)
  846. {
  847. if ((j > 5) && (j < 19) && j != 11 && j != 17)
  848. {
  849. e.Cell.Row.ParentRow.Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  850. e.Cell.Row.ParentRow.Cells["MEMO"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  851. }
  852. }
  853. }
  854. else if (flag == 0) //从表取消全部勾选,主表不勾选
  855. {//为了能够只恢复主表一条记录,主表状态为半选。
  856. //e.Cell.Row.ParentRow.Cells["CHK"].Value = false;
  857. }
  858. else //否则主表为全选状态
  859. {//为了只操作全部从表记录,删除等,这里再次改为半选。
  860. e.Cell.Row.ParentRow.Cells["CHK"].Value = null;
  861. for (int j = 1; j < e.Cell.Row.ParentRow.Cells.Count; j++)
  862. {
  863. if ((j > 5) && (j < 19) && j != 11 && j != 17)
  864. {
  865. e.Cell.Row.ParentRow.Cells[j].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  866. }
  867. }
  868. }
  869. if (Convert.ToBoolean(e.Cell.Value))
  870. {
  871. for (int k = 1; k < e.Cell.Row.Cells.Count; k++)
  872. {
  873. if (k == 5 || k == 7 || k == 9)
  874. {
  875. e.Cell.Row.Cells[k].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  876. e.Cell.Row.Cells["MEMO"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  877. }
  878. }
  879. }
  880. else
  881. {
  882. for (int k = 1; k < e.Cell.Row.Cells.Count; k++)
  883. {
  884. e.Cell.Row.Cells[k].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  885. }
  886. }
  887. }
  888. }
  889. if (e.Cell.Column.Key.Equals("SIZE_NAME2"))
  890. {
  891. if (e.Cell.Value.ToString() == "")
  892. {
  893. e.Cell.Row.Cells["SIZE_MIN_SIGN2"].Value = "";
  894. e.Cell.Row.Cells["SIZE_MIN2"].Value = "";
  895. e.Cell.Row.Cells["SIZE_MAX_SIGN2"].Value = "";
  896. e.Cell.Row.Cells["SIZE_MAX2"].Value = "";
  897. }
  898. }
  899. if (e.Cell.Column.Key.Equals("SIZE_NAME"))
  900. {
  901. if (e.Cell.Value.ToString() == "")
  902. {
  903. e.Cell.Row.Cells["SIZE_MIN_SIGN"].Value = "";
  904. e.Cell.Row.Cells["SIZE_MIN"].Value = "";
  905. e.Cell.Row.Cells["SIZE_MAX_SIGN"].Value = "";
  906. e.Cell.Row.Cells["SIZE_MAX"].Value = "";
  907. }
  908. }
  909. if (e.Cell.Column.Key.Equals("SIZE_MIN2"))
  910. {
  911. if (e.Cell.Row.Cells["SIZE_MIN_SIGN2"].Value.ToString().Trim() == "=" && !StringUtil.IsNumber(e.Cell.Value.ToString()))
  912. {
  913. e.Cell.Row.Cells["SIZE_MAX_SIGN2"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  914. e.Cell.Row.Cells["SIZE_MAX2"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  915. }
  916. else
  917. {
  918. e.Cell.Row.Cells["SIZE_MAX_SIGN2"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  919. e.Cell.Row.Cells["SIZE_MAX2"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  920. }
  921. }
  922. if (e.Cell.Column.Key.Equals("SIZE_MIN"))
  923. {
  924. if (e.Cell.Row.Cells["SIZE_MIN_SIGN"].Value.ToString().Trim() == "=" && !StringUtil.IsNumber(e.Cell.Value.ToString()))
  925. {
  926. e.Cell.Row.Cells["SIZE_MAX_SIGN"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  927. e.Cell.Row.Cells["SIZE_MAX"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly;
  928. }
  929. else
  930. {
  931. e.Cell.Row.Cells["SIZE_MAX_SIGN"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  932. e.Cell.Row.Cells["SIZE_MAX"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
  933. }
  934. }
  935. SaveMSCCode(e);
  936. }
  937. /// <summary>
  938. /// 保存操作的冶金规范码+序号
  939. /// </summary>
  940. /// <param name="e"></param>
  941. private void SaveMSCCode(CellEventArgs e)
  942. {
  943. if (e.Cell.Row.HasParent())
  944. {
  945. if (e.Cell.Row.Cells["CHK"].Value.ToString().ToUpper() == "TRUE"
  946. && !MSCCodes.Contains(e.Cell.Row.Cells["MSC"].Value.ToString() + "," + e.Cell.Row.Cells["INDEX_SEQ"].Value.ToString()))
  947. {
  948. MSCCodes.Add(e.Cell.Row.Cells["MSC"].Value.ToString() + "," + e.Cell.Row.Cells["INDEX_SEQ"].Value.ToString());
  949. }
  950. }
  951. else if (e.Cell.Row.ChildBands[0].Rows.Count > 0)
  952. {
  953. if (e.Cell.Row.Cells["CHK"].Value.ToString().ToUpper() != "FALSE"
  954. && !MSCCodes.Contains(e.Cell.Row.Cells["MSC"].Value.ToString() + "," + e.Cell.Row.Cells["INDEX_SEQ"].Value.ToString()))
  955. {
  956. MSCCodes.Add(e.Cell.Row.Cells["MSC"].Value.ToString() + "," + e.Cell.Row.Cells["INDEX_SEQ"].Value.ToString());
  957. }
  958. }
  959. }
  960. /// <summary>
  961. /// 展开某一行
  962. /// </summary>
  963. private void ExpandRow()
  964. {
  965. foreach (UltraGridRow row in ultraGrid2.Rows)
  966. {
  967. if (MSCCodes.Contains(row.Cells["MSC"].Value.ToString() + "," + row.Cells["INDEX_SEQ"].Value.ToString()))
  968. {
  969. row.ExpandAll();
  970. row.Activate();
  971. }
  972. }
  973. }
  974. }
  975. }