FrmChemStandard.cs 118 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716
  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.Linq;
  14. using System.Windows.Forms;
  15. namespace Core.StlMes.Client.Qcm
  16. {
  17. /// <summary>
  18. /// 化学成分标准
  19. /// </summary>
  20. public partial class FrmChemStandard : FrmBase
  21. {
  22. private bool isPasting = false;
  23. /// <summary>
  24. /// 成分索引号
  25. /// </summary>
  26. private string cic = "";
  27. public string Cic
  28. {
  29. get { return cic; }
  30. set { cic = value; }
  31. }
  32. private string msc = "";
  33. public string Msc
  34. {
  35. get { return msc; }
  36. set { msc = value; }
  37. }
  38. //如果接箍为字符串空,会在SQL语句中新增接箍等于空的条件,所以单页面默认了个不为空的值。
  39. private string codeJg = "DefaultValue";
  40. public string CodeJg
  41. {
  42. get { return codeJg; }
  43. set { codeJg = value; }
  44. }
  45. private string stdCode = "";
  46. public string StdCode
  47. {
  48. get { return stdCode; }
  49. set { stdCode = value; }
  50. }
  51. private ArrayList steelCodes = new ArrayList();
  52. public ArrayList SteelCodes
  53. {
  54. get { return steelCodes; }
  55. set { steelCodes = value; }
  56. }
  57. private string produccodeNk = "";
  58. public string ProduccodeNk
  59. {
  60. get { return produccodeNk; }
  61. set { produccodeNk = value; }
  62. }
  63. private string steelcodeNk = "";
  64. public string SteelcodeNk
  65. {
  66. get { return steelcodeNk; }
  67. set { steelcodeNk = value; }
  68. }
  69. private string processCodeNk = "";
  70. public string ProcessCodeNk
  71. {
  72. get { return processCodeNk; }
  73. set { processCodeNk = value; }
  74. }
  75. private string modelCode = "";
  76. public string ModelCode
  77. {
  78. get { return modelCode; }
  79. set { modelCode = value; }
  80. }
  81. private string acceptBid = "";
  82. public string AcceptBid
  83. {
  84. get { return acceptBid; }
  85. set { acceptBid = value; }
  86. }
  87. //提示信息信息
  88. private string errMessage = "";
  89. //判断是否勾选记录
  90. //public int isSelect = 0;
  91. //是否展开
  92. private bool _isEx = false;
  93. //定位行
  94. private string _cic = "";
  95. private UltraComboEditor[] ultras = new UltraComboEditor[13];
  96. public FrmChemStandard()
  97. {
  98. //F1 F2功能
  99. IsLoadUserView = true;
  100. InitializeComponent();
  101. ExceptionHelper.RegistException();
  102. }
  103. public void PopupLoad(string customInfo, OpeBase ob)
  104. {
  105. this.CustomInfo = customInfo;
  106. this.ob = ob;
  107. FrmChemStandard_Load(null, null);
  108. }
  109. public override void ToolBar_Click(object sender, string ToolbarKey)
  110. {
  111. switch (ToolbarKey)
  112. {
  113. case "Query":
  114. DoQuery();
  115. break;
  116. case "Save":
  117. DoSave();
  118. break;
  119. case "Delete":
  120. DoDeleteOrResume(true);
  121. break;
  122. case "Resume":
  123. DoDeleteOrResume(false);
  124. break;
  125. case "Copy":
  126. Copy();
  127. break;
  128. case "Paste":
  129. isPasting = true;
  130. try
  131. {
  132. Paste();
  133. }
  134. finally
  135. {
  136. isPasting = false;
  137. }
  138. break;
  139. case "Refresh":
  140. InitDrop();
  141. break;
  142. case "Group":
  143. Group();
  144. break;
  145. case "CancelGroup":
  146. CancelGroup();
  147. break;
  148. case "Close":
  149. this.Close();
  150. break;
  151. }
  152. }
  153. /// <summary>
  154. /// 复制
  155. /// </summary>
  156. private void Copy()
  157. {
  158. if (ultraGrid1.ActiveRow == null)
  159. {
  160. MessageUtil.ShowWarning("请选择记录后,再进行操作!");
  161. return;
  162. }
  163. ultraGrid1.UpdateData();
  164. DataTable copyTab = dataTable1.Copy();
  165. DataTable copyTab2 = dataTable2.Copy();
  166. copyTab.Clear();
  167. copyTab2.Clear();
  168. if (ultraGrid1.ActiveRow.HasParent())
  169. {
  170. foreach (UltraGridRow row in ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows)
  171. {
  172. if (row.GetValue("CHC") != "True") continue;
  173. DataRow dr = copyTab.NewRow();
  174. CopyRowToRow(((DataRowView)row.ListObject).Row, dr);
  175. copyTab.Rows.Add(dr);
  176. }
  177. }
  178. else
  179. {
  180. foreach (UltraGridRow row in ultraGrid1.ActiveRow.ChildBands[0].Rows)
  181. {
  182. DataRow dr = copyTab.NewRow();
  183. CopyRowToRow(((DataRowView)row.ListObject).Row, dr);
  184. copyTab.Rows.Add(dr);
  185. }
  186. DataRow dr2 = copyTab2.NewRow();
  187. CopyRowToRow(((DataRowView)ultraGrid1.ActiveRow.ListObject).Row, dr2);
  188. copyTab2.Rows.Add(dr2);
  189. }
  190. DataTable[] copyTabs = new DataTable[] { copyTab, copyTab2 };
  191. Clipboard.SetData("Cic", copyTabs);
  192. }
  193. private void CopyRowToRow(DataRow srcRow, DataRow desRow)
  194. {
  195. for (int i = 0; i < srcRow.Table.Columns.Count; i++)
  196. {
  197. string columnName = srcRow.Table.Columns[i].ColumnName;
  198. desRow[columnName] = srcRow[columnName];
  199. }
  200. }
  201. /// <summary>
  202. /// 粘贴
  203. /// </summary>
  204. private void Paste()
  205. {
  206. DataTable[] copyTabs = (DataTable[])Clipboard.GetData("Cic");
  207. if (copyTabs == null)
  208. {
  209. MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
  210. return;
  211. }
  212. DataTable copyTab = copyTabs[0];
  213. DataTable copyTab2 = copyTabs[1];
  214. if (copyTab == null || copyTab.Rows.Count == 0)
  215. {
  216. MessageUtil.ShowWarning("没有数据,请复制后再进行操作!");
  217. return;
  218. }
  219. dataTable1.BeginInit();
  220. string cic = "";
  221. UltraGridRow rowParent;
  222. if (ultraGrid1.ActiveRow.HasParent())
  223. {
  224. //if (ultraGrid1.ActiveRow.ParentRow.ChildBands[0].Rows.Count > 0)
  225. //{
  226. // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
  227. // return;
  228. //}
  229. cic = ultraGrid1.ActiveRow.ParentRow.GetValue("CIC");
  230. rowParent = ultraGrid1.ActiveRow.ParentRow;
  231. }
  232. else
  233. {
  234. //if (ultraGrid1.ActiveRow.ChildBands[0].Rows.Count > 0)
  235. //{
  236. // MessageUtil.ShowWarning("该记录下存在子记录,不能进行粘贴操作!");
  237. // return;
  238. //}
  239. cic = ultraGrid1.GetActiveRowValue("CIC");
  240. rowParent = ultraGrid1.ActiveRow;
  241. }
  242. List<string> notCopyColumns = new List<string>();
  243. notCopyColumns.AddRange("CHC", "CREATE_TIME", "CREATE_NAME", "UPDATE_TIME", "UPDATE_NAME",
  244. "DELETE_TIME", "DELETE_NAME", "VALIDFLAG", "CIC", "MSC", "PSC_DESC", "PSC", "STDSTYLE", "STD_NAME_B",
  245. "PRODUCNAME", "STEELNAME", "STD_CODE_NK", "STD_NAME_NK", "PROCESS_CODE", "PROCESS_DESC", "STD_STYLE_DESC",
  246. "GRADECODE", "GRADENAME", "PRODUCCODE_NK", "PRODUCNAME_NK", "STEELCODE_NK", "STEELNAME_NK", "XH");
  247. if (CustomInfo == "2")
  248. {
  249. //内控子记录不要限制规格。
  250. notCopyColumns.AddRange("SIZE_CODE2", "SIZE_NAME2", "SIZE_MIN_SIGN2", "SIZE_MIN2", "SIZE_MAX_SIGN2",
  251. "SIZE_MAX2", "SIZE_CODE", "SIZE_NAME", "SIZE_MIN_SIGN", "SIZE_MIN", "SIZE_MAX_SIGN", "SIZE_MAX",
  252. "SPEC_JG", "SPEC_JG_DESC");
  253. }
  254. if (copyTab2.Rows.Count > 0)
  255. {
  256. DataRow drParent = ((DataRowView)rowParent.ListObject).Row;
  257. foreach (DataColumn column in dataTable2.Columns)
  258. {
  259. string columnName = column.ColumnName;
  260. if (notCopyColumns.Contains(columnName) == true) continue;
  261. drParent[columnName] = copyTab2.Rows[0][columnName];
  262. }
  263. }
  264. foreach (DataRow row in copyTab.Rows)
  265. {
  266. DataRow tempRow = dataTable1.NewRow();
  267. foreach (DataColumn column in dataTable1.Columns)
  268. {
  269. string columnName = column.ColumnName;
  270. if (notCopyColumns.Contains(columnName) == true) continue;
  271. if (!copyTab.Columns.Contains(columnName)) continue;
  272. tempRow[columnName] = row[columnName];
  273. }
  274. tempRow["CIC"] = cic;
  275. dataTable1.Rows.Add(tempRow);
  276. }
  277. dataTable1.EndInit();
  278. if (copyTab.Rows.Count > 0 && ultraGrid1.ActiveRow != null)
  279. {
  280. ultraGrid1.ActiveRow.ExpandAll();
  281. }
  282. ultraGrid1.UpdateData();
  283. }
  284. /// <summary>
  285. /// 根据交付 内控 Alpha 分别隐藏不同列
  286. /// </summary>
  287. private void HideColumn()
  288. {
  289. if (CustomInfo == "1")
  290. {
  291. //内控标准名称
  292. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Hidden = true;
  293. //适用工序
  294. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
  295. //适用钢种
  296. ultraGrid1.DisplayLayout.Bands[0].Columns["GRADENAME"].Hidden = true;
  297. ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
  298. ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
  299. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
  300. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
  301. ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true;
  302. ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true;
  303. //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"].Hidden = true;
  304. //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"].Hidden = true;
  305. //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"].Hidden = true;
  306. //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"].Hidden = true;
  307. //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D_SIGN"].Hidden = true;
  308. //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D_SIGN"].Hidden = true;
  309. //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H_SIGN"].Hidden = true;
  310. //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H_SIGN"].Hidden = true;
  311. this.ultraCheckStd.Text = "标准名称";
  312. }
  313. if (CustomInfo == "2" || CustomInfo == "4")
  314. {
  315. //产品规范描述
  316. ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
  317. //冶金规范码
  318. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
  319. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME_B"].Hidden = true;
  320. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
  321. ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
  322. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
  323. ultraGrid1.DisplayLayout.Bands[0].Columns["SMELTING_CNT"].Hidden = true;
  324. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCT_CNT"].Hidden = true;
  325. ultraGrid1.DisplayLayout.Bands[0].Columns["RATE"].Hidden = true;
  326. if (CustomInfo == "2")
  327. {
  328. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].Header.Caption = "内控管理编号";
  329. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE2"].Hidden = true;
  330. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE2"].CellActivation = Activation.ActivateOnly;
  331. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME2"].Hidden = true;
  332. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME2"].CellActivation = Activation.ActivateOnly;
  333. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN2"].Hidden = true;
  334. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN2"].CellActivation = Activation.ActivateOnly;
  335. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN2"].Hidden = true;
  336. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN2"].CellActivation = Activation.ActivateOnly;
  337. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN2"].Hidden = true;
  338. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN2"].CellActivation = Activation.ActivateOnly;
  339. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX2"].Hidden = true;
  340. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX2"].CellActivation = Activation.ActivateOnly;
  341. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE"].Hidden = true;
  342. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_CODE"].CellActivation = Activation.ActivateOnly;
  343. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME"].Hidden = true;
  344. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_NAME"].CellActivation = Activation.ActivateOnly;
  345. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN"].Hidden = true;
  346. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN_SIGN"].CellActivation = Activation.ActivateOnly;
  347. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN"].Hidden = true;
  348. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MIN"].CellActivation = Activation.ActivateOnly;
  349. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN"].Hidden = true;
  350. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX_SIGN"].CellActivation = Activation.ActivateOnly;
  351. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX"].Hidden = true;
  352. ultraGrid1.DisplayLayout.Bands[1].Columns["SIZE_MAX"].CellActivation = Activation.ActivateOnly;
  353. ultraGrid1.DisplayLayout.Bands[1].Columns["SPEC_JG"].Hidden = true;
  354. ultraGrid1.DisplayLayout.Bands[1].Columns["SPEC_JG"].CellActivation = Activation.ActivateOnly;
  355. }
  356. InnerChange();
  357. if (CustomInfo == "4")
  358. {
  359. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Hidden = true;
  360. //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D"].Hidden = true;
  361. //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D"].Hidden = true;
  362. //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H"].Hidden = true;
  363. //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H"].Hidden = true;
  364. //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_D_SIGN"].Hidden = true;
  365. //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_D_SIGN"].Hidden = true;
  366. //ultraGrid1.DisplayLayout.Bands[0].Columns["MIN_H_SIGN"].Hidden = true;
  367. //ultraGrid1.DisplayLayout.Bands[0].Columns["MAX_H_SIGN"].Hidden = true;
  368. ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true;
  369. ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true;
  370. }
  371. ultraCheckMSC.Visible = false;
  372. ultraTextMSC.Visible = false;
  373. }
  374. if (CustomInfo == "3")
  375. {
  376. //产品规范描述
  377. ultraGrid1.DisplayLayout.Bands[0].Columns["PSC_DESC"].Hidden = true;
  378. //冶金规范码
  379. ultraGrid1.DisplayLayout.Bands[0].Columns["MSC"].Hidden = true;
  380. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_NAME_B"].Hidden = true;
  381. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME"].Hidden = true;
  382. ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME"].Hidden = true;
  383. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_STYLE_DESC"].Hidden = true;
  384. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE"].Hidden = true;
  385. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_DESC"].Hidden = true;
  386. ultraGrid1.DisplayLayout.Bands[0].Columns["STEELNAME_NK"].Hidden = true;
  387. ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC_NK"].Hidden = true;
  388. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCCODE_NK"].Hidden = true;
  389. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCNAME_NK"].Hidden = true;
  390. ultraGrid1.DisplayLayout.Bands[0].Columns["SMELTING_CNT"].Hidden = true;
  391. ultraGrid1.DisplayLayout.Bands[0].Columns["PRODUCT_CNT"].Hidden = true;
  392. ultraGrid1.DisplayLayout.Bands[0].Groups[0].Hidden = true;
  393. ultraGrid1.DisplayLayout.Bands[0].Groups[1].Hidden = true;
  394. ultraCheckMSC.Visible = false;
  395. ultraTextMSC.Visible = false;
  396. }
  397. }
  398. /// <summary>
  399. /// 初始化数据
  400. /// </summary>
  401. /// <param name="sender"></param>
  402. /// <param name="e"></param>
  403. private void FrmChemStandard_Load(object sender, EventArgs e)
  404. {
  405. HideColumn();
  406. InitDrop();
  407. }
  408. public void PopupRefresh()
  409. {
  410. UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
  411. if (CustomInfo == "1")
  412. {
  413. //冶金规范码
  414. QcmBaseQuery.NitializeMSC(ultras[10], false, this.ob, msc);
  415. QcmBaseQuery.BindColumn(ultras[10], "MSC", ugb);
  416. }
  417. }
  418. /// <summary>
  419. /// 初始化下拉框
  420. /// </summary>
  421. private void InitDrop()
  422. {
  423. for (int i = 0; i < ultras.Length; i++)
  424. {
  425. ultras[i] = new UltraComboEditor();
  426. Controls.Add(ultras[i]);
  427. ultras[i].Visible = false;
  428. ultras[i].DropDownListWidth = -1;
  429. }
  430. //主表
  431. UltraGridBand ugb = ultraGrid1.DisplayLayout.Bands[0];
  432. //从表
  433. UltraGridBand ugbC = ultraGrid1.DisplayLayout.Bands[1];
  434. QcmBaseQuery.NitializeSignMin(ultraComSignMin);
  435. QcmBaseQuery.NitializeSignMax(ultraComSignMax);
  436. ClsBaseInfo.FillComBaseInfo(ultraComboEditor1, "4086", ob, false);
  437. DataTable dtRate = (DataTable)ultraComboEditor1.DataSource;
  438. dtRate.DefaultView.RowFilter = "BASECODE IN ('408602', '408603')";
  439. //下限
  440. QcmBaseQuery.NitializeSignMin(ultras[0]);
  441. //标准范围下限符号
  442. QcmBaseQuery.BindColumn(ultras[0], "STDMIN_SIGN", ugbC);
  443. //上限
  444. QcmBaseQuery.NitializeSignMax(ultras[1]);
  445. //标准范围上限符号
  446. QcmBaseQuery.BindColumn(ultras[1], "STDMAX_SIGN", ugbC);
  447. //化学元素描述
  448. QcmBaseQuery.NitializeChemicalElement(ultras[2], true, this.ob);
  449. QcmBaseQuery.BindColumn(ultras[2], "CHEM_CODE", ugbC);
  450. //结箍
  451. QcmBaseQuery.NitializeJG(ultras[3], true, this.ob);
  452. QcmBaseQuery.BindColumn(ultras[3], "SPEC_JG", ugbC);
  453. //限制元素下限符号
  454. QcmBaseQuery.BindColumn(ultras[0], "ELE_MIN_SIGN", ugbC);
  455. //限制规格(一)下限符号
  456. QcmBaseQuery.BindColumn(ultras[0], "SIZE_MIN_SIGN2", ugbC);
  457. //限制规格(二)下限符号
  458. QcmBaseQuery.BindColumn(ultras[0], "SIZE_MIN_SIGN", ugbC);
  459. //限制元素上限符号
  460. QcmBaseQuery.BindColumn(ultras[1], "ELE_MAX_SIGN", ugbC);
  461. //限制规格(一)上限符号
  462. QcmBaseQuery.BindColumn(ultras[1], "SIZE_MAX_SIGN2", ugbC);
  463. //限制规格(二)上限符号
  464. QcmBaseQuery.BindColumn(ultras[1], "SIZE_MAX_SIGN", ugbC);
  465. //限制规格(一)
  466. QcmBaseQuery.NitializeLimitSpecifications(ultras[5], true, this.ob);
  467. QcmBaseQuery.BindColumn(ultras[5], "SIZE_CODE2", ugbC);
  468. //限制规格(二)
  469. QcmBaseQuery.BindColumn(ultras[5], "SIZE_CODE", ugbC);
  470. if (CustomInfo == "1")
  471. {
  472. //成分偏差
  473. QcmBaseQuery.NitializeChemBias(ultras[6], true, this.ob);
  474. QcmBaseQuery.BindColumn(ultras[6], "STD_CODE", ugb);
  475. //冶金规范码
  476. QcmBaseQuery.NitializeMSC(ultras[10], false, this.ob, msc);
  477. QcmBaseQuery.BindColumn(ultras[10], "MSC", ugb);
  478. }
  479. if (CustomInfo == "2" || CustomInfo == "3" || CustomInfo == "4")
  480. {
  481. //标准名称
  482. if (CustomInfo == "2")
  483. {
  484. QcmBaseQuery.NitializeInnerStandard(ultras[7], false, this.ob);
  485. //成分偏差
  486. QcmBaseQuery.NitializeChemBias(ultras[6], true, this.ob);
  487. QcmBaseQuery.BindColumn(ultras[6], "STD_CODE", ugb);
  488. }
  489. else if (CustomInfo == "3")
  490. QcmBaseQuery.NitializeAlphaStandard(ultras[7], false, this.ob);
  491. else
  492. QcmBaseQuery.NitializeOtherStandard(ultras[7], false, this.ob);
  493. QcmBaseQuery.BindColumn(ultras[7], "STD_CODE_NK", ugb);
  494. //工序
  495. QcmBaseQuery.NitializeProcess(ultras[8], true, this.ob);
  496. QcmBaseQuery.BindColumn(ultras[8], "PROCESS_CODE", ugb);
  497. //钢种
  498. //QcmBaseQuery.NitializeGrade(ultras[9], true, this.ob);
  499. //QcmBaseQuery.BindColumn(ultras[9], "GRADECODE", ugb);
  500. }
  501. //限制元素
  502. QcmBaseQuery.NitializeChemicalElement(ultras[11], true, this.ob);
  503. QcmBaseQuery.BindColumn(ultras[11], "ELE_CODE", ugbC);
  504. //替代元素
  505. QcmBaseQuery.BindColumn(ultras[0], "REP_MIN_SIGN", ugbC);
  506. QcmBaseQuery.BindColumn(ultras[1], "REP_MAX_SIGN", ugbC);
  507. QcmBaseQuery.BindColumn(ultras[2], "REP_CODE", ugbC);
  508. QcmBaseQuery.NitializeProductBigType(ultras[12], false, ob);
  509. QcmBaseQuery.BindColumn(ultras[12], "PRODUC_HEAD", ugb);
  510. }
  511. private void Group()
  512. {
  513. //PopupGroup
  514. ultraGrid1.UpdateData();
  515. List<String> index = new List<string>();
  516. string cic = "";
  517. foreach (var pRow in ultraGrid1.Rows)
  518. {
  519. foreach (var cRow in pRow.ChildBands[0].Rows)
  520. {
  521. if (cRow.GetValue("CHC").ToLower() == "true")
  522. {
  523. if (cRow.GetValue("VALIDFLAG") == "")
  524. {
  525. MessageUtil.ShowWarning("请先保存选择的记录!");
  526. return;
  527. }
  528. index.Add(cRow.GetValue("INDEX_SEQ"));
  529. cic = pRow.GetValue("CIC");
  530. }
  531. }
  532. if (index.Count > 0) break;
  533. }
  534. if (index.Count == 0)
  535. {
  536. MessageUtil.ShowWarning("请选择从记录!");
  537. return;
  538. }
  539. PopupGroup popup = new PopupGroup();
  540. if (popup.ShowDialog() != System.Windows.Forms.DialogResult.OK)
  541. {
  542. return;
  543. }
  544. ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.group",
  545. new object[] { index, cic, popup.NumGroupNum.Value.ToString3() }, ob);
  546. MessageUtil.ShowTips("分组成功!");
  547. _isEx = true;
  548. _cic = cic;
  549. DoQuery();
  550. }
  551. private void CancelGroup()
  552. {
  553. List<String> index = new List<string>();
  554. string cic = "";
  555. foreach (var pRow in ultraGrid1.Rows)
  556. {
  557. foreach (var cRow in pRow.ChildBands[0].Rows)
  558. {
  559. if (cRow.GetValue("CHC").ToLower() == "true")
  560. {
  561. index.Add(cRow.GetValue("INDEX_SEQ"));
  562. cic = pRow.GetValue("CIC");
  563. }
  564. }
  565. if (index.Count > 0) break;
  566. }
  567. if (index.Count == 0)
  568. {
  569. MessageUtil.ShowWarning("请选择从记录!");
  570. return;
  571. }
  572. if (MessageUtil.ShowYesNoAndQuestion("是否确认取消分组?") == System.Windows.Forms.DialogResult.OK)
  573. {
  574. return;
  575. }
  576. ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.cancelGroup",
  577. new object[] { index, cic }, ob);
  578. MessageUtil.ShowTips("取消分组成功!");
  579. _cic = cic;
  580. _isEx = true;
  581. DoQuery();
  582. }
  583. /// <summary>
  584. /// 查询条件
  585. /// </summary>
  586. /// <returns></returns>
  587. private ArrayList GetQueryData()
  588. {
  589. ArrayList list = new ArrayList();
  590. //标准名称
  591. string stdName = "";
  592. if (ultraCheckStd.Checked)
  593. stdName = ultraTextStd.Text.Trim();
  594. list.Add(stdName);
  595. //冶金规范码
  596. string msc = "";
  597. if (ultraCheckMSC.Checked)
  598. {
  599. msc = ultraTextMSC.Text.Trim();
  600. }
  601. list.Add(msc);
  602. //是否包含无效
  603. string valid = "1";
  604. if (ultraCheckValid.Checked)
  605. valid = "0";
  606. list.Add(valid);
  607. list.Add(stdCode);
  608. return list;
  609. }
  610. /// <summary>
  611. /// 查询
  612. /// </summary>
  613. private void DoQuery()
  614. {
  615. //查询交付标准、内控标准或者Alpha
  616. ArrayList QueryConditon = GetQueryData();
  617. //主表查询
  618. dataTable1.Clear();
  619. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getCoreChemStandard",
  620. new Object[] { QueryConditon, CustomInfo, cic, msc, codeJg, steelCodes, produccodeNk, steelcodeNk, processCodeNk, modelCode }, this.ob);
  621. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
  622. //从表查询
  623. DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getCoreChemStandardC",
  624. new Object[] { QueryConditon, CustomInfo, cic, msc, codeJg, steelCodes, produccodeNk, steelcodeNk, processCodeNk, modelCode }, this.ob);
  625. GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true);
  626. //不同颜色区分是否有效数据
  627. QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
  628. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  629. UltraGridBand bc = ultraGrid1.DisplayLayout.Bands[0];
  630. UltraGridBand bcC = ultraGrid1.DisplayLayout.Bands[1];
  631. UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"],bc.Columns["MSC"], bc.Columns["STD_CODE_NK"] ,
  632. bcC.Columns["ISCHECK"],bcC.Columns["ISJUDGE"],bcC.Columns["ISQUOTE"],bc.Columns["MODEL_DESC"],
  633. bcC.Columns["COMPLEX_TYPE"],bcC.Columns["STDMIN"],bcC.Columns["STDMAX"]};
  634. //GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
  635. //isSelect = 0;
  636. //定位行和展开行
  637. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CIC" }, new string[] { _cic });
  638. if (rows1.Length > 0)
  639. {
  640. rows1[0].Activate();
  641. if (_isEx)
  642. rows1[0].ExpandAll();
  643. }
  644. _isEx = false;
  645. _cic = "";
  646. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  647. {
  648. ultraGrid1.UpdateData();
  649. DataView dv = new DataView(dataTable1);
  650. DataTable newdt = dv.ToTable(false, "CIC", "CHEM_NAME");
  651. DataRow[] dr = newdt.Select("CIC='" + ugr.Cells["CIC"].Value.ToString() + "'", "");
  652. ugr.Cells["COUNT"].Value = newdt.AsEnumerable().Where(a => a["CIC"].ToString() == ugr.Cells["CIC"].Value.ToString()).Distinct(new DataRowComparer()).Count();
  653. ugr.Cells["CHKNK"].Value = "选择";
  654. }
  655. ultraGrid1.UpdateData();
  656. dataTable1.AcceptChanges();
  657. dataTable2.AcceptChanges();
  658. //清空复制数据
  659. //_copyedRows.Clear();
  660. }
  661. private void DoQuery1()
  662. {
  663. //查询交付标准、内控标准或者Alpha
  664. ArrayList QueryConditon = GetQueryData();
  665. //主表查询
  666. dataTable1.Clear();
  667. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getComChemNK",
  668. new Object[] { msc }, this.ob);
  669. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
  670. //从表查询
  671. DataTable dt1 = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getComChemNKC",
  672. new Object[] { msc }, this.ob);
  673. GridHelper.CopyDataToDatatable(ref dt1, ref this.dataTable1, true);
  674. //不同颜色区分是否有效数据
  675. QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
  676. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  677. UltraGridBand bc = ultraGrid1.DisplayLayout.Bands[0];
  678. UltraGridBand bcC = ultraGrid1.DisplayLayout.Bands[1];
  679. UltraGridColumn[] col = new UltraGridColumn[] { bc.Columns["MEMO"],bc.Columns["MSC"], bc.Columns["STD_CODE_NK"] ,
  680. bcC.Columns["ISCHECK"],bcC.Columns["ISJUDGE"],bcC.Columns["ISQUOTE"],bc.Columns["MODEL_DESC"],
  681. bcC.Columns["COMPLEX_TYPE"],bcC.Columns["STDMIN"],bcC.Columns["STDMAX"]};
  682. //GridHelper.RefreshAndAutoSizeExceptRows(ultraGrid1, col);
  683. //isSelect = 0;
  684. //定位行和展开行
  685. UltraGridRow[] rows1 = GridHelper.GetRowsWithKey(ultraGrid1, new string[] { "CIC" }, new string[] { _cic });
  686. if (rows1.Length > 0)
  687. {
  688. rows1[0].Activate();
  689. if (_isEx)
  690. rows1[0].ExpandAll();
  691. }
  692. _isEx = false;
  693. _cic = "";
  694. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  695. {
  696. ultraGrid1.UpdateData();
  697. DataView dv = new DataView(dataTable1);
  698. DataTable newdt = dv.ToTable(false, "CIC", "CHEM_NAME");
  699. DataRow[] dr = newdt.Select("CIC='" + ugr.Cells["CIC"].Value.ToString() + "'", "");
  700. ugr.Cells["COUNT"].Value = newdt.AsEnumerable().Where(a => a["CIC"].ToString() == ugr.Cells["CIC"].Value.ToString()).Distinct(new DataRowComparer()).Count();
  701. }
  702. ultraGrid1.UpdateData();
  703. dataTable1.AcceptChanges();
  704. dataTable2.AcceptChanges();
  705. //清空复制数据
  706. //_copyedRows.Clear();
  707. }
  708. public void QueryPurchaseAgreement(string stdCodeNk)
  709. {
  710. dataTable1.Clear();
  711. dataTable2.Clear();
  712. DataTable dtP = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getPurchaseAgreementCic",
  713. new object[] { stdCodeNk }, ob);
  714. GridHelper.CopyDataToDatatable(ref dtP, ref this.dataTable2, true);
  715. DataTable dtC = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getPurchaseAgreementChem",
  716. new object[] { stdCodeNk }, ob);
  717. GridHelper.CopyDataToDatatable(ref dtC, ref this.dataTable1, true);
  718. QcmBaseCommon.SetGridColor(ultraGrid1, "VALIDFLAG", "无效");
  719. QcmBaseCommon.SetUltraGridNoEdit(ultraGrid1);
  720. }
  721. private int GetGridSelectCount()
  722. {
  723. foreach (UltraGridRow row in ultraGrid1.Rows)
  724. {
  725. if (row.Cells["CHC"].Value.ToString() == "True")
  726. {
  727. return 1;
  728. }
  729. UltraGridRow[] rows = GridHelper.GetRowsWithKey(row.ChildBands[0],
  730. new string[] { "CHC" }, new string[] { "True" });
  731. if (rows.Length > 0)
  732. {
  733. return 1;
  734. }
  735. }
  736. return 0;
  737. }
  738. private DataRow GetComBaseStdRowByPk(string stdCode)
  739. {
  740. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getComBaseStdByPk",
  741. new object[] { stdCode }, ob);
  742. return dt.Rows[0];
  743. }
  744. /// <summary>
  745. /// 保存
  746. /// </summary>
  747. private void DoSave()
  748. {
  749. try
  750. {
  751. ultraGrid1.UpdateData();
  752. }
  753. catch (Exception)
  754. {
  755. MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  756. return;
  757. }
  758. DataRow comBaseStdRow = null;
  759. string style = "G";
  760. if (CustomInfo == "2")
  761. {
  762. comBaseStdRow = GetComBaseStdRowByPk(stdCode);
  763. if (comBaseStdRow["ACCEPT_BID"].ToString() == "1")
  764. {
  765. style = "N";
  766. }
  767. else
  768. {
  769. style = "L";
  770. }
  771. }
  772. if (CustomInfo == "3")
  773. style = "K";
  774. if (CustomInfo == "4")
  775. style = "S";
  776. if (GetGridSelectCount() == 0)
  777. {
  778. MessageBox.Show("请选择记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  779. return;
  780. }
  781. if (CustomInfo == "2")
  782. {
  783. /*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
  784. && UserInfo.GetUserID() != "admin" && UserInfo.GetUserID() != "longjinhua")
  785. {
  786. MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能操作!");
  787. return;
  788. }*/
  789. //限制同一钢种下的成分数
  790. var groupRows = ultraGrid1.Rows.Where(a => a.GetValue("CHC") == "True" && a.GetValue("VALIDFLAG") == "").GroupBy(
  791. a => new { gradeCode = a.GetValue("GRADECODE"), gradeName = a.GetValue("GRADENAME") }).Select(
  792. a => new { gradeCode = a.Key.gradeCode, gradeName = a.Key.gradeName, cnt = a.Count() });
  793. foreach (var groupRow in groupRows)
  794. {
  795. int cnt = FrmStandarNSub.GetSameGradeCnt(groupRow.gradeCode, stdCode, ob);
  796. if (cnt + groupRow.cnt > 9)
  797. {
  798. MessageUtil.ShowWarning("钢种:" + groupRow.gradeName + " 已存在" + cnt + "条成分内控," + "新增成分内控" + groupRow.cnt + "条,总数大于9条,无法新增!");
  799. return;
  800. }
  801. }
  802. //验证碳当量
  803. foreach (var pRow in ultraGrid1.Rows)
  804. {
  805. var chkRowsC = pRow.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
  806. if (chkRowsC.Count() == 0) continue;
  807. //var groupSeqRows = pRow.ChildBands[0].Rows.GroupBy(a => a.GetValue("GROUP_SEQ"));
  808. //foreach (var groupRow in groupSeqRows)
  809. //{
  810. // var ce2Rows = groupRow.Where(a => a.GetValue("CHEM_CODE") == "C030" || a.GetValue("CHEM_CODE") == "C053"
  811. // || a.GetValue("CHEM_CODE") == "C060");
  812. // var cePRows = groupRow.Where(a => a.GetValue("CHEM_CODE") == "C031");
  813. // if (ce2Rows.Count() > 0 && cePRows.Count() > 0 && ce2Rows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0
  814. // && cePRows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0)
  815. // {
  816. // MessageUtil.ShowWarning("成分索引:" + pRow.GetValue("CIC") + "包含两种碳当量元素,必须维护限制元素!");
  817. // pRow.Activate();
  818. // return;
  819. // }
  820. //}
  821. //var cRows = pRow.ChildBands[0].Rows.Where(a => (a.GetValue("CHEM_CODE") == "C030" || a.GetValue("CHEM_CODE") == "C053"
  822. // || a.GetValue("CHEM_CODE") == "C060") || a.GetValue("CHEM_CODE") == "C031");
  823. //if (cRows.Count() > 1 && cRows.Where(a => a.GetValue("ELE_CODE") != "").Count() == 0)
  824. //{
  825. //}
  826. }
  827. // 验证成分项目是否重复
  828. //var pRows = ultraGrid1.Rows;
  829. //foreach (var row in pRows)
  830. //{
  831. // var chkRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
  832. // if (chkRowsC.Count() == 0) continue;
  833. // var groupRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "").GroupBy(
  834. // a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList();
  835. // //验证保存的索引码是否重复
  836. // var pRows2 = pRows.Where(a => a.GetValue("CIC") != row.GetValue("CIC") && a.GetValue("GRADECODE") == row.GetValue("GRADECODE"));
  837. // foreach (var row2 in pRows2)
  838. // {
  839. // var chkRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
  840. // if (chkRowsC2.Count() == 0) continue;
  841. // var groupRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "").GroupBy(
  842. // a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList();
  843. // if (groupRowsC2.Count() == groupRowsC.Count())
  844. // {
  845. // bool isSame = true;
  846. // foreach (var groupRowC in groupRowsC)
  847. // {
  848. // if (!groupRowsC2.Contains(groupRowC))
  849. // {
  850. // isSame = false;
  851. // }
  852. // }
  853. // if (isSame)
  854. // {
  855. // MessageUtil.ShowWarning("成分索引码:" + row.GetValue("CIC") + "与" + row2.GetValue("CIC") + "中的成分项目重复!");
  856. // return;
  857. // }
  858. // }
  859. // }
  860. // // 验证是否与数据库中的重复
  861. // CoreClientParam ccp = new CoreClientParam();
  862. // ccp.ServerName = "com.steering.pss.qcm.CoreChemStandard";
  863. // ccp.MethodName = "getChemByGrade";
  864. // ccp.ServerParams = new object[] { groupRowsC, stdCode, row.GetValue("GRADECODE"), row.GetValue("CIC"), "保存" };
  865. // ccp = ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
  866. // if (ccp.ReturnObject.ToString2() != "")
  867. // {
  868. // MessageUtil.ShowWarning(ccp.ReturnObject.ToString2());
  869. // return;
  870. // }
  871. //}
  872. }
  873. ArrayList baseData = new ArrayList();
  874. ArrayList childData = new ArrayList();
  875. for (int i = 0; i < ultraGrid1.Rows.Count; i++)
  876. {
  877. DataRow cicRow = null;
  878. UltraGridRow ugr = ultraGrid1.Rows[i];
  879. //主表操作
  880. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  881. {
  882. if (ugr.GetValue("VALIDFLAG") != "")
  883. {
  884. cicRow = GetMscCicByCic(ugr.GetValue("CIC"));
  885. }
  886. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && cicRow != null)
  887. {
  888. string[] units = ClsBaseInfo.GetUnitByUserName(cicRow["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  889. /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  890. {
  891. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  892. ugr.Activate();
  893. return;
  894. }*/
  895. }
  896. StdCicObject com = GetBaseData(ugr, cicRow);
  897. if (com == null)
  898. {
  899. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  900. return;
  901. }
  902. _cic = com.Cic;
  903. baseData.Add(JSONFormat.Format(com));
  904. }
  905. //从表操作
  906. if (ugr.HasChild())
  907. {
  908. if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("") && !Convert.ToBoolean(ugr.Cells["CHC"].Value))
  909. {
  910. MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  911. return;
  912. }
  913. for (int j = 0; j < ugr.ChildBands[0].Rows.Count; j++)
  914. {
  915. UltraGridRow ugrc = ugr.ChildBands[0].Rows[j];
  916. if (Convert.ToBoolean(ugrc.Cells["CHC"].Value))
  917. {
  918. if (ugr.GetValue("VALIDFLAG") != "")
  919. {
  920. cicRow = GetMscCicByCic(ugr.GetValue("CIC"));
  921. }
  922. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && cicRow != null)
  923. {
  924. string[] units = ClsBaseInfo.GetUnitByUserName(cicRow["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  925. /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  926. {
  927. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  928. ugrc.Activate();
  929. return;
  930. }*/
  931. }
  932. //验证是否被计划使用
  933. //if (CustomInfo == "2")
  934. //{
  935. // string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob);
  936. // if (plnMsg != "")
  937. // {
  938. // MessageUtil.ShowWarning(plnMsg);
  939. // ugrc.Activate();
  940. // return;
  941. // }
  942. //}
  943. StdChemObject comc = GetChildData(ugrc, cicRow);
  944. if (comc == null)
  945. {
  946. MessageBox.Show(errMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  947. return;
  948. }
  949. _cic = comc.Cic;
  950. _isEx = true;
  951. childData.Add(JSONFormat.Format(comc));
  952. }
  953. }
  954. }
  955. }
  956. if (MessageBox.Show("是否保存选择记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  957. {
  958. return;
  959. }
  960. if (baseData.Count > 0 || childData.Count > 0)
  961. {
  962. int count = ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.saveCoreChemStandard",
  963. new Object[] { baseData, childData, style }, this.ob);
  964. if (count > 0)
  965. {
  966. MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  967. DoQuery();
  968. }
  969. }
  970. }
  971. /// <summary>
  972. /// 删除或者恢复
  973. /// </summary>
  974. /// <param name="flag"></param>
  975. private void DoDeleteOrResume(Boolean flag)
  976. {
  977. try
  978. {
  979. ultraGrid1.UpdateData();
  980. }
  981. catch (Exception)
  982. {
  983. MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  984. return;
  985. }
  986. if (GetGridSelectCount() == 0)
  987. {
  988. MessageBox.Show("请选择记录", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  989. return;
  990. }
  991. DataRow comBaseStdRow = null;
  992. if (CustomInfo == "2")
  993. {
  994. comBaseStdRow = GetComBaseStdRowByPk(stdCode);
  995. /*if (comBaseStdRow["ACCEPT_BID"].ToString() == "1" && comBaseStdRow["UNIT_CODE"].ToString() != UserInfo.GetDeptid()
  996. && UserInfo.GetUserID() != "admin")
  997. {
  998. MessageUtil.ShowWarning("该记录只有[" + comBaseStdRow["UNIT_DESC"].ToString() + "]的成员才能" + (flag ? "作废" : "恢复") + "!");
  999. return;
  1000. }*/
  1001. if (!flag)
  1002. {
  1003. //限制同一钢种下的成分数
  1004. var groupRows = ultraGrid1.Rows.Where(a => a.GetValue("CHC") == "True" && a.GetValue("VALIDFLAG") == "无效").GroupBy(
  1005. a => new { gradeCode = a.GetValue("GRADECODE"), gradeName = a.GetValue("GRADENAME") }).Select(
  1006. a => new { gradeCode = a.Key.gradeCode, gradeName = a.Key.gradeName, cnt = a.Count() });
  1007. foreach (var groupRow in groupRows)
  1008. {
  1009. int cnt = FrmStandarNSub.GetSameGradeCnt(groupRow.gradeCode, stdCode, ob);
  1010. if (cnt + groupRow.cnt > 9)
  1011. {
  1012. MessageUtil.ShowWarning("钢种:" + groupRow.gradeName + " 已存在" + cnt + "条成分内控," + "恢复成分内控" + groupRow.cnt + "条,总数大于9条,无法恢复!");
  1013. return;
  1014. }
  1015. }
  1016. // 验证成分项目是否重复
  1017. var pRows = ultraGrid1.Rows;
  1018. foreach (var row in pRows)
  1019. {
  1020. var chkRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
  1021. if (chkRowsC.Count() == 0) continue;
  1022. var groupRowsC = row.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "无效").GroupBy(
  1023. a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList();
  1024. //验证保存的索引码是否重复
  1025. var pRows2 = pRows.Where(a => a.GetValue("CIC") != row.GetValue("CIC") && a.GetValue("GRADECODE") == row.GetValue("GRADECODE"));
  1026. foreach (var row2 in pRows2)
  1027. {
  1028. var chkRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True");
  1029. if (chkRowsC2.Count() == 0) continue;
  1030. var groupRowsC2 = row2.ChildBands[0].Rows.Where(a => a.GetValue("CHC") == "True" || a.GetValue("VALIDFLAG") != "无效").GroupBy(
  1031. a => a.GetValue("CHEM_CODE")).Select(a => a.Key).ToList();
  1032. if (groupRowsC2.Count() == groupRowsC.Count())
  1033. {
  1034. bool isSame = true;
  1035. foreach (var groupRowC in groupRowsC)
  1036. {
  1037. if (!groupRowsC2.Contains(groupRowC))
  1038. {
  1039. isSame = false;
  1040. }
  1041. }
  1042. if (isSame)
  1043. {
  1044. MessageUtil.ShowWarning("恢复后的成分索引码:" + row.GetValue("CIC") + "与" + row2.GetValue("CIC") + "中的成分项目重复,无法恢复!");
  1045. return;
  1046. }
  1047. }
  1048. }
  1049. // 验证是否与数据库中的重复
  1050. CoreClientParam ccp = new CoreClientParam();
  1051. ccp.ServerName = "com.steering.pss.qcm.CoreChemStandard";
  1052. ccp.MethodName = "getChemByGrade";
  1053. ccp.ServerParams = new object[] { groupRowsC, stdCode, row.GetValue("GRADECODE"), row.GetValue("CIC"), "恢复" };
  1054. ccp = ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
  1055. if (ccp.ReturnObject.ToString2() != "")
  1056. {
  1057. MessageUtil.ShowWarning(ccp.ReturnObject.ToString2());
  1058. return;
  1059. }
  1060. }
  1061. }
  1062. }
  1063. ArrayList baseList = new ArrayList();
  1064. ArrayList childList = new ArrayList();
  1065. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  1066. {
  1067. if (Convert.ToBoolean(ugr.Cells["CHC"].Value.ToString()))
  1068. {
  1069. if (CheckAuthority(ugr) == false)
  1070. {
  1071. MessageUtil.ShowWarning(errMessage);
  1072. return;
  1073. }
  1074. DataRow rowCic = null;
  1075. if (ugr.GetValue("VALIDFLAG") != "")
  1076. {
  1077. rowCic = GetMscCicByCic(ugr.GetValue("CIC"));
  1078. }
  1079. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowCic != null)
  1080. {
  1081. string[] units = ClsBaseInfo.GetUnitByUserName(rowCic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  1082. /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  1083. {
  1084. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  1085. ugr.Activate();
  1086. return;
  1087. }*/
  1088. }
  1089. //验证是否被计划使用
  1090. //if (CustomInfo == "2")
  1091. //{
  1092. // string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob);
  1093. // if (plnMsg != "")
  1094. // {
  1095. // MessageUtil.ShowWarning(plnMsg);
  1096. // ugr.Activate();
  1097. // return;
  1098. // }
  1099. //}
  1100. if (CheckDataParent(ugr, rowCic, flag) == false)
  1101. {
  1102. return;
  1103. }
  1104. if (CheckRows(ugr) && flag)
  1105. {
  1106. MessageBox.Show("无效记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1107. return;
  1108. }
  1109. if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("提交审核") || ugr.Cells["VALIDFLAG"].Value.ToString().Equals("已审核"))
  1110. {
  1111. MessageBox.Show("提交审核或已审核记录不能作废!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1112. return;
  1113. }
  1114. if (!CheckRows(ugr) && !flag)
  1115. {
  1116. MessageBox.Show("有效记录不能恢复!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1117. return;
  1118. }
  1119. StdCicObject com = new StdCicObject();
  1120. com.Cic = ugr.Cells["CIC"].Value.ToString();
  1121. com.DeleteName = UserInfo.GetUserName();
  1122. baseList.Add(JSONFormat.Format(com));
  1123. if (flag && ugr.HasChild())
  1124. {
  1125. if (MessageBox.Show("所对应子记录都将作废!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  1126. {
  1127. return;
  1128. }
  1129. foreach (UltraGridRow ugrC in ugr.ChildBands[0].Rows)
  1130. {
  1131. StdChemObject comC = new StdChemObject();
  1132. comC.Cic = ugrC.Cells["CIC"].Value.ToString();
  1133. comC.IndexSeq = ugrC.Cells["INDEX_SEQ"].Value.ToString();
  1134. comC.DeleteName = UserInfo.GetUserName();
  1135. childList.Add(JSONFormat.Format(comC));
  1136. }
  1137. }
  1138. _cic = ugr.Cells["CIC"].Value.ToString();
  1139. }
  1140. //如果主表行拥有子项
  1141. if (ugr.HasChild())
  1142. {
  1143. foreach (UltraGridRow ugrC in ugr.ChildBands[0].Rows)
  1144. {
  1145. //如果子项被勾选
  1146. if (Convert.ToBoolean(ugrC.Cells["CHC"].Value.ToString()))
  1147. {
  1148. DataRow rowCic = null;
  1149. if (ugr.GetValue("VALIDFLAG") != "")
  1150. {
  1151. rowCic = GetMscCicByCic(ugr.GetValue("CIC"));
  1152. }
  1153. if (comBaseStdRow != null && comBaseStdRow["ACCEPT_BID"].ToString() == "0" && rowCic != null)
  1154. {
  1155. string[] units = ClsBaseInfo.GetUnitByUserName(rowCic["CREATE_NAME"].ToString(), ob, "002001007", "002001001", "002023005");
  1156. /*if (units[0] != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  1157. {
  1158. MessageUtil.ShowWarning("该记录只有[" + units[1] + "]才能操作!");
  1159. ugrC.Activate();
  1160. return;
  1161. }*/
  1162. }
  1163. //验证是否被计划使用
  1164. //if (CustomInfo == "2")
  1165. //{
  1166. // string plnMsg = FrmStandardN.CheckPlnCic(ugr.GetValue("CIC"), ob);
  1167. // if (plnMsg != "")
  1168. // {
  1169. // MessageUtil.ShowWarning(plnMsg);
  1170. // ugrC.Activate();
  1171. // return;
  1172. // }
  1173. //}
  1174. if (CheckAuthority(ugrC) == false)
  1175. {
  1176. MessageUtil.ShowWarning(errMessage);
  1177. return;
  1178. }
  1179. if (!flag && CheckRows(ugrC.ParentRow) && !Convert.ToBoolean(ugrC.ParentRow.Cells["CHC"].Value))
  1180. {
  1181. MessageBox.Show("请选择主记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1182. return;
  1183. }
  1184. if (CheckRows(ugrC) && flag)
  1185. {
  1186. MessageBox.Show("无效记录不能作废", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1187. return;
  1188. }
  1189. if (!CheckRows(ugrC) && !flag)
  1190. {
  1191. MessageBox.Show("有效记录不能恢复", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1192. return;
  1193. }
  1194. if (flag)
  1195. {
  1196. if (ugr.Cells["VALIDFLAG"].Value.ToString() != ""
  1197. && ugrC.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "录入状态"
  1198. && ugrC.ParentRow.Cells["VALIDFLAG"].Value.ToString() != "无效")
  1199. {
  1200. MessageUtil.ShowWarning("主记录为提交审核或已审核状态时,无法作废");
  1201. return;
  1202. }
  1203. }
  1204. StdChemObject comC = new StdChemObject();
  1205. comC.Cic = ugrC.Cells["CIC"].Value.ToString();
  1206. comC.IndexSeq = ugrC.Cells["INDEX_SEQ"].Value.ToString();
  1207. comC.DeleteName = UserInfo.GetUserName();
  1208. childList.Add(JSONFormat.Format(comC));
  1209. _cic = ugr.Cells["CIC"].Value.ToString();
  1210. _isEx = true;
  1211. }
  1212. }
  1213. }
  1214. }
  1215. if (MessageBox.Show("是否" + (flag ? "作废" : "恢复") + "选择记录", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  1216. {
  1217. return;
  1218. }
  1219. if (baseList.Count > 0 || childList.Count > 0)
  1220. {
  1221. int count = ServerHelper.SetData("com.steering.pss.qcm.CoreChemStandard.deleteOrResume", new Object[] { baseList, childList, flag }, this.ob);
  1222. if (count > 0)
  1223. {
  1224. DoQuery();
  1225. MessageBox.Show((flag ? "作废" : "恢复") + "成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question);
  1226. }
  1227. }
  1228. }
  1229. /// <summary>
  1230. /// 行记录是否有效
  1231. /// </summary>
  1232. /// <param name="ugr"></param>
  1233. /// <returns></returns>
  1234. private bool CheckRows(UltraGridRow ugr)
  1235. {
  1236. if (ugr.Cells["VALIDFLAG"].Value.ToString().Equals("无效"))
  1237. return true;
  1238. else
  1239. return false;
  1240. }
  1241. private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
  1242. {
  1243. string style = "";
  1244. if (CustomInfo == "1")
  1245. style = "G";
  1246. if (CustomInfo == "2")
  1247. style = "N";
  1248. if (CustomInfo == "3")
  1249. style = "K";
  1250. if (CustomInfo == "4")
  1251. style = "S";
  1252. UltraGridRow ugr = ultraGrid1.DisplayLayout.ActiveRow;
  1253. if (!ugr.HasParent()) //主表自动填充主键(成分索引号)
  1254. {
  1255. string sic = "";
  1256. int temp = 0;
  1257. for (int i = 0; i < ultraGrid1.Rows.Count - 1; i++)
  1258. {
  1259. string str = ultraGrid1.Rows[i].Cells["CIC"].Value.ToString().Substring(4, 6);
  1260. if (Convert.ToInt32(str) > temp)
  1261. temp = Convert.ToInt32(str);
  1262. }
  1263. sic = "CIC" + style + string.Format("{0:000000}", temp + 1);
  1264. ugr.Cells["CIC"].Value = sic;
  1265. //ugr.Cells["COUNT"].Value = "0";
  1266. }
  1267. else
  1268. {
  1269. ugr.Cells["ISCHECK"].Value = true;
  1270. ugr.Cells["ISJUDGE"].Value = true;
  1271. ugr.Cells["ISQUOTE"].Value = true;
  1272. }
  1273. //增加行如果没有勾选则不可编辑
  1274. if (!Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1275. {
  1276. for (int i = 0; i < ugr.Cells.Count; i++)
  1277. {
  1278. if (!ugr.Cells[i].Column.Key.Equals("CHC"))
  1279. ugr.Cells[i].Activation = Activation.ActivateOnly;
  1280. if (ugr.Cells[i].Column.Key.Equals("CHKNK"))
  1281. ugr.Cells["CHKNK"].Value = "选择";
  1282. }
  1283. }
  1284. e.Row.Update();
  1285. }
  1286. /// <summary>
  1287. /// 单元格值变化事件
  1288. /// </summary>
  1289. /// <param name="sender"></param>
  1290. /// <param name="e"></param>
  1291. public void ultraGrid1_CellChange(object sender, CellEventArgs e)
  1292. {
  1293. if (e.Cell.Column.Key.Equals("STDMIN") || e.Cell.Column.Key.Equals("STDMAX") || e.Cell.Column.Key.Equals("STDMIN")
  1294. || e.Cell.Column.Key.Equals("ELE_MIN") || e.Cell.Column.Key.Equals("ELE_MAX") || e.Cell.Column.Key.Equals("SIZE_MIN2") ||
  1295. e.Cell.Column.Key.Equals("SIZE_MIN") || e.Cell.Column.Key.Equals("SIZE_MAX2") || e.Cell.Column.Key.Equals("SIZE_MAX"))
  1296. return;
  1297. ultraGrid1.UpdateData();
  1298. UltraGridRow ugr = ultraGrid1.ActiveRow;
  1299. if (e.Cell.Column.Key.Equals("CHEM_CODE")) /// 成分下拉框操作
  1300. {
  1301. ugr.Cells["CHEM_NAME"].Value = ugr.Cells["CHEM_CODE"].Text;
  1302. string chemCode = ugr.Cells["CHEM_CODE"].Value.ToString();
  1303. DataRow[] dr = ((DataTable)ultras[2].DataSource).Select("CHEM_CODE ='" + chemCode + "'");
  1304. if (dr.Length > 0)
  1305. {
  1306. ugr.Cells["XH"].Value = Convert.ToInt32(dr[0][0].ToString().Substring(1));
  1307. ugr.Cells["CHEM_TYPE"].Value = dr[0][2];
  1308. ugr.Cells["CHEM_FORMULA"].Value = dr[0][3];
  1309. }
  1310. else
  1311. {
  1312. ugr.Cells["CHEM_NAME"].Value = "";
  1313. ugr.Cells["CHEM_TYPE"].Value = "";
  1314. ugr.Cells["CHEM_FORMULA"].Value = "";
  1315. }
  1316. }
  1317. if (e.Cell.Column.Key.Equals("")) //接箍操作
  1318. {
  1319. ugr.Cells["SPEC_JG_DESC"].Value = ugr.Cells["SPEC_JG"].Text;
  1320. }
  1321. if (e.Cell.Column.Key.Equals("MSC"))//冶金规范码
  1322. {
  1323. string msc = ugr.Cells["MSC"].Value.ToString();
  1324. DataRow[] dr = ((DataTable)ultras[10].DataSource).Select("MSC='" + msc + "'");
  1325. if (dr.Length > 0)
  1326. {
  1327. ugr.Cells["PSC"].Value = dr[0][2];
  1328. ugr.Cells["PSC_DESC"].Value = dr[0][3];
  1329. ugr.Cells["PRODUCNAME"].Value = dr[0][4];
  1330. ugr.Cells["STD_NAME_B"].Value = dr[0][5];
  1331. ugr.Cells["STEELNAME"].Value = dr[0][6];
  1332. ugr.Cells["STD_STYLE_DESC"].Value = dr[0][7];
  1333. ugr.Cells["STDSTYLE"].Value = dr[0][8];
  1334. }
  1335. }
  1336. if (e.Cell.Column.Key.Equals("SIZE_CODE2")) //限制规格描述一
  1337. {
  1338. ugr.Cells["SIZE_NAME2"].Value = ugr.Cells["SIZE_CODE2"].Text;
  1339. string code2 = ugr.Cells["SIZE_CODE2"].Value.ToString();
  1340. string code = ugr.Cells["SIZE_CODE"].Value.ToString();
  1341. if (!code2.Equals("") && !code.Equals("") && code.Equals(code2))
  1342. {
  1343. MessageBox.Show("请重新选择限制规格<一>:限制规格", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  1344. ugr.Cells["SIZE_NAME2"].Value = "";
  1345. ugr.Cells["SIZE_CODE2"].Value = "";
  1346. return;
  1347. }
  1348. if (ugr.Cells["SIZE_CODE2"].Value.ToString() == "")
  1349. {
  1350. ugr.Cells["SIZE_MIN_SIGN2"].Value = "";
  1351. ugr.Cells["SIZE_MIN2"].Value = "";
  1352. ugr.Cells["SIZE_MAX_SIGN2"].Value = "";
  1353. ugr.Cells["SIZE_MAX2"].Value = "";
  1354. }
  1355. }
  1356. if (e.Cell.Column.Key.Equals("SIZE_CODE")) //限制规格描述二
  1357. {
  1358. ugr.Cells["SIZE_NAME"].Value = ugr.Cells["SIZE_CODE"].Text;
  1359. string code2 = ugr.Cells["SIZE_CODE2"].Value.ToString();
  1360. string code = ugr.Cells["SIZE_CODE"].Value.ToString();
  1361. if (!code2.Equals("") && !code.Equals("") && code.Equals(code2))
  1362. {
  1363. MessageBox.Show("请重新选择限制规格<二>:限制规格", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1364. ugr.Cells["SIZE_NAME"].Value = "";
  1365. ugr.Cells["SIZE_CODE"].Value = "";
  1366. return;
  1367. }
  1368. if (ugr.Cells["SIZE_CODE"].Value.ToString() == "")
  1369. {
  1370. ugr.Cells["SIZE_MIN_SIGN"].Value = "";
  1371. ugr.Cells["SIZE_MIN"].Value = "";
  1372. ugr.Cells["SIZE_MAX_SIGN"].Value = "";
  1373. ugr.Cells["SIZE_MAX"].Value = "";
  1374. }
  1375. }
  1376. if (e.Cell.Column.Key.Equals("ELE_CODE")) //限制元素描述
  1377. {
  1378. ugr.Cells["ELE_NAME"].Value = ugr.Cells["ELE_CODE"].Text;
  1379. if (ugr.Cells["ELE_CODE"].Value.ToString() == "")
  1380. {
  1381. ugr.Cells["ELE_MIN_SIGN"].Value = "";
  1382. ugr.Cells["ELE_MIN"].Value = "";
  1383. ugr.Cells["ELE_MAX_SIGN"].Value = "";
  1384. ugr.Cells["ELE_MAX"].Value = "";
  1385. ugr.Update();
  1386. }
  1387. }
  1388. if (e.Cell.Column.Key.Equals("REP_CODE")) //替代元素描述
  1389. {
  1390. ugr.Cells["REP_NAME"].Value = ugr.Cells["REP_CODE"].Text;
  1391. if (ugr.Cells["REP_CODE"].Value.ToString() == "")
  1392. {
  1393. ugr.Cells["REP_MIN_SIGN"].Value = "";
  1394. ugr.Cells["REP_MIN"].Value = "";
  1395. ugr.Cells["REP_MAX_SIGN"].Value = "";
  1396. ugr.Cells["REP_MAX"].Value = "";
  1397. ugr.Cells["REP_VAL"].Value = "";
  1398. }
  1399. }
  1400. if (e.Cell.Column.Key.Equals("CHC")) //
  1401. {
  1402. Activation activation = Activation.ActivateOnly;
  1403. if (Convert.ToBoolean(e.Cell.Value))
  1404. {
  1405. activation = Activation.AllowEdit;
  1406. //isSelect += 1;
  1407. }
  1408. //else
  1409. //isSelect -= 1;
  1410. CellsCollection cells = e.Cell.Row.Cells;
  1411. for (int i = 0; i < cells.Count; i++)
  1412. {
  1413. if (!cells[i].Column.Key.Equals("CHC"))
  1414. {
  1415. e.Cell.Row.Cells[i].Activation = activation;
  1416. }
  1417. }
  1418. }
  1419. if (e.Cell.Column.Key.Equals("GRADECODE")) //钢种下拉框操作
  1420. {
  1421. ugr.Cells["GRADENAME"].Value = ugr.Cells["GRADECODE"].Text;
  1422. }
  1423. if (e.Cell.Column.Key.Equals("PROCESS_CODE")) //工序下拉框选择
  1424. {
  1425. ugr.Cells["PROCESS_DESC"].Value = ugr.Cells["PROCESS_CODE"].Text;
  1426. }
  1427. if (e.Cell.Column.Key.Equals("ISCHECK")) //是否检验
  1428. {
  1429. if (!Convert.ToBoolean(e.Cell.Value.ToString()))
  1430. {
  1431. ugr.Cells["ISJUDGE"].Value = false;
  1432. //ugr.Cells["ISQUOTE"].Value = false;
  1433. }
  1434. }
  1435. if (e.Cell.Column.Key.Equals("ISJUDGE"))
  1436. {
  1437. if (Convert.ToBoolean(ugr.Cells["ISJUDGE"].Value.ToString()))
  1438. {
  1439. ugr.Cells["ISCHECK"].Value = true;
  1440. }
  1441. }
  1442. if (e.Cell.Column.Key.Equals("STD_CODE_NK")) //内控标准选择
  1443. {
  1444. string stdCode = ugr.Cells["STD_CODE_NK"].Value.ToString();
  1445. ugr.Cells["STD_NAME_NK"].Value = ugr.Cells["STD_CODE_NK"].Text;
  1446. DataRow[] dr = ((DataTable)ultras[7].DataSource).Select("STD_CODE='" + stdCode + "'");
  1447. if (dr.Length > 0)
  1448. {
  1449. ugr.Cells["STDSTYLE"].Value = dr[0][2];
  1450. }
  1451. }
  1452. ultraGrid1.ActiveRow.Update();
  1453. ultraGrid1.UpdateData();
  1454. }
  1455. /// <summary>
  1456. /// 从表数据
  1457. /// </summary>
  1458. /// <param name="ugr">UltraGridRow</param>
  1459. /// <returns></returns>
  1460. private StdChemObject GetChildData(UltraGridRow ugr, DataRow rowCic)
  1461. {
  1462. if (CheckAuthority(ugr) == false) return null;
  1463. if (rowCic != null && (rowCic["VALIDFLAG"].ToString() == "2" || rowCic["VALIDFLAG"].ToString() == "3"))
  1464. {
  1465. errMessage = "主记录为提交审核或已审核状态时,无法修改";
  1466. return null;
  1467. }
  1468. string cic = ugr.Cells["CIC"].Value.ToString().Trim();
  1469. string indexSeq = ugr.Cells["INDEX_SEQ"].Value.ToString().Trim();
  1470. string chemName = ugr.Cells["CHEM_NAME"].Value.ToString().Trim();
  1471. if (chemName.Equals(""))
  1472. {
  1473. errMessage = "请选择化学元素描述";
  1474. return null;
  1475. }
  1476. string chemCode = ugr.Cells["CHEM_CODE"].Value.ToString().Trim();
  1477. string wholeBacklog = ugr.Cells["CHEM_TYPE"].Value.ToString().Trim();
  1478. if (wholeBacklog.Equals("单一元素"))
  1479. wholeBacklog = "A";
  1480. else
  1481. wholeBacklog = "B";
  1482. string chemFormula = ugr.Cells["CHEM_FORMULA"].Value.ToString().Trim();
  1483. string isCheck = ugr.Cells["ISCHECK"].Value.ToString().Trim();
  1484. if (Convert.ToBoolean(isCheck))
  1485. {
  1486. isCheck = "1";
  1487. }
  1488. else isCheck = "0";
  1489. string isjudge = ugr.Cells["ISJUDGE"].Value.ToString().Trim();
  1490. if (Convert.ToBoolean(isjudge))
  1491. {
  1492. isjudge = "1";
  1493. }
  1494. else isjudge = "0";
  1495. string isquote = ugr.Cells["ISQUOTE"].Value.ToString().Trim();
  1496. if (Convert.ToBoolean(isquote))
  1497. {
  1498. isquote = "1";
  1499. }
  1500. else isquote = "0";
  1501. string complexType = ugr.Cells["COMPLEX_TYPE"].Value.ToString().Trim();
  1502. if (Convert.ToBoolean(complexType))
  1503. {
  1504. complexType = "1";
  1505. }
  1506. else
  1507. {
  1508. complexType = "0";
  1509. }
  1510. string stdminSign = ugr.Cells["STDMIN_SIGN"].Value.ToString().Trim();
  1511. string stdMin = ugr.Cells["STDMIN"].Value.ToString().Trim();
  1512. string stdmaxSign = ugr.Cells["STDMAX_SIGN"].Value.ToString().Trim();
  1513. string stdMax = ugr.Cells["STDMAX"].Value.ToString().Trim().Trim();
  1514. if (!stdminSign.Equals(""))
  1515. {
  1516. if (stdMin.Equals(""))
  1517. {
  1518. errMessage = "请输入标准范围下限值";
  1519. return null;
  1520. }
  1521. if (complexType.Equals("0"))
  1522. {
  1523. if (!StringUtil.IsNumber(stdMin))
  1524. {
  1525. errMessage = "标准范围下限值请输入数字";
  1526. return null;
  1527. }
  1528. }
  1529. else
  1530. {
  1531. if (!QcmBaseCommon.CheckElement(stdMin, this.ob))
  1532. {
  1533. errMessage = "标准范围下限值输入公式不合法,请重新输入";
  1534. return null;
  1535. }
  1536. }
  1537. }
  1538. else
  1539. {
  1540. if (!stdMin.Equals(""))
  1541. {
  1542. errMessage = "请选择标准范围下限符号";
  1543. return null;
  1544. }
  1545. }
  1546. if (stdminSign.Equals("=") && !stdmaxSign.Equals(""))
  1547. {
  1548. errMessage = "标准范围下限符号为'=',不能选择上限符号";
  1549. return null;
  1550. }
  1551. if (isjudge.Equals("1") && stdminSign.Equals("") && stdmaxSign.Equals(""))
  1552. {
  1553. errMessage = "请选择标准范围下限符号或者上限符号";
  1554. return null;
  1555. }
  1556. if (!stdmaxSign.Equals(""))
  1557. {
  1558. if (stdMax.Equals(""))
  1559. {
  1560. errMessage = "请输入标准范围上限值";
  1561. return null;
  1562. }
  1563. if (complexType.Equals("0"))
  1564. {
  1565. if (!StringUtil.IsNumber(stdMax))
  1566. {
  1567. errMessage = "标准范围上限值请输入数字";
  1568. return null;
  1569. }
  1570. }
  1571. else
  1572. {
  1573. if (!QcmBaseCommon.CheckElement(stdMin, this.ob))
  1574. {
  1575. errMessage = "标准范围上限值输入公式不合法,请重新输入";
  1576. }
  1577. }
  1578. }
  1579. else
  1580. {
  1581. if (!stdMax.Equals(""))
  1582. {
  1583. errMessage = "请选择标准范围上限符号";
  1584. return null;
  1585. }
  1586. }
  1587. if (complexType.Equals("0") && !stdMin.Equals("") && !stdMax.Equals("")) //&& double.Parse(stdMin) > double.Parse(stdMax)
  1588. {
  1589. int i = QcmBaseInfo.CheckStdData(stdminSign, stdmaxSign, stdMin, stdMax);
  1590. if (i == 0)
  1591. {
  1592. errMessage = "输入的数据不完整";
  1593. return null;
  1594. }
  1595. if (i == 1)
  1596. {
  1597. errMessage = "标准范围下限值与上限值相等,上下限符号请选择<=和>=";
  1598. return null;
  1599. }
  1600. if (i == 2)
  1601. {
  1602. errMessage = "标准范围下限值不能大于上限值";
  1603. return null;
  1604. }
  1605. }
  1606. string stdTarget = ugr.Cells["STDTARGET"].Value.ToString().Trim();
  1607. string modelCode = ugr.Cells["MODEL_CODE"].Value.ToString().Trim();
  1608. string modelDesc = ugr.Cells["MODEL_DESC"].Value.ToString().Trim();
  1609. string stdMemo = ugr.Cells["STDMEMO"].Value.ToString().Trim();
  1610. string ele_code = ugr.Cells["ELE_CODE"].Value.ToString().Trim();
  1611. string ele_name = ugr.Cells["ELE_NAME"].Value.ToString().Trim();
  1612. string ele_min_sign = ugr.Cells["ELE_MIN_SIGN"].Value.ToString().Trim();
  1613. string ele_min = ugr.Cells["ELE_MIN"].Value.ToString().Trim();
  1614. string ele_max_sign = ugr.Cells["ELE_MAX_SIGN"].Value.ToString().Trim();
  1615. string ele_max = ugr.Cells["ELE_MAX"].Value.ToString().Trim();
  1616. string repcode = ugr.Cells["REP_CODE"].Value.ToString().Trim();
  1617. string repname = ugr.Cells["REP_NAME"].Value.ToString().Trim();
  1618. string repminsign = ugr.Cells["REP_MIN_SIGN"].Value.ToString().Trim();
  1619. string repmin = ugr.Cells["REP_MIN"].Value.ToString().Trim();
  1620. string repmaxsign = ugr.Cells["REP_MAX_SIGN"].Value.ToString().Trim();
  1621. string repmax = ugr.Cells["REP_MAX"].Value.ToString().Trim();
  1622. string repval = ugr.Cells["REP_VAL"].Value.ToString().Trim();
  1623. string size_code2 = ugr.Cells["SIZE_CODE2"].Value.ToString().Trim();
  1624. string size_name2 = ugr.Cells["SIZE_NAME2"].Value.ToString().Trim();
  1625. string size_min_sign2 = ugr.Cells["SIZE_MIN_SIGN2"].Value.ToString().Trim();
  1626. string size_min2 = ugr.Cells["SIZE_MIN2"].Value.ToString().Trim();
  1627. string size_max_sign2 = ugr.Cells["SIZE_MAX_SIGN2"].Value.ToString().Trim();
  1628. string size_max2 = ugr.Cells["SIZE_MAX2"].Value.ToString().Trim();
  1629. string size_code = ugr.Cells["SIZE_CODE"].Value.ToString().Trim();
  1630. string size_name = ugr.Cells["SIZE_NAME"].Value.ToString().Trim();
  1631. string size_min_sign = ugr.Cells["SIZE_MIN_SIGN"].Value.ToString().Trim();
  1632. string size_min = ugr.Cells["SIZE_MIN"].Value.ToString().Trim();
  1633. string size_max_sign = ugr.Cells["SIZE_MAX_SIGN"].Value.ToString().Trim();
  1634. string size_max = ugr.Cells["SIZE_MAX"].Value.ToString().Trim();
  1635. string specJG = ugr.Cells["SPEC_JG"].Value.ToString().Trim();
  1636. string specJGDesc = ugr.Cells["SPEC_JG_DESC"].Value.ToString().Trim();
  1637. if (ele_min_sign.Equals("=") && !ele_max_sign.Equals(""))
  1638. {
  1639. errMessage = "限制元素下限符号为'=',不能选择上限符号";
  1640. return null;
  1641. }
  1642. if (size_min_sign2.Equals("=") && !size_max_sign2.Equals(""))
  1643. {
  1644. errMessage = "限制规格(一)下限符号为'=',不能选择上限符号";
  1645. return null;
  1646. }
  1647. if (size_min_sign.Equals("=") && !size_max_sign.Equals(""))
  1648. {
  1649. errMessage = "限制规格(二)下限符号为'=',不能选择上限符号";
  1650. return null;
  1651. }
  1652. if (repminsign.Equals("=") && !repmaxsign.Equals(""))
  1653. {
  1654. errMessage = "替代元素下限符号为'=',不能选择上限符号";
  1655. return null;
  1656. }
  1657. if (!ele_name.Equals(""))
  1658. {
  1659. if (ele_name.Equals(chemName))
  1660. {
  1661. errMessage = "化学元素描述不能与限制元素描述相同";
  1662. return null;
  1663. }
  1664. if (ele_min_sign.Equals("") && ele_max_sign.Equals(""))
  1665. {
  1666. errMessage = "请选择限制元素上限符号或者下限符号";
  1667. return null;
  1668. }
  1669. if (!ele_min_sign.Equals("") && ele_min.Equals(""))
  1670. {
  1671. errMessage = "请输入限制元素下限值";
  1672. return null;
  1673. }
  1674. if (ele_min_sign.Equals("") && !ele_min.Equals(""))
  1675. {
  1676. errMessage = "请选择限制元素下限符号";
  1677. return null;
  1678. }
  1679. if (!ele_max_sign.Equals("") && ele_max.Equals(""))
  1680. {
  1681. errMessage = "请输入限制元素上限值";
  1682. return null;
  1683. }
  1684. if (ele_max_sign.Equals("") && !ele_max.Equals(""))
  1685. {
  1686. errMessage = "请选择限制元素上限符号";
  1687. return null;
  1688. }
  1689. if (!ele_max.Equals("") && !StringUtil.IsNumber(ele_max))
  1690. {
  1691. errMessage = "限制元素上限值请输入数字";
  1692. return null;
  1693. }
  1694. if (!ele_min.Equals("") && !StringUtil.IsNumber(ele_min))
  1695. {
  1696. errMessage = "限制元素下限值请输入数字";
  1697. return null;
  1698. }
  1699. if (!ele_max_sign.Equals("") && !ele_min_sign.Equals("")) //&& Convert.ToInt32(ele_min) > Convert.ToInt32(ele_max)
  1700. {
  1701. int i = QcmBaseInfo.CheckStdData(ele_min_sign, ele_max_sign, ele_min, ele_max);
  1702. if (i == 0)
  1703. {
  1704. errMessage = "输入的数据不完整";
  1705. return null;
  1706. }
  1707. if (i == 1)
  1708. {
  1709. errMessage = "限制元素下限值与上限值相等,上下限符号请选择<=和>=";
  1710. return null;
  1711. }
  1712. if (i == 2)
  1713. {
  1714. errMessage = "限制元素下限值不能大于上限值";
  1715. return null;
  1716. }
  1717. }
  1718. }
  1719. else
  1720. {
  1721. if (!ele_max_sign.Equals("") || !ele_min_sign.Equals("") || !ele_min.Equals("") || !ele_max.Equals(""))
  1722. {
  1723. errMessage = "请选择限制元素描述";
  1724. return null;
  1725. }
  1726. }
  1727. //-------------------新增的7个字段-----------------------------------------
  1728. if (!repname.Equals(""))
  1729. {
  1730. if (repname.Equals(chemName))
  1731. {
  1732. errMessage = "化学元素描述不能与替代元素描述相同";
  1733. return null;
  1734. }
  1735. if (repminsign.Equals("") && repmaxsign.Equals(""))
  1736. {
  1737. errMessage = "请选择替代元素上限符号或者下限符号";
  1738. return null;
  1739. }
  1740. if (!repminsign.Equals("") && repmin.Equals(""))
  1741. {
  1742. errMessage = "请输入替代元素下限值";
  1743. return null;
  1744. }
  1745. if (repminsign.Equals("") && !repmin.Equals(""))
  1746. {
  1747. errMessage = "请选择替代元素下限符号";
  1748. return null;
  1749. }
  1750. if (!repmaxsign.Equals("") && repmax.Equals(""))
  1751. {
  1752. errMessage = "请输入替代元素上限值";
  1753. return null;
  1754. }
  1755. if (repmaxsign.Equals("") && !repmax.Equals(""))
  1756. {
  1757. errMessage = "请选择替代元素上限符号";
  1758. return null;
  1759. }
  1760. if (!repmax.Equals("") && !StringUtil.IsNumber(repmax))
  1761. {
  1762. errMessage = "替代元素上限值请输入数字";
  1763. return null;
  1764. }
  1765. if (!repmin.Equals("") && !StringUtil.IsNumber(repmin))
  1766. {
  1767. errMessage = "替代元素下限值请输入数字";
  1768. return null;
  1769. }
  1770. if (!repmaxsign.Equals("") && !repminsign.Equals("")) //&& Convert.ToInt32(repmin) > Convert.ToInt32(repmax)
  1771. {
  1772. int i = QcmBaseInfo.CheckStdData(repminsign, repmaxsign, repmin, repmax);
  1773. if (i == 0)
  1774. {
  1775. errMessage = "输入的数据不完整";
  1776. return null;
  1777. }
  1778. if (i == 1)
  1779. {
  1780. errMessage = "替代元素下限值与上限值相等,上下限符号请选择<=和>=";
  1781. return null;
  1782. }
  1783. if (i == 2)
  1784. {
  1785. errMessage = "替代元素下限值不能大于上限值";
  1786. return null;
  1787. }
  1788. }
  1789. }
  1790. else
  1791. {
  1792. if (!repmaxsign.Equals("") || !repminsign.Equals("") || !repmin.Equals("") || !repmax.Equals(""))
  1793. {
  1794. errMessage = "请选择替代元素描述";
  1795. return null;
  1796. }
  1797. }
  1798. //----------------新增的7个字段处理结束-------------
  1799. if (!specJGDesc.Equals("") && !specJGDesc.Equals("-1"))
  1800. {
  1801. if (!size_name.Equals("") || !size_name2.Equals(""))
  1802. {
  1803. errMessage = "存在接箍描述,不能选择限制规格(一)或者(二)";
  1804. return null;
  1805. }
  1806. }
  1807. if (!size_name.Equals("") || !size_name2.Equals(""))
  1808. {
  1809. if (!specJGDesc.Equals("") && !specJGDesc.Equals("-1"))
  1810. {
  1811. errMessage = "存在限制规格(一)或者限制规格(二),不能选择接箍描述";
  1812. return null;
  1813. }
  1814. }
  1815. if (!size_name2.Equals(""))
  1816. {
  1817. if (size_min_sign2.Equals("") && size_max_sign2.Equals(""))
  1818. {
  1819. errMessage = "请选择限制规格(一)下限符号或者上限符号";
  1820. return null;
  1821. }
  1822. if (!size_min_sign2.Equals("") && size_min2.Equals(""))
  1823. {
  1824. errMessage = "请输入限制规格(一)下限值";
  1825. return null;
  1826. }
  1827. if (size_min_sign2.Equals("") && !size_min2.Equals(""))
  1828. {
  1829. errMessage = "请选择限制规格(一)下限符号";
  1830. return null;
  1831. }
  1832. if (!size_max_sign2.Equals("") && size_max2.Equals(""))
  1833. {
  1834. errMessage = "请输入限制规格(一)下限值";
  1835. return null;
  1836. }
  1837. if (size_max_sign2.Equals("") && !size_max2.Equals(""))
  1838. {
  1839. errMessage = "请选择限制规格(一)下限符号";
  1840. return null;
  1841. }
  1842. if (!size_max2.Equals("") && !StringUtil.IsNumber(size_max2))
  1843. {
  1844. errMessage = "限制规格(一)上限值请输入数字";
  1845. return null;
  1846. }
  1847. if (!size_min2.Equals("") && !StringUtil.IsNumber(size_min2))
  1848. {
  1849. errMessage = "限制规格(一)下限值请输入数字";
  1850. return null;
  1851. }
  1852. if (!size_max2.Equals("") && !size_min2.Equals("")) //&& Convert.ToDouble(size_min2) > Convert.ToDouble(size_max2)
  1853. {
  1854. int i = QcmBaseInfo.CheckStdData(size_min_sign2, size_max_sign2, size_min2, size_max2);
  1855. if (i == 0)
  1856. {
  1857. errMessage = "输入的数据不完整";
  1858. return null;
  1859. }
  1860. if (i == 1)
  1861. {
  1862. errMessage = "限制规格(一)下限值与上限值相等,上下限符号请选择<=和>=";
  1863. return null;
  1864. }
  1865. if (i == 2)
  1866. {
  1867. errMessage = "限制规格(一)下限值不能大于上限值";
  1868. return null;
  1869. }
  1870. }
  1871. }
  1872. else
  1873. {
  1874. if (!size_min_sign2.Equals("") || !size_max2.Equals("") || !size_max2.Equals("") || !size_min2.Equals(""))
  1875. {
  1876. errMessage = "请选择限制规格(一)描述";
  1877. return null;
  1878. }
  1879. }
  1880. if (!size_name.Equals(""))
  1881. {
  1882. if (size_min_sign.Equals("") && size_max_sign.Equals(""))
  1883. {
  1884. errMessage = "请选择限制规格(二)下限符号或者上限符号";
  1885. return null;
  1886. }
  1887. if (!size_min_sign.Equals("") && size_min.Equals(""))
  1888. {
  1889. errMessage = "请输入限制规格(二)下限值";
  1890. return null;
  1891. }
  1892. if (size_min_sign.Equals("") && !size_min.Equals(""))
  1893. {
  1894. errMessage = "请选择限制规格(二)下限符号";
  1895. return null;
  1896. }
  1897. if (!size_max_sign.Equals("") && size_max.Equals(""))
  1898. {
  1899. errMessage = "请输入限制规格(二)下限值";
  1900. return null;
  1901. }
  1902. if (size_max_sign.Equals("") && !size_max.Equals(""))
  1903. {
  1904. errMessage = "请选择限制规格(二)下限符号";
  1905. return null;
  1906. }
  1907. if (!size_max.Equals("") && !StringUtil.IsNumber(size_max))
  1908. {
  1909. errMessage = "限制规格(二)上限值请输入数字";
  1910. return null;
  1911. }
  1912. if (!size_min.Equals("") && !StringUtil.IsNumber(size_min))
  1913. {
  1914. errMessage = "限制规格(二)下限值请输入数字";
  1915. return null;
  1916. }
  1917. if (!size_max.Equals("") && !size_min.Equals("")) //&& Convert.ToDouble(size_min) > Convert.ToDouble(size_max)
  1918. {
  1919. int i = QcmBaseInfo.CheckStdData(size_min_sign, size_max_sign, size_min, size_max);
  1920. if (i == 0)
  1921. {
  1922. errMessage = "输入的数据不完整";
  1923. return null;
  1924. }
  1925. if (i == 1)
  1926. {
  1927. errMessage = "限制规格(二)下限值与上限值相等,上下限符号请选择<=和>=";
  1928. return null;
  1929. }
  1930. if (i == 2)
  1931. {
  1932. errMessage = "限制规格(二)下限值不能大于上限值";
  1933. return null;
  1934. }
  1935. }
  1936. }
  1937. else
  1938. {
  1939. if (!size_min_sign.Equals("") || !size_max.Equals("") || !size_max.Equals("") || !size_min.Equals(""))
  1940. {
  1941. errMessage = "请选择限制规格(二)描述";
  1942. return null;
  1943. }
  1944. }
  1945. if (!size_name.Equals("") && !size_name2.Equals("") && size_name.Equals(size_name2))
  1946. {
  1947. errMessage = "限制规格(二)描述不能与限制规格(一)描述相同";
  1948. return null;
  1949. }
  1950. string createName = UserInfo.GetUserName();
  1951. string updateName = UserInfo.GetUserName();
  1952. string createTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim();
  1953. string validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim();
  1954. //if (validflag.Equals("无效"))
  1955. //{
  1956. // errMessage = "无效记录不能保存";
  1957. // return null;
  1958. //}
  1959. StdChemObject com = new StdChemObject();
  1960. com.Cic = cic;
  1961. com.IndexSeq = indexSeq;
  1962. com.ChemCode = chemCode;
  1963. com.ChemName = chemName;
  1964. com.ChemType = wholeBacklog;
  1965. com.ChemFormula = chemFormula;
  1966. com.IsCheck = isCheck;
  1967. com.Isjudge = isjudge;
  1968. com.IsQuote = isquote;
  1969. com.ComplexType = complexType;
  1970. com.StdMinSign = stdminSign;
  1971. if (stdMin.TryParseDecimal())
  1972. {
  1973. if (stdMin.StartsWith(".")) stdMin = "0" + stdMin;
  1974. }
  1975. com.StdMin = stdMin;
  1976. com.StdMaxSign = stdmaxSign;
  1977. if (stdMax.TryParseDecimal())
  1978. {
  1979. if (stdMax.StartsWith(".")) stdMax = "0" + stdMax;
  1980. }
  1981. com.StdMax = stdMax;
  1982. com.StdTarget = stdTarget;
  1983. com.ModelCode = modelCode;
  1984. com.ModelDesc = modelDesc;
  1985. com.StdMemo = stdMemo;
  1986. com.EleCode = ele_code;
  1987. com.EleName = ele_name;
  1988. com.EleMinSign = ele_min_sign;
  1989. if (ele_min.TryParseDecimal())
  1990. {
  1991. if (ele_min.StartsWith(".")) ele_min = "0" + ele_min;
  1992. }
  1993. com.EleMin = ele_min;
  1994. com.EleMaxSign = ele_max_sign;
  1995. if (ele_max.TryParseDecimal())
  1996. {
  1997. if (ele_max.StartsWith(".")) ele_max = "0" + ele_max;
  1998. }
  1999. com.EleMax = ele_max;
  2000. com.SizeCode2 = size_code2;
  2001. com.SizeName2 = size_name2;
  2002. com.SizeMinSign2 = size_min_sign2;
  2003. com.SizeMin2 = size_min2;
  2004. com.SizeMaxSign2 = size_max_sign2;
  2005. com.SizeMax2 = size_max2;
  2006. com.SizeCode = size_code;
  2007. com.SizeName = size_name;
  2008. com.SizeMinSign = size_min_sign;
  2009. if (size_min.TryParseDecimal())
  2010. {
  2011. if (size_min.StartsWith(".")) size_min = "0" + size_min;
  2012. }
  2013. com.SizeMin = size_min;
  2014. com.SizeMaxSign = size_max_sign;
  2015. if (size_max.TryParseDecimal())
  2016. {
  2017. if (size_max.StartsWith(".")) size_max = "0" + size_max;
  2018. }
  2019. com.SizeMax = size_max;
  2020. com.SpecJg = specJG;
  2021. com.SpecJgDesc = specJGDesc;
  2022. com.CreateName = createName;
  2023. com.UpdateName = updateName;
  2024. com.CreateTime = createTime;
  2025. com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString();
  2026. com.RepMaxSign = repmaxsign;
  2027. com.RepMin = repmin;
  2028. com.RepMinSign = repminsign;
  2029. com.RepMax = repmax;
  2030. com.RepName = repname;
  2031. com.RepCode = repcode;
  2032. com.RepVal = repval;
  2033. return com;
  2034. }
  2035. private DataTable GetMscTabByMsc(string msc)
  2036. {
  2037. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreFrmProPSCMSC2.getComMscByMsc",
  2038. new object[] { msc }, ob);
  2039. return dt;
  2040. }
  2041. private string GetMscByCic(string cic)
  2042. {
  2043. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getMscCicByCic",
  2044. new object[] { cic }, ob);
  2045. if (dt.Rows.Count > 0)
  2046. {
  2047. return dt.Rows[0]["MSC"].ToString();
  2048. }
  2049. else
  2050. {
  2051. return "";
  2052. }
  2053. }
  2054. /// <summary>
  2055. /// 通过主键查询成分
  2056. /// </summary>
  2057. /// <param name="cic"></param>
  2058. /// <returns></returns>
  2059. private DataRow GetMscCicByCic(string cic)
  2060. {
  2061. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.CoreChemStandard.getMscCicByCic",
  2062. new object[] { cic }, ob);
  2063. if (dt.Rows.Count == 0)
  2064. {
  2065. return null;
  2066. }
  2067. else
  2068. {
  2069. return dt.Rows[0];
  2070. }
  2071. }
  2072. private bool CheckAuthority(UltraGridRow row)
  2073. {
  2074. if (CustomInfo == "1")
  2075. {
  2076. string mscOld;
  2077. if (row.GetValue("VALIDFLAG") != "")
  2078. {
  2079. mscOld = GetMscByCic(row.GetValue("CIC"));
  2080. }
  2081. else
  2082. {
  2083. mscOld = row.HasParent() ? row.ParentRow.GetValue("MSC") : row.GetValue("MSC");
  2084. }
  2085. DataTable dtMsc = GetMscTabByMsc(mscOld);
  2086. //if (dtMsc.Rows[0]["UNIT_CODE"].ToString() != UserInfo.GetDeptid() && UserInfo.GetUserID() != "admin")
  2087. //{
  2088. // errMessage = "该条记录对应的冶金规范是[" + dtMsc.Rows[0]["UNIT_DESC"].ToString() + "]科室维护的,您没有权限!";
  2089. // row.Activate();
  2090. // return false;
  2091. //}
  2092. }
  2093. return true;
  2094. }
  2095. /// <summary>
  2096. /// 主项数据
  2097. /// </summary>
  2098. /// <param name="ugr">UltraGridRow</param>
  2099. /// <returns></returns>
  2100. private StdCicObject GetBaseData(UltraGridRow ugr, DataRow cicRow)
  2101. {
  2102. StdCicObject com = new StdCicObject();
  2103. com.Cic = ugr.Cells["CIC"].Value.ToString().Trim();
  2104. com.Psc = ugr.Cells["PSC"].Value.ToString().Trim();
  2105. com.Msc = ugr.Cells["MSC"].Value.ToString();
  2106. if (CustomInfo == "1" && com.Msc.Equals(""))
  2107. {
  2108. errMessage = "请选择冶金规范码";
  2109. return null;
  2110. }
  2111. if (CheckAuthority(ugr) == false) return null;
  2112. com.StdsStyle = ugr.Cells["STDSTYLE"].Value.ToString().Trim();
  2113. if (com.StdsStyle.Equals("订货标准"))
  2114. com.StdsStyle = "G";
  2115. else if (com.StdsStyle.Equals("协议标准"))
  2116. com.StdsStyle = "X";
  2117. else if (com.StdsStyle.Equals("Alpha"))
  2118. com.StdsStyle = "K";
  2119. else if (com.StdsStyle.Equals("内控"))
  2120. com.StdsStyle = "N";
  2121. else if (com.StdsStyle.Equals("试验标准"))
  2122. com.StdsStyle = "S";
  2123. else
  2124. com.StdsStyle = "P";
  2125. com.StdCodeNk = ugr.Cells["STD_CODE_NK"].Value.ToString().Trim();
  2126. com.StdNameNk = ugr.Cells["STD_NAME_NK"].Value.ToString().Trim();
  2127. if (CustomInfo != "1" && com.StdNameNk.Equals(""))
  2128. {
  2129. errMessage = "请选择标准名称";
  2130. return null;
  2131. }
  2132. com.ProcessCode = ugr.Cells["PROCESS_CODE"].Value.ToString().Trim();
  2133. com.ProcessDesc = ugr.Cells["PROCESS_DESC"].Value.ToString().Trim();
  2134. com.GradeCode = ugr.Cells["GRADECODE"].Value.ToString().Trim();
  2135. com.GradeName = ugr.Cells["GRADENAME"].Value.ToString().Trim();
  2136. com.StdCode = ugr.Cells["STD_CODE"].Value.ToString().Trim();
  2137. com.StdName = ugr.Cells["STD_CODE"].Text;
  2138. com.CreateName = UserInfo.GetUserName();
  2139. com.CreateTime = ugr.Cells["CREATE_TIME"].Value.ToString().Trim();
  2140. com.UpdateName = UserInfo.GetUserName();
  2141. com.Memo = ugr.Cells["MEMO"].Value.ToString();
  2142. com.Validflag = ugr.Cells["VALIDFLAG"].Value.ToString().Trim();
  2143. com.ModelCode = ugr.Cells["MODEL_CODE"].Value.ToString();
  2144. com.ModelDesc = ugr.Cells["MODEL_DESC"].Value.ToString();
  2145. com.ProducHead = ugr.GetValue("PRODUC_HEAD");
  2146. com.CodeJg = codeJg == "DefaultValue" ? "" : codeJg;
  2147. com.SteelcodeNk = ugr.GetValue("STEELCODE_NK");
  2148. com.SteelnameNk = ugr.GetValue("STEELNAME_NK");
  2149. com.ModelCodeNk = ugr.GetValue("MODEL_CODE_NK");
  2150. com.ModelNameNk = ugr.GetValue("MODEL_DESC_NK");
  2151. com.ProduccodeNk = ugr.GetValue("PRODUCCODE_NK");
  2152. com.ProducnameNk = ugr.GetValue("PRODUCNAME_NK");
  2153. com.SmeltingCnt = ugr.GetValue("SMELTING_CNT");
  2154. com.ProductCnt = ugr.GetValue("PRODUCT_CNT");
  2155. com.MinD = ugr.GetValue("MIN_D");
  2156. com.MaxD = ugr.GetValue("MAX_D");
  2157. com.MinH = ugr.GetValue("MIN_H");
  2158. com.MaxH = ugr.GetValue("MAX_H");
  2159. com.MinDSign = ugr.GetValue("MIN_D_SIGN");
  2160. com.MaxDSign = ugr.GetValue("MAX_D_SIGN");
  2161. com.MinHSign = ugr.GetValue("MIN_H_SIGN");
  2162. com.MaxHSign = ugr.GetValue("MAX_H_SIGN");
  2163. com.Rate = ugr.GetValue("RATE");
  2164. //if (CustomInfo == "2" && ugr.GetValue("PRODUCCODE_NK") == "")
  2165. //{
  2166. // errMessage = "请选择品名!";
  2167. // return null;
  2168. //}
  2169. if (CustomInfo == "1" && com.Msc.EndsWith("000"))
  2170. {
  2171. if (com.SmeltingCnt == "")
  2172. {
  2173. errMessage = "请输入熔炼成分套数!";
  2174. ugr.SetCellActive("SMELTING_CNT");
  2175. return null;
  2176. }
  2177. if (com.ProductCnt == "")
  2178. {
  2179. errMessage = "请输入成品成分套数!";
  2180. ugr.SetCellActive("PRODUCT_CNT");
  2181. return null;
  2182. }
  2183. if (com.Rate == "")
  2184. {
  2185. errMessage = "请选择成品取样频率!";
  2186. ugr.SetCellActive("RATE");
  2187. return null;
  2188. }
  2189. }
  2190. if (CustomInfo == "2")
  2191. {
  2192. if (com.GradeCode == "")
  2193. {
  2194. errMessage = "请选择钢种!";
  2195. ugr.SetCellActive("GRADENAME");
  2196. return null;
  2197. }
  2198. else if (com.GradeCode.Split(';').Length >= 2)
  2199. {
  2200. errMessage = "成分内控只能维护一个适用钢种!";
  2201. ugr.SetCellActive("GRADENAME");
  2202. return null;
  2203. }
  2204. if (com.MinDSign != "" && com.MinD == "")
  2205. {
  2206. errMessage = "请输入外径下限值!";
  2207. ugr.SetCellActive("MIN_D");
  2208. return null;
  2209. }
  2210. else if (com.MinDSign == "" && com.MinD != "")
  2211. {
  2212. errMessage = "请选择外径下限符号!";
  2213. ugr.SetCellActive("MIN_D_SIGN");
  2214. return null;
  2215. }
  2216. else if (com.MaxDSign != "" && com.MaxD == "")
  2217. {
  2218. errMessage = "请输入外径上限值!";
  2219. ugr.SetCellActive("MAX_D");
  2220. return null;
  2221. }
  2222. else if (com.MaxDSign == "" && com.MaxD != "")
  2223. {
  2224. errMessage = "请选择外径上限符号!";
  2225. ugr.SetCellActive("MAX_D_SIGN");
  2226. return null;
  2227. }
  2228. else if (com.MinHSign != "" && com.MinH == "")
  2229. {
  2230. errMessage = "请输入壁厚下限值!";
  2231. ugr.SetCellActive("MIN_H");
  2232. return null;
  2233. }
  2234. else if (com.MinHSign == "" && com.MinH != "")
  2235. {
  2236. errMessage = "请选择壁厚下限符号!";
  2237. ugr.SetCellActive("MIN_H_SIGN");
  2238. return null;
  2239. }
  2240. else if (com.MaxHSign != "" && com.MaxH == "")
  2241. {
  2242. errMessage = "请输入壁厚上限值!";
  2243. ugr.SetCellActive("MAX_H");
  2244. return null;
  2245. }
  2246. else if (com.MaxHSign == "" && com.MaxH != "")
  2247. {
  2248. errMessage = "请选择壁厚上限符号!";
  2249. ugr.SetCellActive("MAX_H_SIGN");
  2250. return null;
  2251. }
  2252. else if (com.MinDSign == "=" && com.MaxDSign != "")
  2253. {
  2254. errMessage = "外径下限符号为等号时,不能存在外径上限符号和外径上限值!";
  2255. ugr.SetCellActive("MAX_D_SIGN");
  2256. return null;
  2257. }
  2258. else if (com.MinHSign == "=" && com.MaxHSign != "")
  2259. {
  2260. errMessage = "壁厚下限符号为等号时,不能存在壁厚上限符号和壁厚上限值!";
  2261. ugr.SetCellActive("MAX_H_SIGN");
  2262. return null;
  2263. }
  2264. else if (com.MinD != "" && com.MaxD != ""
  2265. && decimal.Parse(com.MinD) >= decimal.Parse(com.MaxD))
  2266. {
  2267. errMessage = "外径下限值不能大于等于外径上限值!";
  2268. ugr.SetCellActive("MIN_D");
  2269. return null;
  2270. }
  2271. else if (com.MinH != "" && com.MaxH != ""
  2272. && decimal.Parse(com.MinH) >= decimal.Parse(com.MaxH))
  2273. {
  2274. errMessage = "壁厚下限值不能大于等于壁厚上限值!";
  2275. ugr.SetCellActive("MIN_H");
  2276. return null;
  2277. }
  2278. }
  2279. //if (com.Validflag.Equals("无效"))
  2280. //{
  2281. // errMessage = "无效记录不能保存";
  2282. // return null;
  2283. //}
  2284. //界面上简单的验证了下 当这个界面打开很久以后 可能有些记录的状态发生了变化 会不准确 不过不影响
  2285. //因为在Update SQL语句里面加了限制条件(这两个状态的都无法修改!)。
  2286. if (cicRow != null && (cicRow["VALIDFLAG"].ToString() == "2" || cicRow["VALIDFLAG"].ToString() == "3"))
  2287. {
  2288. errMessage = "提交审核或已审核的记录不能修改";
  2289. return null;
  2290. }
  2291. return com;
  2292. }
  2293. private bool CheckDataParent(UltraGridRow ugr, DataRow rowCic, bool flag)
  2294. {
  2295. if (!flag)
  2296. {
  2297. if (CustomInfo == "2")
  2298. {
  2299. if (rowCic["GRADECODE"].ToString() == "")
  2300. {
  2301. MessageUtil.ShowWarning("请选择钢种并保存后,再恢复记录!");
  2302. return false;
  2303. }
  2304. else if (rowCic["GRADECODE"].ToString().Split(';').Length >= 2)
  2305. {
  2306. MessageUtil.ShowWarning("成分内控只能维护一个适用钢种,请保留一个适用钢种并保存后,再恢复记录!");
  2307. return false;
  2308. }
  2309. }
  2310. }
  2311. return true;
  2312. }
  2313. FrmChemStandard _frmChemStandard = null;
  2314. /// <summary>
  2315. /// 扣型选择
  2316. /// </summary>
  2317. /// <param name="sender"></param>
  2318. /// <param name="e"></param>
  2319. private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e)
  2320. {
  2321. if (e.Cell.Column.Key.Equals("MODEL_DESC") && Convert.ToBoolean(ultraGrid1.DisplayLayout.ActiveRow.Cells["CHC"].Value))
  2322. {
  2323. UltraGridRow row = this.ultraGrid1.DisplayLayout.ActiveRow;
  2324. FrmModel frms = new FrmModel();
  2325. frms.Desc = row.Cells["MODEL_DESC"].Value.ToString();
  2326. frms.FrmOb = this.ob;
  2327. frms.ShowDialog();
  2328. row.Cells["MODEL_CODE"].Value = frms.Code;
  2329. row.Cells["MODEL_DESC"].Value = frms.Desc;
  2330. }
  2331. if (e.Cell.Column.Key.ToUpper().Equals("COUNT") && e.Cell.Row.Cells["CHC"].Value.ToString() == "True")
  2332. {
  2333. UltraGridRow ugr = ultraGrid1.ActiveRow;
  2334. List<string> list = new List<string>();
  2335. FrmChemPopup fcp = new FrmChemPopup();
  2336. if (ugr.ChildBands[0].Rows.Count > 0)
  2337. {
  2338. for (int i = 0; i < ugr.ChildBands[0].Rows.Count; i++)
  2339. {
  2340. list.Add(ugr.ChildBands[0].Rows[i].Cells["CHEM_CODE"].Value.ToString());
  2341. }
  2342. }
  2343. fcp.Ob = this.ob;
  2344. fcp.ChenList = list;
  2345. fcp.ShowDialog();
  2346. }
  2347. if (e.Cell.Column.Key.Equals("CHKNK"))
  2348. {
  2349. UltraGridRow ugr = ultraGrid1.ActiveRow;
  2350. _frmChemStandard = new FrmChemStandard();
  2351. _frmChemStandard.PopupLoad("3", ob);
  2352. _frmChemStandard.UltraPanel1.Visible = false;
  2353. _frmChemStandard.ultraToolbarsManager1.Visible = true;
  2354. _frmChemStandard.Msc = msc;
  2355. _frmChemStandard.CodeJg = "";
  2356. _frmChemStandard.DoQuery1();
  2357. if (_frmChemStandard.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  2358. {
  2359. DataRow CurRow, NewRow;
  2360. for (int i = 0; i < _frmChemStandard.dataTable1.Rows.Count; i++)
  2361. {
  2362. CurRow = _frmChemStandard.dataTable1.Rows[i];
  2363. NewRow = dataTable1.NewRow();
  2364. if (!_frmChemStandard.Ids.Contains(CurRow["CIC"].ToString2()))
  2365. {
  2366. continue;
  2367. }
  2368. for (int j = 0; j < _frmChemStandard.dataTable1.Columns.Count; j++)
  2369. {
  2370. try
  2371. {
  2372. if (dataTable1.Columns.Contains(_frmChemStandard.dataTable1.Columns[j].ColumnName))
  2373. {
  2374. if (_frmChemStandard.dataTable1.Columns[j].ColumnName == "CIC")
  2375. {
  2376. NewRow[_frmChemStandard.dataTable1.Columns[j].ColumnName] = ultraGrid1.ActiveRow.GetValue("CIC");
  2377. }
  2378. else
  2379. {
  2380. NewRow[_frmChemStandard.dataTable1.Columns[j].ColumnName] = CurRow[j];
  2381. }
  2382. }
  2383. }
  2384. catch { }
  2385. }
  2386. dataTable1.Rows.Add(NewRow);
  2387. }
  2388. ultraGrid1.UpdateData();
  2389. ultraGrid1.ActiveRow.ExpandAll();
  2390. }
  2391. }
  2392. }
  2393. /// <summary>
  2394. /// 编辑区 产品规范描述
  2395. /// </summary>
  2396. /// <param name="sender"></param>
  2397. /// <param name="e"></param>
  2398. private void ChcPsc_CheckedChanged(object sender, EventArgs e)
  2399. {
  2400. if (ultraCheckMSC.Checked)
  2401. ultraTextMSC.Enabled = true;
  2402. else
  2403. ultraTextMSC.Enabled = false;
  2404. }
  2405. private void ultraCheckStd_CheckedChanged(object sender, EventArgs e)
  2406. {
  2407. if (ultraCheckStd.Checked)
  2408. ultraTextStd.Enabled = true;
  2409. else
  2410. ultraTextStd.Enabled = false;
  2411. }
  2412. private void ultraGrid1_CellDataError(object sender, CellDataErrorEventArgs e)
  2413. {
  2414. e.RaiseErrorEvent = false;
  2415. e.RestoreOriginalValue = true;
  2416. e.StayInEditMode = true;
  2417. MessageBox.Show("数据不合法,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  2418. }
  2419. private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
  2420. {
  2421. if (isPasting)
  2422. {
  2423. e.Row.SetValue("CHC", "True");
  2424. }
  2425. }
  2426. /// <summary>
  2427. /// 2015-07-15 PDY
  2428. /// </summary>
  2429. private void InnerChange()
  2430. {
  2431. ultraGrid1.DisplayLayout.Bands[1].Columns["UnboundColumn2"].Header.Caption = "内控标准";
  2432. ultraGrid1.DisplayLayout.Bands[0].Columns["PROCESS_CODE"].CellActivation = Activation.ActivateOnly;
  2433. ultraGrid1.DisplayLayout.Bands[0].Columns["STD_CODE_NK"].CellActivation = Activation.ActivateOnly;
  2434. ultraGrid1.DisplayLayout.Bands[0].Columns["MODEL_DESC"].Hidden = true;
  2435. }
  2436. private void ultraTextEditor1_EditorButtonClick(object sender, EditorButtonEventArgs e)
  2437. {
  2438. if (ultraGrid1.ActiveCell.Column.Key == "PROCESS_DESC")
  2439. {
  2440. string processCodes = ultraGrid1.ActiveRow.GetValue("PROCESS_CODE");
  2441. ChoiceProcessPopup choiceProcessPopup = new ChoiceProcessPopup(processCodes, this.ob);
  2442. if (choiceProcessPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  2443. {
  2444. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessByStdCode",
  2445. new object[] { this.stdCode }, ob);
  2446. string stdProcessCodes = dt.Rows[0]["PROCESS_CODE"].ToString();
  2447. string[] processCodesAry = choiceProcessPopup.ProcessCodes.Split(',');
  2448. for (int i = 0; i < processCodesAry.Length; i++)
  2449. {
  2450. if (!stdProcessCodes.Contains(processCodesAry[i].Trim()))
  2451. {
  2452. DataTable dtBaseProcess = ServerHelper.GetData("com.steering.pss.qcm.ComStandard.getProcessDescByCode",
  2453. new object[] { processCodesAry[i].Trim() }, ob);
  2454. string processDesc = dtBaseProcess.Rows[0]["PROCESS_DESC"].ToString();
  2455. MessageUtil.ShowWarning("该标准下不包含工序" + processDesc + ", 不能选择!");
  2456. return;
  2457. }
  2458. }
  2459. ultraGrid1.ActiveRow.SetValue("PROCESS_CODE", choiceProcessPopup.ProcessCodes);
  2460. ultraGrid1.ActiveRow.SetValue("PROCESS_DESC", choiceProcessPopup.ProcessDescs);
  2461. }
  2462. }
  2463. else if (ultraGrid1.ActiveCell.Column.Key == "STEELNAME_NK")
  2464. {
  2465. FrmRepSteel frmSteel = new FrmRepSteel();
  2466. frmSteel.Text = "钢级选择";
  2467. frmSteel.Ob1 = this.ob;
  2468. frmSteel.Code = ultraGrid1.ActiveRow.GetValue("STEELCODE_NK");
  2469. if (frmSteel.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  2470. {
  2471. ultraGrid1.ActiveRow.SetValue("STEELCODE_NK", frmSteel.Code);
  2472. ultraGrid1.ActiveRow.SetValue("STEELNAME_NK", frmSteel.Desc);
  2473. }
  2474. }
  2475. else if (ultraGrid1.ActiveCell.Column.Key == "MODEL_DESC_NK")
  2476. {
  2477. FrmModel frmModel = new FrmModel();
  2478. frmModel.FrmOb = this.ob;
  2479. frmModel.Code = ultraGrid1.ActiveRow.GetValue("MODEL_CODE_NK");
  2480. frmModel.Desc = ultraGrid1.ActiveCell.Value.ToString();
  2481. if (frmModel.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  2482. {
  2483. ultraGrid1.ActiveRow.SetValue("MODEL_CODE_NK", frmModel.Code);
  2484. ultraGrid1.ActiveRow.SetValue("MODEL_DESC_NK", frmModel.Desc);
  2485. }
  2486. }
  2487. else if (ultraGrid1.ActiveCell.Column.Key == "PRODUCNAME_NK")
  2488. {
  2489. PopupProductName popupProductName = new PopupProductName(
  2490. ultraGrid1.ActiveRow.GetValue("PRODUCCODE_NK"), ob);
  2491. if (popupProductName.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  2492. {
  2493. ultraGrid1.ActiveRow.SetValue("PRODUCCODE_NK", popupProductName.ProductCodes);
  2494. ultraGrid1.ActiveRow.SetValue("PRODUCNAME_NK", popupProductName.ProductNames);
  2495. }
  2496. }
  2497. else if (ultraGrid1.ActiveCell.Column.Key == "GRADENAME")
  2498. {
  2499. string gradeCodes = ultraGrid1.ActiveRow.GetValue("GRADENAME");
  2500. FrmGradeChoice frmGradeChoice = new FrmGradeChoice(gradeCodes, ob);
  2501. if (frmGradeChoice.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  2502. {
  2503. ultraGrid1.ActiveRow.SetValue("GRADECODE", frmGradeChoice.GradeCodes);
  2504. ultraGrid1.ActiveRow.SetValue("GRADENAME", frmGradeChoice.GradeNames);
  2505. }
  2506. }
  2507. }
  2508. private void ultraGrid1_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  2509. {
  2510. foreach (Infragistics.Win.UltraWinGrid.UltraGridRow ugr in this.ultraGrid1.Selected.Rows)
  2511. {
  2512. ugr.Cells["CHC"].Value = true;
  2513. Activation activation = Activation.ActivateOnly;
  2514. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  2515. {
  2516. activation = Activation.AllowEdit;
  2517. //isSelect += 1;
  2518. }
  2519. //else
  2520. //isSelect -= 1;
  2521. CellsCollection cells = ugr.Cells;
  2522. for (int i = 0; i < cells.Count; i++)
  2523. {
  2524. if (!cells[i].Column.Key.Equals("CHC"))
  2525. {
  2526. ugr.Cells[i].Activation = activation;
  2527. }
  2528. }
  2529. }
  2530. }
  2531. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  2532. {
  2533. switch (e.Tool.Key)
  2534. {
  2535. case "查询":
  2536. DoQuery1();
  2537. break;
  2538. case "确认选择":
  2539. Choice();
  2540. break;
  2541. }
  2542. }
  2543. private DataRow[] rows;
  2544. public DataRow[] Rows
  2545. {
  2546. get { return rows; }
  2547. set { rows = value; }
  2548. }
  2549. List<string> ids;
  2550. public List<string> Ids
  2551. {
  2552. get { return ids; }
  2553. set { ids = value; }
  2554. }
  2555. private void Choice()
  2556. {
  2557. ultraGrid1.UpdateData();
  2558. int count = ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))).Count();
  2559. if (count > 1)
  2560. {
  2561. MessageUtil.ShowTips("请选择一条数据!");
  2562. return;
  2563. }
  2564. foreach (UltraGridRow ugr in ultraGrid1.Rows.Where(a => Convert.ToBoolean(a.GetValue("CHC"))))
  2565. {
  2566. //从表操作
  2567. if (ugr.HasChild())
  2568. {
  2569. Ids = ugr.ChildBands[0].Rows.Select(p => p.GetValue("CIC")).ToList();
  2570. Rows = dataTable1.Select("CIC IN ('" + string.Join("','", Ids) + "')");
  2571. }
  2572. }
  2573. this.DialogResult = System.Windows.Forms.DialogResult.OK;
  2574. }
  2575. }
  2576. }