FrmStandardK.cs 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Server;
  3. using CoreFS.CA06;
  4. using Infragistics.Win;
  5. using Infragistics.Win.UltraWinEditors;
  6. using Infragistics.Win.UltraWinGrid;
  7. using Infragistics.Win.UltraWinTabControl;
  8. using System;
  9. using System.Collections;
  10. using System.Collections.Generic;
  11. using System.Data;
  12. using System.Drawing;
  13. using System.Windows.Forms;
  14. namespace Core.StlMes.Client.Qcm
  15. {
  16. /// <summary>
  17. /// 产品规范管理
  18. /// </summary>
  19. public partial class FrmStandardK : FrmBase
  20. {
  21. //提示信息
  22. private string errMessage = "";
  23. private Dictionary<string, UltraComboEditor> _ultCmbDic_Unit = null;
  24. //定位标准基础
  25. private string _std = "";
  26. //定位最终客户
  27. private string _cust = "";
  28. //判断是否勾选
  29. private int isSelectData = -1;
  30. private int distance = 0;
  31. private int disWidth = 0;
  32. ComStandPay csp = null;
  33. public FrmStandardK()
  34. {
  35. IsLoadUserView = true;
  36. InitializeComponent();
  37. }
  38. /// <summary>
  39. /// 重写基类方法
  40. /// </summary>
  41. /// <param name="sender"></param>
  42. /// <param name="ToolbarKey"></param>
  43. public override void ToolBar_Click(object sender, string ToolbarKey)
  44. {
  45. switch (ToolbarKey)
  46. {
  47. case "doQuery":
  48. DoQuery();
  49. break;
  50. case "doSave":
  51. DoSave();
  52. break;
  53. case "doDelete":
  54. this.DoDeleteOrResume(true);
  55. break;
  56. case "doResume":
  57. this.DoDeleteOrResume(false);
  58. break;
  59. case "Refresh":
  60. InitComBoEditor();
  61. break;
  62. case "Close":
  63. this.Close();
  64. break;
  65. }
  66. }
  67. /// <summary>
  68. /// 查询
  69. /// </summary>
  70. private void DoQuery()
  71. {
  72. //查询条件
  73. string valid = "1";
  74. if (ChcValid.Checked)
  75. valid = "0";
  76. string std = "";
  77. if (ChcStd.Checked)
  78. std = TextStd.Text.Trim();
  79. //CoreStandard标准基础表
  80. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreStandard1.getComBaseStd", new Object[] { valid, std }, this.ob);
  81. DataRow[] rows = dt.Select("STDSTYLE<>'Alpha'");
  82. foreach (DataRow dr in rows)
  83. {
  84. dt.Rows.Remove(dr);
  85. }
  86. dt.Columns.AddRange(new DataColumn[] {
  87. new DataColumn("STD_NAME_OLD")});
  88. for (int i = 0; i < dt.Rows.Count; i++)
  89. {
  90. dt.Rows[i]["STD_NAME_OLD"] = dt.Rows[i]["STD_NAME"];
  91. }
  92. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  93. //定位
  94. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "STD_NAME" }, new string[] { _std });
  95. if (rows1.Length > 0)
  96. rows1[0].Activate();
  97. UltraGridColumn[] col = new UltraGridColumn[] { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"] };
  98. GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
  99. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  100. isSelectData = -1;
  101. }
  102. /// <summary>
  103. /// 保存
  104. /// </summary>
  105. private void DoSave()
  106. {
  107. ultraGrid1.UpdateData();
  108. ultraGrid3.UpdateData();
  109. if (isSelectData == -1)
  110. {
  111. MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  112. return;
  113. }
  114. if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  115. {
  116. return;
  117. }
  118. //标准基础
  119. UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHC" }, new string[] { "True" });
  120. ArrayList stdAdd = new ArrayList();
  121. ArrayList stdUpdate = new ArrayList();
  122. if (rows.Length > 0)
  123. {
  124. foreach (UltraGridRow row in rows)
  125. {
  126. if (row.Cells["STD_NAME"].Value.ToString() != row.Cells["STD_NAME_OLD"].Value.ToString())
  127. {
  128. DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getCount", new Object[] { row.Cells["STD_NAME_OLD"].Value.ToString() }, this.ob);
  129. if (dt1 != null && dt1.Rows.Count > 0)
  130. {
  131. int i = Convert.ToInt32(dt1.Rows[0][0].ToString());
  132. if (i > 0)
  133. {
  134. MessageBox.Show("标准 " + row.Cells["STD_NAME_OLD"].Value.ToString() + " 已被引用,无法修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  135. return;
  136. }
  137. }
  138. }
  139. ArrayList stdList = GetStdData(row);
  140. if (stdList == null)
  141. {
  142. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  143. return;
  144. }
  145. //标准名称
  146. string stdName = row.Cells["STD_NAME"].Value.ToString().Trim();
  147. string stdType = row.Cells["STDSTYLE"].Value.ToString();
  148. _std = stdName;
  149. //标准代码
  150. string stdCode = row.Cells["STD_CODE"].Value.ToString().Trim();
  151. //如果创建人为空,则新增,否则修改
  152. if (row.Cells["CREATE_NAME"].Value.ToString().Equals(""))
  153. {
  154. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "STD_NAME" }, new string[] { stdName });
  155. if (rows1.Length > 1)
  156. {
  157. MessageBox.Show("标准名称:" + stdName + " 已经存在,请重新输入!", "提示",
  158. MessageBoxButtons.OK, MessageBoxIcon.Information);
  159. return;
  160. }
  161. //验证标准名称是否重复
  162. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreStandard1.checkStdName", new Object[] { stdName, stdType }, this.ob);
  163. if (dt != null && dt.Rows.Count > 0)
  164. {
  165. MessageBox.Show("标准名称:" + stdName + " 已经存在,请重新输入!", "提示",
  166. MessageBoxButtons.OK, MessageBoxIcon.Information);
  167. return;
  168. }
  169. stdAdd.Add(stdList);
  170. }
  171. else
  172. {
  173. //验证标准名称是否重复
  174. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreStandard1.checkStdName",
  175. new Object[] { stdName, stdCode, stdType }, this.ob);
  176. if (dt != null && dt.Rows.Count > 0)
  177. {
  178. MessageBox.Show("标准名称:" + stdName + " 已经存在,请重新输入!", "提示",
  179. MessageBoxButtons.OK, MessageBoxIcon.Information);
  180. return;
  181. }
  182. stdList.Add(stdCode);
  183. stdUpdate.Add(stdList);
  184. }
  185. }
  186. }
  187. //客户
  188. ArrayList custerAdd = new ArrayList();
  189. ArrayList custerUpdate = new ArrayList();
  190. rows = GridHelper.GetRowsWithKey(ultraGrid3, new string[] { "CHC" }, new string[] { "True" });
  191. if (rows.Length > 0)
  192. {
  193. foreach (UltraGridRow row in rows)
  194. {
  195. ArrayList custList = GetcustData(row);
  196. if (custList == null)
  197. {
  198. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  199. return;
  200. }
  201. string stdCode = row.Cells["STD_CODE"].Value.ToString();
  202. string custName = row.Cells["CUST_NAME"].Text.ToString();
  203. //用于定位客户
  204. _cust = custName;
  205. string custCode = row.Cells["CUST_CODE"].Value.ToString();
  206. if (row.Cells["CREATE_NAME"].Value.ToString().Equals(""))
  207. {
  208. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid3, new string[] { "CUST_CODE" }, new string[] { custCode });
  209. if (rows1.Length > 1)
  210. {
  211. MessageBox.Show("最终客户:" + custName + " 已经存在,请重新选择!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  212. return;
  213. }
  214. //验证最终客户是否重复
  215. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreStandard1.checkCust", new Object[] { custCode, stdCode }, this.ob);
  216. if (dt != null && dt.Rows.Count > 0)
  217. {
  218. MessageBox.Show("最终客户:" + custName + " 已经存在,请重新选择!", "提示",
  219. MessageBoxButtons.OK, MessageBoxIcon.Information);
  220. return;
  221. }
  222. custerAdd.Add(custList);
  223. }
  224. else
  225. {
  226. //验证最终客户是否重复
  227. if (!custCode.Equals(row.Cells["OLD_CUST_CODE"].Value.ToString()))
  228. {
  229. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreStandard1.checkCust1", new Object[] { custCode, stdCode }, this.ob);
  230. if (dt != null && dt.Rows.Count > 0)
  231. {
  232. MessageBox.Show("最终客户:" + custName + " 已经存在,请重新选择!", "提示",
  233. MessageBoxButtons.OK, MessageBoxIcon.Information);
  234. return;
  235. }
  236. }
  237. custList.Add(stdCode);
  238. custList.Add(custCode);
  239. custerUpdate.Add(custList);
  240. }
  241. }
  242. }
  243. if (stdAdd.Count > 0 || custerAdd.Count > 0 || stdUpdate.Count > 0 || custerUpdate.Count > 0)
  244. {
  245. ArrayList list = new ArrayList(); //无效的参数 为了跟服务端参数一致
  246. ArrayList list1 = new ArrayList();
  247. int count = ServerHelper.SetData("com.steering.pss.qcm.CoreStandard1.saveCoreStandard1",
  248. new Object[] { stdAdd, stdUpdate, list, list1, custerAdd, custerUpdate }, this.ob);
  249. if (count > 0)
  250. {
  251. MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  252. DoQuery();
  253. }
  254. }
  255. }
  256. /// <summary>
  257. /// 作废与恢复
  258. /// </summary>
  259. /// <param name="flag"></param>
  260. private void DoDeleteOrResume(Boolean flag)
  261. {
  262. if (isSelectData == -1)
  263. {
  264. MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  265. return;
  266. }
  267. if (flag)
  268. {
  269. if (MessageBox.Show("是否作废选择记录", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  270. {
  271. return;
  272. }
  273. }
  274. else
  275. {
  276. if (MessageBox.Show("是否恢复选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  277. {
  278. return;
  279. }
  280. }
  281. //标准基础
  282. UltraGridRow[] rows = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CHC" }, new string[] { "True" });
  283. ArrayList stdList = new ArrayList();
  284. ArrayList pscList = new ArrayList();
  285. ArrayList custList = new ArrayList();
  286. if (rows.Length > 0)
  287. {
  288. foreach (UltraGridRow row in rows)
  289. {
  290. ArrayList std = new ArrayList();
  291. //如果作废标准基础,就同时此标准基础下作废产品规范和客户
  292. if (flag)
  293. {
  294. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getCount", new Object[] { row.Cells["STD_NAME_OLD"].Value.ToString() }, this.ob);
  295. if (dt != null && dt.Rows.Count > 0)
  296. {
  297. int i = Convert.ToInt32(dt.Rows[0][0].ToString());
  298. if (i > 0)
  299. {
  300. MessageBox.Show("标准 " + row.Cells["STD_NAME_OLD"].Value.ToString() + " 已被引用,无法作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  301. return;
  302. }
  303. }
  304. std.Add(UserInfo.GetUserName());
  305. for (int i = 0; i < ultraGrid3.Rows.Count; i++)
  306. {
  307. ArrayList cust = new ArrayList();
  308. cust.Add(UserInfo.GetUserName());
  309. cust.Add(ultraGrid3.Rows[i].Cells["STD_CODE"].Value.ToString());
  310. cust.Add(ultraGrid3.Rows[i].Cells["CUST_CODE"].Value.ToString());
  311. custList.Add(cust);
  312. }
  313. }
  314. else
  315. std.Add("");
  316. std.Add(row.Cells["STD_CODE"].Value.ToString());
  317. stdList.Add(std);
  318. //用于定位
  319. _std = row.Cells["STD_NAME"].Value.ToString();
  320. }
  321. }
  322. //最终客户
  323. rows = GridHelper.GetRowsWithKey(ultraGrid3, new string[] { "CHC" }, new string[] { "True" });
  324. if (rows.Length > 0)
  325. {
  326. foreach (UltraGridRow row in rows)
  327. {
  328. ArrayList cust = new ArrayList();
  329. if (flag)
  330. cust.Add(UserInfo.GetUserName());
  331. else
  332. {
  333. //恢复客户,如果所对应的标准名称没有恢复,且不能恢复
  334. string stdName = row.Cells["STD_NAME"].Value.ToString();
  335. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "STD_NAME" }, new string[] { stdName });
  336. if (rows1.Length > 0 && rows1[0].Cells["VALIDFLAG"].Value.Equals("无效"))
  337. {
  338. MessageBox.Show("请先恢复标准名称:" + stdName, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  339. return;
  340. }
  341. cust.Add("");
  342. }
  343. cust.Add(row.Cells["STD_CODE"].Value.ToString());
  344. cust.Add(row.Cells["CUST_CODE"].Value.ToString());
  345. custList.Add(cust);
  346. _cust = row.Cells["CUST_NAME"].Value.ToString();
  347. }
  348. }
  349. if (stdList.Count > 0 || pscList.Count > 0 || custList.Count > 0)
  350. {
  351. int count = ServerHelper.SetData("com.steering.pss.qcm.CoreStandard1.deleteOrResume",
  352. new Object[] { stdList, pscList, custList, flag }, this.ob);
  353. if (count > 0)
  354. {
  355. if (flag)
  356. MessageBox.Show("作废成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  357. else
  358. MessageBox.Show("恢复成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  359. DoQuery();
  360. }
  361. }
  362. }
  363. /// <summary>
  364. /// 初始化
  365. /// </summary>
  366. /// <param name="sender"></param>
  367. /// <param name="e"></param>
  368. private void FrmStandardK_Load(object sender, EventArgs e)
  369. {
  370. InitComBoEditor();
  371. CreateGrid1Combo();
  372. UltraGridRow ugr = ultraGrid1.ActiveRow;
  373. if (ugr == null)
  374. {
  375. this.ultraTabControl1.Enabled = false;
  376. }
  377. else
  378. {
  379. this.ultraTabControl1.Enabled = true;
  380. }
  381. csp = new ComStandPay("3", this.ob);
  382. csp.ParentUltraGrid = this.ultraGrid1;
  383. csp.CkbDeleteFilter = this.ChcValid;
  384. csp.TabChemStand = this.ultraTabPageControl1; //成分
  385. csp.TabMaterialStand = this.ultraTabPageControl2; //理化
  386. csp.TabTolerancesStand = this.ultraTabPageControl3; //公差
  387. csp.TabComMSCStdDetection = this.ultraTabPageControl4; //探伤
  388. csp.TabProductWater = this.ultraTabPageControl5; //水压
  389. csp.AfterRowInsert += new RowEventHandler(csp_AfterRowInsert); //新增行
  390. csp.Load();
  391. this.ultraToolbarsManager1.Toolbars[0].Tools[4].InstanceProps.Visible = DefaultableBoolean.False;
  392. }
  393. void csp_AfterRowInsert(object sender, RowEventArgs e)
  394. {
  395. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  396. if (e.Row.Band.Columns.Exists("STD_CODE_NK"))
  397. {
  398. e.Row.Cells["STD_CODE_NK"].Value = ugr.Cells["STD_CODE"].Value;
  399. DataTable dt = (DataTable)((UltraComboEditor)e.Row.Band.Columns["STD_CODE_NK"].EditorComponent).DataSource;
  400. DataRow[] drs = dt.Select("STD_CODE = '" + ugr.Cells["STD_CODE"].Value.ToString() + "'");
  401. if (drs.Length > 0)
  402. {
  403. e.Row.Cells["STD_NAME_NK"].Value = drs[0][1];
  404. e.Row.Cells["STDSTYLE"].Value = drs[0][2];
  405. }
  406. }
  407. else if (e.Row.Band.Columns.Exists("STD_CODE"))
  408. {
  409. e.Row.Cells["STD_CODE"].Value = ugr.Cells["STD_CODE"].Value;
  410. DataTable dt = (DataTable)((UltraComboEditor)e.Row.Band.Columns["STD_CODE"].EditorComponent).DataSource;
  411. DataRow[] drs = dt.Select("STD_CODE= '" + ugr.Cells["STD_CODE"].Value.ToString() + "'");
  412. if (drs.Length > 0)
  413. {
  414. e.Row.Cells["STD_NAME"].Value = drs[0][1];
  415. e.Row.Cells["STDSTYLE"].Value = drs[0][2];
  416. }
  417. }
  418. }
  419. /// <summary>
  420. /// 初始化下拉框
  421. /// </summary>
  422. private void InitComBoEditor()
  423. {
  424. //初始化标准类型
  425. ClsBaseInfo.FillStdType(ultraComboStd, this.ob, false);
  426. ((DataTable)ultraComboStd.DataSource).DefaultView.RowFilter = "CODE IN ('K')";
  427. //初始化标准协会
  428. QcmBaseCommon.InitDropUltraComEditor(ultraComboStyle, "com.steering.pss.qcm.CoreStandard1.bandCmbMaxStdXh", "BASENAME", this.ob, true);
  429. //初始化管理部门
  430. QcmBaseCommon.InitDropUltraComEditor(ultraComboDepart, "com.steering.comm.data.ComBaseInfo.getDepartment", "DEPARTNAME", this.ob, true);
  431. //品名描述
  432. QcmBaseCommon.InitDropUltraComEditor(ultraComboProduc, "com.steering.pss.qcm.CoreStandard1.getProducName", "PRODUCNAME", this.ob, false);
  433. //初始化标准类别
  434. QcmBaseCommon.InitDropUltraComEditor(ultraComboStyleD, "com.steering.pss.qcm.CoreStandard1.getStd_Style", "STD_STYLE_DESC", this.ob, true);
  435. //初始化钢级牌号
  436. QcmBaseCommon.InitDropUltraComEditor(ultraComboSteel, "com.steering.pss.qcm.CoreStandard1.getSteel", "STEELNAME", this.ob, true);
  437. //初始化最终客户
  438. QcmBaseCommon.InitDropUltraComEditor(ultraComboCust, "com.steering.pss.qcm.CoreStandard1.getCust", "CUSTOMER_NM", this.ob, false);
  439. }
  440. /// <summary>
  441. /// 动态绑定数据源 管理科室
  442. /// </summary>
  443. private void BandComboToGrid(InitializeRowEventArgs e)
  444. {
  445. string pid = e.Row.Cells["DEPARTMENT_CODE"].Value.ToString();
  446. if (_ultCmbDic_Unit.ContainsKey(pid))
  447. {
  448. e.Row.Cells["UNIT_DESC"].EditorComponent = _ultCmbDic_Unit[pid];
  449. }
  450. else
  451. {
  452. e.Row.Cells["UNIT_DESC"].EditorComponent = _ultCmbDic_Unit["NoValue"];
  453. }
  454. }
  455. /// <summary>
  456. /// 集合 生成Comboeditor集合 用于科室管理
  457. /// </summary>
  458. private void CreateGrid1Combo()
  459. {
  460. int cout = ultraComboDepart.Items.Count;
  461. _ultCmbDic_Unit = new Dictionary<string, UltraComboEditor>(cout + 1);
  462. _ultCmbDic_Unit.Add("NoValue", new UltraComboEditor());
  463. for (int i = 0; i < ultraComboDepart.Items.Count; i++)
  464. {
  465. string pid = ultraComboDepart.Items[i].DataValue.ToString().Split(',')[0];
  466. DataTable dt = ServerHelper.GetData("com.steering.comm.data.ComBaseInfo.getSection",
  467. new object[] { }, this.ob);
  468. dt.DefaultView.RowFilter = "PID = '" + pid + "'";
  469. UltraComboEditor cmb = new UltraComboEditor();
  470. cmb.DataSource = dt;
  471. cmb.DisplayMember = "DEPARTNAME";
  472. cmb.ValueMember = "DEPARTID";
  473. cmb.Visible = false;
  474. _ultCmbDic_Unit.Add(pid, cmb);
  475. this.Controls.Add(cmb);
  476. }
  477. }
  478. /// <summary>
  479. /// 查询区
  480. /// </summary>
  481. /// <param name="sender"></param>
  482. /// <param name="e"></param>
  483. private void ChcStd_CheckedChanged(object sender, EventArgs e)
  484. {
  485. if (ChcStd.Checked)
  486. TextStd.Enabled = true;
  487. else
  488. TextStd.Enabled = false;
  489. }
  490. /// <summary>
  491. /// 将ultraGrid2选择全部不勾选
  492. /// </summary>
  493. /// <param name="ug"></param>
  494. private void changeUltraGirdChc(UltraGrid ug)
  495. {
  496. for (int i = 0; i < ug.Rows.Count; i++)
  497. ug.Rows[i].Cells["CHC"].Value = false;
  498. }
  499. //--------------------------------ultraGrid1-------------------------------
  500. /// <summary>
  501. /// 标准行增加
  502. /// </summary>
  503. /// <param name="sender"></param>
  504. /// <param name="e"></param>
  505. private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
  506. {
  507. //增加一行,自动获取最大的标准代码,然后加1
  508. UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
  509. int stdCode = 0;
  510. DataRow[] rows = dataTable1.Select("", "STD_CODE DESC");
  511. if (rows.Length > 0)
  512. stdCode = Convert.ToInt32(rows[0]["STD_CODE"].ToString().Substring(3, 7));
  513. ugr.Cells["STD_CODE"].Value = "STD" + string.Format("{0:0000000}", (stdCode + 1));
  514. //增加行如果没有勾选则不可编辑
  515. if (!Convert.ToBoolean(ugr.Cells["CHC"].Value))
  516. {
  517. for (int i = 0; i < ugr.Cells.Count; i++)
  518. {
  519. if (!ugr.Cells[i].Column.Key.Equals("CHC"))
  520. ugr.Cells[i].Activation = Activation.ActivateOnly;
  521. }
  522. }
  523. }
  524. /// <summary>
  525. /// ultraGrid1
  526. /// </summary>
  527. /// <param name="sender"></param>
  528. /// <param name="e"></param>
  529. private void ultraGrid1_CellChange(object sender, CellEventArgs e)
  530. {
  531. ultraGrid1.UpdateData();
  532. UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
  533. if (e.Cell.Column.Key.Equals("STD_NAME")) //标准名称
  534. {
  535. for (int i = 0; i < ultraGrid3.Rows.Count; i++)
  536. {
  537. ultraGrid3.Rows[i].Cells["STD_NAME"].Value = ultraGrid1.DisplayLayout.ActiveRow.Cells["STD_NAME"].Value.ToString().Trim();
  538. }
  539. }
  540. if (e.Cell.Column.Key.Equals("STDSTYLE")) //标准类型
  541. {
  542. string stdstyle = ugr.Cells["STDSTYLE"].Text;
  543. if (stdstyle.Equals("Alpha"))
  544. {
  545. ultraGrid3.Enabled = true;
  546. }
  547. else
  548. {
  549. changeUltraGirdChc(ultraGrid3);
  550. ultraGrid3.Enabled = false;
  551. }
  552. }
  553. if (e.Cell.Column.Key.Equals("STD_STYLE_NAME")) //标准协会
  554. {
  555. ugr.Cells["STD_STYLE"].Value = ugr.Cells["STD_STYLE_NAME"].Value.ToString();
  556. }
  557. if (e.Cell.Column.Key.Equals("DEPARTMENT_DESC")) //部门管理
  558. {
  559. string departMentCode = ugr.Cells["DEPARTMENT_DESC"].Value.ToString();
  560. string[] str = departMentCode.Split(',');
  561. ugr.Cells["DEPARTMENT_CODE"].Value = str[0];
  562. //根据部门号查询管理科室
  563. ugr.Cells["UNIT_CODE"].Value = "";
  564. ugr.Cells["UNIT_DESC"].Value = "";
  565. }
  566. if (e.Cell.Column.Key.Equals("UNIT_DESC")) //科室管理
  567. {
  568. ugr.Cells["UNIT_CODE"].Value = ugr.Cells["UNIT_DESC"].Value.ToString();
  569. }
  570. if (e.Cell.Column.Key.Equals("CHC"))//选择
  571. {
  572. Activation activation = Activation.ActivateOnly;
  573. if (Convert.ToBoolean(e.Cell.Value))
  574. {
  575. activation = Activation.AllowEdit;
  576. isSelectData += 1;
  577. }
  578. else
  579. isSelectData -= 1;
  580. CellsCollection cells = e.Cell.Row.Cells;
  581. for (int i = 0; i < cells.Count; i++)
  582. {
  583. if (!cells[i].Column.Key.Equals("CHC"))
  584. {
  585. e.Cell.Row.Cells[i].Activation = activation;
  586. }
  587. }
  588. }
  589. }
  590. /// <summary>
  591. /// ultraGrid1
  592. /// </summary>
  593. /// <param name="sender"></param>
  594. /// <param name="e"></param>
  595. private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
  596. {
  597. BandComboToGrid(e);
  598. if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效"))
  599. {
  600. e.Row.Appearance.ForeColor = Color.Red;
  601. }
  602. else
  603. {
  604. e.Row.Appearance.ForeColor = Color.Black;
  605. }
  606. }
  607. /// <summary>
  608. /// 行激活事件
  609. /// </summary>
  610. /// <param name="sender"></param>
  611. /// <param name="e"></param>
  612. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  613. {
  614. UltraGridRow ugr = ultraGrid1.ActiveRow;
  615. if (ugr == null || ugr.Cells["VALIDFLAG"].Value.ToString() != "有效")
  616. {
  617. this.ultraTabControl1.Enabled = false;
  618. return;
  619. }
  620. else
  621. {
  622. this.ultraTabControl1.Enabled = true;
  623. }
  624. ultraGrid3.Enabled = true;
  625. ultraGrid3.UpdateData();
  626. string stdName = ugr.Cells["STD_NAME"].Value.ToString();
  627. _std = stdName;
  628. string stdStyle = ugr.Cells["STDSTYLE"].Text.ToString();
  629. //Alpha 客户
  630. if (stdStyle.Equals("Alpha"))
  631. {
  632. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreStandard1.getComBaseStdRCust", new Object[] { stdName }, this.ob);
  633. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable3, true);
  634. //激活操作的行
  635. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid3, new string[] { "CUST_NAME" }, new string[] { _cust });
  636. if (rows1.Length > 0)
  637. rows1[0].Activate();
  638. _cust = "";
  639. GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid3, null);
  640. }
  641. else
  642. {
  643. dataTable3.Rows.Clear();
  644. ultraGrid3.Enabled = false;
  645. }
  646. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid3);
  647. QueryAlpha();
  648. }
  649. /// <summary>
  650. /// 获取标准类型数据
  651. /// </summary>
  652. /// <param name="ugr"></param>
  653. /// <returns></returns>
  654. private ArrayList GetStdData(UltraGridRow ugr)
  655. {
  656. ArrayList list = new ArrayList();
  657. string std_code = ugr.Cells["std_code"].Value.ToString();
  658. string std_name = ugr.Cells["std_name"].Value.ToString().Trim();
  659. if (std_name.Equals(""))
  660. {
  661. errMessage = "请输入标准名称";
  662. return null;
  663. }
  664. string stdstyle = ugr.Cells["stdstyle"].Text.ToString();
  665. if (stdstyle.Equals(""))
  666. {
  667. errMessage = "请选择标准类型";
  668. return null;
  669. }
  670. if (stdstyle.ToUpper().Equals("ALPHA"))
  671. stdstyle = "K";
  672. string std_note = ugr.Cells["std_note"].Value.ToString();
  673. string std_style = ugr.Cells["std_style"].Value.ToString();
  674. string std_style_name = ugr.Cells["std_style_name"].Text.ToString();
  675. string std_version = ugr.Cells["std_version"].Value.ToString();
  676. string department_code = ugr.Cells["department_code"].Value.ToString();
  677. string department_desc = ugr.Cells["department_desc"].Text.ToString();
  678. string unit_code = ugr.Cells["unit_code"].Value.ToString();
  679. string unit_desc = ugr.Cells["unit_desc"].Text.ToString();
  680. string userName = UserInfo.GetUserName();
  681. string validflag = ugr.Cells["validflag"].Value.ToString();
  682. if (validflag.Equals("无效"))
  683. {
  684. errMessage = "无效记录不能保存";
  685. return null;
  686. }
  687. string memo = ugr.Cells["memo"].Value.ToString();
  688. list.Add(std_code);
  689. list.Add(std_name);
  690. list.Add(stdstyle);
  691. list.Add(std_note);
  692. list.Add(std_style);
  693. list.Add(std_style_name);
  694. list.Add(std_version);
  695. list.Add(department_code);
  696. list.Add(department_desc);
  697. list.Add(unit_code);
  698. list.Add(unit_desc);
  699. list.Add(userName);
  700. list.Add(memo);
  701. return list;
  702. }
  703. /// <summary>
  704. /// 获取客户数据
  705. /// </summary>
  706. /// <param name="ugr"></param>
  707. /// <returns></returns>
  708. private ArrayList GetcustData(UltraGridRow ugr)
  709. {
  710. ArrayList list = new ArrayList();
  711. string std_code = ugr.Cells["STD_CODE"].Value.ToString();
  712. string std_name = ugr.Cells["STD_NAME"].Value.ToString();
  713. string cust_code = ugr.Cells["CUST_CODE"].Value.ToString();
  714. string cust_name = ugr.Cells["CUST_NAME"].Text.ToString();
  715. if (cust_name.Equals(""))
  716. {
  717. errMessage = "请选择最终客户";
  718. }
  719. string userName = UserInfo.GetUserName();
  720. string validflag = ugr.Cells["VALIDFLAG"].Value.ToString();
  721. if (validflag.Equals("无效"))
  722. {
  723. errMessage = "无效记录不能保存";
  724. return null;
  725. }
  726. string memo = "";
  727. list.Add(std_code);
  728. list.Add(std_name);
  729. list.Add(cust_code);
  730. list.Add(cust_name);
  731. list.Add(userName);
  732. list.Add(memo);
  733. return list;
  734. }
  735. //-----------------------------------------ultraGrid3
  736. private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e)
  737. {
  738. UltraGridRow ugr = ultraGrid3.DisplayLayout.ActiveRow;
  739. ugr.Cells["STD_NAME"].Value = ultraGrid1.DisplayLayout.ActiveRow.Cells["STD_NAME"].Value.ToString().Trim();
  740. ugr.Cells["STD_CODE"].Value = ultraGrid1.DisplayLayout.ActiveRow.Cells["STD_CODE"].Value.ToString().Trim();
  741. }
  742. private void ultraGrid3_CellChange(object sender, CellEventArgs e)
  743. {
  744. ultraGrid3.UpdateData();
  745. UltraGridRow ugr = ultraGrid3.DisplayLayout.ActiveRow;
  746. if (e.Cell.Column.Key.Equals("CUST_NAME")) //客户
  747. {
  748. ugr.Cells["CUST_CODE"].Value = ugr.Cells["CUST_NAME"].Value.ToString();
  749. }
  750. if (e.Cell.Column.Key.Equals("CHC"))//选择
  751. {
  752. Activation activation = Activation.ActivateOnly;
  753. if (Convert.ToBoolean(e.Cell.Value))
  754. {
  755. activation = Activation.AllowEdit;
  756. isSelectData += 1;
  757. }
  758. else
  759. isSelectData -= 1;
  760. CellsCollection cells = e.Cell.Row.Cells;
  761. for (int i = 0; i < cells.Count; i++)
  762. {
  763. if (!cells[i].Column.Key.Equals("CHC"))
  764. {
  765. e.Cell.Row.Cells[i].Activation = activation;
  766. }
  767. }
  768. }
  769. }
  770. private void ultraGrid3_InitializeRow(object sender, InitializeRowEventArgs e)
  771. {
  772. if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效"))
  773. {
  774. e.Row.Appearance.ForeColor = Color.Red;
  775. }
  776. else
  777. {
  778. e.Row.Appearance.ForeColor = Color.Black;
  779. }
  780. }
  781. /// <summary>
  782. /// 伸缩
  783. /// </summary>
  784. /// <param name="sender"></param>
  785. /// <param name="e"></param>
  786. private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e)
  787. {
  788. if (ultraExpandableGroupBox1.Expanded)
  789. {
  790. splitContainer1.SplitterDistance = distance;
  791. }
  792. else
  793. {
  794. splitContainer1.SplitterDistance = this.Height;
  795. }
  796. }
  797. private void FrmStandardK_Shown(object sender, EventArgs e)
  798. {
  799. distance = splitContainer1.SplitterDistance;
  800. disWidth = splitContainer2.SplitterDistance; ;
  801. }
  802. private void ultraExpandableGroupBox2_ExpandedStateChanged(object sender, EventArgs e)
  803. {
  804. if (ultraExpandableGroupBox2.Expanded)
  805. splitContainer2.SplitterDistance = disWidth;
  806. else
  807. splitContainer2.SplitterDistance = this.Width;
  808. }
  809. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  810. {
  811. if (e.Tool.Key == "ButtonTool1") //保存
  812. {
  813. SaveAlpha();
  814. }
  815. if (e.Tool.Key == "ButtonTool2") //作废
  816. {
  817. DeleteAlpha();
  818. }
  819. if (e.Tool.Key == "ButtonTool3") //恢复
  820. {
  821. ResumeAlpha();
  822. }
  823. if (e.Tool.Key == "ButtonTool4") //刷新
  824. {
  825. RefreshAlpha();
  826. }
  827. if (e.Tool.Key == "ButtonTool5") //分组
  828. {
  829. GroupAlpha();
  830. }
  831. }
  832. private void QueryAlpha()
  833. {
  834. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  835. if (ugr == null)
  836. return;
  837. switch (ultraTabControl1.SelectedTab.Key)
  838. {
  839. case "1": //###为了新行过滤用
  840. csp.QueryChemStand(ugr.Cells["STD_CODE"].Value.ToString(), "###");
  841. break;
  842. case "2":
  843. csp.QueryMaterialStand(ugr.Cells["STD_CODE"].Value.ToString(), "###");
  844. break;
  845. case "3":
  846. csp.QueryTolerancesStand(ugr.Cells["STD_CODE"].Value.ToString(), "###");
  847. break;
  848. case "4":
  849. csp.QueryComMSCStdDetection(ugr.Cells["STD_CODE"].Value.ToString(), "###");
  850. break;
  851. case "5":
  852. csp.QueryProductWater(ugr.Cells["STD_CODE"].Value.ToString(), "###");
  853. break;
  854. }
  855. }
  856. private void SaveAlpha()
  857. {
  858. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  859. if (ugr == null)
  860. return;
  861. switch (ultraTabControl1.SelectedTab.Key)
  862. {
  863. case "1": //成分标准界面
  864. csp.SaveChemStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  865. break;
  866. case "2": //理化标准界面
  867. csp.SaveMaterialStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  868. break;
  869. case "3": //公差标准界面
  870. csp.SaveTolerancesStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  871. break;
  872. case "4": //探伤标准界面
  873. csp.SaveComMSCStdDetection(ugr.Cells["STD_CODE"].Value.ToString(), "");
  874. break;
  875. case "5": //水压标准界面
  876. csp.SaveProductWater(ugr.Cells["STD_CODE"].Value.ToString(), "");
  877. break;
  878. }
  879. }
  880. private void DeleteAlpha()
  881. {
  882. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  883. if (ugr == null)
  884. return;
  885. switch (ultraTabControl1.SelectedTab.Key)
  886. {
  887. case "1":
  888. csp.DeleteChemStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  889. break;
  890. case "2":
  891. csp.DeleteMaterialStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  892. break;
  893. case "3":
  894. csp.DeleteTolerancesStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  895. break;
  896. case "4":
  897. csp.DeleteComMSCStdDetection(ugr.Cells["STD_CODE"].Value.ToString(), "");
  898. break;
  899. case "5":
  900. csp.DeleteProductWater(ugr.Cells["STD_CODE"].Value.ToString(), "");
  901. break;
  902. }
  903. }
  904. private void ResumeAlpha()
  905. {
  906. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  907. if (ugr == null)
  908. return;
  909. switch (ultraTabControl1.SelectedTab.Key)
  910. {
  911. case "1":
  912. csp.ResumeChemStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  913. break;
  914. case "2":
  915. csp.ResumeMaterialStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  916. break;
  917. case "3":
  918. csp.ResumeTolerancesStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  919. break;
  920. case "4":
  921. csp.ResumeComMSCStdDetection(ugr.Cells["STD_CODE"].Value.ToString(), "");
  922. break;
  923. case "5":
  924. csp.ResumeProductWater(ugr.Cells["STD_CODE"].Value.ToString(), "");
  925. break;
  926. }
  927. }
  928. private void RefreshAlpha()
  929. {
  930. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  931. if (ugr == null)
  932. return;
  933. switch (ultraTabControl1.SelectedTab.Key)
  934. {
  935. case "1":
  936. csp.RefreshChemStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  937. break;
  938. case "2":
  939. csp.RefreshMaterialStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  940. break;
  941. case "3":
  942. csp.RefreshTolerancesStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  943. break;
  944. case "4":
  945. csp.RefreshComMSCStdDetection(ugr.Cells["STD_CODE"].Value.ToString(), "");
  946. break;
  947. case "5":
  948. csp.RefreshProductWater(ugr.Cells["STD_CODE"].Value.ToString(), "");
  949. break;
  950. }
  951. }
  952. private void GroupAlpha()
  953. {
  954. UltraGridRow ugr = this.ultraGrid1.ActiveRow;
  955. if (ugr == null)
  956. return;
  957. if (ultraTabControl1.SelectedTab.Key == "2")
  958. csp.GroupMaterialStand(ugr.Cells["STD_CODE"].Value.ToString(), "");
  959. }
  960. private void ultraTabControl1_SelectedTabChanged(object sender, SelectedTabChangedEventArgs e)
  961. {
  962. UltraGridRow ugr = ultraGrid1.ActiveRow;
  963. if (ugr == null)
  964. {
  965. this.ultraTabControl1.Enabled = false;
  966. return;
  967. }
  968. else
  969. {
  970. this.ultraTabControl1.Enabled = true;
  971. }
  972. if (e.Tab.Key == "2")
  973. this.ultraToolbarsManager1.Toolbars[0].Tools[4].InstanceProps.Visible = DefaultableBoolean.True;
  974. else
  975. this.ultraToolbarsManager1.Toolbars[0].Tools[4].InstanceProps.Visible = DefaultableBoolean.False;
  976. QueryAlpha();
  977. }
  978. }
  979. }