FrmWaterPressureStand.cs 80 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Format;
  3. using Core.Mes.Client.Comm.Server;
  4. using Core.Mes.Client.Comm.Tool;
  5. using Core.StlMes.Client.Qcm.model;
  6. using CoreFS.CA06;
  7. using Infragistics.Win.UltraWinEditors;
  8. using Infragistics.Win.UltraWinGrid;
  9. using System;
  10. using System.Collections;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Linq;
  15. using System.Text.RegularExpressions;
  16. using System.Windows.Forms;
  17. namespace Core.StlMes.Client.Qcm
  18. {
  19. /// <summary>
  20. /// 水压标准
  21. /// </summary>
  22. public partial class FrmWaterPressureStand : FrmBase
  23. {
  24. public FrmWaterPressureStand()
  25. {
  26. InitializeComponent();
  27. ExceptionHelper.RegistException();
  28. this.IsLoadUserView = true;
  29. }
  30. public void PopupLoad(string customInfo, OpeBase ob)
  31. {
  32. this.CustomInfo = customInfo;
  33. this.ob = ob;
  34. FrmWaterPressureStand_Load(null, null);
  35. }
  36. private bool isPasting = false;
  37. //提示信息
  38. private string errMessage = "";
  39. //用于 定位
  40. private string _wic = "";
  41. //展开
  42. private bool _isEx = false;
  43. //public int isSelect = 0;
  44. private UltraComboEditor uce = new UltraComboEditor();
  45. //用户冶金规范管理界面调用。 此处为查询条件。
  46. public string WIC = "";
  47. private string msc = "";
  48. public string Msc
  49. {
  50. get { return msc; }
  51. set { msc = value; }
  52. }
  53. private string codeJg = "DefaultValue";
  54. public string CodeJg
  55. {
  56. get { return codeJg; }
  57. set { codeJg = value; }
  58. }
  59. private string stdCode = "";
  60. public string StdCode
  61. {
  62. get { return stdCode; }
  63. set { stdCode = value; }
  64. }
  65. private ArrayList steelCodes = new ArrayList();
  66. public ArrayList SteelCodes
  67. {
  68. get { return steelCodes; }
  69. set { steelCodes = value; }
  70. }
  71. private string produccodeNk = "";
  72. public string ProduccodeNk
  73. {
  74. get { return produccodeNk; }
  75. set { produccodeNk = value; }
  76. }
  77. private string steelcodeNk = "";
  78. public string SteelcodeNk
  79. {
  80. get { return steelcodeNk; }
  81. set { steelcodeNk = value; }
  82. }
  83. private string processCode = "";
  84. public string ProcessCode
  85. {
  86. get { return processCode; }
  87. set { processCode = value; }
  88. }
  89. private string modelCode = "";
  90. public string ModelCode
  91. {
  92. get { return modelCode; }
  93. set { modelCode = value; }
  94. }
  95. private string acceptBid = "";
  96. public string AcceptBid
  97. {
  98. get { return acceptBid; }
  99. set { acceptBid = value; }
  100. }
  101. private string psc = "";
  102. public string Psc
  103. {
  104. get { return psc; }
  105. set { psc = value; }
  106. }
  107. private string ordLnPk = "";
  108. public string OrdLnPk
  109. {
  110. get { return ordLnPk; }
  111. set { ordLnPk = value; }
  112. }
  113. public override void ToolBar_Click(object sender, string ToolbarKey)
  114. {
  115. switch (ToolbarKey)
  116. {
  117. case "Query":
  118. this.DoQuery();
  119. break;
  120. case "Delete":
  121. DoUpdateOrResume(true);
  122. break;
  123. case "Resume":
  124. DoUpdateOrResume(false);
  125. break;
  126. case "Copy":
  127. Copy();
  128. break;
  129. case "Paste":
  130. isPasting = true;
  131. try
  132. {
  133. Paste();
  134. }
  135. finally
  136. {
  137. isPasting = false;
  138. }
  139. break;
  140. case "Save":
  141. DoSave();
  142. break;
  143. case "Refresh":
  144. BandToUltraGrid();
  145. break;
  146. case "Close":
  147. this.Close();
  148. break;
  149. }
  150. }
  151. /// <summary>
  152. /// 复制
  153. /// </summary>
  154. private void Copy()
  155. {
  156. if (ultraGrid1.ActiveRow == null)
  157. {
  158. MessageUtil.ShowWarning("请选择记录后,再进行操作!");
  159. return;
  160. }
  161. ultraGrid1.UpdateData();
  162. DataTable copyTab = dataTable2.Copy();
  163. DataTable copyTab2 = dataTable1.Copy();
  164. copyTab.Clear();
  165. copyTab2.Clear();
  166. if (ultraGrid1.ActiveRow.HasParent())
  167. {
  168. foreach (UltraGridRow row in ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows)
  169. {
  170. if (row.GetValue("CHC") != "True") continue;
  171. DataRow dr = copyTab.NewRow();
  172. CopyRowToRow(((DataRowView)row.ListObject).Row, dr);
  173. copyTab.Rows.Add(dr);
  174. }
  175. }
  176. else
  177. {
  178. foreach (UltraGridRow row in ultraGrid1.ActiveRow.ChildBands[0].Rows)
  179. {
  180. DataRow dr = copyTab.NewRow();
  181. CopyRowToRow(((DataRowView)row.ListObject).Row, dr);
  182. copyTab.Rows.Add(dr);
  183. }
  184. DataRow dr2 = copyTab2.NewRow();
  185. CopyRowToRow(((DataRowView)ultraGrid1.ActiveRow.ListObject).Row, dr2);
  186. copyTab2.Rows.Add(dr2);
  187. }
  188. DataTable[] copyTabs = new DataTable[] { copyTab, copyTab2 };
  189. Clipboard.SetData("Wic", copyTabs);
  190. }
  191. private void CopyRowToRow(DataRow srcRow, DataRow desRow)
  192. {
  193. for (int i = 0; i < srcRow.Table.Columns.Count; i++)
  194. {
  195. string columnName = srcRow.Table.Columns[i].ColumnName;
  196. desRow[columnName] = srcRow[columnName];
  197. }
  198. }
  199. /// <summary>
  200. /// 粘贴
  201. /// </summary>
  202. private void Paste()
  203. {
  204. DataTable[] copyTabs = (DataTable[])Clipboard.GetData("Wic");
  205. if (copyTabs == null)
  206. {
  207. MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
  208. return;
  209. }
  210. DataTable copyTab = copyTabs[0];
  211. DataTable copyTab2 = copyTabs[1];
  212. if (copyTab == null || copyTab.Rows.Count == 0)
  213. {
  214. MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
  215. return;
  216. }
  217. dataTable2.BeginInit();
  218. string wic = "";
  219. UltraGridRow rowParent;
  220. if (ultraGrid1.ActiveRow.HasParent())
  221. {
  222. //if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0)
  223. //{
  224. // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
  225. // return;
  226. //}
  227. wic = ultraGrid1.ActiveRow.ParentRow.GetValue("WIC");
  228. rowParent = ultraGrid1.ActiveRow.ParentRow;
  229. }
  230. else
  231. {
  232. //if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0)
  233. //{
  234. // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
  235. // return;
  236. //}
  237. wic = ultraGrid1.GetActiveRowValue("WIC");
  238. rowParent = ultraGrid1.ActiveRow;
  239. }
  240. List<string> notCopyColumns = new List<string>();
  241. notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME",
  242. "DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "WIC", "MSC", "STD_CODE_NK", "STD_NAME_NK", "PSC_DESC", "PSC",
  243. "STD_NAME", "PRODUCNAME", "STEELNAME", "STDSTYLE", "PROCESS_DESC", "STD_STYLE_DESC",
  244. "PRODUCCODE_NK", "PRODUCNAME_NK", "PROCESS_CDOE", "PROCESS_DESC", "STEELCODE_NK", "STEELNAME_NK");
  245. if (copyTab2.Rows.Count > 0)
  246. {
  247. DataRow drParent = ((DataRowView)rowParent.ListObject).Row;
  248. foreach (DataColumn column in dataTable1.Columns)
  249. {
  250. string columnName = column.ColumnName;
  251. if (notCopyColumns.Contains(columnName) == true) continue;
  252. drParent[columnName] = copyTab2.Rows[0][columnName];
  253. }
  254. }
  255. foreach (DataRow row in copyTab.Rows)
  256. {
  257. DataRow tempRow = dataTable2.NewRow();
  258. foreach (DataColumn column in dataTable2.Columns)
  259. {
  260. string columnName = column.ColumnName;
  261. if (notCopyColumns.Contains(columnName) == true) continue;
  262. if (!copyTab.Columns.Contains(columnName)) continue;
  263. tempRow[columnName] = row[columnName];
  264. }
  265. tempRow["WIC"] = wic;
  266. dataTable2.Rows.Add(tempRow);
  267. }
  268. dataTable2.EndInit();
  269. if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null)
  270. {
  271. ultraGrid1.ActiveRow.ExpandAll();
  272. }
  273. ultraGrid1.UpdateData();
  274. }
  275. private void FrmWaterPressureStand_Load(object sender, EventArgs e)
  276. {
  277. BandToUltraGrid();
  278. HideColumn();
  279. }
  280. /// <summary>
  281. /// 根据参数隐藏不同的列
  282. /// </summary>
  283. private void HideColumn()
  284. {
  285. if (CustomInfo == "1")
  286. {
  287. //隐藏内控标准名称
  288. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Hidden = true;
  289. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
  290. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
  291. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
  292. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
  293. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
  294. }
  295. if (CustomInfo == "2")
  296. {
  297. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
  298. ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
  299. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
  300. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true;
  301. ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
  302. ultraGrid1.DisplayLayout.Bands[0].Columns["STEELCODE"].Hidden = true;
  303. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
  304. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Header.Caption = "内控管理编号";
  305. ultraCheckPscDesc.Visible = false;
  306. ultraTextPscDesc.Visible = false;
  307. InnerChange();
  308. }
  309. if (CustomInfo == "3")
  310. {
  311. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
  312. ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
  313. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
  314. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME"].Hidden = true;
  315. ultraGrid1.DisplayLayout.Bands[0].Columns["STEELCODE"].Hidden = true;
  316. ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
  317. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
  318. ultraCheckPscDesc.Visible = false;
  319. ultraTextPscDesc.Visible = false;
  320. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
  321. this.ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
  322. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
  323. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
  324. this.ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
  325. }
  326. }
  327. /// <summary>
  328. /// 查询
  329. /// </summary>
  330. private void DoQuery()
  331. {
  332. //查询交付标准或者内控标准
  333. string style = "G";
  334. if (CustomInfo == "2")
  335. style = "N";
  336. if (CustomInfo == "3")
  337. style = "K";
  338. ArrayList QueryConditon = GetQueryConditon();
  339. //查询主表数据
  340. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getCoreWaterStand",
  341. new Object[] { QueryConditon, style, msc, codeJg, produccodeNk, steelcodeNk, processCode, modelCode }, this.ob);
  342. dataTable2.Clear();
  343. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  344. //从表查询
  345. string valid = "1";
  346. if (ultraCheckValid.Checked)
  347. valid = "0";
  348. DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getCoreWaterStandC",
  349. new Object[] { valid, stdCode, style, msc, codeJg, produccodeNk, steelcodeNk, processCode, modelCode }, this.ob);
  350. dt1 = QcmBaseCommon.FilterTable(dt, dt1, "WIC");
  351. GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable2, true);
  352. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  353. this.ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly;
  354. //自适应
  355. UltraGridColumn[] col = new UltraGridColumn[] { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"], this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"],
  356. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"]
  357. ,this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"]};
  358. GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
  359. WriteTxtToGrid();
  360. //isSelect = 0;
  361. //展开或者定位
  362. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "WIC" }, new string[] { _wic });
  363. if (rows1.Length > 0)
  364. {
  365. rows1[0].Activate();
  366. if (_isEx)
  367. rows1[0].ExpandAll();
  368. }
  369. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  370. {
  371. ugr.Cells["CHKNK"].Value = "选择";
  372. }
  373. _isEx = false;
  374. _wic = "";
  375. ultraGrid1.UpdateData();
  376. dataTable1.AcceptChanges();
  377. dataTable2.AcceptChanges();
  378. //清空复制数据
  379. //_copyedRows.Clear();
  380. }
  381. public void QueryPurchaseAgreement(string stdCodeNk)
  382. {
  383. dataTable2.Clear();
  384. dataTable1.Clear();
  385. DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getPurchaseAgreementWic",
  386. new object[] { stdCodeNk }, ob);
  387. GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable1, true);
  388. DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getPurchaseAgreementWater",
  389. new object[] { stdCodeNk }, ob);
  390. GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable2, true);
  391. QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
  392. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  393. }
  394. private void WriteTxtToGrid()
  395. {
  396. foreach (UltraGridRow row in ultraGrid1.Rows)
  397. {
  398. foreach (UltraGridRow row2 in row.ChildBands[0].Rows)
  399. {
  400. row2.Cells["RatioMng"].Value = "维护";
  401. }
  402. }
  403. }
  404. private int GetGridSelectCount()
  405. {
  406. foreach (UltraGridRow row in ultraGrid1.Rows)
  407. {
  408. if (row.Cells["CHC"].Value.ToString() == "True")
  409. {
  410. return 1;
  411. }
  412. UltraGridRow[] rows = GridHelper.GetRowsWithKey(row.ChildBands[0],
  413. new string[] { "CHC" }, new string[] { "True" });
  414. if (rows.Length > 0)
  415. {
  416. return 1;
  417. }
  418. }
  419. return 0;
  420. }
  421. private DataRow GetComBaseStdRowByPk(string stdCode)
  422. {
  423. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getComBaseStdByPk",
  424. new object[] { stdCode }, ob);
  425. return dt.Rows[0];
  426. }
  427. /// <summary>
  428. /// 保存
  429. /// </summary>
  430. private void DoSave()
  431. {
  432. ultraGrid1.UpdateData();
  433. DataRow comBaseStdRow = null;
  434. string style = "G";
  435. if (CustomInfo == "2")
  436. {
  437. comBaseStdRow = GetComBaseStdRowByPk(stdCode);
  438. if (comBaseStdRow["ACCEPT_BID"].ToString() == "1")
  439. {
  440. style = "N";
  441. }
  442. else
  443. {
  444. style = "L";
  445. }
  446. }
  447. if (CustomInfo == "3")
  448. style = "K";
  449. if (GetGridSelectCount() == 0)
  450. {
  451. MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  452. return;
  453. }
  454. if (CustomInfo == "2")
  455. {
  456. if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
  457. && UserInfo.GetUserID() != "admin" && UserInfo.GetUserID() != "longjinhua")
  458. {
  459. MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能操作!");
  460. return;
  461. }
  462. }
  463. ArrayList baseList = new ArrayList();
  464. ArrayList childList = new ArrayList();
  465. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  466. {
  467. UltraGridRow ugr = ultraGrid1.Rows[i];
  468. DataRow rowWic = null;
  469. //主表行
  470. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  471. {
  472. if (ugr.GetValue("VALIDFLAG") != "")
  473. {
  474. rowWic = GetMscWicByWic(ugr.GetValue("WIC"));
  475. }
  476. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null)
  477. {
  478. string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  479. if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  480. {
  481. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  482. ugr.Activate();
  483. return;
  484. }
  485. }
  486. PressWaterObject comM = GetBaseData(ugr, rowWic);
  487. if (comM == null)
  488. {
  489. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  490. return;
  491. }
  492. baseList.Add(JSONFormat.Format(comM));
  493. _wic = comM.Wic.ToString();
  494. }
  495. //从表行
  496. if (ugr.HasChild())
  497. {
  498. if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("") && !Convert.ToBoolean(ugr.Cells["CHC"].Value))
  499. {
  500. MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  501. return;
  502. }
  503. for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++)
  504. {
  505. UltraGridRow ugrChild = ugr.ChildBands[0].Rows[j];
  506. if (Convert.ToBoolean(ugrChild.Cells["CHC"].Value))
  507. {
  508. if (ugr.GetValue("VALIDFLAG") != "")
  509. {
  510. rowWic = GetMscWicByWic(ugr.GetValue("WIC"));
  511. }
  512. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null)
  513. {
  514. string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  515. if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  516. {
  517. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  518. ugrChild.Activate();
  519. return;
  520. }
  521. }
  522. PressWaterCObject comMC = GetChildData(ugrChild, rowWic);
  523. if (comMC == null)
  524. {
  525. if (errMessage == "")
  526. return;
  527. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  528. return;
  529. }
  530. childList.Add(JSONFormat.Format(comMC));
  531. _wic = comMC.Wic;
  532. _isEx = true;
  533. }
  534. }
  535. }
  536. }
  537. if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  538. {
  539. return;
  540. }
  541. if (baseList.Count > 0 || childList.Count > 0)
  542. {
  543. int count = ServerHelper.SetData("com.steering.pss.qcm.CoreWaterStand.saveCoreWaterStand",
  544. new object[] { baseList, childList, style }, this.ob);
  545. if (count > 0)
  546. {
  547. MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  548. DoQuery();
  549. }
  550. }
  551. }
  552. /// <summary>
  553. /// 作废或者恢复
  554. /// </summary>
  555. /// <param name="flag"></param>
  556. private void DoUpdateOrResume(bool flag)
  557. {
  558. ultraGrid1.UpdateData();
  559. if (GetGridSelectCount() == 0)
  560. {
  561. MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  562. return;
  563. }
  564. DataRow comBaseStdRow = null;
  565. if (CustomInfo == "2")
  566. {
  567. comBaseStdRow = GetComBaseStdRowByPk(stdCode);
  568. if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
  569. && UserInfo.GetUserID() != "admin")
  570. {
  571. MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能" + (flag ? "作废" : "恢复") + "!");
  572. return;
  573. }
  574. }
  575. ultraGrid1.UpdateData();
  576. ArrayList baseList = new ArrayList();
  577. ArrayList childList = new ArrayList();
  578. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  579. {
  580. UltraGridRow ugr = ultraGrid1.Rows[i];
  581. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  582. {
  583. DataRow rowWic = null;
  584. if (ugr.GetValue("VALIDFLAG") != "")
  585. {
  586. rowWic = GetMscWicByWic(ugr.GetValue("WIC"));
  587. }
  588. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null)
  589. {
  590. string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  591. if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  592. {
  593. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  594. ugr.Activate();
  595. return;
  596. }
  597. }
  598. if (CheckAuthority(ugr) == false)
  599. {
  600. MessageUtil.ShowWarning(errMessage);
  601. }
  602. PressWaterObject comM = new PressWaterObject();
  603. comM.DeleteName = UserInfo.GetUserName();
  604. comM.Wic = ugr.Cells["WIC"].Value.ToString();
  605. if (ugr.Cells["VALIDFLAG"].Value.Equals("无效") && flag)
  606. {
  607. MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  608. return;
  609. }
  610. if (flag && (ugr.Cells["VALIDFLAG"].Value.Equals("提交审核") || ugr.Cells["VALIDFLAG"].Value.Equals("已审核")))
  611. {
  612. MessageBox.Show("提交审核或已审核记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  613. return;
  614. }
  615. if (ugr.Cells["VALIDFLAG"].Value.Equals("有效") && (!flag))
  616. {
  617. MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  618. return;
  619. }
  620. if (ugr.HasChild() && flag)
  621. {
  622. //子记录全部删除
  623. if (MessageBox.Show("对应子记录将全部作废!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  624. {
  625. return;
  626. }
  627. foreach (UltraGridRow ugrc in ugr.ChildBands[0].Rows)
  628. {
  629. PressWaterCObject comMC = new PressWaterCObject();
  630. comMC.DeleteName = UserInfo.GetUserName();
  631. comMC.Wic = ugrc.Cells["WIC"].Value.ToString();
  632. comMC.Xh = ugrc.Cells["XH"].Value.ToString();
  633. childList.Add(JSONFormat.Format(comMC));
  634. }
  635. }
  636. baseList.Add(JSONFormat.Format(comM));
  637. _wic = comM.Wic.ToString();
  638. }
  639. if (ugr.HasChild())
  640. {
  641. for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++)
  642. {
  643. UltraGridRow ugrc = ugr.ChildBands[0].Rows[j];
  644. if (Convert.ToBoolean(ugrc.Cells["CHC"].Value))
  645. {
  646. DataRow rowWic = null;
  647. if (ugr.GetValue("VALIDFLAG") != "")
  648. {
  649. rowWic = GetMscWicByWic(ugr.GetValue("WIC"));
  650. }
  651. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowWic != null)
  652. {
  653. string[] units = ClsBaseInfo.GetUnitByUserName(rowWic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  654. if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  655. {
  656. MessageUtil.ShowWarning( "该记录只有[" + units[1] + "]才能操作!");
  657. ugrc.Activate();
  658. return;
  659. }
  660. }
  661. if (CheckAuthority(ugrc) == false)
  662. {
  663. MessageUtil.ShowWarning(errMessage);
  664. }
  665. if (!flag && ugrc.ParentRow.Cells["VALIDFLAG"].Value.Equals("无效") && !Convert.ToBoolean(ugrc.ParentRow.Cells["CHC"].Value))
  666. {
  667. MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  668. return;
  669. }
  670. PressWaterCObject comMC = new PressWaterCObject();
  671. comMC.DeleteName = UserInfo.GetUserName();
  672. comMC.Wic = ugrc.Cells["WIC"].Value.ToString();
  673. comMC.Xh = ugrc.Cells["XH"].Value.ToString();
  674. if (ugrc.Cells["VALIDFLAG"].Value.Equals("无效") && flag)
  675. {
  676. MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  677. return;
  678. }
  679. if (ugrc.Cells["VALIDFLAG"].Value.Equals("有效") && !flag)
  680. {
  681. MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  682. return;
  683. }
  684. if (flag)
  685. {
  686. if (ugrc.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "录入状态"
  687. && ugrc.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "无效"
  688. && ugr.Cells["VALIDFLAG"].Value.ToString() != "")
  689. {
  690. MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废");
  691. return;
  692. }
  693. }
  694. childList.Add(JSONFormat.Format(comMC));
  695. _wic = comMC.Wic;
  696. _isEx = true;
  697. }
  698. }
  699. }
  700. }
  701. if (flag)
  702. {
  703. if (MessageBox.Show("作废选中记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  704. {
  705. return;
  706. }
  707. }
  708. else
  709. {
  710. if (MessageBox.Show("恢复选中记录,您是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  711. {
  712. return;
  713. }
  714. }
  715. if (baseList.Count > 0 || childList.Count > 0)
  716. {
  717. int count = ServerHelper.SetData("com.steering.pss.qcm.CoreWaterStand.deleteOrResume", new Object[] { baseList, childList, flag }, this.ob);
  718. if (count > 0)
  719. {
  720. DoQuery();
  721. if (flag)
  722. MessageBox.Show("作废成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  723. else
  724. MessageBox.Show("恢复成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  725. }
  726. }
  727. }
  728. /// <summary>
  729. /// 新增行
  730. /// </summary>
  731. /// <param name="sender"></param>
  732. /// <param name="e"></param>
  733. private void ultraGrid1_AfterRowInsert(object sender, Infragistics.Win.UltraWinGrid.RowEventArgs e)
  734. {
  735. UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
  736. string style = "G";
  737. if (CustomInfo == "2")
  738. style = "N";
  739. if (CustomInfo == "3")
  740. style = "K";
  741. if (!ugr.HasParent()) //主表自动填充主键(水压索引号)
  742. {
  743. string wic = "";
  744. int temp = 0;
  745. for (int i = 0; i < ultraGrid1.Rows.Count - 1; i++)
  746. {
  747. string str = ultraGrid1.Rows[i].Cells["WIC"].Value.ToString().Substring(4, 6);
  748. if (Convert.ToInt32(str) > temp)
  749. temp = Convert.ToInt32(str);
  750. }
  751. wic = "WIC" + style + string.Format("{0:000000}", temp + 1);
  752. ugr.Cells["WIC"].Value = wic;
  753. }
  754. //从表自动填充序号
  755. if (ugr.HasParent())
  756. {
  757. int index = 0;
  758. string wic = ugr.Cells["WIC"].Value.ToString();
  759. foreach (UltraGridRow ug in ultraGrid1.Rows)
  760. {
  761. if (ug.Cells["WIC"].Value.ToString().Equals(wic))
  762. {
  763. for (int i = 0; i < ug.ChildBands[0].Rows.Count - 1; i++)
  764. {
  765. int indexSeq = Convert.ToInt32(ug.ChildBands[0].Rows[i].Cells["XH"].Value.ToString());
  766. if (indexSeq > index)
  767. index = indexSeq;
  768. }
  769. }
  770. }
  771. ugr.Cells["XH"].Value = index + 1;
  772. ugr.Cells["GET_MAXVALUE"].Value = true;
  773. ugr.Cells["GET_MINVALUE"].Value = false;
  774. }
  775. //增加行如果没有勾选则不可编辑
  776. if (!Convert.ToBoolean(ugr.Cells["CHC"].Value))
  777. {
  778. for (int i = 0; i < ugr.Cells.Count; i++)
  779. {
  780. if (!ugr.Cells[i].Column.Key.Equals("CHC"))
  781. ugr.Cells[i].Activation = Activation.ActivateOnly;
  782. if (ugr.Cells[i].Column.Key.Equals("CHKNK"))
  783. ugr.Cells["CHKNK"].Value = "选择";
  784. }
  785. }
  786. e.Row.Update();
  787. }
  788. /// <summary>
  789. /// 值改变触发事件
  790. /// </summary>
  791. /// <param name="sender"></param>
  792. /// <param name="e"></param>
  793. public void ultraGrid1_CellChange(object sender, CellEventArgs e)
  794. {
  795. ultraGrid1.UpdateData();
  796. UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
  797. if (e.Cell.Column.Key.Equals("SPEC_JG_DESC")) //接箍下拉框操作
  798. {
  799. ugr.Cells["SPEC_JG"].Value = ugr.Cells["SPEC_JG_DESC"].Value.ToString();
  800. }
  801. if (e.Cell.Column.Key.Equals("PSC_DESC")) //产品规范
  802. {
  803. string psc = ugr.Cells["PSC_DESC"].Value.ToString();
  804. string[] str = psc.Split(',');
  805. ugr.Cells["PSC"].Value = str[0];
  806. ugr.Cells["PRODUCNAME"].Value = str[1];
  807. ugr.Cells["STDSTYLE"].Value = str[2];
  808. ugr.Cells["STD_NAME"].Value = str[3];
  809. ugr.Cells["STEELNAME"].Value = str[4];
  810. ugr.Cells["STD_STYLE_DESC"].Value = str[5];
  811. }
  812. if (e.Cell.Column.Key.Equals("PROCESS_DESC")) //工序
  813. {
  814. ugr.Cells["PROCESS_CDOE"].Value = ugr.Cells["PROCESS_DESC"].Value.ToString();
  815. }
  816. //标准内控
  817. if (e.Cell.Column.Key.Equals("STD_CODE_NK")) //标准下拉框选择
  818. {
  819. ugr.Cells["STD_NAME_NK"].Value = ugr.Cells["STD_CODE_NK"].Text;
  820. DataRow[] dr = ((DataTable)uce.DataSource).Select("STD_CODE='" + ugr.Cells["STD_CODE_NK"].Value + "'");
  821. if (dr.Length > 0)
  822. ugr.Cells["STDSTYLE"].Value = dr[0][2];
  823. }
  824. if (e.Cell.Column.Key.Equals("GET_MAXVALUE"))
  825. {
  826. if (Convert.ToBoolean(e.Cell.Value))
  827. {
  828. e.Cell.Row.Cells["GET_MINVALUE"].Value = false;
  829. }
  830. }
  831. if (e.Cell.Column.Key.Equals("GET_MINVALUE"))
  832. {
  833. if (Convert.ToBoolean(e.Cell.Value))
  834. {
  835. e.Cell.Row.Cells["GET_MAXVALUE"].Value = false;
  836. }
  837. }
  838. if (e.Cell.Column.Key.Equals("MSC")) //冶金规范码
  839. {
  840. string msc = ugr.Cells["MSC"].Value.ToString();
  841. string[] str = msc.Split('@');
  842. ugr.Cells["PSC"].Value = str[1];
  843. ugr.Cells["PSC_DESC"].Value = str[2];
  844. ugr.Cells["PRODUCNAME"].Value = str[3];
  845. ugr.Cells["STDSTYLE"].Value = str[7];
  846. ugr.Cells["STD_NAME"].Value = str[4];
  847. ugr.Cells["STEELNAME"].Value = str[5];
  848. ugr.Cells["STD_STYLE_DESC"].Value = str[6];
  849. ugr.Cells["STEELCODE"].Value = str[8];
  850. ugr.Cells["STD_CODE"].Value = str[9];
  851. }
  852. if (e.Cell.Column.Key.Equals("FORMULA"))
  853. {
  854. string formula = ugr.Cells["FORMULA"].Value.ToString();
  855. if (formula != "")
  856. {
  857. if (formula[formula.Length - 1] == 'f')
  858. FindRatio(e);
  859. }
  860. if (!formula.Contains("f"))
  861. ugr.Cells["Ratio"].Value = "";
  862. }
  863. //选择
  864. if (e.Cell.Column.Key.Equals("CHC"))
  865. {
  866. Activation activation = Activation.ActivateOnly;
  867. if (Convert.ToBoolean(e.Cell.Value))
  868. {
  869. activation = Activation.AllowEdit;
  870. //isSelect += 1;
  871. }
  872. //else
  873. // isSelect -= 1;
  874. CellsCollection cells = e.Cell.Row.Cells;
  875. for (int i = 0; i < cells.Count; i++)
  876. {
  877. if (!cells[i].Column.Key.Equals("CHC"))
  878. {
  879. e.Cell.Row.Cells[i].Activation = activation;
  880. }
  881. }
  882. }
  883. if (e.Cell.Column.Key == "PRESSURE_Y" || e.Cell.Column.Key == "PRESSURE")
  884. {
  885. e.Cell.Row.Cells["FORMULA"].Value = "";
  886. e.Cell.Row.Cells["Ratio"].Value = "";
  887. e.Cell.Row.Cells["ROUND_RULE"].Value = "";
  888. e.Cell.Row.Cells["SRC_VALUE"].Value = "";
  889. }
  890. else if (e.Cell.Column.Key == "SRC_VALUE" || e.Cell.Column.Key == "ROUND_RULE")
  891. {
  892. double value = e.Cell.Row.GetValue("SRC_VALUE") == "" ? 0 : double.Parse(e.Cell.Row.GetValue("SRC_VALUE"));
  893. if (value != 0)
  894. {
  895. string roundRule = e.Cell.Row.GetValue("ROUND_RULE");
  896. CoreClientParam ccp = new CoreClientParam();
  897. ccp.ServerName = "com.steering.pss.qcm.CoreWaterStand";
  898. ccp.MethodName = "waterRound";
  899. ccp.ServerParams = new object[] { value, roundRule };
  900. ccp = ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
  901. double[] values = (double[])ccp.ReturnObject;
  902. double mpa = values[0];
  903. double psi = values[1];
  904. e.Cell.Row.SetValue("PRESSURE", mpa.ToString());
  905. e.Cell.Row.SetValue("PRESSURE_BAR", (mpa * 10).ToString()); // 1bar=0.1MPa
  906. e.Cell.Row.SetValue("PRESSURE_Y", psi.ToString());
  907. e.Cell.Row.Cells["FORMULA"].Value = "";
  908. }
  909. }
  910. else if (e.Cell.Column.Key == "FORMULA")
  911. {
  912. e.Cell.Row.SetValue("PRESSURE", "");
  913. e.Cell.Row.SetValue("PRESSURE_Y", "");
  914. e.Cell.Row.SetValue("SRC_VALUE", "");
  915. }
  916. //if (e.Cell.Column.Key == "PRESSURE_Y")
  917. //{
  918. // if (e.Cell.Value.ToString() != "")
  919. // {
  920. // //英制压力转公制压力系数为0.00689476
  921. // e.Cell.Row.Cells["PRESSURE"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) * 0.00689476, 2);
  922. // }
  923. // else
  924. // {
  925. // e.Cell.Row.Cells["PRESSURE"].Value = 0;
  926. // }
  927. //}
  928. //else if (e.Cell.Column.Key == "PRESSURE")
  929. //{
  930. // if (e.Cell.Value.ToString() != "")
  931. // {
  932. // if (double.Parse(e.Cell.Value.ToString()) > 6894.76)
  933. // {
  934. // MessageUtil.ShowWarning("公制压力上限为68900");
  935. // e.Cell.Row.Cells["PRESSURE"].Value = 6894.76;
  936. // }
  937. // //公制压力转英制压力系数为14.5
  938. // e.Cell.Row.Cells["PRESSURE_Y"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) / 0.00689476, 2);
  939. // }
  940. // else
  941. // {
  942. // e.Cell.Row.Cells["PRESSURE_Y"].Value = 0;
  943. // }
  944. //}
  945. ultraGrid1.UpdateData();
  946. }
  947. /// <summary>
  948. /// 查询条件
  949. /// </summary>
  950. /// <returns></returns>
  951. private ArrayList GetQueryConditon()
  952. {
  953. ArrayList list = new ArrayList();
  954. string stdName = "";
  955. if (ultraCheckStd.Checked)
  956. stdName = ultraTextStd.Text.Trim();
  957. list.Add(stdName);
  958. string pscDesc = "";
  959. if (CustomInfo == "1")
  960. {
  961. if (ultraCheckPscDesc.Checked)
  962. {
  963. pscDesc = ultraTextPscDesc.Text.Trim();
  964. }
  965. }
  966. list.Add(pscDesc);
  967. string valid = "1";
  968. if (ultraCheckValid.Checked)
  969. valid = "0";
  970. list.Add(valid);
  971. list.AddRange(stdCode);
  972. list.Add(WIC);
  973. return list;
  974. }
  975. private DataTable GetMscTabByMsc(string msc)
  976. {
  977. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc",
  978. new object[] { msc }, ob);
  979. return dt;
  980. }
  981. private string GetMscByWic(string wic)
  982. {
  983. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWicByWic",
  984. new object[] { wic }, ob);
  985. if (dt.Rows.Count > 0)
  986. {
  987. return dt.Rows[0]["MSC"].ToString();
  988. }
  989. return "";
  990. }
  991. /// <summary>
  992. /// 通过主键查询水压主表
  993. /// </summary>
  994. /// <param name="wic"></param>
  995. /// <returns></returns>
  996. private DataRow GetMscWicByWic(string wic)
  997. {
  998. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWicByWic",
  999. new object[] { wic }, ob);
  1000. if (dt.Rows.Count == 0)
  1001. {
  1002. return null;
  1003. }
  1004. else
  1005. {
  1006. return dt.Rows[0];
  1007. }
  1008. }
  1009. private bool CheckAuthority(UltraGridRow row)
  1010. {
  1011. if (CustomInfo == "1")
  1012. {
  1013. string mscOld;
  1014. if (row.GetValue("VALIDFLAG") != "")
  1015. {
  1016. mscOld = GetMscByWic(row.GetValue("WIC"));
  1017. }
  1018. else
  1019. {
  1020. mscOld = row.HasParent() ? row.ParentRow.GetValue("MSC") : row.GetValue("MSC");
  1021. }
  1022. DataTable dtMsc = GetMscTabByMsc(mscOld);
  1023. //if (dtMsc.Rows[0]["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  1024. //{
  1025. // errMessage = "该条记录对应的冶金规范是[" + dtMsc.Rows[0]["UNIT_DESC"].ToString() + "]科室维护的,您没有权限!";
  1026. // row.Activate();
  1027. // return false;
  1028. //}
  1029. }
  1030. return true;
  1031. }
  1032. /// <summary>
  1033. /// 主表数据
  1034. /// </summary>
  1035. /// <param name="ugr">行</param>
  1036. /// <returns></returns>
  1037. private PressWaterObject GetBaseData(UltraGridRow ugr, DataRow rowWic)
  1038. {
  1039. PressWaterObject com = new PressWaterObject();
  1040. com.Msc = ugr.Cells["MSC"].Text.Trim();
  1041. if (CustomInfo == "1" && com.Msc == "")
  1042. {
  1043. errMessage = "请选择冶金规范码";
  1044. return null;
  1045. }
  1046. if (CheckAuthority(ugr) == false) return null;
  1047. com.Wic = ugr.Cells["WIC"].Value.ToString().Trim();
  1048. com.Psc = ugr.Cells["PSC"].Value.ToString().Trim();
  1049. //if (CustomInfo=="1"&&com.Psc.Equals(""))
  1050. //{
  1051. // errMessage = "请选择产品规范描述";
  1052. // return null;
  1053. //}
  1054. string stdstyle = ugr.Cells["STDSTYLE"].Value.ToString().Trim();
  1055. if (stdstyle.Equals("订货标准"))
  1056. com.Stdstyle = "G";
  1057. else if (stdstyle.Equals("协议标准"))
  1058. com.Stdstyle = "X";
  1059. else if (stdstyle.Equals("Alpha"))
  1060. com.Stdstyle = "K";
  1061. else if (stdstyle.Equals("内控"))
  1062. com.Stdstyle = "N";
  1063. else if (stdstyle.Equals("试验标准"))
  1064. com.Stdstyle = "S";
  1065. else
  1066. com.Stdstyle = "P";
  1067. com.ProcessCdoe = ugr.Cells["PROCESS_CDOE"].Value.ToString().Trim();
  1068. com.ProcessDesc = ugr.Cells["PROCESS_DESC"].Text.ToString().Trim();
  1069. com.StdCodeNk = ugr.Cells["STD_CODE_NK"].Value.ToString().Trim();
  1070. com.StdNameNk = ugr.Cells["STD_NAME_NK"].Value.ToString().Trim();
  1071. if (CustomInfo != "1" && com.StdNameNk.Equals(""))
  1072. {
  1073. errMessage = "请选择标准名称";
  1074. return null;
  1075. }
  1076. com.MinD = ugr.Cells["MIN_D"].Value.ToString().Trim();
  1077. com.MaxD = ugr.Cells["MAX_D"].Value.ToString().Trim();
  1078. com.MinH = ugr.Cells["MIN_H"].Value.ToString().Trim();
  1079. com.MaxH = ugr.Cells["MAX_H"].Value.ToString().Trim();
  1080. com.SpecJg = ugr.Cells["SPEC_JG"].Value.ToString().Trim();
  1081. com.SpecJgDesc = ugr.Cells["SPEC_JG_DESC"].Text.ToString().Trim();
  1082. if (!com.MinD.Equals("") && !com.MaxD.Equals("") && Convert.ToDouble(com.MinD) > Convert.ToDouble(com.MaxD))
  1083. {
  1084. errMessage = "外径最小值大于最大值,请重新输入";
  1085. return null;
  1086. }
  1087. if (!com.MinH.Equals("") && !com.MaxH.Equals("") && Convert.ToDouble(com.MinH) > Convert.ToDouble(com.MaxH))
  1088. {
  1089. errMessage = "壁厚最小值大于最大值,请重新输入";
  1090. return null;
  1091. }
  1092. if (!com.SpecJg.Equals("") && (!com.MinD.Equals("") || !com.MaxD.Equals("") || !com.MinH.Equals("") || !com.MaxH.Equals("")))
  1093. {
  1094. errMessage = "接箍规格描述与外径壁厚不能同时存在";
  1095. return null;
  1096. }
  1097. com.ModelCode = ugr.Cells["MODEL_CODE"].Value.ToString().Trim();
  1098. com.ModelDesc = ugr.Cells["MODEL_DESC"].Text.ToString().Trim();
  1099. com.CreateName = UserInfo.GetUserName();
  1100. com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim();
  1101. com.UpdateName = UserInfo.GetUserName();
  1102. com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim();
  1103. com.ProducHead = ugr.GetValue("PRODUC_HEAD");
  1104. com.CodeJg = codeJg == "DefaultValue" ? "" : codeJg;
  1105. com.SteelcodeNk = ugr.GetValue("STEELCODE_NK");
  1106. com.SteelnameNk = ugr.GetValue("STEELNAME_NK");
  1107. com.ModelCodeNk = ugr.GetValue("MODEL_CODE_NK");
  1108. com.ModelDescNk = ugr.GetValue("MODEL_DESC_NK");
  1109. com.ProduccodeNk = ugr.GetValue("PRODUCCODE_NK");
  1110. com.ProducnameNk = ugr.GetValue("PRODUCNAME_NK");
  1111. com.Memo = ugr.GetValue("MEMO");
  1112. if (rowWic != null && (rowWic["VALIDFLAG"].ToString() == "2" || rowWic["VALIDFLAG"].ToString() == "3"))
  1113. {
  1114. errMessage = "提交审核或已审核记录不能保存!";
  1115. return null;
  1116. }
  1117. //if (CustomInfo == "2" && com.ProduccodeNk == "")
  1118. //{
  1119. // errMessage = "请选择品名!";
  1120. // return null;
  1121. //}
  1122. return com;
  1123. }
  1124. /// <summary>
  1125. /// 从表数据
  1126. /// </summary>
  1127. /// <param name="ugr"></param>
  1128. /// <returns></returns>
  1129. private PressWaterCObject GetChildData(UltraGridRow ugr, DataRow rowWic)
  1130. {
  1131. if (CheckAuthority(ugr) == false) return null;
  1132. if (rowWic != null && (rowWic["VALIDFLAG"].ToString() == "2" || rowWic["VALIDFLAG"].ToString() == "3"))
  1133. {
  1134. errMessage = "主记录为提交审核或已审核状态时,无法修改";
  1135. return null;
  1136. }
  1137. if (CheckFormula() == false)
  1138. {
  1139. errMessage = "";
  1140. return null;
  1141. }
  1142. PressWaterCObject com = new PressWaterCObject();
  1143. com.Wic = ugr.Cells["WIC"].Value.ToString().Trim();
  1144. com.Xh = ugr.Cells["XH"].Value.ToString().Trim();
  1145. com.PressureY = ugr.Cells["pressure_y"].Value.ToString().Trim();
  1146. com.Pressure = ugr.Cells["pressure"].Value.ToString().Trim();
  1147. com.Formula = ugr.Cells["formula"].Text.Trim();
  1148. com.RoundRule = ugr.GetValue("ROUND_RULE");
  1149. com.OutputStyle = ugr.GetValue("OUTPUT_STYLE");
  1150. com.ZbsOutputStyle = ugr.GetValue("ZBS_OUTPUT_STYLE");
  1151. com.PressureBar = ugr.Cells["PRESSURE_BAR"].Value.ToString().Trim();
  1152. if (com.RoundRule == "")
  1153. {
  1154. errMessage = "请选择圆整规则";
  1155. return null;
  1156. }
  1157. if (com.PressureY == "" && com.Pressure == "" && com.Formula == "")
  1158. {
  1159. errMessage = "请输入试验压力或者试验压力公式";
  1160. return null;
  1161. }
  1162. if (com.OutputStyle == "")
  1163. {
  1164. errMessage = "请选择工艺文件输出方式";
  1165. return null;
  1166. }
  1167. if (com.ZbsOutputStyle == "")
  1168. {
  1169. errMessage = "请选择质保书输出方式";
  1170. return null;
  1171. }
  1172. string formula = com.Formula.Replace("f", "1").Replace("YS", "1").Replace("TS", "1").Replace("D", "2").Replace("t", "1");
  1173. if (!com.Formula.Equals("") && formula.CompileFormula() == null)
  1174. {
  1175. errMessage = "公式不合法,请重新输入";
  1176. return null;
  1177. }
  1178. com.SaveTime = ugr.Cells["save_time"].Value.ToString().Trim();
  1179. if (com.SaveTime.Equals(""))
  1180. {
  1181. errMessage = "请输入保压时间";
  1182. return null;
  1183. }
  1184. com.Maxval = ugr.Cells["GET_MAXVALUE"].Value.ToString().Trim();
  1185. com.Minval = ugr.Cells["GET_MINVALUE"].Value.ToString().Trim();
  1186. if ((com.Pressure != "" || com.PressureY != "") && com.Formula != "")
  1187. {
  1188. if (com.Maxval == "" && com.Minval == "")
  1189. {
  1190. errMessage = "请选择取大值或取小值";
  1191. return null;
  1192. }
  1193. }
  1194. if (Convert.ToBoolean(com.Maxval))
  1195. com.Maxval = "1";
  1196. else
  1197. com.Maxval = "0";
  1198. if (Convert.ToBoolean(com.Minval))
  1199. com.Minval = "1";
  1200. else
  1201. com.Minval = "0";
  1202. //if ((com.Pressure != "" || com.PressureY != "") && com.Formula == "")
  1203. //{
  1204. // com.Maxval = "0";
  1205. // com.Minval = "0";
  1206. //}
  1207. //if ((com.Pressure == "" && com.PressureY == "") && com.Formula != "")
  1208. //{
  1209. // com.Maxval = "0";
  1210. // com.Minval = "0";
  1211. //}
  1212. com.CreateName = UserInfo.GetUserName();
  1213. com.CreateTime = ugr.Cells["create_time"].Value.ToString().Trim();
  1214. com.UpdateName = UserInfo.GetUserName();
  1215. com.Validflag = ugr.Cells["validflag"].Value.ToString().Trim();
  1216. com.Memo = ugr.Cells["memo"].Value.ToString();
  1217. //if (com.Formula.Contains("f"))
  1218. //{
  1219. // //if (ugr.Cells["Ratio"].Value == null)
  1220. // //{
  1221. // // errMessage = "找不到符合要求的水压系数,请先维护!";
  1222. // // return null;
  1223. // //}
  1224. // com.Formula = com.Formula.Replace("f", ugr.Cells["Ratio"].Value.ToString());
  1225. //}
  1226. return com;
  1227. }
  1228. public void PopupRefresh()
  1229. {
  1230. if (CustomInfo == "1")
  1231. {
  1232. UltraComboEditor UceMsc = new UltraComboEditor();
  1233. this.Controls.Add(UceMsc);
  1234. UceMsc.Visible = false;
  1235. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new Object[] { msc }, ob);
  1236. QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false);
  1237. ClsBaseInfo.SetComboItemHeight(UceMsc);
  1238. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc;
  1239. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1240. }
  1241. }
  1242. /// <summary>
  1243. /// 新增下拉框,并绑定下拉框到ultraGrid1的列
  1244. /// </summary>
  1245. private void BandToUltraGrid()
  1246. {
  1247. UltraComboEditor ultraComPsc = new UltraComboEditor();
  1248. UltraComboEditor ultraComProcess = new UltraComboEditor();
  1249. UltraComboEditor ultraComJG = new UltraComboEditor();
  1250. UltraComboEditor cmbProBigType = new UltraComboEditor();
  1251. UltraComboEditor cmbRound = new UltraComboEditor();
  1252. UltraComboEditor cmbOutput = new UltraComboEditor();
  1253. UltraComboEditor cmbZbsOutput = new UltraComboEditor();
  1254. this.Controls.Add(ultraComPsc);
  1255. this.Controls.Add(ultraComProcess);
  1256. this.Controls.Add(ultraComJG);
  1257. this.Controls.Add(cmbProBigType);
  1258. this.Controls.Add(cmbRound);
  1259. this.Controls.Add(cmbOutput);
  1260. this.Controls.Add(cmbZbsOutput);
  1261. ultraComPsc.Visible = false;
  1262. ultraComProcess.Visible = false;
  1263. ultraComJG.Visible = false;
  1264. cmbProBigType.Visible = false;
  1265. cmbRound.Visible = false;
  1266. cmbOutput.Visible = false;
  1267. cmbZbsOutput.Visible = false;
  1268. //绑定数据源 产品规范描述
  1269. QcmBaseCommon.InitDropUltraComEditor(ultraComPsc, "com.steering.pss.qcm.ComBaseQuery.getPsc", "PSC_DESC", this.ob, false);
  1270. //工序
  1271. //内控标准
  1272. this.Controls.Add(uce);
  1273. uce.Visible = false;
  1274. UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
  1275. if (this.CustomInfo == "2")
  1276. {
  1277. QcmBaseQuery.NitializeInnerStandard(uce, false, this.ob);
  1278. QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb);
  1279. }
  1280. if (this.CustomInfo == "3")
  1281. {
  1282. QcmBaseQuery.NitializeAlphaStandard(uce, false, this.ob);
  1283. QcmBaseQuery.BindColumn(uce, "STD_CODE_NK", ugb);
  1284. }
  1285. //结箍
  1286. QcmBaseCommon.InitDropUltraComEditor(ultraComJG, "com.steering.pss.qcm.ComBaseQuery.getComMSCJG", "SPEC_JG_DESC", this.ob, true);
  1287. //如果是交付标准则绑定产品规范描述,否则绑定内控标准名称
  1288. if (CustomInfo == "1")
  1289. {
  1290. ugb.Columns["PSC_DESC"].EditorComponent = ultraComPsc;
  1291. ugb.Columns["PSC_DESC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1292. }
  1293. else
  1294. {
  1295. ugb.Columns["STD_CODE_NK"].EditorComponent = uce;
  1296. ugb.Columns["STD_CODE_NK"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1297. }
  1298. //结箍
  1299. ugb.Columns["SPEC_JG_DESC"].EditorComponent = ultraComJG;
  1300. ugb.Columns["SPEC_JG_DESC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1301. //不可编辑
  1302. if (CustomInfo == "1")
  1303. {
  1304. UltraComboEditor UceMsc = new UltraComboEditor();
  1305. this.Controls.Add(UceMsc);
  1306. UceMsc.Visible = false;
  1307. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.getMsc", new Object[] { msc }, ob);
  1308. QcmBaseCommon.InitDropList(UceMsc, dt, "MSC", false);
  1309. ClsBaseInfo.SetComboItemHeight(UceMsc);
  1310. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].EditorComponent = UceMsc;
  1311. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1312. }
  1313. UltraComboEditor cmbWtr = new UltraComboEditor();
  1314. cmbWtr.DropDownListWidth = -1;
  1315. this.Controls.Add(cmbWtr);
  1316. cmbWtr.Visible = false;
  1317. ClsBaseInfo.FillWtrExpress(cmbWtr, ob, true);
  1318. ultraGrid1.DisplayLayout.Bands[1].Columns["FORMULA"].EditorComponent = cmbWtr;
  1319. ultraGrid1.DisplayLayout.Bands[1].Columns["FORMULA"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1320. QcmBaseQuery.NitializeProductBigType(cmbProBigType, false, ob);
  1321. QcmBaseQuery.BindColumn(cmbProBigType, "PRODUC_HEAD", ugb);
  1322. ClsBaseInfo.SetComboItemHeight(cmbProBigType);
  1323. //圆整规则
  1324. UltraComboEditor cmbRoundRule = new UltraComboEditor();
  1325. cmbRoundRule.DropDownListWidth = -1;
  1326. cmbRoundRule.Visible = false;
  1327. this.Controls.Add(cmbRoundRule);
  1328. ClsBaseInfo.FillComBaseInfo(cmbRoundRule, "4094", ob, false);
  1329. ultraGrid1.DisplayLayout.Bands[1].Columns["ROUND_RULE"].EditorComponent = cmbRoundRule;
  1330. ultraGrid1.DisplayLayout.Bands[1].Columns["ROUND_RULE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1331. //工艺文件压力值输出方式
  1332. cmbOutput.DropDownListWidth = -1;
  1333. ClsBaseInfo.FillComBaseInfo(cmbOutput, "4107", ob, false);
  1334. ((DataTable)cmbOutput.DataSource).DefaultView.Sort = "BASECODE ASC";
  1335. ultraGrid1.DisplayLayout.Bands[1].Columns["OUTPUT_STYLE"].EditorComponent = cmbOutput;
  1336. ultraGrid1.DisplayLayout.Bands[1].Columns["OUTPUT_STYLE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1337. //质保书压力值输出方式
  1338. cmbOutput.DropDownListWidth = -1;
  1339. ClsBaseInfo.FillComBaseInfo(cmbZbsOutput, "4109", ob, false);
  1340. ((DataTable)cmbZbsOutput.DataSource).DefaultView.Sort = "BASECODE ASC";
  1341. ultraGrid1.DisplayLayout.Bands[1].Columns["ZBS_OUTPUT_STYLE"].EditorComponent = cmbZbsOutput;
  1342. ultraGrid1.DisplayLayout.Bands[1].Columns["ZBS_OUTPUT_STYLE"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1343. }
  1344. /// <summary>
  1345. /// 无效则行变颜色
  1346. /// </summary>
  1347. /// <param name="sender"></param>
  1348. /// <param name="e"></param>
  1349. private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
  1350. {
  1351. if (e.Row.Cells["VALIDFLAG"].Value.ToString().Equals("无效"))
  1352. {
  1353. e.Row.Appearance.ForeColor = Color.Red;
  1354. }
  1355. else
  1356. {
  1357. e.Row.Appearance.ForeColor = Color.Black;
  1358. }
  1359. if (isPasting)
  1360. {
  1361. e.Row.SetValue("CHC", "True");
  1362. }
  1363. }
  1364. FrmWaterPressureStand _frmWaterPressureStand = null;
  1365. private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e)
  1366. {
  1367. ultraGrid1.UpdateData();
  1368. if (e.Cell.Column.Key.Equals("CHKNK"))
  1369. {
  1370. UltraGridRow ugr = ultraGrid1.ActiveRow;
  1371. _frmWaterPressureStand = new FrmWaterPressureStand();
  1372. _frmWaterPressureStand.PopupLoad("3", ob);
  1373. _frmWaterPressureStand.UltraPanel1.Visible = false;
  1374. _frmWaterPressureStand.ultraToolbarsManager1.Visible = true;
  1375. _frmWaterPressureStand.Msc = msc;
  1376. _frmWaterPressureStand.CodeJg = "";
  1377. _frmWaterPressureStand.DoQuery1();
  1378. if (_frmWaterPressureStand.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  1379. {
  1380. DataRow CurRow, NewRow;
  1381. for (int i = 0; i < _frmWaterPressureStand.dataTable2.Rows.Count; i++)
  1382. {
  1383. CurRow = _frmWaterPressureStand.dataTable2.Rows[i];
  1384. NewRow = dataTable2.NewRow();
  1385. if (!_frmWaterPressureStand.Ids.Contains(CurRow["WIC"].ToString2()))
  1386. {
  1387. continue;
  1388. }
  1389. for (int j = 0; j < _frmWaterPressureStand.dataTable2.Columns.Count; j++)
  1390. {
  1391. try
  1392. {
  1393. if (dataTable2.Columns.Contains(_frmWaterPressureStand.dataTable2.Columns[j].ColumnName))
  1394. {
  1395. if (_frmWaterPressureStand.dataTable2.Columns[j].ColumnName == "WIC")
  1396. {
  1397. NewRow[_frmWaterPressureStand.dataTable2.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("WIC");
  1398. }
  1399. else
  1400. {
  1401. NewRow[_frmWaterPressureStand.dataTable2.Columns[j].ColumnName] = CurRow[j];
  1402. }
  1403. }
  1404. }
  1405. catch { }
  1406. }
  1407. dataTable2.Rows.Add(NewRow);
  1408. }
  1409. ultraGrid1.UpdateData();
  1410. ultraGrid1.ActiveRow.ExpandAll();
  1411. }
  1412. }
  1413. if (e.Cell.Row.Cells["CHC"].Value.ToString() != "True") return;
  1414. if (e.Cell.Column.Key.Equals("MODEL_DESC") && Convert.ToBoolean(ultraGrid1.DisplayLayout.ActiveRow.Cells["CHC"].Value))
  1415. {
  1416. UltraGridRow row = this.ultraGrid1.DisplayLayout.ActiveRow;
  1417. FrmModel frms = new FrmModel();
  1418. frms.FrmOb = this.ob;
  1419. frms.Desc = row.Cells["MODEL_DESC"].Value.ToString();
  1420. frms.ShowDialog();
  1421. row.Cells["MODEL_CODE"].Value = frms.Code;
  1422. row.Cells["MODEL_DESC"].Value = frms.Desc;
  1423. }
  1424. if (e.Cell.Column.Key == "RatioMng")
  1425. {
  1426. UltraGridRow row = ultraGrid1.ActiveRow.HasParent() ? ultraGrid1.ActiveRow.ParentRow : ultraGrid1.ActiveRow;
  1427. string stdCode = row.Cells["STD_CODE"].Value.ToString();
  1428. string stdName = row.Cells["STD_NAME"].Value.ToString();
  1429. string steelCode = row.Cells["STEELCODE"].Value.ToString();
  1430. string stdStyleCode = row.Cells["STD_STYLE_DESC"].Value.ToString();
  1431. string stdCodeNk = row.Cells["STD_CODE_NK"].Value.ToString();
  1432. if (psc != "")
  1433. {
  1434. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreProductManage.getBasePscByPk",
  1435. new object[] { psc }, ob);
  1436. stdCode = dt.Rows[0]["STD_CODE"].ToString();
  1437. stdName = dt.Rows[0]["STD_NAME"].ToString();
  1438. steelCode = dt.Rows[0]["STD_CODE"].ToString();
  1439. stdStyleCode = dt.Rows[0]["STD_STYLE_DESC"].ToString();
  1440. }
  1441. FrmWaterRatioPopup ratio = new FrmWaterRatioPopup(stdCode, stdName, steelCode, stdStyleCode, ordLnPk, stdCodeNk, ob);
  1442. ratio.ShowDialog();
  1443. }
  1444. }
  1445. private void ultraGrid1_AfterExitEditMode(object sender, EventArgs e)
  1446. {
  1447. ultraGrid1.UpdateData();
  1448. if (this.CustomInfo == "1")
  1449. {
  1450. CheckFormula();
  1451. }
  1452. }
  1453. private bool? CheckFormula()
  1454. {
  1455. UltraGrid ug = ultraGrid1;
  1456. UltraGridCell ugc = ug.ActiveCell;
  1457. if (ugc == null)
  1458. return null;
  1459. if (ugc.Column.Key.Equals("FORMULA") && ugc.Row.Cells["CHC"].Value.ToString().ToUpper() == "TRUE")
  1460. {
  1461. //MessageBox.Show(ugc.Value.ToString());
  1462. //if (TestFormula(ugc.Text) == -1 && !ugc.Value.ToString().Equals(""))
  1463. //{
  1464. // MessageBox.Show("输入的试验压力公式不合法", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1465. // return false;
  1466. //}
  1467. if (!ugc.Text.ToString().Contains("f"))
  1468. return null;
  1469. UltraGridRow ugr = ugc.Row.ParentRow;
  1470. string stdname = ugr.Cells["STD_NAME"].Value.ToString();
  1471. string steelcode = ugr.Cells["STEELCODE"].Value.ToString();
  1472. string min_d = ugr.Cells["MIN_D"].Value.ToString();
  1473. string max_d = ugr.Cells["MAX_D"].Value.ToString();
  1474. if (min_d == "")
  1475. min_d = "0";
  1476. if (max_d == "")
  1477. max_d = "99999";
  1478. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getWaterRatio", new Object[] { min_d, max_d, stdname, steelcode }, this.ob);
  1479. if (dt != null && dt.Rows.Count > 0)
  1480. {
  1481. DataTable newdt = new DataTable();
  1482. newdt.Columns.Add("Ratio");
  1483. for (int i = 0; i < dt.Rows.Count; i++)
  1484. {
  1485. if (dt.Rows[i][0].ToString() != "")
  1486. {
  1487. DataRow dr = newdt.NewRow();
  1488. dr["Ratio"] = dt.Rows[i][0];
  1489. newdt.Rows.Add(dr);
  1490. }
  1491. if (dt.Rows[i][1].ToString() != "")
  1492. {
  1493. DataRow dr1 = newdt.NewRow();
  1494. dr1["Ratio"] = dt.Rows[i][1];
  1495. newdt.Rows.Add(dr1);
  1496. }
  1497. }
  1498. UltraComboEditor uce = new UltraComboEditor();
  1499. uce.DataSource = newdt;
  1500. uce.DisplayMember = "Ratio";
  1501. uce.ValueMember = "Ratio";
  1502. this.Controls.Add(uce);
  1503. uce.Visible = false;
  1504. ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = uce;
  1505. ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1506. ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.AllowEdit;
  1507. ugc.Row.Cells["Ratio"].Value = dt.Rows[0][0];
  1508. }
  1509. else
  1510. {
  1511. MessageBox.Show("找不到符合条件的水压系数,请先维护!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1512. return false;
  1513. }
  1514. }
  1515. else
  1516. {
  1517. ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = null;
  1518. ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.Edit;
  1519. ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly;
  1520. }
  1521. ultraGrid1.UpdateData();
  1522. return true;
  1523. }
  1524. private void FindRatio(CellEventArgs e)
  1525. {
  1526. UltraGridRow ugr = e.Cell.Row.ParentRow;
  1527. string stdname = ugr.Cells["STD_NAME"].Value.ToString();
  1528. string steelcode = ugr.Cells["STEELCODE"].Value.ToString();
  1529. string min_d = ugr.Cells["MIN_D"].Value.ToString();
  1530. string max_d = ugr.Cells["MAX_D"].Value.ToString();
  1531. if (min_d == "")
  1532. min_d = "0";
  1533. if (max_d == "")
  1534. max_d = "99999";
  1535. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getWaterRatio", new Object[] { min_d, max_d, stdname, steelcode }, this.ob);
  1536. if (dt != null && dt.Rows.Count > 0)
  1537. {
  1538. DataTable newdt = new DataTable();
  1539. newdt.Columns.Add("Ratio");
  1540. for (int i = 0; i < dt.Rows.Count; i++)
  1541. {
  1542. if (dt.Rows[i][0].ToString() != "")
  1543. {
  1544. DataRow dr = newdt.NewRow();
  1545. dr["Ratio"] = dt.Rows[i][0];
  1546. newdt.Rows.Add(dr);
  1547. }
  1548. if (dt.Rows[i][1].ToString() != "")
  1549. {
  1550. DataRow dr1 = newdt.NewRow();
  1551. dr1["Ratio"] = dt.Rows[i][1];
  1552. newdt.Rows.Add(dr1);
  1553. }
  1554. }
  1555. UltraComboEditor uce = new UltraComboEditor();
  1556. uce.DataSource = newdt;
  1557. uce.DisplayMember = "Ratio";
  1558. uce.ValueMember = "Ratio";
  1559. this.Controls.Add(uce);
  1560. uce.Visible = false;
  1561. ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].EditorComponent = uce;
  1562. // ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  1563. e.Cell.Row.Cells["Ratio"].Value = dt.Rows[0][0];
  1564. }
  1565. }
  1566. private int TestFormula(string str)
  1567. {
  1568. if (str == "")
  1569. return -1;
  1570. string formula = str.Replace("YS", "A");
  1571. formula = formula.Replace("(", "(");
  1572. formula = formula.Replace(")", ")");
  1573. //if (!formula.Contains("A"))
  1574. // return -1;
  1575. int left = 0;
  1576. int right = 0;
  1577. for (int i = 0; i < formula.Length; i++)
  1578. {
  1579. if (formula[i] == '(')
  1580. left += 1;
  1581. if (formula[i] == ')')
  1582. right += 1;
  1583. }
  1584. if (left != right)
  1585. {
  1586. return -1;
  1587. }
  1588. string reg = @"^(\(*[ftAD0-9]+(.[ftAD0-9]+)*\)*(\+|-|/|\*))+[ftAD0-9]+(.[ftAD0-9]+)*\)*$"; // f t A D 数字的加减乘除但不能防止其重复出现
  1589. if (!Regex.IsMatch(formula, reg))
  1590. return -1;
  1591. char[] ch = { '*', ' ', '(', ')', '/', 'D' };
  1592. string[] str_for = formula.Split(ch, StringSplitOptions.RemoveEmptyEntries);
  1593. List<string> list = new List<string>();
  1594. for (int i = 0; i < str_for.Length; i++)
  1595. {
  1596. if (!list.Contains(str_for[i]))
  1597. list.Add(str_for[i]);
  1598. }
  1599. if (list.Count < str_for.Length)
  1600. return -1;
  1601. return 0;
  1602. }
  1603. private void ultraGrid1_ClickCell(object sender, ClickCellEventArgs e)
  1604. {
  1605. }
  1606. /// <summary>
  1607. /// 2015-07-15 PDY
  1608. /// </summary>
  1609. private void InnerChange()
  1610. {
  1611. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].CellActivation = Activation.ActivateOnly;
  1612. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].CellActivation = Activation.ActivateOnly;
  1613. ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"].Hidden = true;
  1614. }
  1615. private void ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e)
  1616. {
  1617. if (ultraGrid1.ActiveCell.Column.Key == "PROCESS_DESC")
  1618. {
  1619. string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CDOE");
  1620. ChoiceProcessPopup choiceProcessPopup = new ChoiceProcessPopup(processCodes, this.ob);
  1621. if (choiceProcessPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  1622. {
  1623. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessByStdCode",
  1624. new object[] { this.stdCode }, ob);
  1625. string stdProcessCodes = dt.Rows[0]["PROCESS_CODE"].ToString();
  1626. string[] processCodesAry = choiceProcessPopup.ProcessCodes.Split(',');
  1627. for (int i = 0; i < processCodesAry.Length; i++)
  1628. {
  1629. if (!stdProcessCodes.Contains(processCodesAry[i].Trim()))
  1630. {
  1631. DataTable dtBaseProcess = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessDescByCode",
  1632. new object[] { processCodesAry[i].Trim() }, ob);
  1633. string processDesc = dtBaseProcess.Rows[0]["PROCESS_DESC"].ToString();
  1634. MessageUtil.ShowWarning("该标准下不包含工序" + processDesc + ", 不能选择!");
  1635. return;
  1636. }
  1637. }
  1638. ultraGrid1.ActiveRow.SetValue("PROCESS_CDOE", choiceProcessPopup.ProcessCodes);
  1639. ultraGrid1.ActiveRow.SetValue("PROCESS_DESC", choiceProcessPopup.ProcessDescs);
  1640. }
  1641. }
  1642. else if (ultraGrid1.ActiveCell.Column.Key == "STEELNAME_NK")
  1643. {
  1644. FrmRepSteel frmSteel = new FrmRepSteel();
  1645. frmSteel.Ob1 = this.ob;
  1646. frmSteel.Code = ultraGrid1.ActiveRow.GetValue("STEELCODE_NK");
  1647. if (frmSteel.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  1648. {
  1649. ultraGrid1.ActiveRow.SetValue("STEELCODE_NK", frmSteel.Code);
  1650. ultraGrid1.ActiveRow.SetValue("STEELNAME_NK", frmSteel.Desc);
  1651. }
  1652. }
  1653. else if (ultraGrid1.ActiveCell.Column.Key == "MODEL_DESC_NK")
  1654. {
  1655. FrmModel frmMode = new FrmModel();
  1656. frmMode.FrmOb = this.ob;
  1657. frmMode.Code = ultraGrid1.ActiveRow.GetValue("MODEL_CODE_NK");
  1658. frmMode.Desc = ultraGrid1.ActiveRow.GetValue("MODEL_DESC_NK");
  1659. if (frmMode.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  1660. {
  1661. ultraGrid1.ActiveRow.SetValue("MODEL_CODE_NK", frmMode.Code);
  1662. ultraGrid1.ActiveRow.SetValue("MODEL_DESC_NK", frmMode.Desc);
  1663. }
  1664. }
  1665. else if (ultraGrid1.ActiveCell.Column.Key == "PRODUCNAME_NK")
  1666. {
  1667. PopupProductName popupProductName = new PopupProductName(
  1668. ultraGrid1.ActiveRow.GetValue("PRODUCCODE_NK"), ob);
  1669. if (popupProductName.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  1670. {
  1671. ultraGrid1.ActiveRow.SetValue("PRODUCCODE_NK", popupProductName.ProductCodes);
  1672. ultraGrid1.ActiveRow.SetValue("PRODUCNAME_NK", popupProductName.ProductNames);
  1673. }
  1674. }
  1675. }
  1676. private void ultraGrid1_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  1677. {
  1678. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow ugr in this.ultraGrid1.Selected.Rows)
  1679. {
  1680. ugr.Cells["CHC"].Value = true;
  1681. Activation activation = Activation.ActivateOnly;
  1682. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1683. {
  1684. activation = Activation.AllowEdit;
  1685. //isSelect += 1;
  1686. }
  1687. //else
  1688. //isSelect -= 1;
  1689. CellsCollection cells = ugr.Cells;
  1690. for (int i = 0; i < cells.Count; i++)
  1691. {
  1692. if (!cells[i].Column.Key.Equals("CHC"))
  1693. {
  1694. ugr.Cells[i].Activation = activation;
  1695. }
  1696. }
  1697. }
  1698. }
  1699. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  1700. {
  1701. switch (e.Tool.Key)
  1702. {
  1703. case "查询":
  1704. DoQuery1();
  1705. break;
  1706. case "确认选择":
  1707. Choice();
  1708. break;
  1709. }
  1710. }
  1711. private DataRow[] rows;
  1712. public DataRow[] Rows
  1713. {
  1714. get { return rows; }
  1715. set { rows = value; }
  1716. }
  1717. List<string> ids;
  1718. public List<string> Ids
  1719. {
  1720. get { return ids; }
  1721. set { ids = value; }
  1722. }
  1723. private void DoQuery1()
  1724. {
  1725. //查询主表数据
  1726. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWaterNK",
  1727. new Object[] { msc }, this.ob);
  1728. dataTable2.Clear();
  1729. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  1730. //从表查询
  1731. DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreWaterStand.getComWaterNKC",
  1732. new Object[] { msc }, this.ob);
  1733. dt1 = QcmBaseCommon.FilterTable(dt, dt1, "WIC");
  1734. GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable2, true);
  1735. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  1736. this.ultraGrid1.DisplayLayout.Bands[1].Columns["Ratio"].CellActivation = Activation.ActivateOnly;
  1737. //自适应
  1738. UltraGridColumn[] col = new UltraGridColumn[] { this.ultraGrid1.DisplayLayout.Bands[0].Columns["MEMO"], this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"],
  1739. this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"],this.ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"]
  1740. ,this.ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"]};
  1741. GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
  1742. WriteTxtToGrid();
  1743. //isSelect = 0;
  1744. //展开或者定位
  1745. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "WIC" }, new string[] { _wic });
  1746. if (rows1.Length > 0)
  1747. {
  1748. rows1[0].Activate();
  1749. if (_isEx)
  1750. rows1[0].ExpandAll();
  1751. }
  1752. _isEx = false;
  1753. _wic = "";
  1754. ultraGrid1.UpdateData();
  1755. dataTable1.AcceptChanges();
  1756. dataTable2.AcceptChanges();
  1757. }
  1758. private void Choice()
  1759. {
  1760. ultraGrid1.UpdateData();
  1761. int count = ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Count();
  1762. if (count > 1)
  1763. {
  1764. MessageUtil.ShowTips("请选择一条数据!");
  1765. return;
  1766. }
  1767. foreach (UltraGridRow ugr in ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))))
  1768. {
  1769. //从表操作
  1770. if (ugr.HasChild())
  1771. {
  1772. Ids = ugr.ChildBands[0].Rows.Select(p => p.GetValue("WIC")).ToList();
  1773. Rows = dataTable2.Select("WIC IN ('" + string.Join("','", Ids) + "')");
  1774. }
  1775. }
  1776. this.DialogResult = System.Windows.Forms.DialogResult.OK;
  1777. }
  1778. }
  1779. }