FrmOrderSpecialInfo.cs 159 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA03;
  10. using CoreFS.CA04;
  11. using CoreFS.CA06;
  12. using Infragistics.Win.UltraWinTree;
  13. using Core.Mes.Client.Comm.Server;
  14. using Core.Mes.Client.Comm.Control;
  15. using Infragistics.Win.UltraWinGrid;
  16. using System.Collections;
  17. using Core.Mes.Client.Comm.Format;
  18. using Infragistics.Win.UltraWinEditors;
  19. using Core.Mes.Client.Comm.Tool;
  20. using Infragistics.Win.UltraWinToolbars;
  21. using Infragistics.Win;
  22. using Core.StlMes.Client.Qcm;
  23. using Infragistics.Win.UltraWinToolTip;
  24. //using Core.StlMes.Client.SaleOrder.Object;
  25. namespace Core.StlMes.Client.SaleOrder
  26. {
  27. /// <summary>
  28. /// 委托
  29. /// </summary>
  30. /// <param name="sender"></param>
  31. /// <param name="e"></param>
  32. public delegate void FrmOrderSpecialInfoHand(object sender, FrmOrderSpecialInfoEventArgs e);
  33. /// <summary>
  34. /// 产品技术特殊要求
  35. /// </summary>0
  36. public partial class FrmOrderSpecialInfo : FrmBase
  37. {
  38. /// <summary>
  39. /// 传入行(合同从数据信息)
  40. /// </summary>
  41. private DataRow dr;
  42. public DataRow Dr
  43. {
  44. get { return dr; }
  45. set { dr = value; }
  46. }
  47. private DataTable _dtMsc;
  48. public DataTable DtMsc
  49. {
  50. get { return _dtMsc; }
  51. set { _dtMsc = value; }
  52. }
  53. /// <summary>
  54. /// OB对象
  55. /// </summary>
  56. private OpeBase _ob = null;
  57. public OpeBase Ob
  58. {
  59. get { return _ob; }
  60. set { _ob = value; }
  61. }
  62. ///// <summary>
  63. ///// 冶金规范码
  64. ///// </summary>
  65. //private string _msc = "MSC0000001001";
  66. /// <summary>
  67. /// PSC
  68. /// </summary>
  69. private string _psc = "";
  70. /// <summary>
  71. /// 扣型代码
  72. /// </summary>
  73. private string _model = "";
  74. private string _specCode = "";
  75. public string SpecCode
  76. {
  77. get { return _specCode; }
  78. set { _specCode = value; }
  79. }
  80. private string _specName = "";
  81. public string SpecName
  82. {
  83. get { return _specName; }
  84. set { _specName = value; }
  85. }
  86. private string _specStyle = "";
  87. public string SpecStyle
  88. {
  89. get { return _specStyle; }
  90. set { _specStyle = value; }
  91. }
  92. /// <summary>
  93. /// 最终客户
  94. /// </summary>
  95. private string _finalUserCode = "0101010102";
  96. /// <summary>
  97. /// 最终客户描述
  98. /// </summary>
  99. private string _finalUserName = "";
  100. /// <summary>
  101. /// 客户Alpha编码(传入编码,用于过滤)
  102. /// </summary>
  103. private string _drCustAlphaNo = "";
  104. /// <summary>
  105. /// 过滤用的MSC
  106. /// </summary>
  107. private string _fiterMsc = "";
  108. public string FiterMsc
  109. {
  110. get { return _fiterMsc; }
  111. set { _fiterMsc = value; }
  112. }
  113. //客户Alpha编码
  114. private string _custAlphaNo = "";
  115. public string CustAlphaNo
  116. {
  117. get { return _custAlphaNo; }
  118. set { _custAlphaNo = value; }
  119. }
  120. //合同行主键
  121. private string _ordLnPk = "";
  122. //树形数据源。
  123. private DataTable _dtTreeCustAlpha;
  124. /// <summary>
  125. /// 下拉框
  126. /// </summary>
  127. private UltraComboEditor[] ultras = new UltraComboEditor[14];
  128. private UltraTextEditor ultraTextEditor2;
  129. /// <summary>
  130. /// 提示信息
  131. /// </summary>
  132. private string errMessage = "";
  133. /// <summary>
  134. /// Alpha代码
  135. /// </summary>
  136. private string _stdCode = "";
  137. /// <summary>
  138. /// 用于验证数据的重复
  139. /// </summary>
  140. private DataTable _mscDt = null;
  141. private DataTable _custDt = null;
  142. private int ultraTextEditor1Height = 0;
  143. private bool isPopup = false;
  144. public bool IsPopup
  145. {
  146. get { return isPopup; }
  147. set { isPopup = value; }
  148. }
  149. public FrmOrderSpecialInfo()
  150. {
  151. InitializeComponent();
  152. ExceptionHelper.RegistException();
  153. ultraTextEditor1Height = ultraTextEditor1.Height;
  154. }
  155. /// <summary>
  156. /// 事件
  157. /// </summary>
  158. public event FrmOrderSpecialInfoHand FrmOrderSpecialInfoComfirm;
  159. //触发load事件
  160. public void PopupLoad(OpeBase ob)
  161. {
  162. _ob = ob;
  163. OnLoad(EventArgs.Empty);
  164. }
  165. /// <summary>
  166. /// Top事件。
  167. /// </summary>
  168. /// <param name="sender"></param>
  169. /// <param name="e"></param>
  170. public void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  171. {
  172. try
  173. {
  174. this.Cursor = Cursors.WaitCursor;
  175. switch (e.Tool.Key)
  176. {
  177. case "查询":
  178. DoQuery("");
  179. break;
  180. case "新增":
  181. DoSave();
  182. break;
  183. case "确认":
  184. DoComfirm();
  185. break;
  186. case "作废":
  187. DoDelete();
  188. break;
  189. case "关闭":
  190. ((Form)ultraToolbarsManager1.DockWithinContainer.TopLevelControl).Close();
  191. break;
  192. default:
  193. break;
  194. }
  195. }
  196. finally
  197. {
  198. this.Cursor = Cursors.Default;
  199. }
  200. }
  201. public string strH = ""; //壁厚
  202. public string strD = ""; //外径
  203. double douH = 0;
  204. double douD = 0;
  205. string DHProportion = ""; //径壁比
  206. string HDProportion = ""; //壁径比
  207. /// <summary>
  208. /// 判断 如“外径”小于 "值" 的表达式是否准确
  209. /// </summary>
  210. /// <param name="strA">名字</param>
  211. /// <param name="sign">符号</param>
  212. /// <param name="strB">值</param>
  213. /// <returns></returns>
  214. private bool CheckStr(String strA, String sign, String strB)
  215. {
  216. if (strA.Length == 0 || strB.Length == 0)
  217. {
  218. return true;
  219. }
  220. if (strA.TryParseDouble() == false || strB.TryParseDouble() == false)
  221. {
  222. return true;
  223. }
  224. double a = Convert.ToDouble(strA);
  225. double b = Convert.ToDouble(strB);
  226. if (sign.Equals("="))
  227. {
  228. if (a == b)
  229. {
  230. return true;
  231. }
  232. else
  233. {
  234. return false;
  235. }
  236. }
  237. if (sign.Equals(">"))
  238. {
  239. if (a > b)
  240. {
  241. return true;
  242. }
  243. else
  244. {
  245. return false;
  246. }
  247. }
  248. if (sign.Equals(">="))
  249. {
  250. if (a >= b)
  251. {
  252. return true;
  253. }
  254. else
  255. {
  256. return false;
  257. }
  258. }
  259. if (sign.Equals("<"))
  260. {
  261. if (a < b)
  262. {
  263. return true;
  264. }
  265. else
  266. {
  267. return false;
  268. }
  269. }
  270. if (sign.Equals("<="))
  271. {
  272. if (a <= b)
  273. {
  274. return true;
  275. }
  276. else
  277. {
  278. return false;
  279. }
  280. }
  281. return false;
  282. }
  283. /// <summary>
  284. /// 过滤成分和理化
  285. /// </summary>
  286. /// <param name="dtChem">查询出来的结果表</param>
  287. private void FiltChem(DataTable dtChem)
  288. {
  289. // dataTable1
  290. if (dtChem != null && dtChem.Rows.Count > 0)
  291. {
  292. for (int i = 0; i < dtChem.Rows.Count; i++)
  293. {
  294. DataRow dr = dtChem.Rows[i];
  295. if (dr["SIZE_CODE"].ToString() == "" && dr["SIZE_CODE2"].ToString() == "")
  296. continue;
  297. if (dr["SIZE_NAME2"].ToString().Equals("外径"))
  298. {
  299. if (!CheckStr(strD, dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString())
  300. || !CheckStr(strD, dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString()))
  301. {
  302. dtChem.Rows.Remove(dr);
  303. --i;
  304. continue;
  305. }
  306. }
  307. if (dr["SIZE_NAME2"].ToString().Equals("壁厚"))
  308. {
  309. if (!CheckStr(strH, dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString())
  310. || !CheckStr(strH, dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString()))
  311. {
  312. dtChem.Rows.Remove(dr);
  313. --i;
  314. continue;
  315. }
  316. }
  317. if (dr["SIZE_NAME2"].ToString().Equals("径壁比"))
  318. {
  319. if (!CheckStr(DHProportion, dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString())
  320. || !CheckStr(DHProportion, dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString()))
  321. {
  322. dtChem.Rows.Remove(dr);
  323. --i;
  324. continue;
  325. }
  326. }
  327. if (dr["SIZE_NAME2"].ToString().Equals("壁径比"))
  328. {
  329. if (!CheckStr(HDProportion, dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString())
  330. || !CheckStr(HDProportion, dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString()))
  331. {
  332. dtChem.Rows.Remove(dr);
  333. --i;
  334. continue;
  335. }
  336. }
  337. if (dr["SIZE_NAME2"].ToString().Equals("内径"))
  338. {
  339. if (!CheckStr((douD - douH).ToString(), dr["SIZE_MIN_SIGN2"].ToString(), dr["SIZE_MIN2"].ToString())
  340. || !CheckStr((douD - douH).ToString(), dr["SIZE_MAX_SIGN2"].ToString(), dr["SIZE_MAX2"].ToString()))
  341. {
  342. dtChem.Rows.Remove(dr);
  343. --i;
  344. continue;
  345. }
  346. }
  347. //if (chem.getSizeName2().equals("长度")) {
  348. // if ((!QualityDesignTool.checkStr(lengthMax,
  349. // chem.getSizeMinSign2(), chem.getSizeMin2()))
  350. // || (!QualityDesignTool.checkStr(lengthMax,
  351. // chem.getSizeMaxSign2(), chem.getSizeMax2()))) {
  352. // chems.remove(i);
  353. // --i;
  354. // continue;
  355. // }
  356. //}
  357. //if (chem.getSizeName2().equals("长度")) {
  358. // if ((!QualityDesignTool.checkStr(lengthMin,
  359. // chem.getSizeMinSign2(), chem.getSizeMin2()))
  360. // || (!QualityDesignTool.checkStr(lengthMin,
  361. // chem.getSizeMaxSign2(), chem.getSizeMax2()))) {
  362. // chems.remove(i);
  363. // --i;
  364. // continue;
  365. // }
  366. //}
  367. if (dr["SIZE_NAME"].ToString().Equals("外径"))
  368. {
  369. if (!CheckStr(strD, dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString())
  370. || !CheckStr(strD, dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString()))
  371. {
  372. dtChem.Rows.Remove(dr);
  373. --i;
  374. continue;
  375. }
  376. }
  377. if (dr["SIZE_NAME"].ToString().Equals("壁厚"))
  378. {
  379. if (!CheckStr(strH, dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString())
  380. || !CheckStr(strH, dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString()))
  381. {
  382. dtChem.Rows.Remove(dr);
  383. --i;
  384. continue;
  385. }
  386. }
  387. if (dr["SIZE_NAME"].ToString().Equals("径壁比"))
  388. {
  389. if (!CheckStr(DHProportion, dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString())
  390. || !CheckStr(DHProportion, dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString()))
  391. {
  392. dtChem.Rows.Remove(dr);
  393. --i;
  394. continue;
  395. }
  396. }
  397. if (dr["SIZE_NAME"].ToString().Equals("壁径比"))
  398. {
  399. if (!CheckStr(HDProportion, dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString())
  400. || !CheckStr(HDProportion, dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString()))
  401. {
  402. dtChem.Rows.Remove(dr);
  403. --i;
  404. continue;
  405. }
  406. }
  407. if (dr["SIZE_NAME"].ToString().Equals("内径"))
  408. {
  409. if (!CheckStr((douD - douH).ToString(), dr["SIZE_MIN_SIGN"].ToString(), dr["SIZE_MIN"].ToString())
  410. || !CheckStr((douD - douH).ToString(), dr["SIZE_MAX_SIGN"].ToString(), dr["SIZE_MAX"].ToString()))
  411. {
  412. dtChem.Rows.Remove(dr);
  413. --i;
  414. continue;
  415. }
  416. }
  417. }
  418. }
  419. }
  420. /// <summary>
  421. /// 进一步过滤公差相同的项目
  422. /// </summary>
  423. /// <param name="dtSpec">查询出来的结果表,先条件过滤再进行</param>
  424. private void FiterSpec(DataTable dtSpec)
  425. {
  426. if (dtSpec != null && dtSpec.Rows.Count > 0)
  427. {
  428. for (int i = 0; i < dtSpec.Rows.Count; i++)
  429. {
  430. DataRow dr = dtSpec.Rows[i];
  431. if (dr["BIAS_CODE_Z"].ToString().Equals("") && dr["BIAS_CODE_C"].ToString().Equals("")
  432. && dr["BIAS_CODE_S"].ToString().Equals(""))
  433. {
  434. continue;
  435. }
  436. if (dr["BIAS_NAME_Z"].ToString().Equals("外径"))
  437. {
  438. if (!CheckStr(strD, dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString())
  439. || !CheckStr(strD, dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString()))
  440. {
  441. dtSpec.Rows.Remove(dr);
  442. --i;
  443. continue;
  444. }
  445. }
  446. if (dr["BIAS_NAME_Z"].ToString().Equals("壁厚"))
  447. {
  448. if (!CheckStr(strH, dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString())
  449. || !CheckStr(strH, dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString()))
  450. {
  451. dtSpec.Rows.Remove(dr);
  452. --i;
  453. continue;
  454. }
  455. }
  456. if (dr["BIAS_NAME_Z"].ToString().Equals("径壁比"))
  457. {
  458. if (!CheckStr(DHProportion, dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString())
  459. || !CheckStr(DHProportion, dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString()))
  460. {
  461. dtSpec.Rows.Remove(dr);
  462. --i;
  463. continue;
  464. }
  465. }
  466. if (dr["BIAS_NAME_Z"].ToString().Equals("壁径比"))
  467. {
  468. if (!CheckStr(HDProportion, dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString())
  469. || !CheckStr(HDProportion, dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString()))
  470. {
  471. dtSpec.Rows.Remove(dr);
  472. --i;
  473. continue;
  474. }
  475. }
  476. if (dr["BIAS_NAME_Z"].ToString().Equals("内径"))
  477. {
  478. if (!CheckStr((douD - douH).ToString(), dr["ZMIN_SIGN"].ToString(), dr["ZMIN"].ToString())
  479. || !CheckStr((douD - douH).ToString(), dr["ZMAX_SIGN"].ToString(), dr["ZMAX"].ToString()))
  480. {
  481. dtSpec.Rows.Remove(dr);
  482. --i;
  483. continue;
  484. }
  485. }
  486. if (dr["BIAS_NAME_C"].ToString().Equals("外径"))
  487. {
  488. if (!CheckStr(strD, dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString())
  489. || !CheckStr(strD, dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString()))
  490. {
  491. dtSpec.Rows.Remove(dr);
  492. --i;
  493. continue;
  494. }
  495. }
  496. if (dr["BIAS_NAME_C"].ToString().Equals("壁厚"))
  497. {
  498. if (!CheckStr(strH, dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString())
  499. || !CheckStr(strH, dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString()))
  500. {
  501. dtSpec.Rows.Remove(dr);
  502. --i;
  503. continue;
  504. }
  505. }
  506. if (dr["BIAS_NAME_C"].ToString().Equals("径壁比"))
  507. {
  508. if (!CheckStr(DHProportion, dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString())
  509. || !CheckStr(DHProportion, dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString()))
  510. {
  511. dtSpec.Rows.Remove(dr);
  512. --i;
  513. continue;
  514. }
  515. }
  516. if (dr["BIAS_NAME_C"].ToString().Equals("壁径比"))
  517. {
  518. if (!CheckStr(HDProportion, dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString())
  519. || !CheckStr(HDProportion, dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString()))
  520. {
  521. dtSpec.Rows.Remove(dr);
  522. --i;
  523. continue;
  524. }
  525. }
  526. if (dr["BIAS_NAME_C"].ToString().Equals("内径"))
  527. {
  528. if (!CheckStr((douD - douH).ToString(), dr["CMIN_SIGN"].ToString(), dr["CMIN"].ToString())
  529. || !CheckStr((douD - douH).ToString(), dr["CMAX_SIGN"].ToString(), dr["CMAX"].ToString()))
  530. {
  531. dtSpec.Rows.Remove(dr);
  532. --i;
  533. continue;
  534. }
  535. }
  536. //if (spec.getBiasNameC().equals("长度"))
  537. //{
  538. // if (!(QualityDesignTool.checkStr(lengthMax, spec.getCminSign(),
  539. // spec.getCmin()))
  540. // || (!QualityDesignTool.checkStr(lengthMax,
  541. // spec.getCmaxSign(), spec.getCmax())))
  542. // {
  543. // specs.remove(i);
  544. // --i;
  545. // continue;
  546. // }
  547. //}
  548. //if (spec.getBiasNameC().equals("长度"))
  549. //{
  550. // if (!(QualityDesignTool.checkStr(lengthMin, spec.getCminSign(),
  551. // spec.getCmin()))
  552. // || (!QualityDesignTool.checkStr(lengthMin,
  553. // spec.getCmaxSign(), spec.getCmax())))
  554. // {
  555. // specs.remove(i);
  556. // --i;
  557. // continue;
  558. // }
  559. //}
  560. if (dr["BIAS_NAME_S"].ToString().Equals("外径"))
  561. {
  562. if (!CheckStr(strD, dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString())
  563. || !CheckStr(strD, dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString()))
  564. {
  565. dtSpec.Rows.Remove(dr);
  566. --i;
  567. continue;
  568. }
  569. }
  570. if (dr["BIAS_NAME_S"].ToString().Equals("壁厚"))
  571. {
  572. if (!CheckStr(strH, dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString())
  573. || !CheckStr(strH, dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString()))
  574. {
  575. dtSpec.Rows.Remove(dr);
  576. --i;
  577. continue;
  578. }
  579. }
  580. if (dr["BIAS_NAME_S"].ToString().Equals("径壁比"))
  581. {
  582. if (!CheckStr(DHProportion, dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString())
  583. || !CheckStr(DHProportion, dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString()))
  584. {
  585. dtSpec.Rows.Remove(dr);
  586. --i;
  587. continue;
  588. }
  589. }
  590. if (dr["BIAS_NAME_S"].ToString().Equals("壁径比"))
  591. {
  592. if (!CheckStr(HDProportion, dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString())
  593. || !CheckStr(HDProportion, dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString()))
  594. {
  595. dtSpec.Rows.Remove(dr);
  596. --i;
  597. continue;
  598. }
  599. }
  600. if (dr["BIAS_NAME_S"].ToString().Equals("内径"))
  601. {
  602. if (!CheckStr((douD - douH).ToString(), dr["SMIN_SIGN"].ToString(), dr["SMIN"].ToString())
  603. || !CheckStr((douD - douH).ToString(), dr["SMAX_SIGN"].ToString(), dr["SMAX"].ToString()))
  604. {
  605. dtSpec.Rows.Remove(dr);
  606. --i;
  607. continue;
  608. }
  609. }
  610. // if (spec.getBiasNameS().equals("长度"))
  611. // {
  612. // if (!(QualityDesignTool.checkStr(lengthMax, spec.getSminSign(),
  613. // spec.getSmin()))
  614. // || (!QualityDesignTool.checkStr(lengthMax,
  615. // spec.getSmaxSign(), spec.getSmax())))
  616. // {
  617. // specs.remove(i);
  618. // --i;
  619. // continue;
  620. // }
  621. // }
  622. // if (spec.getBiasNameS().equals("长度"))
  623. // {
  624. // if (!(QualityDesignTool.checkStr(lengthMin, spec.getSminSign(),
  625. // spec.getSmin()))
  626. // || (!QualityDesignTool.checkStr(lengthMin,
  627. // spec.getSmaxSign(), spec.getSmax())))
  628. // {
  629. // specs.remove(i);
  630. // --i;
  631. // continue;
  632. // }
  633. // }
  634. //}
  635. }
  636. }
  637. }
  638. private void FiterDetection(DataTable dt)
  639. {
  640. if (dt == null) return;
  641. if (strD == "" || strH == "") return;
  642. if (strD.TryParseDecimal() == false || strH.TryParseDecimal() == false) return;
  643. decimal dcmD = decimal.Parse(strD);
  644. decimal dcmH = decimal.Parse(strH);
  645. for (int i = 0; i < dt.Rows.Count; i++)
  646. {
  647. DataRow dr = dt.Rows[i];
  648. if (dr["MIN_D"].ToString() != "" && dr["MIN_D"].ToString().TryParseDecimal() == true)
  649. {
  650. decimal dcmMinD = decimal.Parse(dr["MIN_D"].ToString());
  651. if (dcmD < dcmMinD)
  652. {
  653. dt.Rows.Remove(dr);
  654. i--;
  655. continue;
  656. }
  657. }
  658. if (dr["MAX_D"].ToString() != "" && dr["MAX_D"].ToString().TryParseDecimal() == true)
  659. {
  660. decimal dcmMaxD = decimal.Parse(dr["MAX_D"].ToString());
  661. if (dcmD > dcmMaxD)
  662. {
  663. dt.Rows.Remove(dr);
  664. i--;
  665. continue;
  666. }
  667. }
  668. if (dr["MIN_H"].ToString() != "" && dr["MIN_H"].ToString().TryParseDecimal() == true)
  669. {
  670. decimal dcmMinH = decimal.Parse(dr["MIN_H"].ToString());
  671. if (dcmH < dcmMinH)
  672. {
  673. dt.Rows.Remove(dr);
  674. i--;
  675. continue;
  676. }
  677. }
  678. if (dr["MAX_H"].ToString() != "" && dr["MAX_H"].ToString().TryParseDecimal() == true)
  679. {
  680. decimal dcmMaxH = decimal.Parse(dr["MAX_H"].ToString());
  681. if (dcmH > dcmMaxH)
  682. {
  683. dt.Rows.Remove(dr);
  684. i--;
  685. continue;
  686. }
  687. }
  688. }
  689. }
  690. private void FiterWater(DataTable dt)
  691. {
  692. if (dt == null) return;
  693. if (strD == "" || strH == "") return;
  694. if (strD.TryParseDecimal() == false || strH.TryParseDecimal() == false) return;
  695. decimal dcmD = decimal.Parse(strD);
  696. decimal dcmH = decimal.Parse(strH);
  697. for (int i = 0; i < dt.Rows.Count; i++)
  698. {
  699. DataRow dr = dt.Rows[i];
  700. if (dr["MIN_D"].ToString() != "" && dr["MIN_D"].ToString().TryParseDecimal() == true)
  701. {
  702. decimal dcmMinD = decimal.Parse(dr["MIN_D"].ToString());
  703. if (dcmD < dcmMinD)
  704. {
  705. dt.Rows.Remove(dr);
  706. i--;
  707. continue;
  708. }
  709. }
  710. if (dr["MAX_D"].ToString() != "" && dr["MAX_D"].ToString().TryParseDecimal() == true)
  711. {
  712. decimal dcmMaxD = decimal.Parse(dr["MAX_D"].ToString());
  713. if (dcmD > dcmMaxD)
  714. {
  715. dt.Rows.Remove(dr);
  716. i--;
  717. continue;
  718. }
  719. }
  720. if (dr["MIN_H"].ToString() != "" && dr["MIN_H"].ToString().TryParseDecimal() == true)
  721. {
  722. decimal dcmMinH = decimal.Parse(dr["MIN_H"].ToString());
  723. if (dcmH < dcmMinH)
  724. {
  725. dt.Rows.Remove(dr);
  726. i--;
  727. continue;
  728. }
  729. }
  730. if (dr["MAX_H"].ToString() != "" && dr["MAX_H"].ToString().TryParseDecimal() == true)
  731. {
  732. decimal dcmMaxH = decimal.Parse(dr["MAX_H"].ToString());
  733. if (dcmH > dcmMaxH)
  734. {
  735. dt.Rows.Remove(dr);
  736. i--;
  737. continue;
  738. }
  739. }
  740. }
  741. }
  742. /// <summary>
  743. /// 行复制行
  744. /// </summary>
  745. /// <param name="srcRow">原始行</param>
  746. /// <param name="desRow">复制的行</param>
  747. private void CopyRowToRow(DataRow srcRow, DataRow desRow)
  748. {
  749. for (int i = 0; i < srcRow.Table.Columns.Count; i++)
  750. {
  751. string columnName = srcRow.Table.Columns[i].ColumnName;
  752. desRow[columnName] = srcRow[columnName];
  753. }
  754. }
  755. /// <summary>
  756. /// 过滤成分相同项的数据
  757. /// </summary>
  758. /// <param name="dtChem"></param>
  759. private void FiterChemCommon(DataTable dtChem)
  760. {
  761. DataTable tempDt = dtChem.Copy();
  762. tempDt.Clear();
  763. Dictionary<String, DataRow> map = new Dictionary<String, DataRow>();
  764. foreach (DataRow dr in dtChem.Rows)
  765. {
  766. DataRow tempDr = tempDt.NewRow();
  767. if (dr["CHEM_TYPE"].ToString().Equals("A"))
  768. {
  769. // 如果不包含这个化学元素代码,则直接放进map
  770. if (!map.ContainsKey(dr["CHEM_CODE"].ToString()))
  771. {
  772. map.Add(dr["CHEM_CODE"].ToString(), dr);
  773. }
  774. else
  775. {
  776. // 如果包含这个化学元素代码,则判断这条记录的限制规格是否存在,如果存在限制规格,则取代map里存在的化学元素代码
  777. if (!dr["SIZE_CODE"].ToString().Equals("") || !dr["SIZE_CODE2"].ToString().Equals(""))
  778. {
  779. map.Remove(dr["CHEM_CODE"].ToString());
  780. map.Add(dr["CHEM_CODE"].ToString(), dr);
  781. }
  782. else
  783. {
  784. continue;
  785. }
  786. }
  787. }
  788. else
  789. {
  790. CopyRowToRow(dr, tempDr);
  791. tempDt.Rows.Add(tempDr);
  792. }
  793. }
  794. foreach (KeyValuePair<string, DataRow> kvp in map)
  795. {
  796. DataRow tempDr = tempDt.NewRow();
  797. CopyRowToRow(kvp.Value, tempDr);
  798. tempDt.Rows.Add(tempDr);
  799. }
  800. dtChem = tempDt;
  801. }
  802. /// <summary>
  803. /// 过滤理化项目相同的数据
  804. /// </summary>
  805. /// <param name="dtPhy"></param>
  806. private void FiterPhyCommon(DataTable dtPhy)
  807. {
  808. DataTable tempDt = dtPhy.Copy();
  809. tempDt.Clear();
  810. Dictionary<String, DataRow> map = new Dictionary<String, DataRow>();
  811. foreach (DataRow dr in dtPhy.Rows)
  812. {
  813. // 理化标准材质检验项代码(大类)、取样码、材质检验项代码、试验方向代码、温度、尺寸代码组成一个主键
  814. String major = dr["PHY_CODE_MAX"].ToString() + dr["PHY_CODE_MIN"].ToString()
  815. + dr["PHY_CODE"].ToString() + dr["ITEM_CODE_F"].ToString()
  816. + dr["ITEM_CODE_W"].ToString() + dr["ITEM_CODE_S"].ToString();
  817. if (!map.ContainsKey(major))
  818. {
  819. map.Add(major, dr);
  820. }
  821. else
  822. {
  823. if (!dr["SIZE_CODE2"].ToString().Equals("") || !dr["SIZE_CODE"].ToString().Equals(""))
  824. {
  825. map.Remove(major);
  826. map.Add(major, dr);
  827. }
  828. else
  829. {
  830. continue;
  831. }
  832. }
  833. }
  834. foreach (KeyValuePair<string, DataRow> kvp in map)
  835. {
  836. DataRow dr = tempDt.NewRow();
  837. CopyRowToRow(kvp.Value, dr);
  838. tempDt.Rows.Add(dr);
  839. }
  840. dtPhy = tempDt;
  841. }
  842. private void FiterSpecCommon(DataTable dtSpec)
  843. {
  844. DataTable tempDt = new DataTable();
  845. tempDt = dtSpec.Copy();
  846. Dictionary<String, DataRow> map = new Dictionary<String, DataRow>();
  847. foreach (DataRow dr in dtSpec.Rows)
  848. {
  849. if (!map.ContainsKey(dr["BIAS_CODE"].ToString()))
  850. {
  851. map.Add(dr["BIAS_CODE"].ToString(), dr);
  852. }
  853. else
  854. {
  855. if (!dr["BIAS_CODE_Z"].ToString().Equals("")
  856. || !dr["BIAS_CODE_C"].ToString().Equals("")
  857. || !dr["BIAS_CODE_S"].ToString().Equals(""))
  858. {
  859. map.Remove(dr["BIAS_CODE"].ToString());
  860. map.Add(dr["BIAS_CODE"].ToString(), dr);
  861. }
  862. else
  863. {
  864. continue;
  865. }
  866. }
  867. }
  868. foreach (KeyValuePair<string, DataRow> kvp in map)
  869. {
  870. DataRow tempDr = tempDt.NewRow();
  871. CopyRowToRow(kvp.Value, tempDr);
  872. tempDt.Rows.Add(tempDr);
  873. }
  874. dtSpec = tempDt;
  875. }
  876. private void FrmOrderSpecialInfo_Load(object sender, EventArgs e)
  877. {
  878. try
  879. {
  880. this.Cursor = Cursors.WaitCursor;
  881. CheckDr();
  882. //this._ob = ob;
  883. InitDrop();
  884. InitData();
  885. DoQuery(_custAlphaNo);
  886. if (isPopup)
  887. {
  888. ultraGrid1.DisplayLayout.Override.AllowDelete = Infragistics.Win.DefaultableBoolean.False;
  889. ultraGrid1.DisplayLayout.Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.False;
  890. ultraGrid1.DisplayLayout.Override.AllowAddNew = AllowAddNew.No;
  891. }
  892. }
  893. finally
  894. {
  895. this.Cursor = Cursors.Default;
  896. }
  897. }
  898. private void InitData()
  899. {
  900. CheckCustomer.Enabled = false;
  901. CheckPscDesc.Enabled = false;
  902. CheckProduct.Enabled = false;
  903. CheckMode.Enabled = false;
  904. //TextPscDesc.Enabled = false;
  905. //TextCuster.Enabled = false;
  906. //TextProduct.Enabled = false;
  907. //TextMode.Enabled = false;
  908. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getSpecBySpecCode",
  909. new object[] { _specCode }, Ob);
  910. strD = dt.Rows[0]["DIMATER"].ToString();
  911. strH = dt.Rows[0]["HEIGHT"].ToString();
  912. _specStyle = dt.Rows[0]["MSC_STYLE"].ToString();
  913. _specName = dt.Rows[0]["SPEC_NAME"].ToString();
  914. //if (_specStyle == "C")
  915. //{
  916. // string specName = dt.Rows[0]["SPEC_NAME"].ToString();
  917. // string[] specs = specName.Split('/', '-');
  918. // if (specs.Length == 2)
  919. // {
  920. // if (specs[0].Contains("x") || specs[0].Contains("X") || specs[0].Contains("×"))
  921. // {
  922. // string[] specs2 = specs[0].Split('x', 'X', '×');
  923. // if (specs2.Length == 2)
  924. // {
  925. // strD = specs2[0];
  926. // strH = specs2[1];
  927. // }
  928. // }
  929. // }
  930. //}
  931. douD = strD.TryParseDouble() ? double.Parse(strD) : 0;
  932. douH = strH.TryParseDouble() ? double.Parse(strH) : 0;
  933. if (douH != 0)
  934. DHProportion = (douD / douH).ToString();
  935. if (douD != 0)
  936. HDProportion = (douH / douD).ToString();
  937. }
  938. /// <summary>
  939. /// 判断传入的行数据是否符合要要求
  940. /// </summary>
  941. private void CheckDr()
  942. {
  943. if (dr == null)
  944. { return; }
  945. if (dr["FINAL_USER"].ToString().Equals(""))
  946. { return; }
  947. //if (dr["SPEC_CODE"].ToString().Equals(""))
  948. //{ return; }
  949. //_msc = dr["MSC"].ToString();
  950. _psc = dr["PSC"].ToString();
  951. _model = dr["MODEL_CODE"].ToString();
  952. _finalUserCode = dr["FINAL_USER"].ToString();
  953. _finalUserName = dr["FINAL_USER_DESC"].ToString();
  954. if (dr.Table.Columns.Contains("CUST_ALPHA_NO"))
  955. {
  956. _drCustAlphaNo = dr["CUST_ALPHA_NO"].ToString();
  957. }
  958. TextCuster.Text = _finalUserName;
  959. TextPscDesc.Text = dr["PSC_DESC"].ToString();
  960. TextProduct.Text = dr["SPEC_NAME"].ToString();
  961. TextMode.Text = dr["MODEL_DESC"].ToString();
  962. _specCode = dr["SPEC_CODE"].ToString();
  963. if (dr.Table.Columns.Contains("ORD_LN_PK"))
  964. {
  965. _ordLnPk = dr["ORD_LN_PK"].ToString();
  966. }
  967. }
  968. /// <summary>
  969. /// 通过MSC、最终客户查询
  970. /// </summary>
  971. public void DoQuery(string custAlphaNo)
  972. {
  973. if (_ob == null)
  974. {
  975. return;
  976. }
  977. ultraTree.Nodes["STANDRADKEY"].Nodes.Clear();
  978. DataTable dtCust = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryAlpha",
  979. new Object[] { _finalUserCode, _drCustAlphaNo, "" }, this._ob);
  980. _dtMsc = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMsc",
  981. new Object[] { _psc }, this._ob);
  982. _dtTreeCustAlpha = dtCust;
  983. CreateTreeAlp(dtCust, _dtMsc, "STANDRADKEY", "CUST_ALPHA_NO", "CUST_ALPHA_NO", "b");
  984. CreateTreeMsc(_dtMsc, "STANDRADKEY", "MSC", "USE_DESC", "a");
  985. ultraTree.ExpandAll();
  986. dataTable1.Rows.Clear();
  987. dataTable2.Rows.Clear();
  988. dataTable3.Rows.Clear();
  989. dataTable4.Rows.Clear();
  990. dataTable5.Rows.Clear();
  991. StdProcessc.Rows.Clear();
  992. if (!custAlphaNo.Equals(""))
  993. {
  994. foreach (UltraTreeNode node in ultraTree.Nodes["STANDRADKEY"].Nodes)
  995. {
  996. if (node.Key.Contains(custAlphaNo))
  997. {
  998. ultraTree.ActiveNode = node;
  999. break;
  1000. }
  1001. }
  1002. }
  1003. else
  1004. {
  1005. if (ultraTree.Nodes["STANDRADKEY"].Nodes.Count > 0)
  1006. {
  1007. ultraTree.ActiveNode = ultraTree.Nodes["STANDRADKEY"].Nodes[0];
  1008. }
  1009. }
  1010. _mscDt = _dtMsc;
  1011. _custDt = dtCust;
  1012. }
  1013. /// <summary>
  1014. /// 生成树
  1015. /// </summary>
  1016. /// <param name="dt">DataTable</param>
  1017. /// <param name="key">key</param>
  1018. /// <param name="showValue">显示值</param>
  1019. private void CreateTreeMsc(DataTable dt, string key, string hideValue, string showValue, string flag)
  1020. {
  1021. if (dt == null || dt.Rows.Count == 0)
  1022. {
  1023. return;
  1024. }
  1025. UltraTreeNode utn = null;
  1026. for (int i = 0; i < dt.Rows.Count; i++)
  1027. {
  1028. if (dt.Rows[i]["MSC_SEQ"].ToString() == "")
  1029. {
  1030. continue;
  1031. }
  1032. string keyStr = dt.Rows[i][hideValue].ToString();
  1033. string msc = keyStr.Split(',')[0];
  1034. if (_drCustAlphaNo == "")
  1035. {
  1036. if (_fiterMsc != "")
  1037. {
  1038. if (_fiterMsc != msc) continue; //过滤msc
  1039. }
  1040. }
  1041. else
  1042. {
  1043. continue;
  1044. }
  1045. bool isAdd = false;
  1046. foreach (UltraTreeNode node in ultraTree.Nodes[key].Nodes)
  1047. {
  1048. utn = new UltraTreeNode(keyStr + "," + node.Key, msc + "-" + dt.Rows[i][showValue].ToString());
  1049. utn.Tag = flag;
  1050. if (dt.Rows[i]["CUST_ALPHA_NO"].ToString().Contains(node.Key))
  1051. {
  1052. node.Nodes.Add(utn);
  1053. isAdd = true;
  1054. }
  1055. }
  1056. if (!isAdd)
  1057. {
  1058. string memo = "";
  1059. if(dt.Rows[i]["MEMO"].ToString() != "")
  1060. {
  1061. memo = "-" + dt.Rows[i]["MEMO"].ToString();
  1062. }
  1063. utn = new UltraTreeNode(keyStr, msc + "-" + dt.Rows[i][showValue].ToString() + memo);
  1064. utn.Tag = flag;
  1065. ultraTree.Nodes[key].Nodes.Add(utn);
  1066. }
  1067. }
  1068. }
  1069. /// <summary>
  1070. /// 生成树
  1071. /// </summary>
  1072. /// <param name="dt">DataTable</param>
  1073. /// <param name="key">key</param>
  1074. /// <param name="showValue">显示值</param>
  1075. private void CreateTreeAlp(DataTable dt, DataTable dtMsc, string key, string hideValue, string showValue, string flag)
  1076. {
  1077. if (dt == null)
  1078. {
  1079. return;
  1080. }
  1081. UltraTreeNode utn = null;
  1082. DataRow[] drs = dtMsc.Select("MSC_SEQ IS NULL");
  1083. if (drs.Length > 0)
  1084. {
  1085. string msc = drs[0]["MSC"].ToString().Split(',')[0];
  1086. if ((_drCustAlphaNo == "" && _fiterMsc == "") || (_drCustAlphaNo == "" && _fiterMsc == msc))
  1087. {
  1088. utn = new UltraTreeNode(drs[0]["MSC"].ToString(), msc);
  1089. utn.Tag = "a";
  1090. ultraTree.Nodes[key].Nodes.Add(utn);
  1091. }
  1092. }
  1093. for (int i = 0; i < dt.Rows.Count; i++)
  1094. {
  1095. string keyStr = dt.Rows[i][hideValue].ToString();
  1096. string custAlphaNo = keyStr.Split(',')[0];
  1097. if (_drCustAlphaNo == "")
  1098. {
  1099. if (_fiterMsc != "")
  1100. {
  1101. continue; //过滤msc
  1102. }
  1103. }
  1104. else
  1105. {
  1106. if (_drCustAlphaNo != custAlphaNo) continue;
  1107. }
  1108. utn = new UltraTreeNode(keyStr, dt.Rows[i][showValue].ToString());
  1109. //utn.Override.NodeStyle = NodeStyle.OptionButton;
  1110. utn.Tag = flag;
  1111. ultraTree.Nodes[key].Nodes.Add(utn);
  1112. }
  1113. }
  1114. /// <summary>
  1115. /// 保存
  1116. /// </summary>
  1117. private void DoSave()
  1118. {
  1119. if (_finalUserCode.Equals(""))
  1120. {
  1121. return;
  1122. }
  1123. //if (isAdd == false)
  1124. //{
  1125. // string custAlphaState = GetCustAlphaState(_custAlphaNo).Rows[0]["CUST_ALPHA_STS"].ToString();
  1126. // int custAlphaUseCount = GetCustAlphaUseCount(_custAlphaNo, _ordLnPk);
  1127. // if (custAlphaState == "S")
  1128. // {
  1129. // MessageUtil.ShowWarning("该技术要求已评审通过,不能进修改!");
  1130. // return;
  1131. // }
  1132. // else if ((custAlphaState == "W" || custAlphaState == "F") && custAlphaUseCount >= 1)
  1133. // {
  1134. // MessageUtil.ShowWarning("该技术要求已被其他合同行使用,不能修改!");
  1135. // return;
  1136. // }
  1137. //}
  1138. ArrayList allData = new ArrayList();
  1139. ArrayList allChemData = new ArrayList();
  1140. ArrayList allPhyData = new ArrayList();
  1141. ArrayList allSpecData = new ArrayList();
  1142. ArrayList allDetectionData = new ArrayList();
  1143. ArrayList allWaterData = new ArrayList();
  1144. ArrayList allProcessData = new ArrayList();
  1145. ArrayList chemData = new ArrayList();
  1146. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  1147. {
  1148. SlmCustChemObject com = GetObjectData.GetStdChemObject(ugr);
  1149. //com.CustAlphaNo = _custAlphaNo;
  1150. if (ugr.GetValue("CHC") == "True" && IsMsc0())
  1151. {
  1152. if (GetMscChem(ugr) == GetAlphaChem(ugr))
  1153. {
  1154. MessageUtil.ShowWarning("成分要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!");
  1155. ugr.Activate();
  1156. return;
  1157. }
  1158. }
  1159. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1160. {
  1161. allChemData.Add(JSONFormat.Format(com));
  1162. }
  1163. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1164. {
  1165. if (!CheckChem(com, ugr))
  1166. {
  1167. MessageUtil.ShowWarning(errMessage);
  1168. return;
  1169. }
  1170. chemData.Add(JSONFormat.Format(com));
  1171. }
  1172. }
  1173. ArrayList phyData = new ArrayList();
  1174. foreach (UltraGridRow ugr in ultraGrid2.Rows)
  1175. {
  1176. SlmCustPhyObject com = GetObjectData.GetSlmCustPhyData(ugr);
  1177. //com.CustAlphaNo = _custAlphaNo;
  1178. if (ugr.GetValue("CHC") == "True" && IsMsc0())
  1179. {
  1180. if (GetMscPhy(ugr) == GetAlphaPhy(ugr))
  1181. {
  1182. MessageUtil.ShowWarning("理化要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!");
  1183. ugr.Activate();
  1184. return;
  1185. }
  1186. }
  1187. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1188. {
  1189. allPhyData.Add(JSONFormat.Format(com));
  1190. }
  1191. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1192. {
  1193. if (!CheckPhy(com, ugr))
  1194. {
  1195. MessageUtil.ShowWarning(errMessage);
  1196. return;
  1197. }
  1198. phyData.Add(JSONFormat.Format(com));
  1199. }
  1200. }
  1201. ArrayList specData = new ArrayList();
  1202. foreach (UltraGridRow ugr in ultraGrid3.Rows)
  1203. {
  1204. SlmCustSpecObject com = GetObjectData.GetSlmCustSpecData(ugr);
  1205. //com.CustAlphaNo = _custAlphaNo;
  1206. if (ugr.GetValue("CHC") == "True" && IsMsc0())
  1207. {
  1208. if (GetMscSpec(ugr) == GetAlphaSpec(ugr))
  1209. {
  1210. MessageUtil.ShowWarning("公差要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!");
  1211. ugr.Activate();
  1212. return;
  1213. }
  1214. }
  1215. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1216. {
  1217. allSpecData.Add(JSONFormat.Format(com));
  1218. }
  1219. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1220. {
  1221. if (!CheckSpec(com, ugr))
  1222. {
  1223. MessageUtil.ShowWarning(errMessage);
  1224. return;
  1225. }
  1226. specData.Add(JSONFormat.Format(com));
  1227. }
  1228. }
  1229. ArrayList deteData = new ArrayList();
  1230. foreach (UltraGridRow ugr in ultraGrid4.Rows)
  1231. {
  1232. SlmCustDetectionObject com = GetObjectData.GetSlmCustDetectionData(ugr);
  1233. //com.CustAlphaNo = _custAlphaNo;
  1234. if (ugr.GetValue("CHC") == "True" && IsMsc0())
  1235. {
  1236. if (GetMscDetection(ugr) == GetAlphaDetection(ugr))
  1237. {
  1238. MessageUtil.ShowWarning("探伤要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!");
  1239. ugr.Activate();
  1240. return;
  1241. }
  1242. }
  1243. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1244. {
  1245. allDetectionData.Add(JSONFormat.Format(com));
  1246. }
  1247. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1248. {
  1249. if (!CheckDete(com, ugr))
  1250. {
  1251. MessageUtil.ShowWarning(errMessage);
  1252. return;
  1253. }
  1254. deteData.Add(JSONFormat.Format(com));
  1255. }
  1256. }
  1257. ArrayList waterData = new ArrayList();
  1258. foreach (UltraGridRow ugr in ultraGrid5.Rows)
  1259. {
  1260. SlmCustWaterObject com = GetObjectData.GetSlmCustWaterData(ugr);
  1261. //com.CustAlphaNo = _custAlphaNo;
  1262. if (ugr.GetValue("CHC") == "True" && IsMsc0())
  1263. {
  1264. if (GetMscWater(ugr) == GetAlphaWater(ugr))
  1265. {
  1266. MessageUtil.ShowWarning("水压要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!");
  1267. ugr.Activate();
  1268. return;
  1269. }
  1270. }
  1271. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1272. {
  1273. allWaterData.Add(JSONFormat.Format(com));
  1274. }
  1275. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1276. {
  1277. if (!CheckWater(com, ugr))
  1278. {
  1279. MessageUtil.ShowWarning(errMessage);
  1280. return;
  1281. }
  1282. waterData.Add(JSONFormat.Format(com));
  1283. }
  1284. }
  1285. ArrayList proCessData = new ArrayList();
  1286. foreach (UltraGridRow ugr in ultraGrid6.Rows)
  1287. {
  1288. SlmCustAlphaProObject com = GetObjectData.GetSlmCustAlphaProData(ugr);
  1289. //com.CustAlphaNo = _custAlphaNo;
  1290. if (ugr.GetValue("CHC") == "True" && IsMsc0())
  1291. {
  1292. if (GetMscProcess(ugr) == GetAlphaProcess(ugr))
  1293. {
  1294. MessageUtil.ShowWarning("加工要求:第[" + (ugr.Index + 1).ToString() + "]行记录,客户要求不能与标准要求重复!");
  1295. ugr.Activate();
  1296. return;
  1297. }
  1298. }
  1299. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1300. {
  1301. allProcessData.Add(JSONFormat.Format(com));
  1302. }
  1303. if (Convert.ToBoolean(ugr.Cells["CHC"].Value))
  1304. {
  1305. if (!CheckAlphaPro(com, ugr))
  1306. {
  1307. MessageUtil.ShowWarning(errMessage);
  1308. return;
  1309. }
  1310. proCessData.Add(JSONFormat.Format(com));
  1311. }
  1312. }
  1313. DataTable dtModelStyle = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getModelStyle",
  1314. new object[] { dr["MODEL_CODE"].ToString() }, _ob);
  1315. if (dtModelStyle != null && dtModelStyle.Rows[0]["MODEL_STYLE"].ToString() == "405107")
  1316. {
  1317. bool existPdm = false; //是否存在平端面
  1318. if (StdProcessc.Rows.Count == 0)
  1319. {
  1320. MessageUtil.ShowWarning("合同行扣型类型为平端面,请维护加工要求,工序点选择平端面!");
  1321. ultraTabProcess.Tabs["6"].Active = true;
  1322. ultraTabProcess.Tabs["6"].Selected = true;
  1323. return;
  1324. }
  1325. foreach (DataRow drPro in StdProcessc.Rows)
  1326. {
  1327. if (drPro["STATION_CODE"].ToString() == "70220")
  1328. {
  1329. existPdm = true;
  1330. }
  1331. }
  1332. if (!existPdm)
  1333. {
  1334. MessageUtil.ShowWarning("合同行扣型类型为平端面,加工要求中的工序点必须选择平端面!");
  1335. ultraTabProcess.Tabs["6"].Active = true;
  1336. ultraTabProcess.Tabs["6"].Selected = true;
  1337. return;
  1338. }
  1339. }
  1340. ArrayList standData = new ArrayList();
  1341. standData.Add(chemData);
  1342. standData.Add(phyData);
  1343. standData.Add(specData);
  1344. standData.Add(deteData);
  1345. standData.Add(waterData);
  1346. standData.Add(proCessData);
  1347. allData.Add(allChemData);
  1348. allData.Add(allPhyData);
  1349. allData.Add(allSpecData);
  1350. allData.Add(allDetectionData);
  1351. allData.Add(allWaterData);
  1352. allData.Add(allProcessData);
  1353. object[] results = IsExistSameData(allData, _finalUserCode, _psc);
  1354. string cic = results[2].ToString();
  1355. string pic = results[3].ToString();
  1356. string sic = results[4].ToString();
  1357. string dic = results[5].ToString();
  1358. string wic = results[6].ToString();
  1359. string gic = results[7].ToString();
  1360. ArrayList insrtChemData = (ArrayList)results[8];
  1361. ArrayList insrtPhyData = (ArrayList)results[9];
  1362. ArrayList insrtSpecData = (ArrayList)results[10];
  1363. ArrayList insrtDetectionData = (ArrayList)results[11];
  1364. ArrayList insrtWaterData = (ArrayList)results[12];
  1365. ArrayList insrtProcessData = (ArrayList)results[13];
  1366. int flag = int.Parse(results[14].ToString());
  1367. int insrtCnt = insrtChemData.Count + insrtPhyData.Count + insrtSpecData.Count + insrtDetectionData.Count
  1368. + insrtWaterData.Count + insrtProcessData.Count;
  1369. if (results[0].ToString() == "True" && insrtCnt == 0 && flag == 3)
  1370. {
  1371. MessageUtil.ShowWarning("[" + results[1].ToString() + "]下已存在相同的一套技术要求!");
  1372. foreach (UltraTreeNode node in ultraTree.Nodes["STANDRADKEY"].Nodes)
  1373. {
  1374. if (node.Key.Split(',')[0] == results[1].ToString())
  1375. {
  1376. dataTable1.AcceptChanges();
  1377. dataTable2.AcceptChanges();
  1378. dataTable3.AcceptChanges();
  1379. dataTable4.AcceptChanges();
  1380. dataTable5.AcceptChanges();
  1381. StdProcessc.AcceptChanges();
  1382. ultraTree.ActiveNode = node;
  1383. break;
  1384. }
  1385. }
  1386. return;
  1387. }
  1388. if (chemData.Count > 0 || phyData.Count > 0 || specData.Count > 0 || deteData.Count > 0 || waterData.Count > 0 || proCessData.Count > 0)
  1389. {
  1390. if (MessageBox.Show("是否保存记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
  1391. {
  1392. return;
  1393. }
  1394. ArrayList strList = new ArrayList();
  1395. strList.Add(_finalUserCode);
  1396. strList.Add(_finalUserName);
  1397. strList.Add(UserInfo.GetUserName());
  1398. strList.Add(_custAlphaNo);
  1399. string custAlphaNo = ServerHelper.SetDataReturnObj("com.steering.pss.sale.order.CoreOrderSpecialInfo.saveSpecialInfo",
  1400. new Object[] { strList, standData}, this._ob).ToString();
  1401. MessageBox.Show("保存成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  1402. DoQuery(custAlphaNo);
  1403. }
  1404. else
  1405. {
  1406. MessageUtil.ShowWarning("请选择一条要求,然后再进行操作!");
  1407. }
  1408. }
  1409. private bool IsMsc0()
  1410. {
  1411. return ultraTree.ActiveNode.Tag != null && ultraTree.ActiveNode.Tag.ToString() == "a"
  1412. && ultraTree.ActiveNode.Key.Split(',')[0].Substring(10, 3) == "000";
  1413. }
  1414. private string GetMscChem(UltraGridRow row)
  1415. {
  1416. string str = row.GetValue("CHEM_CODE") + row.GetValue("CHEM_FORMULA") + row.GetValue("STDMIN_SIGN")
  1417. + row.GetValue("STDMIN") + row.GetValue("STDMAX_SIGN") + row.GetValue("STDMAX");
  1418. return str;
  1419. }
  1420. private string GetAlphaChem(UltraGridRow row)
  1421. {
  1422. string str = row.GetValue("CHEM_CODE") + row.GetValue("CHEM_FORMULA") + row.GetValue("STDMIN_SIGN1")
  1423. + row.GetValue("STDMIN1") + row.GetValue("STDMAX_SIGN1") + row.GetValue("STDMAX1");
  1424. return str;
  1425. }
  1426. private string GetMscPhy(UltraGridRow row)
  1427. {
  1428. string str = row.GetValue("PHY_CODE_MAX") + row.GetValue("PHY_CODE_MIN") + row.GetValue("PHY_CODE")
  1429. + row.GetValue("ITEM_CODE_F") + row.GetValue("ITEM_CODE_W") + row.GetValue("ITEM_CODE_S")
  1430. + row.GetValue("STDMIN_SIGN") + row.GetValue("STDMIN") + row.GetValue("STDMAX_SIGN")
  1431. + row.GetValue("STDMAX");
  1432. return str;
  1433. }
  1434. private string GetAlphaPhy(UltraGridRow row)
  1435. {
  1436. string str = row.GetValue("PHY_CODE_MAX") + row.GetValue("PHY_CODE_MIN") + row.GetValue("PHY_CODE")
  1437. + row.GetValue("ITEM_CODE_F") + row.GetValue("ITEM_CODE_W") + row.GetValue("ITEM_CODE_S")
  1438. + row.GetValue("STDMIN_SIGN1") + row.GetValue("STDMIN1") + row.GetValue("STDMAX_SIGN1")
  1439. + row.GetValue("STDMAX1");
  1440. return str;
  1441. }
  1442. private string GetMscSpec(UltraGridRow row)
  1443. {
  1444. string str = row.GetValue("BIAS_CODE") + row.GetValue("STD_MIN_VAL") + row.GetValue("STD_MAX_VAL")
  1445. + row.GetValue("STD_MIN_PERCENT") + row.GetValue("STD_MAX_PERCENT") + row.GetValue("STD_MIN_FORMULA_V")
  1446. + row.GetValue("STD_MAX_FORMULA_V");
  1447. return str;
  1448. }
  1449. private string GetAlphaSpec(UltraGridRow row)
  1450. {
  1451. string str = row.GetValue("BIAS_CODE") + row.GetValue("STD_MIN_VAL1") + row.GetValue("STD_MAX_VAL1")
  1452. + row.GetValue("STD_MIN_PERCENT1") + row.GetValue("STD_MAX_PERCENT1") + row.GetValue("STD_MIN_FORMULA_V1")
  1453. + row.GetValue("STD_MAX_FORMULA_V1");
  1454. return str;
  1455. }
  1456. private string GetMscDetection(UltraGridRow row)
  1457. {
  1458. string str = row.GetValue("PHY_CODE") + row.GetValue("POSITION_DESC") + row.GetValue("STD_DESC")
  1459. + row.GetValue("LV_DESC") + row.GetValue("COVERAGE");
  1460. return str;
  1461. }
  1462. private string GetAlphaDetection(UltraGridRow row)
  1463. {
  1464. string str = row.GetValue("PHY_CODE") + row.GetValue("POSITION_DESC1") + row.GetValue("STD_DESC1")
  1465. + row.GetValue("LV_DESC1") + row.GetValue("COVERAGE1");
  1466. return str;
  1467. }
  1468. private string GetMscWater(UltraGridRow row)
  1469. {
  1470. string str = row.GetValue("PRESSURE_Y") + row.GetValue("PRESSURE") + row.GetValue("FORMULA")
  1471. + row.GetValue("SAVE_TIME");
  1472. return str;
  1473. }
  1474. private string GetAlphaWater(UltraGridRow row)
  1475. {
  1476. string str = row.GetValue("PRESSURE_Y1") + row.GetValue("PRESSURE1") + row.GetValue("FORMULA1")
  1477. + row.GetValue("SAVE_TIME1");
  1478. return str;
  1479. }
  1480. private string GetMscProcess(UltraGridRow row)
  1481. {
  1482. string str = row.GetValue("STATION_DESC") + row.GetValue("PROCESS_DESC") + row.GetValue("VALUE_TEXT")
  1483. + row.GetValue("VALUE_NUM") + row.GetValue("VALUE_MEMO");
  1484. return str;
  1485. }
  1486. private string GetAlphaProcess(UltraGridRow row)
  1487. {
  1488. string str = row.GetValue("STATION_DESC") + row.GetValue("PROCESS_DESC") + row.GetValue("ALPHA_VALUE_TEXT")
  1489. + row.GetValue("ALPHA_VALUE_NUM") + row.GetValue("ALPHA_VALUE_MEMO");
  1490. return str;
  1491. }
  1492. private object[] IsExistSameData(ArrayList list, string custNo, string psc)
  1493. {
  1494. ArrayList list2 = new ArrayList();
  1495. list2.AddRange(custNo, psc, "", "True", strD, strH, _model, _specStyle, _specCode, _specName);
  1496. CoreClientParam ccp = new CoreClientParam();
  1497. ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo";
  1498. ccp.MethodName = "isExistSameData";
  1499. ccp.ServerParams = new object[] { list, list2 };
  1500. ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
  1501. return (object[])ccp.ReturnObject;
  1502. }
  1503. //private object[] IsExistSameChem(ArrayList list, string custNo, string psc)
  1504. //{
  1505. // CoreClientParam ccp = new CoreClientParam();
  1506. // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo";
  1507. // ccp.MethodName = "isExistSameChem";
  1508. // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo};
  1509. // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
  1510. // return (object[])ccp.ReturnObject;
  1511. //}
  1512. //private object[] IsExistSamePhy(ArrayList list, string custNo, string psc)
  1513. //{
  1514. // CoreClientParam ccp = new CoreClientParam();
  1515. // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo";
  1516. // ccp.MethodName = "isExistSamePhy";
  1517. // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo };
  1518. // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
  1519. // return (object[])ccp.ReturnObject;
  1520. //}
  1521. //private object[] IsExistSameSpec(ArrayList list, string custNo, string psc)
  1522. //{
  1523. // CoreClientParam ccp = new CoreClientParam();
  1524. // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo";
  1525. // ccp.MethodName = "isExistSameSpec";
  1526. // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo };
  1527. // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
  1528. // return (object[])ccp.ReturnObject;
  1529. //}
  1530. //private object[] IsExistSameDetection(ArrayList list, string custNo, string psc)
  1531. //{
  1532. // CoreClientParam ccp = new CoreClientParam();
  1533. // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo";
  1534. // ccp.MethodName = "isExistSameDetection";
  1535. // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo };
  1536. // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
  1537. // return (object[])ccp.ReturnObject;
  1538. //}
  1539. //private object[] IsExistSameWater(ArrayList list, string custNo, string psc)
  1540. //{
  1541. // CoreClientParam ccp = new CoreClientParam();
  1542. // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo";
  1543. // ccp.MethodName = "isExistSameWater";
  1544. // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo };
  1545. // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
  1546. // return (object[])ccp.ReturnObject;
  1547. //}
  1548. //private object[] IsExistSameProcess(ArrayList list, string custNo, string psc)
  1549. //{
  1550. // CoreClientParam ccp = new CoreClientParam();
  1551. // ccp.ServerName = "com.steering.pss.sale.order.CoreOrderSpecialInfo";
  1552. // ccp.MethodName = "isExistSameProcess";
  1553. // ccp.ServerParams = new object[] { list, custNo, psc, _custAlphaNo };
  1554. // ccp = _ob.ExecuteQuery(ccp, CoreInvokeType.Internal);
  1555. // return (object[])ccp.ReturnObject;
  1556. //}
  1557. /// <summary>
  1558. /// TableName依次:"成分""理化""公差""探伤""水压""附加";
  1559. /// </summary>
  1560. private void DoComfirm()
  1561. {
  1562. ultraGrid1.UpdateData();
  1563. ultraGrid2.UpdateData();
  1564. ultraGrid3.UpdateData();
  1565. ultraGrid4.UpdateData();
  1566. ultraGrid5.UpdateData();
  1567. ultraGrid6.UpdateData();
  1568. if (_custAlphaNo.Equals("") && _stdCode.Equals(""))
  1569. {
  1570. return;
  1571. }
  1572. if (ultraTree.ActiveNode.Key == "STANDRADKEY") return;
  1573. string[] mscs = ultraTree.ActiveNode.Key.Split(',');
  1574. string mscOrAlphaNo = mscs[0];
  1575. string type = "";
  1576. if (IsExitEdite(out type) == false)
  1577. {
  1578. if (type == "Cic")
  1579. {
  1580. MessageUtil.ShowWarning("成分要求有数据修改,请先保存然后再进行确认!");
  1581. return;
  1582. }
  1583. else if (type == "Pic")
  1584. {
  1585. MessageUtil.ShowWarning("理化要求有数据修改,请先保存然后再进行确认!");
  1586. return;
  1587. }
  1588. else if (type == "Sic")
  1589. {
  1590. MessageUtil.ShowWarning("公差要求有数据修改,请先保存然后再进行确认!");
  1591. return;
  1592. }
  1593. else if (type == "Dic")
  1594. {
  1595. MessageUtil.ShowWarning("探伤要求有数据修改,请先保存然后再进行确认!");
  1596. return;
  1597. }
  1598. else if (type == "Wic")
  1599. {
  1600. MessageUtil.ShowWarning("水压要求有数据修改,请先保存然后再进行确认!");
  1601. return;
  1602. }
  1603. else if (type == "Gic")
  1604. {
  1605. MessageUtil.ShowWarning("加工要求有数据修改,请先保存然后再进行确认!");
  1606. return;
  1607. }
  1608. }
  1609. //if (ultraTree.ActiveNode.Tag.ToString() == "a")
  1610. //{
  1611. // if (mscOrAlphaNo.Substring(10, 3) != "000" && CheckStdPayItem(mscOrAlphaNo) == false)
  1612. // {
  1613. // MessageUtil.ShowWarning("该规格、扣型下的MSCn不完整,不能选择!");
  1614. // return;
  1615. // }
  1616. //}
  1617. DataTable dtModelStyle = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getModelStyle",
  1618. new object[] { dr["MODEL_CODE"].ToString() }, _ob);
  1619. if (dtModelStyle != null && dtModelStyle.Rows[0]["MODEL_STYLE"].ToString() == "405107")
  1620. {
  1621. bool existPdm = false; //是否存在平端面
  1622. if(StdProcessc.Rows.Count == 0)
  1623. {
  1624. MessageUtil.ShowWarning("合同行扣型类型为平端面,请维护加工要求,工序点选择平端面!");
  1625. ultraTabProcess.Tabs["6"].Active = true;
  1626. return;
  1627. }
  1628. foreach (DataRow drPro in StdProcessc.Rows)
  1629. {
  1630. if (drPro["STATION_CODE"].ToString() == "70220")
  1631. {
  1632. existPdm = true;
  1633. }
  1634. }
  1635. if (!existPdm)
  1636. {
  1637. MessageUtil.ShowWarning("合同行扣型类型为平端面,加工要求中的工序点必须选择平端面!");
  1638. ultraTabProcess.Tabs["6"].Active = true;
  1639. return;
  1640. }
  1641. }
  1642. if (MessageUtil.ShowYesNoAndQuestion("是否确认?") == DialogResult.No)
  1643. {
  1644. return;
  1645. }
  1646. FrmOrderSpecialInfoEventArgs e = new FrmOrderSpecialInfoEventArgs();
  1647. DataSet ds = new DataSet();
  1648. ds.Tables.Add(dataTable1.Copy());
  1649. ds.Tables.Add(dataTable2.Copy());
  1650. ds.Tables.Add(dataTable3.Copy());
  1651. ds.Tables.Add(dataTable4.Copy());
  1652. ds.Tables.Add(dataTable5.Copy());
  1653. ds.Tables.Add(StdProcessc.Copy());
  1654. //在这进行冶金规范与客户冶金规范匹配是否完全相同,如果相同取冶金规范数据。
  1655. e.DataSet = ds;
  1656. e.Description = GetUltraData();
  1657. if (ultraTree.ActiveNode.Tag != null && ultraTree.ActiveNode.Tag.ToString() == "a"
  1658. && mscOrAlphaNo.Substring(10, 3) == "000")
  1659. {
  1660. e.Description = "";
  1661. }
  1662. if (ultraTree.ActiveNode.Tag.ToString() == "a")
  1663. {
  1664. e.Msc = mscOrAlphaNo;
  1665. e.CustAlphaNo = "";
  1666. }
  1667. else
  1668. {
  1669. e.Msc = ultraTree.ActiveNode.Parent.Nodes[0].Key.Split(',')[0];//MSC0
  1670. e.CustAlphaNo = mscOrAlphaNo;
  1671. }
  1672. FrmOrderSpecialInfoComfirm.Invoke(this, e);
  1673. this.DialogResult = DialogResult.OK;
  1674. }
  1675. private void DoDelete()
  1676. {
  1677. string[] mscs = ultraTree.ActiveNode.Key.Split(',');
  1678. string mscOrAlphaNo = mscs[0];
  1679. if (ultraTree.ActiveNode.Key == "STANDRADKEY")
  1680. {
  1681. MessageUtil.ShowWarning("请选择需要作废的技术特殊要求码!");
  1682. return;
  1683. }
  1684. else
  1685. {
  1686. if (ultraTree.ActiveNode.Tag.ToString() == "a")
  1687. {
  1688. MessageUtil.ShowWarning("请选择需要作废的技术特殊要求码!");
  1689. return;
  1690. }
  1691. else
  1692. {
  1693. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getSlmOrdLineCntByAlphaNo",
  1694. new object[] { mscOrAlphaNo }, _ob);
  1695. if (dt.Rows.Count > 0)
  1696. {
  1697. MessageUtil.ShowWarning(string.Format("该技术特殊要求已被合同[{0}]-合同行[{1}]引用,不能作废!",
  1698. dt.Rows[0]["ORDER_NO"].ToString2(), dt.Rows[0]["ORDER_SEQ"].ToString2()));
  1699. return;
  1700. }
  1701. if (MessageUtil.ShowYesNoAndQuestion("是否确认作废选中的技术特殊要求码?") == DialogResult.No)
  1702. {
  1703. return;
  1704. }
  1705. ServerHelper.SetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.deleteSlmCustAlpha",
  1706. new object[] { mscOrAlphaNo, UserInfo.GetUserName() }, _ob);
  1707. MessageUtil.ShowWarning("作废成功!");
  1708. DoQuery("");
  1709. }
  1710. }
  1711. }
  1712. private bool CheckStdPayItem(string msc)
  1713. {
  1714. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getStdPayItemCnt",
  1715. new object[] { msc }, Ob);
  1716. int cicCnt = dt.Select("ITEM = 'CIC'").Length;
  1717. int picCnt = dt.Select("ITEM = 'PIC'").Length;
  1718. int dicCnt = dt.Select("ITEM = 'DIC'").Length;
  1719. int sicCnt = dt.Select("ITEM = 'SIC'").Length;
  1720. int wicCnt = dt.Select("ITEM = 'WIC'").Length;
  1721. int gicCnt = dt.Select("ITEM = 'GIC'").Length;
  1722. if (cicCnt > 0)
  1723. {
  1724. int grid1Cnt = ultraGrid1.Rows.AsQueryable().Count();
  1725. if(grid1Cnt == 0)
  1726. {
  1727. return false;
  1728. }
  1729. }
  1730. if (picCnt > 0)
  1731. {
  1732. int grid2Cnt = ultraGrid2.Rows.AsQueryable().Count();
  1733. if (grid2Cnt == 0)
  1734. {
  1735. return false;
  1736. }
  1737. }
  1738. if (sicCnt > 0)
  1739. {
  1740. int grid3Cnt = ultraGrid3.Rows.AsQueryable().Count();
  1741. if (grid3Cnt == 0)
  1742. {
  1743. return false;
  1744. }
  1745. }
  1746. if (dicCnt > 0)
  1747. {
  1748. int grid4Cnt = ultraGrid4.Rows.AsQueryable().Count();
  1749. if (grid4Cnt == 0)
  1750. {
  1751. return false;
  1752. }
  1753. }
  1754. if (wicCnt > 0)
  1755. {
  1756. int grid5Cnt = ultraGrid5.Rows.AsQueryable().Count();
  1757. if (grid5Cnt == 0)
  1758. {
  1759. return false;
  1760. }
  1761. }
  1762. if (gicCnt > 0)
  1763. {
  1764. int grid6Cnt = ultraGrid6.Rows.AsQueryable().Count();
  1765. if (grid6Cnt == 0)
  1766. {
  1767. return false;
  1768. }
  1769. }
  1770. return true;
  1771. }
  1772. /// <summary>
  1773. /// 查询成分标准数据
  1774. /// </summary>
  1775. /// <param name="msc">冶金规范码</param>
  1776. /// <param name="stdCode">标准代码</param>
  1777. /// <returns></returns>
  1778. private void QueryChem(string mscOrAlphaNo, string flag)
  1779. {
  1780. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscCic",
  1781. new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag,
  1782. strD, strH, _specCode, _specStyle}, this._ob);
  1783. if (dt != null && dt.Rows.Count > 0)
  1784. {
  1785. if (flag == "a")
  1786. {
  1787. FiltChem(dt);
  1788. FiterChemCommon(dt);
  1789. }
  1790. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
  1791. OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid1);
  1792. }
  1793. else
  1794. {
  1795. dataTable1.Rows.Clear();
  1796. }
  1797. if (dt.Rows.Count > 0)
  1798. {
  1799. ultraTabProcess.Tabs["1"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  1800. }
  1801. else
  1802. {
  1803. ultraTabProcess.Tabs["1"].Appearance.BackColor = Color.FromArgb(202, 222, 247);
  1804. }
  1805. dataTable1.AcceptChanges();
  1806. }
  1807. /// <summary>
  1808. /// 查询理化标准数据
  1809. /// </summary>
  1810. /// <param name="msc"></param>
  1811. /// <param name="stdCode"></param>
  1812. private void QueryMaterial(string mscOrAlphaNo, string flag)
  1813. {
  1814. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscPic",
  1815. new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag,
  1816. strD, strH, _specCode, _specStyle}, this._ob);
  1817. if (dt != null && dt.Rows.Count > 0)
  1818. {
  1819. if (flag == "a")
  1820. {
  1821. FiltChem(dt);
  1822. FiterPhyCommon(dt);
  1823. }
  1824. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable2, true);
  1825. OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid2);
  1826. }
  1827. else
  1828. {
  1829. dataTable2.Rows.Clear();
  1830. }
  1831. if (dt.Rows.Count > 0)
  1832. {
  1833. ultraTabProcess.Tabs["2"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  1834. }
  1835. else
  1836. {
  1837. ultraTabProcess.Tabs["2"].Appearance.BackColor = Color.FromArgb(202, 222, 247);
  1838. }
  1839. dataTable2.AcceptChanges();
  1840. }
  1841. /// <summary>
  1842. /// 查询公差标准数据
  1843. /// </summary>
  1844. /// <param name="msc"></param>
  1845. /// <param name="stdCode"></param>
  1846. private void QueryTolerances(string mscOrAlphaNo, string flag)
  1847. {
  1848. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscSic",
  1849. new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag,
  1850. strD, strH}, this._ob);
  1851. if (dt != null && dt.Rows.Count > 0)
  1852. {
  1853. if (flag == "a")
  1854. {
  1855. FiterSpec(dt);
  1856. FiterSpecCommon(dt);
  1857. }
  1858. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable3, true);
  1859. OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid3);
  1860. }
  1861. else
  1862. {
  1863. dataTable3.Rows.Clear();
  1864. }
  1865. if (dt.Rows.Count > 0)
  1866. {
  1867. ultraTabProcess.Tabs["3"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  1868. }
  1869. else
  1870. {
  1871. ultraTabProcess.Tabs["3"].Appearance.BackColor = Color.FromArgb(202, 222, 247);
  1872. }
  1873. dataTable3.AcceptChanges();
  1874. }
  1875. /// <summary>
  1876. /// 查询探伤标准数据
  1877. /// </summary>
  1878. /// <param name="msc"></param>
  1879. /// <param name="stdCode"></param>
  1880. private void QueryDetection(string mscOrAlphaNo, string flag)
  1881. {
  1882. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscDic",
  1883. new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag,
  1884. strD, strH}, this._ob);
  1885. if (dt != null && dt.Rows.Count > 0)
  1886. {
  1887. if (flag == "a")
  1888. {
  1889. FiterDetection(dt);
  1890. }
  1891. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable4, true);
  1892. OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid4);
  1893. }
  1894. else
  1895. {
  1896. dataTable4.Rows.Clear();
  1897. }
  1898. if (dt.Rows.Count > 0)
  1899. {
  1900. ultraTabProcess.Tabs["4"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  1901. }
  1902. else
  1903. {
  1904. ultraTabProcess.Tabs["4"].Appearance.BackColor = Color.FromArgb(202, 222, 247);
  1905. }
  1906. dataTable4.AcceptChanges();
  1907. }
  1908. /// <summary>
  1909. /// 查询水压标准数据
  1910. /// </summary>
  1911. /// <param name="msc"></param>
  1912. /// <param name="stdCode"></param>
  1913. private void QueryWater(string mscOrAlphaNo, string flag)
  1914. {
  1915. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscWic",
  1916. new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag,
  1917. strD, strH, _specCode, _specStyle}, this._ob);
  1918. if (dt != null && dt.Rows.Count > 0)
  1919. {
  1920. if (flag == "a")
  1921. {
  1922. FiterWater(dt);
  1923. }
  1924. GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable5, true);
  1925. OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid5);
  1926. }
  1927. else
  1928. {
  1929. dataTable5.Rows.Clear();
  1930. }
  1931. if (dt.Rows.Count > 0)
  1932. {
  1933. ultraTabProcess.Tabs["5"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  1934. }
  1935. else
  1936. {
  1937. ultraTabProcess.Tabs["5"].Appearance.BackColor = Color.FromArgb(202, 222, 247);
  1938. }
  1939. dataTable5.AcceptChanges();
  1940. }
  1941. /// <summary>
  1942. /// 查询加工要求
  1943. /// </summary>
  1944. /// <param name="msc"></param>
  1945. /// <param name="stdCode"></param>
  1946. private void QueryProcess(string mscOrAlphaNo, string flag)
  1947. {
  1948. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscGic",
  1949. new Object[] { mscOrAlphaNo, dr["MODEL_CODE"].ToString(), dr["MODEL_DESC"].ToString(), flag }, this._ob);
  1950. if (dt != null && dt.Rows.Count > 0)
  1951. {
  1952. GridHelper.CopyDataToDatatable(ref dt, ref StdProcessc, true);
  1953. OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid6);
  1954. }
  1955. else
  1956. {
  1957. StdProcessc.Rows.Clear();
  1958. }
  1959. if (dt.Rows.Count > 0)
  1960. {
  1961. ultraTabProcess.Tabs["6"].Appearance.BackColor = Color.FromArgb(255, 255, 128);
  1962. }
  1963. else
  1964. {
  1965. ultraTabProcess.Tabs["6"].Appearance.BackColor = Color.FromArgb(202, 222, 247);
  1966. }
  1967. StdProcessc.AcceptChanges();
  1968. }
  1969. ///// <summary>
  1970. ///// 查询加工标准数据
  1971. ///// </summary>
  1972. ///// <param name="msc"></param>
  1973. ///// <param name="stdCode"></param>
  1974. //private void QueryProcess(string msc, string psc,string apleNo)
  1975. //{
  1976. // string modelcode = "";
  1977. // int trueInt = 0;
  1978. // DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryPSCMSCModel", new Object[] { msc, psc }, this._ob);
  1979. // for (int i = 0; i < dt.Rows.Count; i++)
  1980. // {
  1981. // if (dt.Rows[i][0].ToString().Equals(_model))
  1982. // {
  1983. // trueInt = 1;
  1984. // modelcode = _model;
  1985. // break;
  1986. // }
  1987. // }
  1988. // if (trueInt == 0)
  1989. // {
  1990. // for (int i = 0; i < dt.Rows.Count; i++)
  1991. // {
  1992. // if (dt.Rows[i][0].ToString().Contains(_model))
  1993. // {
  1994. // modelcode = _model;
  1995. // break;
  1996. // }
  1997. // }
  1998. // modelcode = "/";
  1999. // }
  2000. // dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryMscPscPro", new Object[] { apleNo, msc, psc, modelcode }, this._ob);
  2001. // if (dt != null && dt.Rows.Count > 0)
  2002. // {
  2003. // GridHelper.CopyDataToDatatable(ref dt, ref this.StdProcessc, true);
  2004. // OrderSpecialInfoTool.SetUltraGridNoEdit(ultraGrid6);
  2005. // }
  2006. // else
  2007. // {
  2008. // StdProcessc.Rows.Clear();
  2009. // }
  2010. //}
  2011. /// <summary>
  2012. /// 选择树节点事件
  2013. /// </summary>
  2014. /// <param name="sender"></param>
  2015. /// <param name="e"></param>
  2016. private void ultraTree_AfterCheck(object sender, NodeEventArgs e)
  2017. {
  2018. ultraTree_AfterActivate(sender, e);
  2019. }
  2020. private void ultraTree_MouseDoubleClick(object sender, MouseEventArgs e)
  2021. {
  2022. //if (!_custAlphaNo.Equals(""))
  2023. //{
  2024. // ultraTree.Nodes["STANDRADKEY"].Nodes[_custAlphaNo].CheckedState = CheckState.Unchecked;
  2025. // _custAlphaNo = "";
  2026. //}
  2027. //if (!_stdCode.Equals(""))
  2028. //{
  2029. // ultraTree.Nodes["STANDRADKEY"].Nodes[_stdCode].CheckedState = CheckState.Unchecked;
  2030. // _stdCode = "";
  2031. //}
  2032. // dataTable1.Rows.Clear();
  2033. // dataTable2.Rows.Clear();
  2034. // dataTable3.Rows.Clear();
  2035. // dataTable4.Rows.Clear();
  2036. // dataTable5.Rows.Clear();
  2037. }
  2038. private void ultraGrid1_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  2039. {
  2040. ultraGrid1.UpdateData();
  2041. //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'");
  2042. //if (drsTreeCustAlpha.Length > 0)
  2043. //{
  2044. // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S")
  2045. // {
  2046. // e.Cell.Row.Cells["CHC"].Value = false;
  2047. // MessageUtil.ShowWarning("评审通过不允许修改!");
  2048. // return;
  2049. // }
  2050. //}
  2051. OrderSpecialInfoTool.setCanEdit(e);
  2052. if (e.Cell.Column.Key.Equals("CHEM_CODE"))
  2053. {
  2054. string chemCode = e.Cell.Value.ToString();
  2055. DataRow[] dr = ((DataTable)ultras[2].DataSource).Select("CHEM_CODE ='" + chemCode + "'");
  2056. if (dr.Length > 0)
  2057. {
  2058. if (dr[0][2].Equals("单一元素"))
  2059. {
  2060. e.Cell.Row.Cells["CHEM_TYPE"].Value = "A";
  2061. }
  2062. else
  2063. {
  2064. e.Cell.Row.Cells["CHEM_TYPE"].Value = "B";
  2065. }
  2066. e.Cell.Row.Cells["CHEM_FORMULA"].Value = dr[0][3];
  2067. }
  2068. }
  2069. }
  2070. private void ultraGrid2_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  2071. {
  2072. ultraGrid2.UpdateData();
  2073. //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'");
  2074. //if (drsTreeCustAlpha.Length > 0)
  2075. //{
  2076. // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S")
  2077. // {
  2078. // e.Cell.Row.Cells["CHC"].Value = false;
  2079. // MessageUtil.ShowWarning("评审通过不允许修改!");
  2080. // return;
  2081. // }
  2082. //}
  2083. if (e.Cell.Column.Key.Equals("PHY_CODE_MAX")) //检验项目
  2084. {
  2085. e.Cell.Row.Cells["PHY_CODE_MIN"].Activation = Activation.AllowEdit;
  2086. string phyNameMax = e.Cell.Text;
  2087. e.Cell.Row.Cells["PHY_NAME_MAX"].Value = phyNameMax;
  2088. e.Cell.Row.Cells["PHY_NAME_MIN"].Value = "";
  2089. e.Cell.Row.Cells["PHY_CODE_MIN"].Value = "";
  2090. e.Cell.Row.Cells["PHY_NAME"].Value = "";
  2091. e.Cell.Row.Cells["PHY_CODE"].Value = "";
  2092. e.Cell.Row.Cells["ITEM_NAME_F"].Value = "";
  2093. e.Cell.Row.Cells["ITEM_CODE_F"].Value = "";
  2094. e.Cell.Row.Cells["ITEM_NAME_W"].Value = "";
  2095. e.Cell.Row.Cells["ITEM_CODE_W"].Value = "";
  2096. e.Cell.Row.Cells["ITEM_NAME_S"].Value = "";
  2097. e.Cell.Row.Cells["ITEM_CODE_S"].Value = "";
  2098. }
  2099. if (e.Cell.Column.Key.Equals("PHY_CODE_MIN")) //取样码
  2100. {
  2101. e.Cell.Row.Cells["PHY_CODE"].Activation = Activation.AllowEdit;
  2102. e.Cell.Row.Cells["PHY_NAME_MIN"].Value = e.Cell.Text;
  2103. e.Cell.Row.Cells["PHY_NAME"].Value = "";
  2104. e.Cell.Row.Cells["PHY_CODE"].Value = "";
  2105. e.Cell.Row.Cells["ITEM_NAME_F"].Value = "";
  2106. e.Cell.Row.Cells["ITEM_CODE_F"].Value = "";
  2107. e.Cell.Row.Cells["ITEM_NAME_W"].Value = "";
  2108. e.Cell.Row.Cells["ITEM_CODE_W"].Value = "";
  2109. e.Cell.Row.Cells["ITEM_NAME_S"].Value = "";
  2110. e.Cell.Row.Cells["ITEM_CODE_S"].Value = "";
  2111. }
  2112. //检验项
  2113. if (e.Cell.Column.Key.Equals("PHY_CODE"))
  2114. {
  2115. e.Cell.Row.Cells["PHY_NAME"].Value = e.Cell.Text;
  2116. //e.Cell.Row.Cells["ITEM_NAME_F"].Value = "";
  2117. //e.Cell.Row.Cells["ITEM_CODE_F"].Value = "";
  2118. //e.Cell.Row.Cells["ITEM_NAME_W"].Value = "";
  2119. //e.Cell.Row.Cells["ITEM_CODE_W"].Value = "";
  2120. //e.Cell.Row.Cells["ITEM_NAME_S"].Value = "";
  2121. //e.Cell.Row.Cells["ITEM_CODE_S"].Value = "";
  2122. }
  2123. UltraGridRow ugr = ultraGrid2.ActiveRow;
  2124. if (e.Cell.Column.Key.Equals("ITEM_CODE_F"))
  2125. {
  2126. UltraGridRow row = ((UltraCombo)e.Cell.EditorComponent).SelectedRow;
  2127. if (row != null)
  2128. {
  2129. ugr.Cells["ITEM_NAME_F"].Value = row.GetValue("ITEM_NAME_F");
  2130. ugr.Cells["ITEM_CODE_F"].Value = row.GetValue("PRIMARY_KEY");
  2131. ugr.Cells["ITEM_NAME_W"].Value = row.GetValue("ITEM_NAME_W");
  2132. ugr.Cells["ITEM_CODE_W"].Value = row.GetValue("PRIMARY_KEY");
  2133. ugr.Cells["ITEM_NAME_S"].Value = row.GetValue("ITEM_NAME_C");
  2134. ugr.Cells["ITEM_CODE_S"].Value = row.GetValue("PRIMARY_KEY");
  2135. }
  2136. }
  2137. else if (e.Cell.Column.Key.Equals("ITEM_CODE_W"))
  2138. {
  2139. UltraGridRow row = ((UltraCombo)e.Cell.EditorComponent).SelectedRow;
  2140. if (row != null)
  2141. {
  2142. ugr.Cells["ITEM_NAME_F"].Value = row.GetValue("ITEM_NAME_F");
  2143. ugr.Cells["ITEM_CODE_F"].Value = row.GetValue("PRIMARY_KEY");
  2144. ugr.Cells["ITEM_NAME_W"].Value = row.GetValue("ITEM_NAME_W");
  2145. ugr.Cells["ITEM_CODE_W"].Value = row.GetValue("PRIMARY_KEY");
  2146. ugr.Cells["ITEM_NAME_S"].Value = row.GetValue("ITEM_NAME_C");
  2147. ugr.Cells["ITEM_CODE_S"].Value = row.GetValue("PRIMARY_KEY");
  2148. }
  2149. }
  2150. else if (e.Cell.Column.Key.Equals("ITEM_CODE_S"))
  2151. {
  2152. UltraGridRow row = ((UltraCombo)e.Cell.EditorComponent).SelectedRow;
  2153. if (row != null)
  2154. {
  2155. ugr.Cells["ITEM_NAME_F"].Value = row.GetValue("ITEM_NAME_F");
  2156. ugr.Cells["ITEM_CODE_F"].Value = row.GetValue("PRIMARY_KEY");
  2157. ugr.Cells["ITEM_NAME_W"].Value = row.GetValue("ITEM_NAME_W");
  2158. ugr.Cells["ITEM_CODE_W"].Value = row.GetValue("PRIMARY_KEY");
  2159. ugr.Cells["ITEM_NAME_S"].Value = row.GetValue("ITEM_NAME_C");
  2160. ugr.Cells["ITEM_CODE_S"].Value = row.GetValue("PRIMARY_KEY");
  2161. }
  2162. }
  2163. else if (e.Cell.Column.Key.Equals("STDMIN_SIGN1") || e.Cell.Column.Key.Equals("CHC"))
  2164. {
  2165. if (e.Cell.Row.Cells["STDMIN_SIGN1"].Value.ToString() == "=")
  2166. {
  2167. e.Cell.Row.Cells["STDMIN1"].EditorComponent = ultraTextEditor2;
  2168. }
  2169. else
  2170. {
  2171. e.Cell.Row.Cells["STDMIN1"].EditorComponent = null;
  2172. }
  2173. }
  2174. if (e.Cell.Column.Key.Equals("CHC"))
  2175. {
  2176. Activation activation = Activation.ActivateOnly;
  2177. if (Convert.ToBoolean(e.Cell.Value))
  2178. {
  2179. activation = Activation.AllowEdit;
  2180. }
  2181. CellsCollection cells = e.Cell.Row.Cells;
  2182. for (int i = 0; i < cells.Count; i++)
  2183. {
  2184. if (!cells[i].Column.Key.Equals("CHC"))
  2185. {
  2186. e.Cell.Row.Cells[i].Activation = activation;
  2187. }
  2188. if (cells[i].Column.Key.Equals("PHY_CODE_MIN") && cells[i].Value.ToString().Equals(""))
  2189. {
  2190. e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
  2191. }
  2192. if (cells[i].Column.Key.Equals("PHY_CODE") && cells[i].Value.ToString().Equals(""))
  2193. {
  2194. e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
  2195. }
  2196. if (cells[i].Column.Key.Equals("ITEM_NAME_F") && cells[i].Value.ToString().Equals(""))
  2197. {
  2198. e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
  2199. }
  2200. if (cells[i].Column.Key.Equals("ITEM_NAME_W") && cells[i].Value.ToString().Equals(""))
  2201. {
  2202. e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
  2203. }
  2204. if (cells[i].Column.Key.Equals("ITEM_NAME_S") && cells[i].Value.ToString().Equals(""))
  2205. {
  2206. e.Cell.Row.Cells[i].Activation = Activation.ActivateOnly;
  2207. }
  2208. }
  2209. }
  2210. }
  2211. private void ultraGrid3_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  2212. {
  2213. ultraGrid3.UpdateData();
  2214. //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'");
  2215. //if (drsTreeCustAlpha.Length > 0)
  2216. //{
  2217. // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S")
  2218. // {
  2219. // e.Cell.Row.Cells["CHC"].Value = false;
  2220. // MessageUtil.ShowWarning("评审通过不允许修改!");
  2221. // return;
  2222. // }
  2223. //}
  2224. if (e.Cell.Column.Key.Equals("BIAS_CODE")) //公差主项
  2225. {
  2226. e.Cell.Row.Cells["BIAS_NAME"].Value = e.Cell.Text;
  2227. }
  2228. if (e.Cell.Column.Key == "STD_MIN_FORMULA_V1")
  2229. {
  2230. if (e.Cell.Row.Cells["STD_MAX_FORMULA_V1"].Value.ToString() == "True")
  2231. {
  2232. e.Cell.Row.Cells["STD_MAX_FORMULA_V1"].Value = false;
  2233. }
  2234. }
  2235. else if (e.Cell.Column.Key == "STD_MAX_FORMULA_V1")
  2236. {
  2237. if (e.Cell.Row.Cells["STD_MIN_FORMULA_V1"].Value.ToString() == "True")
  2238. {
  2239. e.Cell.Row.Cells["STD_MIN_FORMULA_V1"].Value = false;
  2240. }
  2241. }
  2242. OrderSpecialInfoTool.setCanEdit(e);
  2243. }
  2244. private void ultraGrid4_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  2245. {
  2246. ultraGrid4.UpdateData();
  2247. //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'");
  2248. //if (drsTreeCustAlpha.Length > 0)
  2249. //{
  2250. // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S")
  2251. // {
  2252. // e.Cell.Row.Cells["CHC"].Value = false;
  2253. // MessageUtil.ShowWarning("评审通过不允许修改!");
  2254. // return;
  2255. // }
  2256. //}
  2257. //检验项
  2258. if (e.Cell.Column.Key.Equals("PHY_CODE"))
  2259. {
  2260. e.Cell.Row.Cells["PHY_NAME"].Value = e.Cell.Text;
  2261. e.Cell.Row.Cells["STD_CODE1"].Value = "";
  2262. e.Cell.Row.Cells["STD_DESC1"].Value = "";
  2263. e.Cell.Row.Cells["LV_CODE1"].Value = "";
  2264. e.Cell.Row.Cells["LV_DESC1"].Value = "";
  2265. }
  2266. //探伤位置
  2267. if (e.Cell.Column.Key.Equals("POSITION_CODE"))
  2268. {
  2269. e.Cell.Row.Cells["POSITION_DESC"].Value = e.Cell.Text;
  2270. }
  2271. OrderSpecialInfoTool.setCanEdit(e);
  2272. }
  2273. private void ultraGrid5_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  2274. {
  2275. ultraGrid5.UpdateData();
  2276. DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'");
  2277. //if (drsTreeCustAlpha.Length > 0)
  2278. //{
  2279. // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S")
  2280. // {
  2281. // e.Cell.Row.Cells["CHC"].Value = false;
  2282. // MessageUtil.ShowWarning("评审通过不允许修改!");
  2283. // return;
  2284. // }
  2285. //}
  2286. OrderSpecialInfoTool.setCanEdit(e);
  2287. if (e.Cell.Column.Key == "PRESSURE_Y1")
  2288. {
  2289. if (e.Cell.Value.ToString() != "")
  2290. {
  2291. //英制压力转公制压力系数为0.00689476
  2292. e.Cell.Row.Cells["PRESSURE1"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) * 0.00689476, 2);
  2293. }
  2294. else
  2295. {
  2296. e.Cell.Row.Cells["PRESSURE1"].Value = "";
  2297. }
  2298. }
  2299. else if (e.Cell.Column.Key == "PRESSURE1")
  2300. {
  2301. if (e.Cell.Value.ToString() != "")
  2302. {
  2303. if (double.Parse(e.Cell.Value.ToString()) > 6894.76)
  2304. {
  2305. MessageUtil.ShowWarning("公制压力上限为68900");
  2306. e.Cell.Row.Cells["PRESSURE1"].Value = 6894.76;
  2307. }
  2308. //公制压力转英制压力系数为14.5
  2309. e.Cell.Row.Cells["PRESSURE_Y1"].Value = Math.Round(double.Parse(e.Cell.Value.ToString()) / 0.00689476, 2);
  2310. }
  2311. else
  2312. {
  2313. e.Cell.Row.Cells["PRESSURE_Y1"].Value = "";
  2314. }
  2315. }
  2316. }
  2317. /// <summary>
  2318. /// 初始化下拉框
  2319. /// </summary>
  2320. private void InitDrop()
  2321. {
  2322. ultraTextEditor2 = new UltraTextEditor();
  2323. ultraTextEditor2.Visible = false;
  2324. EditorButton btn = new EditorButton();
  2325. btn.Text = "?";
  2326. ultraTextEditor2.ButtonsRight.Add(btn);
  2327. ultraTextEditor2.EditorButtonClick += new EditorButtonEventHandler(ultraTextEditor2_EditorButtonClick);
  2328. for (int i = 0; i < ultras.Length; i++)
  2329. {
  2330. ultras[i] = new UltraComboEditor();
  2331. ultras[i].DropDownListWidth = -1;
  2332. Controls.Add(ultras[i]);
  2333. ultras[i].Visible = false;
  2334. }
  2335. //下限
  2336. OrderSpecialInfoTool.NitializeSignMin(ultras[0]);
  2337. //化学下限符号
  2338. OrderSpecialInfoTool.BindColumn(ultras[0], "STDMIN_SIGN1", ultraGrid1.DisplayLayout.Bands[0]);
  2339. OrderSpecialInfoTool.BindColumn(ultras[0], "STDMIN_SIGN1", ultraGrid2.DisplayLayout.Bands[0]);
  2340. //上限
  2341. OrderSpecialInfoTool.NitializeSignMax(ultras[1]);
  2342. //标准范围上限符号
  2343. OrderSpecialInfoTool.BindColumn(ultras[1], "STDMAX_SIGN1", ultraGrid1.DisplayLayout.Bands[0]);
  2344. OrderSpecialInfoTool.BindColumn(ultras[1], "STDMAX_SIGN1", ultraGrid2.DisplayLayout.Bands[0]);
  2345. //化学元素描述
  2346. OrderSpecialInfoTool.NitializeChemicalElement(ultras[2], false, this._ob);
  2347. OrderSpecialInfoTool.BindColumn(ultras[2], "CHEM_CODE", ultraGrid1.DisplayLayout.Bands[0]);
  2348. //公差项
  2349. OrderSpecialInfoTool.NitializeTolerance(ultras[3], false, this._ob);
  2350. OrderSpecialInfoTool.BindColumn(ultras[3], "BIAS_CODE", ultraGrid3.DisplayLayout.Bands[0]);
  2351. //检验项
  2352. OrderSpecialInfoTool.NitializeDetectionPhy(ultras[4], false, this._ob);
  2353. OrderSpecialInfoTool.BindColumn(ultras[4], "PHY_CODE", ultraGrid4.DisplayLayout.Bands[0]);
  2354. //探伤位置
  2355. OrderSpecialInfoTool.NitializeDetectionPosition(ultras[5], true, this._ob);
  2356. OrderSpecialInfoTool.BindColumn(ultras[5], "POSITION_CODE1", ultraGrid4.DisplayLayout.Bands[0]);
  2357. ////探伤标准
  2358. //OrderSpecialInfoTool.NitializeDetectionStandard(ultras[6], true, this._ob);
  2359. //OrderSpecialInfoTool.BindColumn(ultras[6], "STD_DESC1", ultraGrid4.DisplayLayout.Bands[0]);
  2360. ////探伤级别
  2361. //OrderSpecialInfoTool.NitializeDetectionLV(ultras[7], true, this._ob);
  2362. //OrderSpecialInfoTool.BindColumn(ultras[7], "LV_CODE1", ultraGrid4.DisplayLayout.Bands[0]);
  2363. //理化项目
  2364. OrderSpecialInfoTool.NitializePhyMax(ultras[9], false, this._ob);
  2365. OrderSpecialInfoTool.BindColumn(ultras[9], "PHY_CODE_MAX", ultraGrid2.DisplayLayout.Bands[0]);
  2366. //加工标准工序点
  2367. OrderSpecialInfoTool.NitializeStationCode(ultras[10], false, this._ob);
  2368. OrderSpecialInfoTool.BindColumn(ultras[10], "STATION_DESC", ultraGrid6.DisplayLayout.Bands[0]);
  2369. ultras[11].DataSource = ClsBaseInfo.GetComBaseInfo("4023", Ob);
  2370. ultras[11].ValueMember = "BASECODE";
  2371. ultras[11].DisplayMember = "BASENAME";
  2372. ultraGrid4.DisplayLayout.Bands[0].Columns["GROOVE_POS1"].EditorComponent = ultras[11];
  2373. ultraGrid4.DisplayLayout.Bands[0].Columns["GROOVE_POS1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2374. ultras[12].DataSource = ClsBaseInfo.GetComBaseInfo("4024", Ob);
  2375. ultras[12].ValueMember = "BASECODE";
  2376. ultras[12].DisplayMember = "BASENAME";
  2377. ultraGrid4.DisplayLayout.Bands[0].Columns["GROOVE_DIR1"].EditorComponent = ultras[12];
  2378. ultraGrid4.DisplayLayout.Bands[0].Columns["GROOVE_DIR1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2379. ultras[13].DataSource = ClsBaseInfo.GetComBaseInfo("4011", Ob);
  2380. ultras[13].ValueMember = "BASECODE";
  2381. ultras[13].DisplayMember = "BASENAME";
  2382. ultraGrid4.DisplayLayout.Bands[0].Columns["RATE1"].EditorComponent = ultras[13];
  2383. ultraGrid4.DisplayLayout.Bands[0].Columns["RATE1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2384. UltraComboEditor cmbWtr = new UltraComboEditor();
  2385. this.Controls.Add(cmbWtr);
  2386. cmbWtr.Visible = false;
  2387. cmbWtr.DropDownListWidth = -1;
  2388. ClsBaseInfo.FillWtrExpress(cmbWtr, Ob, true);
  2389. ultraGrid5.DisplayLayout.Bands[0].Columns["FORMULA1"].EditorComponent = cmbWtr;
  2390. ultraGrid5.DisplayLayout.Bands[0].Columns["FORMULA1"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2391. ultraGrid5.DisplayLayout.Bands[0].Columns["FORMULA"].EditorComponent = cmbWtr;
  2392. ultraGrid5.DisplayLayout.Bands[0].Columns["FORMULA"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
  2393. }
  2394. private void ultraTextEditor2_EditorButtonClick(object sender, EditorButtonEventArgs e)
  2395. {
  2396. UltraGridRow ugr = ultraGrid2.ActiveRow;
  2397. if (ugr == null)
  2398. return;
  2399. if (ugr.Cells["PHY_CODE"].Text == "")
  2400. {
  2401. MessageUtil.ShowWarning("请先选择检验项!");
  2402. return;
  2403. }
  2404. FrmComMscPhyStdNote fpn = new FrmComMscPhyStdNote();
  2405. fpn.Pic = ugr.Cells["PIC"].Value.ToString();
  2406. fpn.Index = ugr.Cells["INDEX_SEQ"].Value.ToString();
  2407. fpn.NewOb = this.Ob;
  2408. fpn.PhyCode = ugr.Cells["PHY_CODE"].Value.ToString();
  2409. fpn.PhyName = ugr.Cells["PHY_CODE"].Text;
  2410. fpn.StdMin = ugr.Cells["STDMIN1"].Value.ToString();
  2411. fpn.StdGuid = ugr.Cells["GUID"].Value.ToString();
  2412. fpn.IsCustAlphaPopup = true;
  2413. fpn.ShowDialog();
  2414. if (fpn.NoteIndex != null)
  2415. ugr.Cells["STDMIN1"].Value = fpn.NoteIndex;
  2416. ugr.Cells["GUID"].Value = fpn.StdGuid;
  2417. }
  2418. /// <summary>
  2419. /// 界面字段合成字符串
  2420. /// </summary>
  2421. /// <param name="description"></param>
  2422. private string GetDescription()
  2423. {
  2424. string description = "";
  2425. foreach (UltraGridRow ugr in ultraGrid1.Rows)
  2426. {
  2427. }
  2428. return description;
  2429. }
  2430. private void ultraGrid1_AfterRowInsert(object sender, RowEventArgs e)
  2431. {
  2432. OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid1, e);
  2433. e.Row.Cells["ISCHECK"].Value = true;
  2434. e.Row.Cells["ISJUDGE"].Value = true;
  2435. e.Row.Cells["ISQUOTE"].Value = true;
  2436. }
  2437. private void ultraGrid2_AfterRowInsert(object sender, RowEventArgs e)
  2438. {
  2439. OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid2, e);
  2440. e.Row.Cells["ISCHECK"].Value = true;
  2441. e.Row.Cells["ISJUDGE"].Value = true;
  2442. e.Row.Cells["ISQUOTE"].Value = true;
  2443. }
  2444. private void ultraGrid3_AfterRowInsert(object sender, RowEventArgs e)
  2445. {
  2446. OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid3, e);
  2447. e.Row.Cells["ISCHECK"].Value = true;
  2448. e.Row.Cells["STD_MIN_FORMULA_V1"].Value = true;
  2449. }
  2450. private void ultraGrid4_AfterRowInsert(object sender, RowEventArgs e)
  2451. {
  2452. OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid4, e);
  2453. }
  2454. private void ultraGrid5_AfterRowInsert(object sender, RowEventArgs e)
  2455. {
  2456. OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid5, e);
  2457. }
  2458. private void ultraGrid6_AfterRowInsert(object sender, RowEventArgs e)
  2459. {
  2460. OrderSpecialInfoTool.SetInsertRowUnEdit(ultraGrid6, e);
  2461. }
  2462. private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e)
  2463. {
  2464. }
  2465. private bool CheckChem(SlmCustChemObject com, UltraGridRow chemRow)
  2466. {
  2467. if (com.ChemCode.Equals(""))
  2468. {
  2469. errMessage = "化学元素不能为空";
  2470. chemRow.Cells["CHEM_CODE"].Activate();
  2471. return false;
  2472. }
  2473. int sameCnt = 0;
  2474. sameCnt = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"
  2475. && a.GetValue("CHEM_CODE") == com.ChemCode).Count();
  2476. if (sameCnt >= 2)
  2477. {
  2478. errMessage = "成分标准:化学元素" + com.ChemName + "重复!";
  2479. chemRow.Cells["CHEM_CODE"].Activate();
  2480. return false;
  2481. }
  2482. if (com.StdmaxSign.Equals("") && com.StdminSign.Equals(""))
  2483. {
  2484. errMessage = "成分要求:请选择客户要求:上限符号或者下限符号";
  2485. chemRow.Cells["STDMIN_SIGN1"].Activate();
  2486. return false;
  2487. }
  2488. if (!com.StdminSign.Equals(""))
  2489. {
  2490. if (com.Stdmin.Equals(""))
  2491. {
  2492. errMessage = "成分要求:请输入客户要求下限值";
  2493. chemRow.Cells["STDMIN1"].Activate();
  2494. return false;
  2495. }
  2496. if (!StringUtil.IsNumber(com.Stdmin))
  2497. {
  2498. errMessage = "成分要求:客户要求下限值请输入数字";
  2499. chemRow.Cells["STDMIN1"].Activate();
  2500. return false;
  2501. }
  2502. }
  2503. else
  2504. {
  2505. if (!com.Stdmin.Equals(""))
  2506. {
  2507. errMessage = "成分要求:请选择客户要求下限符号";
  2508. chemRow.Cells["STDMIN_SIGN1"].Activate();
  2509. return false;
  2510. }
  2511. }
  2512. if (!com.StdmaxSign.Equals(""))
  2513. {
  2514. if (com.Stdmax.Equals(""))
  2515. {
  2516. errMessage = "成分要求:请输入客户要求上限值";
  2517. chemRow.Cells["STDMAX1"].Activate();
  2518. return false;
  2519. }
  2520. if (!StringUtil.IsNumber(com.Stdmax))
  2521. {
  2522. errMessage = "成分要求:客户要求上限值请输入数字";
  2523. chemRow.Cells["STDMAX1"].Activate();
  2524. return false;
  2525. }
  2526. }
  2527. else
  2528. {
  2529. if (!com.Stdmax.Equals(""))
  2530. {
  2531. errMessage = "成分要求:请选择客户要求上限符号";
  2532. chemRow.Cells["STDMAX_SIGN1"].Activate();
  2533. return false;
  2534. }
  2535. }
  2536. if (!com.Stdmax.Equals("") && !com.Stdmin.Equals("") && Convert.ToDouble(com.Stdmax) < Convert.ToDouble(com.Stdmin))
  2537. {
  2538. errMessage = "成分要求:客户要求下限值必须小于上限值";
  2539. chemRow.Cells["STDMIN1"].Activate();
  2540. return false;
  2541. }
  2542. return true;
  2543. }
  2544. private bool CheckPhy(SlmCustPhyObject com, UltraGridRow urg)
  2545. {
  2546. if (com.PhyCodeMax == "")
  2547. {
  2548. errMessage = "理化要求:请选择项目";
  2549. urg.SetCellActive("PHY_CODE_MAX");
  2550. return false;
  2551. }
  2552. if (com.PhyCodeMin == "")
  2553. {
  2554. errMessage = "理化要求:请选择试样组";
  2555. urg.SetCellActive("PHY_CODE_MIN");
  2556. return false;
  2557. }
  2558. if (com.PhyCode == "")
  2559. {
  2560. errMessage = "理化要求:请选择检验项";
  2561. urg.SetCellActive("PHY_CODE");
  2562. return false;
  2563. }
  2564. int sameCnt = 0;
  2565. sameCnt = ultraGrid2.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"
  2566. && a.GetValue("PHY_CODE_MAX") == com.PhyCodeMax
  2567. && a.GetValue("PHY_CODE_MIN") == com.PhyCodeMin && a.GetValue("PHY_CODE") == com.PhyCode
  2568. && (a.GetValue("ITEM_CODE_F") == com.ItemCodeF)
  2569. && (a.GetValue("ITEM_CODE_W") == com.ItemCodeW)
  2570. && (a.GetValue("ITEM_CODE_S") == com.ItemCodeS)).Count();
  2571. if (sameCnt >= 2)
  2572. {
  2573. errMessage = "理化要求:检验项目重复";
  2574. urg.Activate();
  2575. return false;
  2576. }
  2577. if (com.StdmaxSign.Equals("") && com.StdminSign.Equals(""))
  2578. {
  2579. errMessage = "理化要求:请选择客户要求上限符号或者下限符号";
  2580. urg.Cells["STDMIN_SIGN1"].Activate();
  2581. return false;
  2582. }
  2583. if (!com.StdminSign.Equals(""))
  2584. {
  2585. if (com.Stdmin.Equals(""))
  2586. {
  2587. errMessage = "理化要求:请输入客户要求下限值";
  2588. urg.Cells["STDMIN1"].Activate();
  2589. return false;
  2590. }
  2591. if (com.StdminSign != "=")
  2592. {
  2593. if (!StringUtil.IsNumber(com.Stdmin))
  2594. {
  2595. errMessage = "理化要求:客户要求下限值请输入数字";
  2596. urg.Cells["STDMIN1"].Activate();
  2597. return false;
  2598. }
  2599. }
  2600. }
  2601. else
  2602. {
  2603. if (!com.Stdmin.Equals(""))
  2604. {
  2605. errMessage = "理化要求:请选择客户要求下限符号";
  2606. urg.Cells["STDMIN_SIGN1"].Activate();
  2607. return false;
  2608. }
  2609. }
  2610. if (!com.StdmaxSign.Equals(""))
  2611. {
  2612. if (com.Stdmax.Equals(""))
  2613. {
  2614. errMessage = "理化要求:请输入客户要求上限值";
  2615. urg.Cells["STDMAX1"].Activate();
  2616. return false;
  2617. }
  2618. if (!StringUtil.IsNumber(com.Stdmax))
  2619. {
  2620. errMessage = "理化要求:客户要求上限值请输入数字";
  2621. urg.Cells["STDMAX1"].Activate();
  2622. return false;
  2623. }
  2624. }
  2625. else
  2626. {
  2627. if (!com.Stdmax.Equals(""))
  2628. {
  2629. errMessage = "理化要求:请选择客户要求上限符号";
  2630. urg.Cells["STDMAX_SIGN1"].Activate();
  2631. return false;
  2632. }
  2633. }
  2634. if (!com.Stdmax.Equals("") && !com.Stdmin.Equals("") && Convert.ToDouble(com.Stdmax) < Convert.ToDouble(com.Stdmin))
  2635. {
  2636. errMessage = "理化要求:客户要求下限值必须小于上限值";
  2637. urg.Cells["STDMIN1"].Activate();
  2638. return false;
  2639. }
  2640. return true;
  2641. }
  2642. private bool CheckWater(SlmCustWaterObject com, UltraGridRow waterRow)
  2643. {
  2644. int cnt = 0;
  2645. cnt = ultraGrid5.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True").Count();
  2646. if (cnt >= 2)
  2647. {
  2648. errMessage = "水压要求:只能维护一条记录";
  2649. waterRow.Activate();
  2650. return false;
  2651. }
  2652. if (com.Formula == "" && com.PressureY.Equals(""))
  2653. {
  2654. errMessage = "水压要求:请输入试验压力英制(公制)或者试验压力公式!";
  2655. waterRow.Cells["PRESSURE"].Activate();
  2656. return false;
  2657. }
  2658. if (com.SaveTime.Equals(""))
  2659. {
  2660. errMessage = "水压要求:客户要求请输入保压时间";
  2661. waterRow.Cells["SAVE_TIME1"].Activate();
  2662. return false;
  2663. }
  2664. else if (com.SaveTime.TryParseDecimal() == false)
  2665. {
  2666. errMessage = "水压要求:客户要求保压时间,只能为数字类型!";
  2667. waterRow.Cells["SAVE_TIME1"].Activate();
  2668. return false;
  2669. }
  2670. return true;
  2671. }
  2672. private bool CheckAlphaPro(SlmCustAlphaProObject com, UltraGridRow proRow)
  2673. {
  2674. int cnt = 0;
  2675. cnt = ultraGrid6.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"
  2676. && a.GetValue("STATION_CODE") == com.StationCode).Count();
  2677. if (cnt >= 2)
  2678. {
  2679. errMessage = "加工要求:工序点重复";
  2680. proRow.Cells["STATION_DESC"].Activate();
  2681. return false;
  2682. }
  2683. if (com.StationCode.Equals(""))
  2684. {
  2685. errMessage = "加工要求:客户要求请选择工序";
  2686. proRow.Cells["STATION_DESC"].Activate();
  2687. return false;
  2688. }
  2689. if (com.ValueText == "" && com.ValueNum == "")
  2690. {
  2691. errMessage = "加工要求:客户要求客户文本和客户数值必须输入一个!";
  2692. proRow.Cells["ALPHA_VALUE_TEXT"].Activate();
  2693. return false;
  2694. }
  2695. if (!StringUtil.IsNumber(com.ValueNum))
  2696. {
  2697. errMessage = "加工要求:客户要求值(数值型)请输入数字!";
  2698. proRow.Cells["ALPHA_VALUE_NUM"].Activate();
  2699. return false;
  2700. }
  2701. return true;
  2702. }
  2703. private bool CheckDete(SlmCustDetectionObject com, UltraGridRow detRow)
  2704. {
  2705. if (com.PhyCode.Equals(""))
  2706. {
  2707. errMessage = "探伤要求:请选择材质检验项!";
  2708. detRow.Cells["PHY_CODE"].Activate();
  2709. return false;
  2710. }
  2711. int sameCnt = 0;
  2712. sameCnt = ultraGrid4.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"
  2713. && a.GetValue("PHY_CODE") == com.PhyCode && a.GetValue("POSITION_CODE1") == com.PositionCode
  2714. && a.GetValue("STD_DESC1") == com.StdDesc && a.GetValue("LV_CODE1") == com.LvCode
  2715. && a.GetValue("COVERAGE1") == com.Coverage && a.GetText("GROOVE_DIR1") == com.GrooveDir
  2716. && a.GetText("GROOVE_POS1") == com.GroovePos && a.GetValue("RATE1") == com.Rate
  2717. && a.GetValue("DESC_VAL1") == com.DescVal).Count();
  2718. if (sameCnt >= 2)
  2719. {
  2720. errMessage = "探伤要求:探伤要求重复!";
  2721. detRow.Cells["PHY_CODE"].Activate();
  2722. return false;
  2723. }
  2724. if (com.PositionCode.Equals(""))
  2725. {
  2726. errMessage = "探伤要求:客户要求请选择探伤位置!";
  2727. detRow.Cells["POSITION_CODE1"].Activate();
  2728. return false;
  2729. }
  2730. if (com.StdDesc == "")
  2731. {
  2732. errMessage = "探伤要求:请选择参考标准";
  2733. detRow.Cells["STD_DESC1"].Activate();
  2734. return false;
  2735. }
  2736. if (com.LvCode == "")
  2737. {
  2738. errMessage = "探伤要求:请选择探伤级别!";
  2739. detRow.Cells["LV_CODE1"].Activate();
  2740. return false;
  2741. }
  2742. if (com.Coverage == "")
  2743. {
  2744. errMessage = "探伤要求:请选择探伤覆盖率!";
  2745. detRow.Cells["COVERAGE1"].Activate();
  2746. return false;
  2747. }
  2748. return true;
  2749. }
  2750. private bool CheckSpec(SlmCustSpecObject com, UltraGridRow specRow)
  2751. {
  2752. if (com.BiasCode.Equals(""))
  2753. {
  2754. errMessage = "公差要求:请选择公差项";
  2755. specRow.Cells["BIAS_CODE"].Activate();
  2756. return false;
  2757. }
  2758. int sameCnt = 0;
  2759. sameCnt = ultraGrid3.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True"
  2760. && a.GetValue("BIAS_CODE") == com.BiasCode).Count();
  2761. if (sameCnt >= 2)
  2762. {
  2763. errMessage = "公差要求:公差项重复";
  2764. specRow.Cells["BIAS_CODE"].Activate();
  2765. return false;
  2766. }
  2767. if (com.StdMinVal.Equals("") && com.StdMaxVal.Equals("")
  2768. && com.StdMaxPercent.Equals("") && com.StdMinPercent.Equals(""))
  2769. {
  2770. errMessage = "公差标准:客户要求请输入一组标准值";
  2771. specRow.Cells["STD_MIN_VAL1"].Activate();
  2772. return false;
  2773. }
  2774. if (com.StdMaxPercent.Equals(""))
  2775. {
  2776. if (!com.StdMinPercent.Equals(""))
  2777. {
  2778. errMessage = "公差要求:客户要求请输入上偏差值(%)";
  2779. specRow.Cells["STD_MAX_PERCENT1"].Activate();
  2780. return false;
  2781. }
  2782. }
  2783. else
  2784. {
  2785. if (com.StdMinPercent.Equals(""))
  2786. {
  2787. errMessage = "公差要求:客户要求请输入下偏差值(%)";
  2788. specRow.Cells["STD_MIN_PERCENT1"].Activate();
  2789. return false;
  2790. }
  2791. else if((com.BiasCode == "404019" || com.BiasCode == "404020") && decimal.Parse(com.StdMinPercent) > 0)
  2792. {
  2793. errMessage = "(管体/管端壁厚)下偏差值(%)不能为正数";
  2794. specRow.Cells["STD_MIN_PERCENT1"].Activate();
  2795. return false;
  2796. }
  2797. }
  2798. if (com.StdMaxVal.Equals(""))
  2799. {
  2800. if (!com.StdMinVal.Equals(""))
  2801. {
  2802. errMessage = "公差要求:客户要求请输入上偏差值(mm)";
  2803. specRow.Cells["STD_MAX_VAL1"].Activate();
  2804. return false;
  2805. }
  2806. }
  2807. else
  2808. {
  2809. if (com.StdMinVal.Equals(""))
  2810. {
  2811. errMessage = "公差要求:客户要求请输入下偏差值(mm)";
  2812. specRow.Cells["STD_MIN_VAL1"].Activate();
  2813. return false;
  2814. }
  2815. else if ((com.BiasCode == "404019" || com.BiasCode == "404020") && decimal.Parse(com.StdMinVal) > 0)
  2816. {
  2817. errMessage = "(管体/管端壁厚)下偏差值(mm)不能为正数";
  2818. specRow.Cells["STD_MIN_VAL1"].Activate();
  2819. return false;
  2820. }
  2821. }
  2822. if (!com.StdMaxPercent.Equals("") && !StringUtil.IsNumber(com.StdMaxPercent))
  2823. {
  2824. errMessage = "上偏差值(%)只能输入数字!";
  2825. specRow.Cells["STD_MAX_PERCENT1"].Activate();
  2826. return false;
  2827. }
  2828. else if (!com.StdMinPercent.Equals("") && !StringUtil.IsNumber(com.StdMinPercent))
  2829. {
  2830. errMessage = "下偏差值(%)只能输入数字!";
  2831. specRow.Cells["STD_MIN_PERCENT1"].Activate();
  2832. return false;
  2833. }
  2834. else if (!com.StdMaxVal.Equals("") && !com.StdMaxVal.TryParseDecimal())
  2835. {
  2836. errMessage = "上偏差值(mm)只能输入数字!";
  2837. specRow.Cells["STD_MAX_VAL1"].Activate();
  2838. return false;
  2839. }
  2840. else if (!com.StdMinVal.Equals("") && !com.StdMinVal.TryParseDecimal())
  2841. {
  2842. errMessage = "下偏差值(mm)只能输入数字!";
  2843. specRow.Cells["STD_MIN_VAL1"].Activate();
  2844. return false;
  2845. }
  2846. if (com.StdMinPercent != "" && com.StdMinVal != "")
  2847. {
  2848. if (com.StdMinFormulaV == "0" && com.StdMaxFormulaV == "0")
  2849. {
  2850. errMessage = "公差要求:请选择取最小值或取最大值";
  2851. specRow.Cells["STD_MIN_FORMULA_V1"].Activate();
  2852. return false;
  2853. }
  2854. }
  2855. return true;
  2856. }
  2857. /// <summary>
  2858. /// ultragrid所有字段组成字符串
  2859. /// </summary>
  2860. /// <returns></returns>
  2861. private string GetUltraData()
  2862. {
  2863. bool isMsc = false;
  2864. if (ultraTree.ActiveNode.Tag != null && ultraTree.ActiveNode.Tag.ToString() == "a")
  2865. {
  2866. isMsc = true;
  2867. }
  2868. string[] strArrayChem;
  2869. string[] strArrayPhy;
  2870. string[] strArraySpec;
  2871. string[] strArrayDete;
  2872. string[] strArrayWater;
  2873. string[] strArrayPro;
  2874. if (isMsc)
  2875. {
  2876. strArrayChem = new string[] { "CHEM_CODE", "CHEM_FORMULA", "STDMIN_SIGN", "STDMIN", "STDMAX_SIGN", "STDMAX" };
  2877. strArrayPhy = new string[] { "PHY_NAME_MAX", "PHY_NAME_MIN", "PHY_NAME", "ITEM_NAME_F", "ITEM_NAME_S", "ITEM_NAME_P", "ITEM_NAME_W",
  2878. "STDMIN_SIGN", "STDMIN", "STDMAX_SIGN", "STDMAX", "JUDGE_BASIS_DESC", "STD_CHOOSE_DESC", "STDMIN_SIGN2", "STDMIN2",
  2879. "STDMAX_SIGN2", "STDMAX2", "ADDCONDITION_DESC", "ADDSTDCON_DESC", "ADDPERCENT", "ADDSTD_MIN_SIGN", "ADDSTD_MIN",
  2880. "ADDSTD_MAX_SIGN", "ADDSTD_MAX","STDMEMO"};
  2881. strArraySpec = new string[] { "BIAS_NAME", "STD_MIN_VAL", "STD_MAX_VAL", "STD_MIN_PERCENT", "STD_MAX_PERCENT", "STD_MIN_FORMULA", "STD_MAX_FORMULA",
  2882. "STD_MIN_FORMULA_V" };
  2883. strArrayDete = new string[] { "PHY_NAME", "POSITION_DESC", "STD_DESC", "LV_DESC", "COVERAGE", "GROOVE_POS", "GROOVE_DIR", "DESC_RATE", "DESC_VAL", "MEMO" };
  2884. strArrayWater = new string[] { "PRESSURE_Y", "PRESSURE", "SAVE_TIME" };
  2885. strArrayPro = new string[] { "STATION_DESC", "VALUE_TEXT", "VALUE_NUM", "VALUE_MEMO" };
  2886. }
  2887. else
  2888. {
  2889. strArrayChem = new string[] { "CHEM_CODE", "CHEM_FORMULA", "STDMIN_SIGN1", "STDMIN1", "STDMAX_SIGN1", "STDMAX1", "STDMEMO1" };
  2890. strArrayPhy = new string[] { "PHY_NAME_MAX", "PHY_NAME_MIN", "PHY_NAME", "ITEM_NAME_F", "ITEM_NAME_S", "ITEM_NAME_P", "ITEM_NAME_W",
  2891. "STDMIN_SIGN1", "STDMIN1", "STDMAX_SIGN1", "STDMAX1", "JUDGE_BASIS_DESC", "STD_CHOOSE_DESC", "STDMIN_SIGN2", "STDMIN2",
  2892. "STDMAX_SIGN2", "STDMAX2", "ADDCONDITION_DESC", "ADDSTDCON_DESC", "ADDPERCENT", "ADDSTD_MIN_SIGN", "ADDSTD_MIN",
  2893. "ADDSTD_MAX_SIGN", "ADDSTD_MAX", "STDMEMO1","STDMEMO"};
  2894. strArraySpec = new string[] { "BIAS_NAME", "STD_MIN_VAL1", "STD_MAX_VAL1", "STD_MIN_PERCENT1", "STD_MAX_PERCENT1",
  2895. "STD_MIN_FORMULA_V1", "MEMO1"};
  2896. strArrayDete = new string[] { "PHY_NAME", "POSITION_DESC1", "STD_DESC1", "LV_DESC1", "COVERAGE1", "GROOVE_POS1", "GROOVE_DIR1", "RATE1", "DESC_VAL1", "MEMO1" };
  2897. strArrayWater = new string[] { "PRESSURE_Y1", "PRESSURE1", "SAVE_TIME1" };
  2898. strArrayPro = new string[] { "STATION_DESC", "ALPHA_VALUE_TEXT", "ALPHA_VALUE_NUM", "ALPHA_VALUE_MEMO", "MEMO1" };
  2899. }
  2900. string cicStr = GetChemUltraGridData(ultraGrid1, strArrayChem, isMsc);
  2901. string picStr = OrderSpecialInfoTool.GetUltraGridData(ultraGrid2, strArrayPhy);
  2902. string sicStr = GetSpecUltraGridData(ultraGrid3, strArraySpec);
  2903. string dicStr = OrderSpecialInfoTool.GetUltraGridData(ultraGrid4, strArrayDete);
  2904. string wicStr = OrderSpecialInfoTool.GetUltraGridData(ultraGrid5, strArrayWater);
  2905. string gicStr = OrderSpecialInfoTool.GetUltraGridData(ultraGrid6, strArrayPro);
  2906. string str = "";
  2907. if (cicStr.Trim() != "")
  2908. {
  2909. str += "成分标准:" + cicStr;
  2910. }
  2911. if (picStr.Trim() != "")
  2912. {
  2913. str += (str == "" ? "" : "\r\n") + "理化标准:" + picStr;
  2914. }
  2915. if (sicStr.Trim() != "")
  2916. {
  2917. str += (str == "" ? "" : "\r\n") + "公差标准:" + sicStr;
  2918. }
  2919. if (dicStr.Trim() != "")
  2920. {
  2921. str += (str == "" ? "" : "\r\n") + "探伤标准:" + dicStr;
  2922. }
  2923. if (wicStr.Trim() != "")
  2924. {
  2925. str += (str == "" ? "" : "\r\n") + "水压标准:" + wicStr;
  2926. }
  2927. if (gicStr.Trim() != "")
  2928. {
  2929. str += (str == "" ? "" : "\r\n") + "加工标准:" + gicStr;
  2930. }
  2931. return str;
  2932. }
  2933. public string GetChemUltraGridData(UltraGrid ug, string[] strArray, bool isMsc)
  2934. {
  2935. string content = "";
  2936. if (ug.Rows.Count == 0)
  2937. {
  2938. return content;
  2939. }
  2940. var rows = ug.Rows.OrderBy(a => a.GetValue("CHEM_TYPE")).ToList();
  2941. for (int i = 0; i < rows.Count; i++)
  2942. {
  2943. if (rows[i].GetValue("CHC") == "False" && rows[i].GetValue("VALIDFLAG") == "") continue;
  2944. if (content != "" && rows[i].GetValue("CHEM_TYPE") == "B")
  2945. {
  2946. content += "\r\n ";
  2947. }
  2948. for (int k = 0; k < strArray.Length; k++)
  2949. {
  2950. string columnKey = strArray[k];
  2951. for (int j = 0; j < rows[i].Cells.Count; j++)
  2952. {
  2953. if (rows[i].Cells[j].Column.Key.Equals(columnKey))
  2954. {
  2955. if (isMsc)
  2956. {
  2957. if (rows[i].Cells[j].Text.Trim() == "")
  2958. {
  2959. if (columnKey == "STDMAX")
  2960. {
  2961. content += "; ";
  2962. }
  2963. break;
  2964. }
  2965. if (columnKey == "STDMAX")
  2966. {
  2967. content += rows[i].Cells[j].Text + "; ";
  2968. }
  2969. else
  2970. {
  2971. if (columnKey.Contains("SIGN") || columnKey == "CHEM_FORMULA")
  2972. {
  2973. content += " " + rows[i].Cells[j].Text;
  2974. }
  2975. else
  2976. {
  2977. content += rows[i].Cells[j].Text;
  2978. }
  2979. }
  2980. }
  2981. else
  2982. {
  2983. if (rows[i].Cells[j].Text.Trim() == "")
  2984. {
  2985. if (columnKey == "STDMEMO1")
  2986. {
  2987. content += "; ";
  2988. }
  2989. break;
  2990. }
  2991. if (columnKey == "STDMEMO1")
  2992. {
  2993. content += " " + rows[i].Cells[j].Text + "; ";
  2994. }
  2995. else
  2996. {
  2997. if (columnKey.Contains("SIGN") || columnKey == "CHEM_FORMULA")
  2998. {
  2999. content += " " + rows[i].Cells[j].Text;
  3000. }
  3001. else
  3002. {
  3003. content += rows[i].Cells[j].Text;
  3004. }
  3005. }
  3006. }
  3007. break;
  3008. }
  3009. }
  3010. }
  3011. }
  3012. return content;
  3013. }
  3014. /// <summary>
  3015. /// 获取UltraGrid所有字段组成的字符串
  3016. /// </summary>
  3017. /// <param name="ug"></param>
  3018. /// <returns></returns>
  3019. public static string GetSpecUltraGridData(UltraGrid ug, string[] strArray)
  3020. {
  3021. string content = "";
  3022. if (ug.Rows.Count == 0)
  3023. {
  3024. return content;
  3025. }
  3026. for (int i = 0; i < ug.Rows.Count; i++)
  3027. {
  3028. if (ug.Rows[i].GetValue("CHC") == "False" && ug.Rows[i].GetValue("VALIDFLAG") == "") continue;
  3029. if (content != "")
  3030. {
  3031. content += "\r\n ";
  3032. }
  3033. for (int k = 0; k < strArray.Length; k++)
  3034. {
  3035. string columnKey = strArray[k];
  3036. for (int j = 0; j < ug.Rows[i].Cells.Count; j++)
  3037. {
  3038. if (ug.Rows[i].Cells[j].Column.Key.Equals(columnKey))
  3039. {
  3040. if (ug.Rows[i].Cells[j].Text.Trim() == "") break;
  3041. string value = ug.Rows[i].Cells[j].Text;
  3042. if (columnKey == "STD_MIN_VAL1" || columnKey == "STD_MAX_VAL1"
  3043. || columnKey == "STD_MIN_VAL" || columnKey == "STD_MAX_VAL")
  3044. {
  3045. value = value + "mm";
  3046. }
  3047. else if (columnKey == "STD_MIN_PERCENT1" || columnKey == "STD_MAX_PERCENT1"
  3048. || columnKey == "STD_MIN_PERCENT" || columnKey == "STD_MAX_PERCENT")
  3049. {
  3050. value = value + "%";
  3051. }
  3052. else if (columnKey == "STD_MIN_FORMULA_V")
  3053. {
  3054. int valueCnt = 0;
  3055. if (ug.Rows[i].GetValue("STD_MIN_PERCENT") != "")
  3056. {
  3057. valueCnt++;
  3058. }
  3059. if(ug.Rows[i].GetValue("STD_MIN_VAL") != "")
  3060. {
  3061. valueCnt++;
  3062. }
  3063. if(ug.Rows[i].GetValue("STD_MIN_FORMULA") != "")
  3064. {
  3065. valueCnt++;
  3066. }
  3067. if (valueCnt > 1)
  3068. {
  3069. if (ug.Rows[i].GetValue(columnKey) == "True")
  3070. {
  3071. value = "取最小值";
  3072. }
  3073. else if (ug.Rows[i].GetValue("STD_MAX_FORMULA_V") == "True")
  3074. {
  3075. value = "取最大值";
  3076. }
  3077. else
  3078. {
  3079. break;
  3080. }
  3081. }
  3082. else
  3083. {
  3084. break;
  3085. }
  3086. }
  3087. else if (columnKey == "STD_MIN_FORMULA_V1")
  3088. {
  3089. int valueCnt = 0;
  3090. if (ug.Rows[i].GetValue("STD_MIN_PERCENT1") != "")
  3091. {
  3092. valueCnt++;
  3093. }
  3094. if (ug.Rows[i].GetValue("STD_MIN_VAL1") != "")
  3095. {
  3096. valueCnt++;
  3097. }
  3098. if (valueCnt > 1)
  3099. {
  3100. if (ug.Rows[i].GetValue(columnKey) == "True")
  3101. {
  3102. value = "取最小值";
  3103. }
  3104. else if (ug.Rows[i].GetValue("STD_MAX_FORMULA_V1") == "True")
  3105. {
  3106. value = "取最大值";
  3107. }
  3108. else
  3109. {
  3110. break;
  3111. }
  3112. }
  3113. else
  3114. {
  3115. break;
  3116. }
  3117. }
  3118. content += value + "; ";
  3119. break;
  3120. }
  3121. }
  3122. }
  3123. }
  3124. return content;
  3125. }
  3126. private void ultraGrid6_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  3127. {
  3128. ultraGrid6.UpdateData();
  3129. //DataRow[] drsTreeCustAlpha = _dtTreeCustAlpha.Select("CUST_ALPHA_NO = '" + _custAlphaNo + "'");
  3130. //if (drsTreeCustAlpha.Length > 0)
  3131. //{
  3132. // if (drsTreeCustAlpha[0]["CUST_ALPHA_STS"].ToString() == "S")
  3133. // {
  3134. // e.Cell.Row.Cells["CHC"].Value = false;
  3135. // MessageUtil.ShowWarning("评审通过不允许修改!");
  3136. // return;
  3137. // }
  3138. //}
  3139. OrderSpecialInfoTool.setCanEdit(e);
  3140. if (e.Cell.Column.Key.Equals("STATION_DESC"))
  3141. {
  3142. string stadesc = e.Cell.Text;
  3143. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryStationCodeId", new Object[] { stadesc }, _ob);
  3144. if (dt != null && dt.Rows.Count > 0)
  3145. {
  3146. ultraGrid6.Rows[e.Cell.Row.Index].Cells["PROCESS_DESC_C"].Value = dt.Rows[0]["PROCESS_DESC_C"].ToString();
  3147. ultraGrid6.Rows[e.Cell.Row.Index].Cells["PROCESS_CDOE_C"].Value = dt.Rows[0]["PROCESS_CODE_C"].ToString();
  3148. ultraGrid6.Rows[e.Cell.Row.Index].Cells["STATION_CODE"].Value = dt.Rows[0]["STATION_CODE"].ToString();
  3149. ultraGrid6.Rows[e.Cell.Row.Index].Cells["PROCESS_CDOE"].Value = dt.Rows[0]["PROCESS_CODE"].ToString();
  3150. ultraGrid6.Rows[e.Cell.Row.Index].Cells["PROCESS_DESC"].Value = dt.Rows[0]["PROCESS_DESC"].ToString();
  3151. ultraGrid6.Rows[e.Cell.Row.Index].Cells["STATION_CODE"].Value = dt.Rows[0]["STATION_CODE"].ToString();
  3152. ultraGrid6.Rows[e.Cell.Row.Index].Cells["STATION_DESC"].Value = dt.Rows[0]["STATION_DESC"].ToString();
  3153. }
  3154. }
  3155. else
  3156. {
  3157. ultraGrid6.UpdateData();
  3158. OrderSpecialInfoTool.setCanEdit(e);
  3159. }
  3160. }
  3161. private void ultraGrid6_AfterCellActivate(object sender, EventArgs e)
  3162. {
  3163. //ultraGrid6.UpdateData();
  3164. //if (e.Cell.Column.Key.Equals("STATION_DESC"))
  3165. //{
  3166. // DataTable specInfo = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.queryStationCode", new Object[] { }, ob);
  3167. // for (int i = 0; i < specInfo.Rows.Count; i++)
  3168. // {
  3169. // if (e.Cell.Value.ToString().Equals(specInfo.Rows[i]["STATION_CODE"].ToString()))
  3170. // {
  3171. // //未写完,需要自动给二级工序赋值。
  3172. // }
  3173. // }
  3174. //}
  3175. }
  3176. private void ultraTree_AfterActivate(object sender, NodeEventArgs e)
  3177. {
  3178. if (e.TreeNode.Parent == null) return;
  3179. ((Form)ultraTree.TopLevelControl).Cursor = Cursors.WaitCursor;
  3180. //e.TreeNode.CheckedState = CheckState.Checked;
  3181. string stdCode = e.TreeNode.Key.ToString();
  3182. string[] mscs = stdCode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
  3183. string mscOrAlphaNo = mscs[0];
  3184. QueryChem(mscOrAlphaNo, e.TreeNode.Tag.ToString());
  3185. QueryMaterial(mscOrAlphaNo, e.TreeNode.Tag.ToString());
  3186. QueryTolerances(mscOrAlphaNo, e.TreeNode.Tag.ToString());
  3187. QueryDetection(mscOrAlphaNo, e.TreeNode.Tag.ToString());
  3188. QueryWater(mscOrAlphaNo, e.TreeNode.Tag.ToString());
  3189. QueryProcess(mscOrAlphaNo, e.TreeNode.Tag.ToString());
  3190. if (e.TreeNode.Tag.Equals("a"))
  3191. {
  3192. if (isPopup == false)
  3193. {
  3194. ultraToolbarsManager1.Toolbars[0].Tools["新增"].InstanceProps.Visible = DefaultableBoolean.True;
  3195. }
  3196. _custAlphaNo = "";
  3197. _stdCode = stdCode;
  3198. }
  3199. else
  3200. {
  3201. if (isPopup == false)
  3202. {
  3203. DataTable dt = GetCustAlphaState(stdCode);
  3204. string custAlphaState = dt.Rows[0]["CUST_ALPHA_STS"].ToString();
  3205. string reviewRs = dt.Rows[0]["REVIEW_F_RS"].ToString();
  3206. toolTip1.SetToolTip(ultraGrid1, reviewRs);
  3207. toolTip1.SetToolTip(ultraGrid2, reviewRs);
  3208. toolTip1.SetToolTip(ultraGrid3, reviewRs);
  3209. toolTip1.SetToolTip(ultraGrid4, reviewRs);
  3210. toolTip1.SetToolTip(ultraGrid5, reviewRs);
  3211. toolTip1.SetToolTip(ultraGrid6, reviewRs);
  3212. toolTip1.ToolTipTitle = "[" + stdCode + "]产品技术特殊要求失败原因:";
  3213. //toolTip1.Show(reviewRs, ultraTree, 9999999);
  3214. toolTip1.ShowAlways = true;
  3215. int custAlphaUseCount = GetCustAlphaUseCount(stdCode, _ordLnPk);
  3216. if (custAlphaState == "S" || ((custAlphaState == "W" || custAlphaState == "F") && custAlphaUseCount >= 1))
  3217. {
  3218. ultraToolbarsManager1.Toolbars[0].Tools["新增"].InstanceProps.Visible = DefaultableBoolean.True;
  3219. }
  3220. else
  3221. {
  3222. ultraToolbarsManager1.Toolbars[0].Tools["新增"].InstanceProps.Visible = DefaultableBoolean.True;
  3223. }
  3224. }
  3225. _custAlphaNo = stdCode;
  3226. _stdCode = "";
  3227. }
  3228. ultraTextEditor1.Text = GetUltraData();
  3229. ((Form)ultraTree.TopLevelControl).Cursor = Cursors.Default;
  3230. }
  3231. private DataTable GetCustAlphaState(string custAlphaNo)
  3232. {
  3233. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getCustAlphaState",
  3234. new object[] { custAlphaNo }, Ob);
  3235. return dt;
  3236. }
  3237. private int GetCustAlphaUseCount(string custAlphaNo, string ordLnPk)
  3238. {
  3239. DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreOrderSpecialInfo.getCustAlphaUseCount",
  3240. new object[] { custAlphaNo, ordLnPk }, _ob);
  3241. return int.Parse(dt.Rows[0][0].ToString());
  3242. }
  3243. private void ultraTree_BeforeActivate(object sender, CancelableNodeEventArgs e)
  3244. {
  3245. string type = "";
  3246. if (IsExitEdite(out type) == false)
  3247. {
  3248. if (type == "Cic")
  3249. {
  3250. if (MessageUtil.ShowYesNoAndQuestion("成分要求有数据修改,是否放弃编辑?") == DialogResult.No)
  3251. {
  3252. e.Cancel = true;
  3253. }
  3254. }
  3255. else if (type == "Pic")
  3256. {
  3257. if (MessageUtil.ShowYesNoAndQuestion("理化要求有数据修改,是否放弃编辑?") == DialogResult.No)
  3258. {
  3259. e.Cancel = true;
  3260. }
  3261. }
  3262. else if (type == "Sic")
  3263. {
  3264. if (MessageUtil.ShowYesNoAndQuestion("公差要求有数据修改,是否放弃编辑?") == DialogResult.No)
  3265. {
  3266. e.Cancel = true;
  3267. }
  3268. }
  3269. else if (type == "Dic")
  3270. {
  3271. if (MessageUtil.ShowYesNoAndQuestion("探伤要求有数据修改,是否放弃编辑?") == DialogResult.No)
  3272. {
  3273. e.Cancel = true;
  3274. }
  3275. }
  3276. else if (type == "Wic")
  3277. {
  3278. if (MessageUtil.ShowYesNoAndQuestion("水压要求有数据修改,是否放弃编辑?") == DialogResult.No)
  3279. {
  3280. e.Cancel = true;
  3281. }
  3282. }
  3283. else if (type == "Gic")
  3284. {
  3285. if (MessageUtil.ShowYesNoAndQuestion("加工要求有数据修改,是否放弃编辑?") == DialogResult.No)
  3286. {
  3287. e.Cancel = true;
  3288. }
  3289. }
  3290. }
  3291. }
  3292. private void ultraTree_BeforeCheck(object sender, BeforeCheckEventArgs e)
  3293. {
  3294. //if (IsExitEdite() == false)
  3295. //{
  3296. // e.Cancel = true;
  3297. //}
  3298. }
  3299. private bool IsExitEdite(out string type)
  3300. {
  3301. ultraGrid1.UpdateData();
  3302. ultraGrid2.UpdateData();
  3303. ultraGrid3.UpdateData();
  3304. ultraGrid4.UpdateData();
  3305. ultraGrid5.UpdateData();
  3306. ultraGrid6.UpdateData();
  3307. type = "";
  3308. int dtChg1 = dataTable1.Rows.Cast<DataRow>().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count();
  3309. if (dtChg1 > 0)
  3310. {
  3311. type = "Cic";
  3312. return false;
  3313. }
  3314. int dtChg2 = dataTable2.Rows.Cast<DataRow>().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count();
  3315. if (dtChg2 > 0)
  3316. {
  3317. type = "Pic";
  3318. return false;
  3319. }
  3320. int dtChg3 = dataTable3.Rows.Cast<DataRow>().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count();
  3321. if (dtChg3 > 0)
  3322. {
  3323. type = "Sic";
  3324. return false;
  3325. }
  3326. int dtChg4 = dataTable4.Rows.Cast<DataRow>().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count();
  3327. if (dtChg4 > 0)
  3328. {
  3329. type = "Dic";
  3330. return false;
  3331. }
  3332. int dtChg5 = dataTable5.Rows.Cast<DataRow>().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count();
  3333. if (dtChg5 > 0)
  3334. {
  3335. type = "Wic";
  3336. return false;
  3337. }
  3338. int dtChg6 = StdProcessc.Rows.Cast<DataRow>().Where(a => a.RowState == DataRowState.Added || a.RowState == DataRowState.Modified).Count();
  3339. if (dtChg6 > 0)
  3340. {
  3341. type = "Gic";
  3342. return false;
  3343. }
  3344. return true;
  3345. }
  3346. private void FrmOrderSpecialInfo_FormClosing(object sender, FormClosingEventArgs e)
  3347. {
  3348. //if (IsExitEdite() == false)
  3349. //{
  3350. // e.Cancel = true;
  3351. //}
  3352. }
  3353. private void ultraTree_DoubleClick(object sender, EventArgs e)
  3354. {
  3355. //if (ultraTextEditor1.Height == ultraTextEditor1Height)
  3356. //{
  3357. // ultraTextEditor1.Height = 1;
  3358. //}
  3359. //else
  3360. //{
  3361. // ultraTextEditor1.Height = ultraTextEditor1Height;
  3362. //}
  3363. panel1.Visible = !panel1.Visible;
  3364. }
  3365. //全选
  3366. private void ultraTextEditor1_KeyDown(object sender, KeyEventArgs e)
  3367. {
  3368. if (e.Control)
  3369. {
  3370. if (e.KeyCode == Keys.A)
  3371. {
  3372. ultraTextEditor1.SelectAll();
  3373. }
  3374. }
  3375. }
  3376. private void ultraTextEditor3_EditorButtonClick(object sender, EditorButtonEventArgs e)
  3377. {
  3378. if (ultraGrid2.ActiveCell.Column.Key == "PHY_NAME_MAX")
  3379. {
  3380. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRStd", null, _ob);
  3381. dt.Columns["PHY_TYPE"].Caption = "检验大项";
  3382. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_TYPE", "PHY_CODE");
  3383. baseInfoPopup.Text = "检验大项";
  3384. baseInfoPopup.LabelTextBox1.Caption = "检验大项";
  3385. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3386. {
  3387. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3388. a => a.GetValue("PHY_CODE") == ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX"));
  3389. if (rows.Count() > 0)
  3390. {
  3391. rows.First().Activate();
  3392. }
  3393. });
  3394. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3395. {
  3396. ultraGrid2.ActiveRow.SetValue("PHY_NAME_MAX", baseInfoPopup.ChoicedRow.GetValue("PHY_TYPE"));
  3397. ultraGrid2.ActiveRow.SetValue("PHY_CODE_MAX", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE"));
  3398. ultraGrid2.ActiveRow.SetValue("PHY_NAME_MIN", "");
  3399. ultraGrid2.ActiveRow.SetValue("PHY_CODE_MIN", "");
  3400. ultraGrid2.ActiveRow.SetValue("PHY_NAME", "");
  3401. ultraGrid2.ActiveRow.SetValue("PHY_CODE", "");
  3402. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_F", "");
  3403. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_F", "");
  3404. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_W", "");
  3405. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_W", "");
  3406. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_S", "");
  3407. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_S", "");
  3408. }
  3409. }
  3410. else if (ultraGrid2.ActiveCell.Column.Key == "PHY_NAME_MIN")
  3411. {
  3412. string phyCodeMax = ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX");
  3413. if (phyCodeMax == "")
  3414. {
  3415. MessageUtil.ShowWarning("请选检验大项!");
  3416. return;
  3417. }
  3418. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyC", new object[] { phyCodeMax }, _ob);
  3419. dt.Columns["PHY_TYPE"].Caption = "试样组";
  3420. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_TYPE", "PHY_CODE");
  3421. baseInfoPopup.Text = "试样组";
  3422. baseInfoPopup.LabelTextBox1.Caption = "试样组";
  3423. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3424. {
  3425. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3426. a => a.GetValue("PHY_CODE") == ultraGrid2.ActiveRow.GetValue("PHY_CODE_MIN"));
  3427. if (rows.Count() > 0)
  3428. {
  3429. rows.First().Activate();
  3430. }
  3431. });
  3432. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3433. {
  3434. ultraGrid2.ActiveRow.SetValue("PHY_NAME_MIN", baseInfoPopup.ChoicedRow.GetValue("PHY_TYPE"));
  3435. ultraGrid2.ActiveRow.SetValue("PHY_CODE_MIN", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE"));
  3436. ultraGrid2.ActiveRow.SetValue("PHY_NAME", "");
  3437. ultraGrid2.ActiveRow.SetValue("PHY_CODE", "");
  3438. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_F", "");
  3439. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_F", "");
  3440. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_S", "");
  3441. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_S", "");
  3442. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_W", "");
  3443. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_W", "");
  3444. }
  3445. }
  3446. else if (ultraGrid2.ActiveCell.Column.Key == "PHY_NAME")
  3447. {
  3448. string phyCodeMax = ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX");
  3449. string phyCodeMin = ultraGrid2.ActiveRow.GetValue("PHY_CODE_MIN");
  3450. if (phyCodeMax == "")
  3451. {
  3452. MessageUtil.ShowWarning("请选择检验大项");
  3453. ultraGrid2.ActiveRow.Cells["PHY_NAME_MAX"].Activate();
  3454. return;
  3455. }
  3456. else if (phyCodeMin == "")
  3457. {
  3458. MessageUtil.ShowWarning("请选择试样组");
  3459. ultraGrid2.ActiveRow.Cells["PHY_NAME_MIN"].Activate();
  3460. return;
  3461. }
  3462. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhy", new object[] { phyCodeMax, phyCodeMin }, _ob);
  3463. dt.Columns["PHY_NAME"].Caption = "检验项";
  3464. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "PHY_NAME", "PHY_CODE");
  3465. baseInfoPopup.Text = "检验项";
  3466. baseInfoPopup.LabelTextBox1.Caption = "检验项";
  3467. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3468. {
  3469. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3470. a => a.GetValue("PHY_CODE") == ultraGrid2.ActiveRow.GetValue("PHY_CODE"));
  3471. if (rows.Count() > 0)
  3472. {
  3473. rows.First().Activate();
  3474. }
  3475. });
  3476. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3477. {
  3478. ultraGrid2.ActiveRow.SetValue("PHY_NAME", baseInfoPopup.ChoicedRow.GetValue("PHY_NAME"));
  3479. ultraGrid2.ActiveRow.SetValue("PHY_CODE", baseInfoPopup.ChoicedRow.GetValue("PHY_CODE"));
  3480. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_W", "");
  3481. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_W", "");
  3482. }
  3483. }
  3484. else if (ultraGrid2.ActiveCell.Column.Key == "ITEM_NAME_F")
  3485. {
  3486. string phyTypeC = ultraGrid2.ActiveRow.GetValue("PHY_CODE_MIN");
  3487. if (phyTypeC == "")
  3488. {
  3489. MessageUtil.ShowWarning("请选择试样组");
  3490. ultraGrid2.ActiveRow.Cells["PHY_NAME_MIN"].Activate();
  3491. return;
  3492. }
  3493. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRItem",
  3494. new object[] { phyTypeC }, _ob);
  3495. dt.Columns["ITEM_NAME_F"].Caption = "试验方向";
  3496. dt.Columns["ITEM_NAME_C"].Caption = "试验尺寸";
  3497. if (ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX") == "R0001")
  3498. {
  3499. dt.DefaultView.RowFilter = "ITEM_CODE_C IS NULL AND ITEM_CODE_F IS NOT NULL";
  3500. }
  3501. if (ultraGrid2.ActiveRow.GetValue("PHY_CODE_MAX") == "R0002")
  3502. {
  3503. dt.DefaultView.RowFilter = "ITEM_CODE_C IS NOT NULL AND ITEM_CODE_F IS NOT NULL";
  3504. }
  3505. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "ITEM_NAME_F", "ITEM_CODE_F", "ITEM_CODE_C");
  3506. baseInfoPopup.Text = "试验选择";
  3507. baseInfoPopup.LabelTextBox1.Caption = "试验方向";
  3508. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3509. {
  3510. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3511. a => a.GetValue("ITEM_CODE_F") == ultraGrid2.ActiveRow.GetValue("ITEM_CODE_F")
  3512. && a.GetValue("ITEM_CODE_C") == ultraGrid2.ActiveRow.GetValue("ITEM_CODE_S"));
  3513. if (rows.Count() > 0)
  3514. {
  3515. rows.First().Activate();
  3516. }
  3517. });
  3518. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3519. {
  3520. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_F", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_F"));
  3521. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_F", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_F"));
  3522. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_S", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_C"));
  3523. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_S", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_C"));
  3524. }
  3525. }
  3526. else if (ultraGrid2.ActiveCell.Column.Key == "ITEM_NAME_W")
  3527. {
  3528. string phyCode = ultraGrid2.ActiveRow.GetValue("PHY_CODE");
  3529. if (phyCode == "")
  3530. {
  3531. MessageUtil.ShowWarning("请选择检验项");
  3532. ultraGrid2.ActiveRow.Cells["PHY_NAME"].Activate();
  3533. return;
  3534. }
  3535. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.ComBaseQuery.geComBasePhyRPos",
  3536. new object[] { phyCode }, _ob);
  3537. dt.Columns["ITEM_NAME_W"].Caption = "试验温度";
  3538. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "ITEM_NAME_W", "ITEM_CODE_W");
  3539. baseInfoPopup.Text = "试验选择";
  3540. baseInfoPopup.LabelTextBox1.Caption = "试验温度";
  3541. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3542. {
  3543. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3544. a => a.GetValue("ITEM_CODE_W") == ultraGrid2.ActiveRow.GetValue("ITEM_CODE_W"));
  3545. if (rows.Count() > 0)
  3546. {
  3547. rows.First().Activate();
  3548. }
  3549. });
  3550. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3551. {
  3552. ultraGrid2.ActiveRow.SetValue("ITEM_NAME_W", baseInfoPopup.ChoicedRow.GetValue("ITEM_NAME_W"));
  3553. ultraGrid2.ActiveRow.SetValue("ITEM_CODE_W", baseInfoPopup.ChoicedRow.GetValue("ITEM_CODE_W"));
  3554. }
  3555. }
  3556. }
  3557. private void ultraTextEditor4_EditorButtonClick(object sender, EditorButtonEventArgs e)
  3558. {
  3559. if (ultraGrid4.ActiveCell.Column.Key == "STD_DESC1")
  3560. {
  3561. var row = ultraGrid4.ActiveRow;
  3562. if (row.GetValue("PHY_CODE") == "")
  3563. {
  3564. MessageUtil.ShowWarning("请选择探伤项!");
  3565. row.Cells["PHY_CODE"].Activate();
  3566. return;
  3567. }
  3568. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.DAL.ComBaseDetectionRltDAL.QueryStdBaseInfo", new object[] { row.GetValue("PHY_CODE") }, _ob);
  3569. dt.Columns["STD_DESC"].Caption = "参考标准";
  3570. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "STD_DESC", "PHY_CODE", "PHY_NAME", "STD_CODE", "LV_CODE", "LV_DESC", "ID");
  3571. baseInfoPopup.Text = "参考标准";
  3572. baseInfoPopup.LabelTextBox1.Caption = "参考标准";
  3573. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3574. {
  3575. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3576. a => a.GetValue("STD_CODE") == ultraGrid4.ActiveRow.GetValue("STD_CODE1"));
  3577. if (rows.Count() > 0)
  3578. {
  3579. rows.First().Activate();
  3580. }
  3581. });
  3582. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3583. {
  3584. ultraGrid4.ActiveRow.SetValue("STD_DESC1", baseInfoPopup.ChoicedRow.GetValue("STD_DESC"));
  3585. ultraGrid4.ActiveRow.SetValue("STD_CODE1", baseInfoPopup.ChoicedRow.GetValue("STD_CODE"));
  3586. ultraGrid4.ActiveRow.Cells["LV_DESC1"].Value = "";
  3587. ultraGrid4.ActiveRow.Cells["LV_CODE1"].Value = "";
  3588. }
  3589. }
  3590. else if (ultraGrid4.ActiveCell.Column.Key == "LV_DESC1")
  3591. {
  3592. var row = ultraGrid4.ActiveRow;
  3593. if (row.GetValue("STD_CODE1") == "")
  3594. {
  3595. MessageUtil.ShowWarning("请选择参考标准!");
  3596. row.Cells["STD_CODE1"].Activate();
  3597. return;
  3598. }
  3599. DataTable dt = ServerHelper.GetData("com.steering.pss.qcm.DAL.ComBaseDetectionRltDAL.QueryLvBaseInfo", new object[] { row.GetValue("STD_CODE1") }, _ob);
  3600. dt.Columns["LV_DESC"].Caption = "探伤级别";
  3601. BaseInfoPopup baseInfoPopup = new BaseInfoPopup(dt, "LV_DESC", "PHY_CODE", "PHY_NAME", "STD_DESC", "STD_CODE", "LV_CODE", "ID");
  3602. baseInfoPopup.Text = "探伤级别";
  3603. baseInfoPopup.LabelTextBox1.Caption = "探伤级别";
  3604. baseInfoPopup.Shown += new EventHandler((c, d) =>
  3605. {
  3606. IQueryable<UltraGridRow> rows = baseInfoPopup.UltraGrid1.Rows.AsQueryable().Where(
  3607. a => a.GetValue("LV_CODE") == ultraGrid4.ActiveRow.GetValue("LV_CODE1"));
  3608. if (rows.Count() > 0)
  3609. {
  3610. rows.First().Activate();
  3611. }
  3612. });
  3613. if (baseInfoPopup.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  3614. {
  3615. ultraGrid4.ActiveRow.SetValue("LV_DESC1", baseInfoPopup.ChoicedRow.GetValue("LV_DESC"));
  3616. ultraGrid4.ActiveRow.SetValue("LV_CODE1", baseInfoPopup.ChoicedRow.GetValue("LV_CODE"));
  3617. }
  3618. }
  3619. ultraGrid4.UpdateData();
  3620. }
  3621. }
  3622. public class FrmOrderSpecialInfoEventArgs : EventArgs
  3623. {
  3624. /// <summary>
  3625. /// 特殊要求dataTable
  3626. /// </summary>
  3627. private DataSet _dataSet;
  3628. public DataSet DataSet
  3629. {
  3630. get { return _dataSet; }
  3631. set { _dataSet = value; }
  3632. }
  3633. /// <summary>
  3634. /// 所有界面数据组成的字符串
  3635. /// </summary>
  3636. private string description;
  3637. /// <summary>
  3638. /// 客户Alpha编码
  3639. /// </summary>
  3640. private string custAlphaNo;
  3641. public string CustAlphaNo
  3642. {
  3643. get { return custAlphaNo; }
  3644. set { custAlphaNo = value; }
  3645. }
  3646. public string Description
  3647. {
  3648. get { return description; }
  3649. set { description = value; }
  3650. }
  3651. private string msc;
  3652. /// <summary>
  3653. /// MSC
  3654. /// </summary>
  3655. public string Msc
  3656. {
  3657. get { return msc; }
  3658. set { msc = value; }
  3659. }
  3660. }
  3661. }