FrmSpecificationsBasicsNew.cs 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300
  1. using Core.Mes.Client.Comm;
  2. using Core.Mes.Client.Comm.Control;
  3. using Core.Mes.Client.Comm.Server;
  4. using Core.Mes.Client.Comm.Tool;
  5. using CoreFS.CA06;
  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 FrmSpecificationsBasicsNew : FrmBase
  16. {
  17. private string strMaxSvrSpec_Code = "";
  18. private string strMaxSvrOrder_Spec_Code = "";
  19. private List<string> _chooseCodes = new List<string>();
  20. private bool _exporting = false;
  21. public FrmSpecificationsBasicsNew()
  22. {
  23. InitializeComponent();
  24. ExceptionHelper.RegistException();
  25. }
  26. private void FrmSpecificationsBasicsNew_Load(object sender, EventArgs e)
  27. {
  28. BindcmbType();
  29. }
  30. private void BindcmbType()
  31. {
  32. //cmbBindType
  33. //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)、C其它(要走接箍或附件的,不能填外径壁厚))
  34. DataTable dt = new DataTable();
  35. dt.Columns.Add("id");
  36. dt.Columns.Add("name");
  37. DataRow dr = dt.NewRow();
  38. dr["id"] = "A";
  39. dr["name"] = "钢管";
  40. DataRow drB = dt.NewRow();
  41. drB["id"] = "B";
  42. drB["name"] = "管坯";
  43. DataRow drC = dt.NewRow();
  44. drC["id"] = "C";
  45. drC["name"] = "其它";
  46. dt.Rows.Add(dr);
  47. dt.Rows.Add(drB);
  48. dt.Rows.Add(drC);
  49. cmbBindType.DataSource = dt;
  50. cmbBindType.DisplayMember = "name";
  51. cmbBindType.ValueMember = "id";
  52. }
  53. public override void ToolBar_Click(object sender, string ToolbarKey)
  54. {
  55. switch (ToolbarKey)
  56. {
  57. case "doQuery":
  58. try
  59. {
  60. this.Cursor = Cursors.WaitCursor;
  61. doQuery();
  62. }
  63. finally
  64. {
  65. this.Cursor = Cursors.Default;
  66. }
  67. break;
  68. case "doSave":
  69. if (CheckData() == true)
  70. {
  71. doSave();
  72. }
  73. break;
  74. case "doModify":
  75. doModify();
  76. break;
  77. case "doDelete":
  78. this.doDeleteOrResume(true);
  79. break;
  80. case "doResume":
  81. this.doDeleteOrResume(false);
  82. break;
  83. case "Export":
  84. Export();
  85. break;
  86. case "Close":
  87. this.Close();
  88. break;
  89. }
  90. }
  91. private void Export()
  92. {
  93. _exporting = true;
  94. GridHelper.ulGridToExcel(ultraGrid2, "产品规格");
  95. _exporting = false;
  96. }
  97. private void ExpandRow()
  98. {
  99. foreach (UltraGridRow row in ultraGrid2.Rows)
  100. {
  101. if (_chooseCodes.Contains(row.Cells["SPEC_CODE"].Value.ToString()))
  102. {
  103. row.Activate();
  104. row.ExpandAll();
  105. }
  106. }
  107. }
  108. private bool CheckData()
  109. {
  110. ultraGrid2.UpdateData();
  111. DataRow[] drs = dataTable1.Select("CHK = 'True'");
  112. DataRow[] drs2 = dataTable2.Select("CHK = 'True'");
  113. List<string> insertSpecNames = new List<string>();
  114. List<string> insertOrder_SpecNames = new List<string>();
  115. foreach (DataRow dr in drs)
  116. {
  117. if (dr["MSC_STYLE"].ToString() == "")
  118. {
  119. MessageBox.Show("您所要保存的数据中,类型不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  120. return false;
  121. }
  122. if (dr["MSC_STYLE"].ToString() == "A" && dr["DIMATER"].ToString() == "")
  123. {
  124. MessageBox.Show("您所要保存的数据中,外径不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  125. return false;
  126. }
  127. else if (dr["MSC_STYLE"].ToString() == "A" && dr["HEIGHT"].ToString() == "")
  128. {
  129. MessageBox.Show("您所要保存的数据中,壁厚不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  130. return false;
  131. }
  132. decimal dcm = 0.0M;
  133. if (dr["DIMATER"].ToString() != "" && decimal.TryParse(dr["DIMATER"].ToString(), out dcm) == false)
  134. {
  135. MessageBox.Show("您所要保存的数据中,外径输入的不是数字类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  136. return false;
  137. }
  138. if (dr["HEIGHT"].ToString() != "" && decimal.TryParse(dr["HEIGHT"].ToString(), out dcm) == false)
  139. {
  140. MessageBox.Show("您所要保存的数据中,壁厚输入的不是数字类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  141. return false;
  142. }
  143. if (dr["WEIGHT"].ToString() != "" && decimal.TryParse(dr["WEIGHT"].ToString(), out dcm) == false)
  144. {
  145. MessageBox.Show("您所要保存的数据中,米单重输入的不是数字类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  146. return false;
  147. }
  148. if (dr["SPEC_NAME"].ToString() == "")
  149. {
  150. MessageBox.Show("您所要保存的数据中,产品规格描述不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  151. return false;
  152. }
  153. else if (IsExistSpec(dr["SPEC_NAME"].ToString(), dr["SPEC_CODE"].ToString()) == true)
  154. {
  155. MessageBox.Show("已存在产品规格描述-[" + dr["SPEC_NAME"].ToString() + "]!",
  156. "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  157. return false;
  158. }
  159. if (insertSpecNames.Contains(dr["SPEC_NAME"].ToString()))
  160. {
  161. MessageBox.Show("您所要保存的数据中,出现重复的产品规格描述-[" + dr["SPEC_NAME"].ToString() + "]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  162. return false;
  163. }
  164. insertSpecNames.Add(dr["SPEC_NAME"].ToString());
  165. }
  166. foreach (DataRow dr in drs2)
  167. {
  168. if (dr["ORDER_SPEC_DESC"].ToString() == "")
  169. {
  170. MessageBox.Show("您所要保存的数据中,订货规格描述不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  171. return false;
  172. }
  173. else if (IsExistOrderSpec(dr["ORDER_SPEC_DESC"].ToString(), dr["ORDER_SPEC_CODE"].ToString())
  174. == true)
  175. {
  176. MessageBox.Show("已存在订货规格描述-" + dr["ORDER_SPEC_DESC"].ToString() + "!",
  177. "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  178. return false;
  179. }
  180. if (insertOrder_SpecNames.Contains(dr["ORDER_SPEC_DESC"].ToString()))
  181. {
  182. MessageBox.Show("您所要保存的数据中,出现重复的订货规格描述-[" + dr["ORDER_SPEC_DESC"].ToString() + "]!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  183. return false;
  184. }
  185. insertOrder_SpecNames.Add(dr["ORDER_SPEC_DESC"].ToString());
  186. }
  187. return true;
  188. }
  189. private bool IsExistSpec(string spec, string specCode)
  190. {
  191. ArrayList list = new ArrayList();
  192. list.Add(spec);
  193. list.Add(specCode);
  194. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.isExistSpec",
  195. new object[] { list }, ob);
  196. if (dt == null)
  197. {
  198. return true;
  199. }
  200. else if (dt != null && dt.Rows[0][0].ToString() == "0")
  201. {
  202. return false;
  203. }
  204. return true;
  205. }
  206. private bool IsExistOrderSpec(string orderSpec, string orderSpecCode)
  207. {
  208. ArrayList list = new ArrayList();
  209. list.Add(orderSpec);
  210. list.Add(orderSpecCode);
  211. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.isExistOrderSpec",
  212. new object[] { list }, ob);
  213. if (dt == null)
  214. {
  215. return true;
  216. }
  217. else if (dt != null && dt.Rows[0][0].ToString() == "0")
  218. {
  219. return false;
  220. }
  221. return true;
  222. }
  223. private void doAdd()
  224. {
  225. //获取新增加的行。
  226. ultraGrid2.UpdateData();
  227. ArrayList parms = new ArrayList();
  228. //判断是否勾选。
  229. for (int i = 0; i < ultraGrid2.Rows.Count; i++)
  230. {
  231. if ((Boolean)ultraGrid2.Rows[i].Cells["cb"].Value)
  232. {
  233. //绑定就按杨总的那种方式。
  234. //就在这里面判断类型。假设是类型A。则判断外径壁厚是否为空,假设为空,同上弹出提示信息,终止操作。
  235. //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)、C其它(要走接箍或附件的,不能填外径壁厚))
  236. string type = ultraGrid2.Rows[i].Cells["MSC_STYLE"].Value.ToString();
  237. //把外径、壁厚取出来。
  238. //外径
  239. string dimater = ultraGrid2.Rows[i].Cells["DIMATER"].Value.ToString();
  240. //壁厚HEIGHT
  241. string height = ultraGrid2.Rows[i].Cells["HEIGHT"].Value.ToString();
  242. if ("A".Equals(type))
  243. {
  244. if ("".Equals(dimater) || "".Equals(height))
  245. {
  246. MessageBox.Show("钢管类别,壁厚和外径不允许为空!", "提示",
  247. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  248. return;
  249. }
  250. }
  251. else if ("B".Equals(type))
  252. {
  253. //只允许填外径
  254. if ("".Equals(dimater) || !"".Equals(height))
  255. {
  256. MessageBox.Show("管坯类别,外径不允许为空,壁厚只能为空!", "提示",
  257. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  258. return;
  259. }
  260. }
  261. else if ("C".Equals(type))
  262. {
  263. if (!"".Equals(dimater) || !"".Equals(height))
  264. {
  265. MessageBox.Show("其它类别,外径壁厚不可填!", "提示",
  266. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  267. return;
  268. }
  269. }
  270. //构建ArrayList,添加到parms当中。
  271. ArrayList parm = new ArrayList();
  272. //PRODUCCODEID不能重复。
  273. //parm.Add(SPEC_CODE);
  274. parm.Add(ultraGrid2.Rows[i].Cells["SPEC_NAME"].Value.ToString());
  275. parm.Add(ultraGrid2.Rows[i].Cells["DIMATER"].Value.ToString());
  276. parm.Add(ultraGrid2.Rows[i].Cells["HEIGHT"].Value.ToString());
  277. parm.Add(ultraGrid2.Rows[i].Cells["WEIGHT"].Value.ToString());
  278. parm.Add(ultraGrid2.Rows[i].Cells["MSC_STYLE"].Value.ToString());
  279. //创建人应为当前操作用户。
  280. //parm.Add(ultraGrid1.ActiveRow.Cells["create_name"].Value.ToString());
  281. parm.Add(this.UserInfo.GetUserName());
  282. //创建时间为当前时间。
  283. parm.Add(DateTime.Now.ToString());
  284. //扣型状态为录入状态,0为无效,1为有效。
  285. parm.Add(1);
  286. parm.Add(ultraGrid2.Rows[i].Cells["MEMO"].Value.ToString());
  287. parms.Add(parm);
  288. if (ultraGrid2.Rows[i].ChildBands[0].Rows.Count > 0)
  289. {
  290. //ultraGrid2.UpdateData();
  291. ArrayList minParms = new ArrayList();
  292. for (int j = 0; j < ultraGrid2.Rows[i].ChildBands[0].Rows.Count; j++)
  293. {
  294. Infragistics.Win.UltraWinGrid.UltraGridRow minrow = ultraGrid2.Rows[i].ChildBands[0].Rows[j];
  295. if ((Boolean)minrow.Cells["spchk"].Value)
  296. {
  297. //表示子表子项已经选中
  298. //实现子表子项的修改操作,批量操作。
  299. //ORDER_SPEC_CODE,ORDER_SPEC_DESC,SPEC_CODE,
  300. //SPEC_NAME,CREATE_NAME,CREATE_TIME,UPDATE_NAME,
  301. //UPDATE_TIME,DELETE_NAME ,DELETE_TIME,VALIDFLAG,MEMO
  302. ArrayList minParm = new ArrayList();
  303. minParm.Add(minrow.Cells["ORDER_SPEC_CODE"].Value.ToString());
  304. minParm.Add(minrow.Cells["ORDER_SPEC_DESC"].Value.ToString());
  305. minParm.Add(ultraGrid2.Rows[i].Cells["SPEC_CODE"].Value.ToString());
  306. minParm.Add(ultraGrid2.Rows[i].Cells["SPEC_NAME"].Value.ToString());
  307. minParm.Add(this.UserInfo.GetUserName());
  308. minParm.Add(DateTime.Now.ToString());
  309. minParm.Add(minrow.Cells["memo"].Value.ToString());
  310. //添加到parms当中。
  311. minParms.Add(minParm);
  312. }
  313. }
  314. //操作数据库,实现从表的修改。
  315. if (minParms.Count > 0)
  316. {
  317. CoreClientParam minccp = new CoreClientParam();
  318. //服务端的包名+类名
  319. minccp.ServerName = "com.steering.pss.qcm.CoreSpecOrderBasics";
  320. //类里的方法名
  321. minccp.MethodName = "doModify";
  322. minccp.ServerParams = new object[] { minParms };
  323. minccp = this.ExecuteNonQuery(minccp, CoreInvokeType.Internal);
  324. if (minccp.ReturnCode == -1) return;
  325. }
  326. }
  327. }
  328. }
  329. CoreClientParam ccp = new CoreClientParam();
  330. //服务端的包名+类名
  331. ccp.ServerName = "com.steering.pss.qcm.CoreSpecBasicsNew";
  332. //类里的方法名
  333. ccp.MethodName = "doAdd";
  334. ccp.ServerParams = new object[] { parms };
  335. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  336. if (ccp.ReturnCode == -1) return;
  337. MessageBox.Show("新增成功!", "提示",
  338. MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  339. doQuery();
  340. }
  341. /// <summary>
  342. /// 删除或恢复
  343. /// </summary>
  344. /// <param name="isDelete">true删除 false恢复</param>
  345. private void doDeleteOrResume(bool isDelete)
  346. {
  347. ultraGrid2.UpdateData();
  348. ArrayList param = new ArrayList();
  349. ArrayList minParam = new ArrayList();
  350. int chkCount = 0;
  351. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow row in ultraGrid2.Rows)
  352. {
  353. //主表勾选了,从表跟着删除。
  354. if (Convert.ToBoolean(row.Cells["cb"].Value))
  355. {
  356. param.Add(row.Cells["SPEC_CODE"].Value.ToString());
  357. chkCount++;
  358. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow minrow in row.ChildBands[0].Rows)
  359. {
  360. minParam.Add(minrow.Cells["ORDER_SPEC_CODE"].Value.ToString());
  361. chkCount++;
  362. }
  363. }
  364. else
  365. {
  366. //主表未勾选,从表勾选了,照样删除。
  367. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow minrow in row.ChildBands[0].Rows)
  368. {
  369. if ((Boolean)minrow.Cells["spchk"].Value)
  370. {
  371. minParam.Add(minrow.Cells["ORDER_SPEC_CODE"].Value.ToString());
  372. chkCount++;
  373. }
  374. }
  375. }
  376. }
  377. if (chkCount == 0)
  378. {
  379. MessageUtil.ShowWarning("请选择数据后再进行操作!");
  380. return;
  381. }
  382. if (MessageBox.Show("是否" + (isDelete ? "作废" : "恢复") + "选中的数据?", "提示",
  383. MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
  384. {
  385. try
  386. {
  387. int count = 0;
  388. if (param.Count > 0)
  389. {
  390. count = ServerHelper.SetData("com.steering.pss.qcm.CoreSpecBasicsNew.deleteLineInfo", new Object[] { param, UserInfo.GetUserName(), isDelete }, this.ob);
  391. }
  392. int minCount = 0;
  393. if (minParam.Count > 0)
  394. {
  395. minCount = ServerHelper.SetData("com.steering.pss.qcm.CoreSpecOrderBasics.deleteLineInfo", new Object[] { minParam, UserInfo.GetUserName(), isDelete }, this.ob);
  396. }
  397. if (count > 0 || minCount > 0)
  398. {
  399. doQuery();
  400. ExpandRow();
  401. _chooseCodes.Clear();
  402. }
  403. }
  404. catch (MESException ex)
  405. {
  406. MessageBox.Show("错误消息:" + ex.ExceptionInfo, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
  407. }
  408. }
  409. }
  410. private void doSave()
  411. {
  412. ultraGrid2.UpdateData();
  413. //判断是否有勾选项,没有则提示。
  414. int chkbool = 0;
  415. foreach (UltraGridRow row in ultraGrid2.Rows)
  416. {
  417. if (row.Cells["cb"].Value.ToString().ToUpper() == "TRUE")
  418. {
  419. chkbool += 1;
  420. }
  421. foreach (UltraGridRow row2 in row.ChildBands[0].Rows)
  422. {
  423. if (row2.Cells["spchk"].Value.ToString().ToUpper() == "TRUE")
  424. {
  425. chkbool += 1;
  426. }
  427. }
  428. }
  429. if (chkbool <= 0)
  430. {
  431. MessageBox.Show("请选择数据后再进行操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  432. return;
  433. }
  434. //确定保存吗?
  435. if (MessageBox.Show("是否确认保存?", "提示", MessageBoxButtons.YesNo,
  436. MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
  437. {
  438. return;
  439. }
  440. //主表新增组ArrayList
  441. ArrayList spbAddParams = new ArrayList();
  442. //主表修改组ArrayList
  443. ArrayList spbUpdateParams = new ArrayList();
  444. //从表新增组ArrayList
  445. ArrayList spbSupplementAddParams = new ArrayList();
  446. //从表修改组ArrayList
  447. ArrayList spbSupplementUpdateParams = new ArrayList();
  448. //遍历主表,判定是否有勾选项。
  449. for (int i = 0; i < this.dataTable1.Rows.Count; i++)
  450. {
  451. DataRow dr = dataTable1.Rows[i];
  452. if (dr["CHK"].ToString() == "True")
  453. {
  454. //判定勾选项是新增行,还是修改行。
  455. if (dr.RowState == DataRowState.Added)
  456. {
  457. //需要根据类型,决定外径和壁厚是否可填。
  458. //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)、C其它(要走接箍或附件的,不能填外径壁厚))
  459. string type = dr["MSC_STYLE"].ToString();
  460. //把外径、壁厚取出来。
  461. //外径
  462. string dimater = dr["DIMATER"].ToString();
  463. //壁厚HEIGHT
  464. string height = dr["HEIGHT"].ToString();
  465. //新增行
  466. //将主表勾选项,并且状态为新增的行,构建ArrayList参数,加给spbAddParams组。
  467. ArrayList parm = new ArrayList();
  468. parm.Add(dr["SPEC_CODE"].ToString());
  469. parm.Add(dr["SPEC_NAME"].ToString());
  470. parm.Add(dr["DIMATER"].ToString());
  471. parm.Add(dr["HEIGHT"].ToString());
  472. parm.Add(dr["WEIGHT"].ToString());
  473. parm.Add(dr["MSC_STYLE"].ToString());
  474. parm.Add(this.UserInfo.GetUserName());
  475. parm.Add(DateTime.Now.ToString());
  476. parm.Add(1);
  477. parm.Add(dr["MEMO"].ToString());
  478. spbAddParams.Add(parm);
  479. }
  480. else if (this.dataTable1.Rows[i].RowState == DataRowState.Modified)
  481. {
  482. //修改行
  483. //将主表勾选项,并且状态为修改的行,构建ArrayList参数,加给spbAddParams组。
  484. ArrayList parm = new ArrayList();
  485. parm.Add(dr["SPEC_NAME"].ToString());
  486. parm.Add(dr["DIMATER"].ToString());
  487. parm.Add(dr["HEIGHT"].ToString());
  488. parm.Add(dr["WEIGHT"].ToString());
  489. parm.Add(dr["MSC_STYLE"].ToString());
  490. parm.Add(this.UserInfo.GetUserName());
  491. parm.Add(DateTime.Now.ToString());
  492. parm.Add(dr["MEMO"].ToString());
  493. parm.Add(dr["SPEC_CODE"].ToString());
  494. spbUpdateParams.Add(parm);
  495. }
  496. }
  497. }
  498. //直接遍历从表所有行,判定是否有选中项。
  499. for (int j = 0; j < dataTable2.Rows.Count; j++)
  500. {
  501. DataRow minrow = dataTable2.Rows[j];
  502. if (minrow["CHK"].ToString() == "True")
  503. {
  504. if (minrow.RowState == DataRowState.Added)
  505. {
  506. ArrayList minParm = new ArrayList();
  507. minParm.Add(minrow["ORDER_SPEC_CODE"].ToString());
  508. minParm.Add(minrow["ORDER_SPEC_DESC"].ToString());
  509. //name是冗余字段,不需要。
  510. minParm.Add(minrow["SPEC_CODE"].ToString());
  511. minParm.Add(minrow["SPEC_NAME"].ToString());
  512. minParm.Add(this.UserInfo.GetUserName());
  513. minParm.Add(DateTime.Now.ToString());
  514. minParm.Add(1);
  515. minParm.Add(minrow["MEMO"].ToString());
  516. spbSupplementAddParams.Add(minParm);
  517. }
  518. else if (minrow.RowState == DataRowState.Modified)
  519. {
  520. ArrayList minParm = new ArrayList();
  521. minParm.Add(minrow["ORDER_SPEC_DESC"].ToString());
  522. minParm.Add(this.UserInfo.GetUserName());
  523. minParm.Add(DateTime.Now.ToString());
  524. minParm.Add(minrow["MEMO"].ToString());
  525. minParm.Add(minrow["ORDER_SPEC_CODE"].ToString());
  526. spbSupplementUpdateParams.Add(minParm);
  527. }
  528. }
  529. }
  530. //执行数据库相关操作
  531. CoreClientParam ccp = new CoreClientParam();
  532. //服务端的包名+类名
  533. ccp.ServerName = "com.steering.pss.qcm.CoreSpecBasicsNew";
  534. //类里的方法名
  535. ccp.MethodName = "doSave";
  536. ccp.ServerParams = new object[] { spbAddParams, spbUpdateParams, spbSupplementAddParams, spbSupplementUpdateParams };
  537. try
  538. {
  539. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  540. }
  541. catch (Exception ex)
  542. {
  543. MessageBox.Show("错误提示:" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
  544. return;
  545. }
  546. if (ccp.ReturnCode == -1)
  547. {
  548. return;
  549. }
  550. else
  551. {
  552. MessageBox.Show("保存成功!", "提示",
  553. MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  554. doQuery();
  555. ExpandRow();
  556. _chooseCodes.Clear();
  557. }
  558. }
  559. private void doModify()
  560. {
  561. //需要实现批量修改功能。
  562. ultraGrid2.UpdateData();
  563. //dataSet2.Tables[0].Rows[0].RowState == DataRowState.Added;
  564. //dataSet2.Tables[0].AcceptChanges();
  565. //DataRowState.Modified;
  566. ArrayList parms = new ArrayList();
  567. for (int i = 0; i < ultraGrid2.Rows.Count; i++)
  568. {
  569. //复选框是否已经选中
  570. if ((Boolean)ultraGrid2.Rows[i].Cells["cb"].Value)
  571. {
  572. //就在这里面判断类型。假设是类型A。则判断外径壁厚是否为空,假设为空,同上弹出提示信息,终止操作。
  573. //类型(A钢管(必须要填外径壁厚)、B管坯(只允许填外径)、C其它(要走接箍或附件的,不能填外径壁厚))
  574. string type = ultraGrid2.Rows[i].Cells["MSC_STYLE"].Value.ToString();
  575. //把外径、壁厚取出来。
  576. //外径
  577. string dimater = ultraGrid2.Rows[i].Cells["DIMATER"].Value.ToString();
  578. //壁厚HEIGHT
  579. string height = ultraGrid2.Rows[i].Cells["HEIGHT"].Value.ToString();
  580. if ("A".Equals(type))
  581. {
  582. if ("".Equals(dimater) || "".Equals(height))
  583. {
  584. MessageBox.Show("钢管类别,壁厚和外径不允许为空!", "提示",
  585. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  586. return;
  587. }
  588. }
  589. else if ("B".Equals(type))
  590. {
  591. //只允许填外径
  592. if ("".Equals(dimater) || !"".Equals(height))
  593. {
  594. MessageBox.Show("管坯类别,外径不允许为空,壁厚只能为空!", "提示",
  595. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  596. return;
  597. }
  598. }
  599. else if ("C".Equals(type))
  600. {
  601. if (!"".Equals(dimater) || !"".Equals(height))
  602. {
  603. MessageBox.Show("其它类别,外径壁厚不可填!", "提示",
  604. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  605. return;
  606. }
  607. }
  608. //构建ArrayList,添加到parms当中。
  609. ArrayList parm = new ArrayList();
  610. parm.Add(ultraGrid2.Rows[i].Cells["SPEC_NAME"].Value.ToString());
  611. parm.Add(ultraGrid2.Rows[i].Cells["DIMATER"].Value.ToString());
  612. parm.Add(ultraGrid2.Rows[i].Cells["HEIGHT"].Value.ToString());
  613. parm.Add(ultraGrid2.Rows[i].Cells["WEIGHT"].Value.ToString());
  614. parm.Add(ultraGrid2.Rows[i].Cells["MSC_STYLE"].Value.ToString());
  615. //修改人应该为当前用户。ultraGrid1.ActiveRow.Cells["update_name"].Value.ToString()
  616. parm.Add(this.UserInfo.GetUserName());
  617. //修改时间应该为当前时间。ultraGrid1.ActiveRow.Cells["update_time"].Value.ToString()
  618. parm.Add(DateTime.Now.ToString());
  619. parm.Add(ultraGrid2.Rows[i].Cells["memo"].Value.ToString());
  620. parm.Add(ultraGrid2.Rows[i].Cells["SPEC_CODE"].Value.ToString());
  621. //添加到parms当中。
  622. parms.Add(parm);
  623. //循环嵌套,执行他子项的修改操作。
  624. if (ultraGrid2.Rows[i].ChildBands[0].Rows.Count > 0)
  625. {
  626. ArrayList minParms = new ArrayList();
  627. for (int j = 0; j < ultraGrid2.Rows[i].ChildBands[0].Rows.Count; j++)
  628. {
  629. Infragistics.Win.UltraWinGrid.UltraGridRow minrow = ultraGrid2.Rows[i].ChildBands[0].Rows[j];
  630. if ((Boolean)minrow.Cells["spchk"].Value)
  631. {
  632. //表示子表子项已经选中
  633. //实现子表子项的修改操作,批量操作。
  634. //ORDER_SPEC_CODE,ORDER_SPEC_DESC,SPEC_CODE,
  635. //SPEC_NAME,CREATE_NAME,CREATE_TIME,UPDATE_NAME,
  636. //UPDATE_TIME,DELETE_NAME ,DELETE_TIME,VALIDFLAG,MEMO
  637. ArrayList minParm = new ArrayList();
  638. minParm.Add(minrow.Cells["ORDER_SPEC_DESC"].Value.ToString());
  639. //parm.Add(ultraGrid2.Rows[i].Cells["SPEC_CODE"].Value.ToString());
  640. //parm.Add(ultraGrid2.Rows[i].Cells["SPEC_NAME"].Value.ToString());
  641. //修改人应该为当前用户。ultraGrid1.ActiveRow.Cells["update_name"].Value.ToString()
  642. minParm.Add(this.UserInfo.GetUserName());
  643. //修改时间应该为当前时间。ultraGrid1.ActiveRow.Cells["update_time"].Value.ToString()
  644. minParm.Add(DateTime.Now.ToString());
  645. minParm.Add(minrow.Cells["memo"].Value.ToString());
  646. minParm.Add(minrow.Cells["ORDER_SPEC_CODE"].Value.ToString());
  647. //添加到parms当中。
  648. minParms.Add(minParm);
  649. }
  650. }
  651. //操作数据库,实现从表的修改。
  652. if (minParms.Count > 0)
  653. {
  654. CoreClientParam minccp = new CoreClientParam();
  655. //服务端的包名+类名
  656. minccp.ServerName = "com.steering.pss.qcm.CoreSpecOrderBasics";
  657. //类里的方法名
  658. minccp.MethodName = "doModify";
  659. minccp.ServerParams = new object[] { minParms };
  660. minccp = this.ExecuteNonQuery(minccp, CoreInvokeType.Internal);
  661. if (minccp.ReturnCode == -1) return;
  662. }
  663. }
  664. }
  665. }
  666. if (parms.Count <= 0)
  667. {
  668. MessageBox.Show("请先选择数据后再进行操作!", "提示",
  669. MessageBoxButtons.OK, MessageBoxIcon.Warning);
  670. return;
  671. }
  672. CoreClientParam ccp = new CoreClientParam();
  673. //服务端的包名+类名
  674. ccp.ServerName = "com.steering.pss.qcm.CoreSpecBasicsNew";
  675. //类里的方法名
  676. ccp.MethodName = "doModify";
  677. ccp.ServerParams = new object[] { parms };
  678. ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  679. if (ccp.ReturnCode == -1) return;
  680. MessageBox.Show("修改成功!", "提示",
  681. MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  682. doQuery();
  683. }
  684. /// <summary>
  685. /// 查询方法,比较通用的查询方法
  686. /// </summary>
  687. private void doQuery()
  688. {
  689. bool validFlag = chkValid.Checked;
  690. string titleName = txtTitleName.Text.Trim();
  691. dataTable2.Clear();
  692. dataTable1.Clear();
  693. try
  694. {
  695. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.getLineList", new Object[] { validFlag, titleName }, this.ob);
  696. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  697. dataTable1.AcceptChanges();
  698. //从表的记录也要查询出来。
  699. DataTable mindt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecOrderBasics.getLineList", new Object[] { validFlag, titleName }, this.ob);
  700. GridHelper.CopyDataToDatatable(ref mindt, ref this.dataTable2, true);
  701. }
  702. catch
  703. {
  704. return;
  705. }
  706. dataTable2.AcceptChanges();
  707. GridHelper.RefreshAndAutoSize(ultraGrid2);
  708. }
  709. /// <summary>
  710. /// 获取产品规格代码
  711. /// </summary>
  712. /// <param name="dt"></param>
  713. /// <returns></returns>
  714. private string AutoSpecCode()
  715. {
  716. DataTable dt = null;
  717. try
  718. {
  719. dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.getMaxSpecCode",
  720. new object[] { }, ob);
  721. }
  722. catch
  723. {
  724. return "C000001";
  725. }
  726. if (dt == null || dt.Rows[0][0].ToString() == "")
  727. {
  728. return "C000001";
  729. }
  730. int maxCode = 0;
  731. string maxCodeString = dt.Rows[0][0].ToString();
  732. maxCode = Convert.ToInt32(maxCodeString.Substring(1));
  733. maxCode += 1;
  734. return maxCodeString.Substring(0, 1) + maxCode.ToString().PadLeft(6, '0');
  735. }
  736. /// <summary>
  737. /// 获取订货规格代码
  738. /// </summary>
  739. /// <param name="dt"></param>
  740. /// <returns></returns>
  741. private string AutoOrderCode(RowEventArgs e)
  742. {
  743. ArrayList list = new ArrayList();
  744. list.Add(e.Row.Cells["SPEC_CODE"].Value.ToString());
  745. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreSpecBasicsNew.getMaxOrderSpecCode",
  746. new object[] { list }, ob);
  747. string specCode = e.Row.Cells["SPEC_CODE"].Value.ToString();
  748. if (dt == null || dt.Rows[0][0].ToString() == "")
  749. {
  750. return specCode + "DH000001";
  751. }
  752. int maxCode = 0;
  753. string maxCodeString = dt.Rows[0][0].ToString();
  754. maxCode = Convert.ToInt32(maxCodeString.Substring(9));
  755. maxCode += 1;
  756. return maxCodeString.Substring(0, 9) + maxCode.ToString().PadLeft(6, '0');
  757. }
  758. private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
  759. {
  760. if (ultraGrid2.ActiveRow.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
  761. {
  762. string strMaxLclSpec_Code = "";
  763. strMaxSvrSpec_Code = AutoSpecCode();
  764. DataRow[] drs = dataTable1.Select("1=1", "SPEC_CODE DESC");
  765. if (drs.Length > 0)
  766. {
  767. strMaxLclSpec_Code = strMaxSvrSpec_Code.Substring(0, 1) + (Convert.ToInt32(drs[0][0].ToString().Substring(1)) + 1).ToString().PadLeft(6, '0');
  768. }
  769. if (strMaxLclSpec_Code == "")
  770. {
  771. ultraGrid2.ActiveRow.Cells["SPEC_CODE"].Value = strMaxSvrSpec_Code;
  772. }
  773. else
  774. {
  775. if (Convert.ToInt32(strMaxSvrSpec_Code.Substring(1)) >= Convert.ToInt32(strMaxLclSpec_Code.Substring(3)))
  776. {
  777. ultraGrid2.ActiveRow.Cells["SPEC_CODE"].Value = strMaxSvrSpec_Code;
  778. }
  779. else
  780. {
  781. ultraGrid2.ActiveRow.Cells["SPEC_CODE"].Value = strMaxLclSpec_Code;
  782. }
  783. }
  784. }
  785. else
  786. {
  787. string strMaxLclOrder_Spec_Code = "";
  788. strMaxSvrOrder_Spec_Code = AutoOrderCode(e);
  789. DataRow[] drs = null;
  790. string spec_Code = e.Row.Cells["SPEC_CODE"].Value.ToString();
  791. drs = dataTable2.Select("SPEC_CODE = '" + spec_Code + "'", "ORDER_SPEC_CODE DESC");
  792. if (drs.Length > 0)
  793. {
  794. strMaxLclOrder_Spec_Code = strMaxSvrOrder_Spec_Code.Substring(0, 9) + (Convert.ToInt32(drs[0][0].ToString().Substring(9)) + 1).ToString().PadLeft(6, '0');
  795. }
  796. if (strMaxLclOrder_Spec_Code == "")
  797. {
  798. ultraGrid2.ActiveRow.Cells["ORDER_SPEC_CODE"].Value = strMaxSvrOrder_Spec_Code;
  799. }
  800. else
  801. {
  802. if (Convert.ToInt32(strMaxSvrOrder_Spec_Code.Substring(9)) >= Convert.ToInt32(strMaxLclOrder_Spec_Code.Substring(9)))
  803. {
  804. ultraGrid2.ActiveRow.Cells["ORDER_SPEC_CODE"].Value = strMaxSvrOrder_Spec_Code;
  805. }
  806. else
  807. {
  808. ultraGrid2.ActiveRow.Cells["ORDER_SPEC_CODE"].Value = strMaxLclOrder_Spec_Code;
  809. }
  810. }
  811. e.Row.Cells["SPEC_NAME"].Value = e.Row.ParentRow.Cells["SPEC_NAME"].Value;
  812. }
  813. ultraGrid2.UpdateData();
  814. }
  815. private void ultraGrid2_CellChange(object sender, CellEventArgs e)
  816. {
  817. ultraGrid2.UpdateData();
  818. if (e.Cell.Column.Header.Caption == "选择"
  819. && e.Cell.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
  820. {
  821. e.Cell.Row.Cells["CHK"].Value = e.Cell.Value;
  822. foreach (UltraGridRow row in e.Cell.Row.ChildBands[0].Rows)
  823. {
  824. row.Cells["spchk"].Value = e.Cell.Value;
  825. row.Cells["CHK"].Value = e.Cell.Value;
  826. }
  827. }
  828. else if (e.Cell.Column.Header.Caption == "选择"
  829. && e.Cell.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[1].Columns["ColB"]))
  830. {
  831. e.Cell.Row.Cells["CHK"].Value = e.Cell.Value;
  832. }
  833. if (e.Cell.Row.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
  834. {
  835. if (e.Cell.Row.Cells["MSC_STYLE"].Value.ToString() == "A")
  836. {
  837. string spec_Name = "";
  838. spec_Name += e.Cell.Row.Cells["DIMATER"].Value.ToString();
  839. if (spec_Name == "" || e.Cell.Row.Cells["HEIGHT"].Value.ToString() == "")
  840. {
  841. spec_Name += e.Cell.Row.Cells["HEIGHT"].Value.ToString();
  842. }
  843. else
  844. {
  845. spec_Name += "*" + e.Cell.Row.Cells["HEIGHT"].Value.ToString();
  846. }
  847. e.Cell.Row.Cells["SPEC_NAME"].Value = spec_Name;
  848. }
  849. else if (e.Cell.Row.Cells["MSC_STYLE"].Value.ToString() == "B")
  850. {
  851. e.Cell.Row.Cells["SPEC_NAME"].Value = e.Cell.Row.Cells["DIMATER"].Value.ToString();
  852. e.Cell.Row.Cells["HEIGHT"].Value = "";
  853. }
  854. else
  855. {
  856. e.Cell.Row.Cells["DIMATER"].Value = "";
  857. e.Cell.Row.Cells["HEIGHT"].Value = "";
  858. }
  859. }
  860. SaveChooseCode(e);
  861. ultraGrid2.Update();
  862. }
  863. private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e)
  864. {
  865. BandComboToGrid(e);
  866. if (_exporting) return;
  867. if (e.Row.Cells["VALIDFLAG"].Value.ToString() == "0")
  868. {
  869. e.Row.Appearance.ForeColor = Color.Red;
  870. }
  871. else
  872. {
  873. e.Row.Appearance.ForeColor = Color.Black;
  874. }
  875. ControlEdit(e);
  876. SetCellColor(e);
  877. }
  878. private void BandComboToGrid(InitializeRowEventArgs e)
  879. {
  880. if (e.Row.HasParent() == false)
  881. {
  882. e.Row.Cells["MSC_STYLE"].EditorComponent = cmbBindType;
  883. }
  884. }
  885. private void SetCellColor(InitializeRowEventArgs e)
  886. {
  887. foreach (UltraGridCell cell in e.Row.Cells)
  888. {
  889. if (cell.Activation == Activation.AllowEdit)
  890. {
  891. cell.Appearance.BackColor = Color.FromArgb(255, 255, 192);
  892. }
  893. else
  894. {
  895. cell.Appearance.BackColor = e.Row.Appearance.BackColor;
  896. cell.Appearance.BackColor = e.Row.Appearance.BackColor2;
  897. }
  898. }
  899. }
  900. private void SaveChooseCode(CellEventArgs e)
  901. {
  902. if (e.Cell.Row.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
  903. {
  904. if (e.Cell.Row.Cells["cb"].Value.ToString().ToUpper() == "TRUE")
  905. {
  906. if (_chooseCodes.Contains(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString()) == false)
  907. {
  908. _chooseCodes.Add(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString());
  909. }
  910. }
  911. else
  912. {
  913. if (_chooseCodes.Contains(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString()) == true)
  914. {
  915. _chooseCodes.Remove(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString());
  916. }
  917. }
  918. }
  919. else
  920. {
  921. if (e.Cell.Row.Cells["spchk"].Value.ToString().ToUpper() == "TRUE")
  922. {
  923. if (_chooseCodes.Contains(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString()) == false)
  924. {
  925. _chooseCodes.Add(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString());
  926. }
  927. }
  928. else
  929. {
  930. if (e.Cell.Row.ParentRow.Cells["cb"].Value.ToString() == "True") return;
  931. UltraGridRow[] rows = GridHelper.GetRowsWithKey(e.Cell.Row.ParentRow.ChildBands[0],
  932. new string[] { "spchk" }, new string[] { "True" });
  933. if (rows.Length > 0) return;
  934. if (_chooseCodes.Contains(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString()) == true)
  935. {
  936. _chooseCodes.Remove(e.Cell.Row.Cells["SPEC_CODE"].Value.ToString());
  937. }
  938. }
  939. }
  940. }
  941. private void ControlEdit(InitializeRowEventArgs e)
  942. {
  943. List<string> list = new List<string>();
  944. list.Add("创建人");
  945. list.Add("创建时间");
  946. list.Add("修改人");
  947. list.Add("修改时间");
  948. list.Add("作废人");
  949. list.Add("作废时间");
  950. list.Add("有效状态");
  951. list.Add("产品规格代码");
  952. List<string> list3 = new List<string>();
  953. list3.Add("外径");
  954. list3.Add("壁厚");
  955. List<string> list2 = new List<string>();
  956. list2.Add("创建人");
  957. list2.Add("创建时间");
  958. list2.Add("修改人");
  959. list2.Add("修改时间");
  960. list2.Add("作废人");
  961. list2.Add("作废时间");
  962. list2.Add("有效标志");
  963. list2.Add("订货规格代码");
  964. foreach (UltraGridCell cell in e.Row.Cells)
  965. {
  966. if (cell.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
  967. {
  968. if (e.Row.Cells["cb"].Value.ToString().ToUpper() == "TRUE"
  969. && list.Contains(cell.Column.Header.Caption) == false)
  970. {
  971. if (cell.Column.Header.Caption == "产品规格描述")
  972. {
  973. if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "C"
  974. || e.Row.Cells["MSC_STYLE"].Value.ToString() == "")
  975. {
  976. cell.Activation = Activation.AllowEdit;
  977. }
  978. else
  979. {
  980. cell.Activation = Activation.ActivateOnly;
  981. }
  982. }
  983. else if (cell.Column.Header.Caption == "类型")
  984. {
  985. cell.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  986. cell.Activation = Activation.AllowEdit;
  987. }
  988. else
  989. {
  990. cell.Activation = Activation.AllowEdit;
  991. }
  992. }
  993. else if (cell.Column.Header.Caption != "选择"
  994. && list3.Contains(cell.Column.Header.Caption) == false)
  995. {
  996. if (cell.Column.Header.Caption == "类型")
  997. {
  998. cell.Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown;
  999. cell.Activation = Activation.ActivateOnly;
  1000. }
  1001. else
  1002. {
  1003. cell.Activation = Activation.ActivateOnly;
  1004. }
  1005. }
  1006. }
  1007. else
  1008. {
  1009. if (e.Row.Cells["spchk"].Value.ToString().ToUpper() == "TRUE"
  1010. && list2.Contains(cell.Column.Header.Caption) == false)
  1011. {
  1012. cell.Activation = Activation.AllowEdit;
  1013. }
  1014. else if (cell.Column.Header.Caption != "选择")
  1015. {
  1016. cell.Activation = Activation.ActivateOnly;
  1017. }
  1018. }
  1019. }
  1020. if (e.Row.Band.Columns.Contains(ultraGrid2.DisplayLayout.Bands[0].Columns["ColA"]))
  1021. {
  1022. if (e.Row.Cells["cb"].Value.ToString().ToUpper() == "TRUE")
  1023. {
  1024. if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "A")
  1025. {
  1026. e.Row.Cells["DIMATER"].Activation = Activation.AllowEdit;
  1027. e.Row.Cells["HEIGHT"].Activation = Activation.AllowEdit;
  1028. }
  1029. else if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "B")
  1030. {
  1031. e.Row.Cells["DIMATER"].Activation = Activation.AllowEdit;
  1032. e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
  1033. }
  1034. else
  1035. {
  1036. e.Row.Cells["DIMATER"].Activation = Activation.ActivateOnly;
  1037. e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
  1038. }
  1039. }
  1040. else
  1041. {
  1042. if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "A")
  1043. {
  1044. e.Row.Cells["DIMATER"].Activation = Activation.ActivateOnly;
  1045. e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
  1046. }
  1047. else if (e.Row.Cells["MSC_STYLE"].Value.ToString() == "B")
  1048. {
  1049. e.Row.Cells["DIMATER"].Activation = Activation.ActivateOnly;
  1050. e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
  1051. }
  1052. else
  1053. {
  1054. e.Row.Cells["DIMATER"].Activation = Activation.ActivateOnly;
  1055. e.Row.Cells["HEIGHT"].Activation = Activation.ActivateOnly;
  1056. }
  1057. }
  1058. }
  1059. //ultraGrid2.Update();
  1060. }
  1061. }
  1062. }