FrmCutBilletDetails.cs 169 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932
  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 System.Collections;
  10. using Infragistics.Win.UltraWinGrid;
  11. using System.Threading;
  12. using CoreFS.CA06;
  13. using Core.Mes.Client.Common;
  14. using Core.LgMes.Client.LgJobMgt;
  15. namespace Core.LgMes.Client.lgJobMgt
  16. {
  17. public partial class FrmCutBilletDetails : frmStyleBase//CommonClientToServer
  18. {
  19. public bool On_Off_Thread = false;
  20. #region " Valiable "
  21. private DataSet _dsMid;
  22. public bool DataChangedFlag = false;
  23. private string _strWhere = "";
  24. private Thread _refreshDataThread = null;
  25. private DateTime LastUpdateTime;
  26. #endregion
  27. private DataTable steelSchTable, cutSchTable;//调度、切割指示表
  28. private Hashtable routeHash = new Hashtable();//存放工艺路径
  29. public string CCMN0 = "";
  30. private string strOldBlockNo;
  31. private string strOldCastNo;
  32. private delegate void CallRefreshThreadDelegate();
  33. private bool bExit = false;
  34. private Hashtable cutHash = new Hashtable();
  35. private Core.LgMes.Client.LgJobMgt.CommandClass _commClass;
  36. private bool blText = false; //处理装载程序时执行Changed事情
  37. private string _DEVICE_POSITION = ""; // 设备位置
  38. private int _DEVICE_POS = 1; // 设备号
  39. public string strV_BilletID = ""; //虚拟坯料号
  40. public string strV_Heat_ID = ""; //虚拟炉号
  41. public string strOrderNO = "";//订单行号
  42. public string strProdOrderNO = "";//生产订单号
  43. public string strSurplusFlag = "";//是否余材
  44. public string strSteelCode = "";
  45. public string strProductline = ""; //产线
  46. public string strStandardsCode = "";//标准号
  47. public string strStandardRemak = ""; //标准描述
  48. public string strCustomer_Key = "";//客户参数号
  49. public delegate void ReportSelect(string strCastNo, string strBlockNo);
  50. public ReportSelect reportSelect;
  51. public delegate void ReportHandSet(string strHeatID, int nBegin, int nEnd);
  52. public ReportHandSet reportHandSet;
  53. public int intCcm = -1;
  54. public FrmCutBilletDetails()
  55. {
  56. InitializeComponent();
  57. }
  58. #region 界面属性值更改时
  59. /// <summary>
  60. /// 切割时间属性更改
  61. /// </summary>
  62. /// <param name="sender"></param>
  63. /// <param name="e"></param>
  64. private void checkBox1_CheckedChanged(object sender, EventArgs e)
  65. {
  66. this.dtpCutStart.Enabled = this.chkCutTime.Checked;
  67. this.dtpCutEnd.Enabled = this.chkCutTime.Checked;
  68. }
  69. /// <summary>
  70. /// 熔炼号属性更改
  71. /// </summary>
  72. /// <param name="sender"></param>
  73. /// <param name="e"></param>
  74. private void checkBox2_CheckedChanged(object sender, EventArgs e)
  75. {
  76. if (this.chkRlh.Checked)
  77. {
  78. this.txtHeatno.Enabled = true;
  79. this.txtHeatno.BackColor = Color.White;
  80. }
  81. else
  82. {
  83. this.txtHeatno.Enabled = false;
  84. this.txtHeatno.BackColor = Color.Gainsboro;
  85. }
  86. }
  87. /// <summary>
  88. /// 铸机号属性更改
  89. /// </summary>
  90. /// <param name="sender"></param>
  91. /// <param name="e"></param>
  92. private void checkBox3_CheckedChanged(object sender, EventArgs e)
  93. {
  94. if (this.chkCcm.Checked)
  95. {
  96. if (this.CustomInfo.ToString() != "")
  97. {
  98. this.cmbCcm.Enabled = false;
  99. this.cmbCcm.BackColor = Color.White;
  100. }
  101. else
  102. {
  103. this.cmbCcm.Enabled = true;
  104. this.cmbCcm.BackColor = Color.White;
  105. }
  106. }
  107. else
  108. {
  109. if (this.CustomInfo.ToString() != "")
  110. {
  111. this.cmbCcm.Enabled = false;
  112. this.cmbCcm.BackColor = Color.White;
  113. }
  114. else
  115. {
  116. this.cmbCcm.Enabled = false;
  117. this.cmbCcm.BackColor = Color.White;
  118. }
  119. }
  120. }
  121. /// <summary>
  122. /// 计划--铸机号属性更改
  123. /// </summary>
  124. /// <param name="sender"></param>
  125. /// <param name="e"></param>
  126. private void chkCcmNo_CheckedChanged(object sender, EventArgs e)
  127. {
  128. if (this.chkCcmNo.Checked)
  129. {
  130. if (this.CustomInfo.ToString() != "")
  131. {
  132. this.ccmNumCobo.Enabled = false;
  133. this.ccmNumCobo.BackColor = Color.White;
  134. }
  135. else
  136. {
  137. this.ccmNumCobo.Enabled = true;
  138. this.ccmNumCobo.BackColor = Color.White;
  139. }
  140. }
  141. else
  142. {
  143. if (this.CustomInfo.ToString() != "")
  144. {
  145. this.ccmNumCobo.Enabled = false;
  146. this.ccmNumCobo.BackColor = Color.White;
  147. }
  148. else
  149. {
  150. this.ccmNumCobo.Enabled = false;
  151. this.ccmNumCobo.BackColor = Color.White;
  152. }
  153. }
  154. }
  155. /// <summary>
  156. /// 计划--转炉号属性更改
  157. /// </summary>
  158. /// <param name="sender"></param>
  159. /// <param name="e"></param>
  160. private void chkConNo_CheckedChanged(object sender, EventArgs e)
  161. {
  162. if (this.chkConNo.Checked)
  163. {
  164. this.combConNo.Enabled = true;
  165. this.combConNo.BackColor = Color.White;
  166. }
  167. else
  168. {
  169. this.combConNo.Enabled = false;
  170. this.combConNo.BackColor = Color.Gainsboro;
  171. }
  172. }
  173. #endregion
  174. /// <summary>
  175. /// 菜单栏
  176. /// </summary>
  177. /// <param name="sender"></param>
  178. /// <param name="ToolbarKey"></param>
  179. public override void ToolBar_Click(object sender, string ToolbarKey)
  180. {
  181. switch (ToolbarKey)
  182. {
  183. case "Add":
  184. if (!this.ultraExpandableGroupBox1.Expanded)
  185. {
  186. this.ultraExpandableGroupBox1.Expanded = true;
  187. return;
  188. }
  189. Add();
  190. break;
  191. case "Delete":
  192. Del();
  193. break;
  194. case "Update":
  195. if (!this.ultraExpandableGroupBox1.Expanded)
  196. {
  197. this.ultraExpandableGroupBox1.Expanded = true;
  198. return;
  199. }
  200. Edit();
  201. break;
  202. case "Query":
  203. Query();
  204. break;
  205. case "plan":
  206. Plan();
  207. break;
  208. case "Existplan"://显示切换
  209. ShowToolBans();
  210. break;
  211. case "Exit"://显示切换
  212. this.Close();
  213. break;
  214. }
  215. }
  216. /// <summary>
  217. /// 查询
  218. /// </summary>
  219. public void Query()
  220. {
  221. LastUpdateTime = DateTime.Now;
  222. this.GetSqlWhere();
  223. this.GetData();
  224. }
  225. /// <summary>
  226. /// 设置查询条件
  227. /// </summary>
  228. private void GetSqlWhere()
  229. {
  230. this._strWhere = " where 1=1 ";
  231. if (this.chkCutTime.Checked)
  232. {
  233. this._strWhere += " and CUTTIME between to_date('"+Convert.ToDateTime(this.dtpCutStart.Value).ToString("yyyy-MM-dd HH:mm")+"','yyyy-MM-dd hh24:mi') "
  234. +"and to_date('"+Convert.ToDateTime(this.dtpCutEnd.Value).ToString("yyyy-MM-dd HH:mm")+"','yyyy-MM-dd hh24:mi')";
  235. }
  236. if (this.chkRlh.Checked)
  237. {
  238. this._strWhere += " and HEATNO = '" + this.txtHeatno.Text.Trim()+ "'";
  239. }
  240. if (this.chkCcm.Checked)
  241. {
  242. this._strWhere += " and CCMID = '" + this.cmbCcm.SelectedValue + "'";
  243. }
  244. if (!chkCutTime.Checked && !chkRlh.Checked && !chkCcm.Checked)
  245. {
  246. //if (intCcm == -1)
  247. //{
  248. // this._strWhere += " and CUTTIME between to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00" + "','yyyy-MM-dd hh24:mi') "
  249. // + "and to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 23:59" + "','yyyy-MM-dd hh24:mi') ";
  250. //}
  251. //if (intCcm > -1)
  252. //{
  253. // this._strWhere += " and CUTTIME between to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00" + "','yyyy-MM-dd hh24:mi') "
  254. // + "and to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 23:59" + "','yyyy-MM-dd hh24:mi') and CCMID = '" + this.cmbCcm.SelectedValue + "'";
  255. //}
  256. if (this.CustomInfo.ToString() != "")
  257. {
  258. this._strWhere += " and CUTTIME between to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00" + "','yyyy-MM-dd hh24:mi') "
  259. + "and to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 23:59" + "','yyyy-MM-dd hh24:mi') and CCMID = '" + this.cmbCcm.SelectedValue + "'";
  260. }
  261. else
  262. {
  263. this._strWhere += " and CUTTIME between to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 00:00" + "','yyyy-MM-dd hh24:mi') "
  264. + "and to_date('" + DateTime.Now.ToString("yyyy-MM-dd") + " 23:59" + "','yyyy-MM-dd hh24:mi') ";
  265. }
  266. }
  267. }
  268. /// <summary>
  269. /// 查询语句
  270. /// </summary>
  271. private void GetData()
  272. {
  273. try
  274. {
  275. string strOut = "";
  276. ArrayList arry = new ArrayList();
  277. ArrayList sqlList = new ArrayList();
  278. arry.Add("FrmCutBilletDetails_Query1");
  279. sqlList.Add(_strWhere + " order by cuttime asc,ccmid asc, heatno desc ");
  280. CoreClientParam CCP_LgEts = new CoreClientParam();
  281. DataTable dt = new DataTable();
  282. CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  283. CCP_LgEts.MethodName = "doQuery";
  284. CCP_LgEts.ServerParams = new object[] { arry, sqlList };
  285. CCP_LgEts.SourceDataTable = dt;
  286. this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
  287. DataSet ds=new DataSet();
  288. _dsMid = new DataSet();
  289. _dsMid.Tables.Add(dt);
  290. strOut = CCP_LgEts.ReturnInfo;
  291. if (_dsMid.Tables[0].Rows.Count > 0 && _dsMid != null)
  292. {
  293. this.uGrdCutPlan.DataSource = _dsMid.Tables[0];
  294. SetSteelSum();
  295. }
  296. else
  297. {
  298. try
  299. {
  300. ((DataTable)uGrdCutPlan.DataSource).Rows.Clear();
  301. }
  302. catch (Exception)
  303. {
  304. }
  305. }
  306. string strOld = "";
  307. string strNew = "";
  308. string strOld_Order = "";
  309. string strNew_Order = "";
  310. Color c1 = Color.GhostWhite;
  311. Color c2 = Color.MintCream;
  312. Color c3 = c1;
  313. Color color_OrderNo1 = Color.Blue;
  314. Color color_OrderNo2 = Color.Black;
  315. Color color_OrderNo3 = color_OrderNo1;
  316. for (int i = 0; i < this.uGrdCutPlan.Rows.Count; i++)
  317. {
  318. UltraGridRow ugr = this.uGrdCutPlan.Rows[i];
  319. strNew = ugr.Cells["HEATNO"].Value.ToString();
  320. strNew_Order = ugr.Cells["PRODORDERNO"].Value.ToString();
  321. if (strOld != strNew)
  322. {
  323. if (c3 == c1) c3 = c2;
  324. else c3 = c1;
  325. strOld = strNew;
  326. }
  327. ugr.Appearance.BackColor = c3;
  328. if (strOld_Order != strNew_Order)
  329. {
  330. if (color_OrderNo3 == color_OrderNo1) color_OrderNo3 = color_OrderNo2;
  331. else color_OrderNo3 = color_OrderNo1;
  332. strOld_Order = strNew_Order;
  333. }
  334. ugr.Appearance.ForeColor = color_OrderNo3;
  335. }
  336. }
  337. catch (Exception ex)
  338. {
  339. string strMsg = ex.Message;
  340. }
  341. }
  342. /// <summary>
  343. /// 获取指定炉号的生产状态
  344. /// </summary>
  345. /// <param name="strHeatNo"></param>
  346. /// <returns></returns>
  347. private bool GetHeatState(string strHeatNo)
  348. {
  349. string strErr = "";
  350. string strState = "";
  351. bool blState = false;
  352. ArrayList arry = new ArrayList();
  353. arry.Add("FrmCutBilletDetails_Query2");
  354. CommonClientToServer ccs = new CommonClientToServer();
  355. ccs.ob = this.ob;
  356. arry.Add(strHeatNo);
  357. DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
  358. if (strErr == "")
  359. {
  360. if (ds != null && ds.Tables[0].Rows.Count > 0)
  361. strState = ds.Tables[0].Rows[0]["Heat_state"].ToString();
  362. if (strState == "08" || strState == "09")
  363. blState = true;
  364. }
  365. return blState;
  366. }
  367. /// <summary>
  368. /// 新增
  369. /// </summary>
  370. private void Add()
  371. {
  372. LastUpdateTime = DateTime.Now;
  373. string strLastFla = "";
  374. //只有在连铸机生产或已生产完的
  375. if (!GetHeatState(txtEditRlh.Text))
  376. {
  377. MessageBox.Show("炉号【" + txtEditRlh.Text + "】没有上连铸机生产,不能生成坯料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  378. return;
  379. }
  380. if (this.uGrdCutPlan.Rows.Count < 1)
  381. {
  382. strLastFla = "N";
  383. }
  384. if (this.uGrdCutPlan.Rows.Count > 0)
  385. {
  386. UltraGridRow ugr = this.uGrdCutPlan.Rows[uGrdCutPlan.Rows.Count - 1];
  387. strLastFla = ugr.Cells["LASTBILLETFLAG"].Value.ToString();
  388. }
  389. if (strLastFla == "Y")
  390. {
  391. MessageBox.Show("请将本炉最后一块置成否后再增加支数");
  392. return;
  393. }
  394. if (this.txtEditRlh.Text.Trim().Length == 0)
  395. {
  396. MessageBox.Show("请输入熔炼号!");
  397. return;
  398. }
  399. else
  400. {
  401. string strHID = this.txtEditRlh.Text.Trim();
  402. strHID = strHID.ToUpper();
  403. if (!IsValidOfHeatNo(strHID))
  404. return;
  405. this.txtEditRlh.Text = strHID.ToUpper();
  406. }
  407. if (this.cmbEditCcm.Text.Trim().Length == 0)
  408. {
  409. MessageBox.Show("请输入铸机号!");
  410. return;
  411. }
  412. if (this.cmbEditFlowNo.Text.Trim().Length == 0)
  413. {
  414. MessageBox.Show("请输入铸流号!");
  415. return;
  416. }
  417. if (this.txtEditCutN.Text.Trim().Length == 0)
  418. {
  419. MessageBox.Show("请输入切割序号!");
  420. return;
  421. }
  422. if (string.IsNullOrEmpty(this.strV_BilletID))
  423. {
  424. MessageBox.Show("请选择切割计划!");
  425. return;
  426. }
  427. if (string.IsNullOrEmpty(strOrderNO))
  428. {
  429. MessageBox.Show("请选择切割计划!");
  430. return;
  431. }
  432. ArrayList ar = GetCurrValue();
  433. string strCastNo = ar[5].ToString();
  434. string strHeatNo = ar[0].ToString();
  435. int nHeatNum = 0;
  436. for (int i = 0; i < this.uGrdCutPlan.Rows.Count; i++)
  437. {
  438. UltraGridRow ugrf = this.uGrdCutPlan.Rows[i];
  439. if (strCastNo == ugrf.Cells["MOULDNO"].Value.ToString())
  440. {
  441. if (strHeatNo == ugrf.Cells["HEATNO"].Value.ToString())
  442. {
  443. int nInt = Convert.ToInt32(ugrf.Cells["CUTSEQNO"].Value.ToString());
  444. if (nInt > nHeatNum) nHeatNum = nInt;
  445. }
  446. }
  447. }
  448. nHeatNum++;
  449. ar[4] = nHeatNum.ToString();
  450. ar[13] = DateTime.Now.ToString();
  451. string strHeatNum = nHeatNum.ToString();
  452. if (nHeatNum < 10) ar[16] = strHeatNo.Substring(0, 8) + "0" + strHeatNum;
  453. else if (nHeatNum >= 100) ar[16] = strHeatNo.Substring(0, 8) + strHeatNum.Substring(1, 2);
  454. else ar[16] = strHeatNo.Substring(0, 8) + strHeatNum;
  455. if (ar == null)
  456. {
  457. MessageBox.Show("输入数据格式错误!");
  458. return;
  459. }
  460. string strMsg = "本浇注位是" + CCMN0 + ",您已经标志标示了一个最后块, 操作失败!!!";
  461. // if( comboBox6.Text == "是" ) nLastBlock = nLastBlock + 1;
  462. // if( nLastBlock > 1 )
  463. // {
  464. // MessageBox.Show( strMsg ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
  465. // return;
  466. // }
  467. int nCutSequence = -1;
  468. //检查切割顺序号的合法性
  469. try
  470. {
  471. nCutSequence = Convert.ToInt32(this.txtEditCutN.Text);
  472. }
  473. catch
  474. {
  475. MessageBox.Show("您输入的切割顺序号不对,应该输入数字,\r\n且要注意输入法采用半角。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  476. return;
  477. }
  478. //检查是否有两个相同的切割顺序
  479. if (CheckDuplicatRec(nHeatNum))
  480. {
  481. MessageBox.Show("您在同一炉中设置了两个相同的切割顺序,操作失败!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  482. return;
  483. }
  484. try
  485. {
  486. string strRecNo = DateTime.Now.ToString("yyyyMMddHHmmssfff");
  487. string strSql = "";
  488. string err = "";
  489. float billetNum = 0;
  490. float billetSum = 0;
  491. string strHeatNo_a = "";
  492. //检验实绩切割支数是否超出计划切割支数
  493. if (CheckCutQty_PlanQty(this.txtEditRlh.Text.Trim().ToString(), strOrderNO, strProdOrderNO))
  494. {
  495. strOrderNO = ""; ;//订单行号21
  496. strProdOrderNO= "";//生产订单号22
  497. strSurplusFlag = "1";//是否余材23
  498. }
  499. string strErr = "";
  500. ArrayList arry = new ArrayList();
  501. arry.Add("FrmCutBilletDetails_Query4");
  502. CommonClientToServer ccs = new CommonClientToServer();
  503. ccs.ob = this.ob;
  504. arry.Add(this.txtEditRlh.Text.Trim());
  505. DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
  506. if (err == "" && ds.Tables.Count > 0)
  507. {
  508. DataTable dtTemp = ds.Tables[0];
  509. if (dtTemp.Rows.Count >= 1)
  510. {
  511. billetNum = dtTemp.Rows[0]["MaxId"] != System.DBNull.Value ? Convert.ToSingle(dtTemp.Rows[0]["MaxId"]) : 0;//最大切割序号
  512. billetSum = dtTemp.Rows[0]["Sumw"] != System.DBNull.Value ? Convert.ToSingle(dtTemp.Rows[0]["Sumw"]) : 0;
  513. }
  514. }
  515. billetSum = billetSum + Convert.ToSingle(this.txtEditWeight.Text.Trim());
  516. if (billetSum > 180)
  517. {
  518. MessageBox.Show(strErr, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  519. return;
  520. }
  521. strHeatNo_a = this.txtEditRlh.Text.Trim().ToString();
  522. string newbilletNum = (billetNum+1).ToString();
  523. string PHao = strHeatNo_a.Substring(0, 8) + newbilletNum.PadLeft(3, '0');
  524. strErr = "";
  525. arry.Clear();
  526. ccs.ob = ob;
  527. arry.Add("FrmCutBilletDetails_Query5");
  528. arry.Add(this.txtEditPH.Text.Trim());
  529. DataSet dsCount = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
  530. if (strErr == "" && dsCount.Tables.Count > 0)
  531. {
  532. if (dsCount.Tables[0].Rows.Count >= 1)
  533. {
  534. if (Convert.ToInt32(dsCount.Tables[0].Rows[0][0]) > 0)
  535. {
  536. MessageBox.Show(this.txtEditPH.Text.Trim() + " 坯料已存在,请重新增加!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  537. return;
  538. }
  539. }
  540. }
  541. strErr = "";
  542. arry.Clear();
  543. ccs.ob = ob;
  544. #region ArrtyList数组
  545. arry.Add("FrmCutBilletDetails_Add");
  546. arry.Add(this.txtEditRlh.Text.Trim());//熔炼号 0 熔炼号
  547. arry.Add(this.textBox4.Text.Trim());//1 --连铸炉号
  548. arry.Add(this.cmbEditCcm.Text);//铸机号 2 --铸机号
  549. arry.Add(this.cmbEditFlowNo.Text);//铸流号3 --铸流号
  550. arry.Add((string)(newbilletNum).ToString());//CUTSEQNO,CUTSEQNO 4 ,--切割序号
  551. arry.Add(this.txtEditPnum.Text.Trim());//浇次号5 MOULDNO --浇次号
  552. arry.Add(Convert.ToString(this.txtEditPourViews.Text.Trim().ToString()));//浇次内序号6//HEATCNT,--浇次炉数
  553. arry.Add(Convert.ToString(this.txtEditHViews.Text.Trim().ToString()));//浇次内炉数7//HEATSEQ--炉内序号
  554. arry.Add(Convert.ToString(this.txtEdidLength.Text.Trim().ToString()));//长度8// LENGTH--长度
  555. arry.Add(Convert.ToString(this.txtEditWidth.Text.Trim().ToString()));//宽度9 // WIDTH--宽度
  556. arry.Add(Convert.ToString(this.txtEditThick.Text.Trim().ToString()));//厚度10// THICKNESS--厚度
  557. arry.Add(Convert.ToString(this.txtEditWeight.Text.Trim().ToString()));//重量11--重量
  558. arry.Add(GetSingle(this.textBox12.Text.Trim().ToString()).ToString());////是否定尺--------12 // SPECRULE SPECRULE, ,--是否定尺
  559. arry.Add(this.dTPEditCutTime.Value.ToString());//.ToString("yyyy-MM-dd HH:mm:ss")切割时间13// CUTTIME CUTTIME, ,--生产日期
  560. arry.Add(this.cmbEditClass.Text.ToString());//班次14// SHIFTCODE,SHIFTCODE ,--班组
  561. arry.Add((this.cmbEditEndBlock.Text == "是" ? "Y" : "N"));//是否末块15// LASTBILLETFLAG,LASTBILLETFLAG ,--是否最后一块
  562. arry.Add(PHao);//this.textBox13.Text.Trim());//坯次号16// BILLETNO,BILLETNO ,--批号
  563. arry.Add(strRecNo);//this.textBox14.Text.Trim());////坯料编码17// BILLETCODE,BILLETCODE ,--坯料编码
  564. arry.Add(this.UserInfo.GetUserName());//add on 2009-04-23 记录操作人员 18// OPTPERSONNEL,OPTPERSONNEL ,--操作人员
  565. arry.Add(strV_Heat_ID);//虚拟炉号19// V_HEAT_ID,V_HEAT_ID ,--虚拟炉号
  566. arry.Add(strV_BilletID);//虚拟坯料号20// V_BILLETID, V_BILLETID,--虚拟批号
  567. arry.Add(strOrderNO);//订单行号21// ORDERNO,ORDERNO ,--订单行号
  568. arry.Add(strProdOrderNO);//生产订单号22// PRODORDERNO,PRODORDERNO ,--生产订单号
  569. arry.Add(strSurplusFlag);//是否余材23// SURPLUSFLAG, SURPLUSFLAG,--是否余材
  570. arry.Add(strSteelCode);//计划牌号24// STEELCODE,STEELCODE ,--计划牌号
  571. arry.Add(strProductline);////坯料去向 25// productline,productline ,--坯料去向
  572. arry.Add("0");// l2flag,l2flag ,--喷机号标识0
  573. arry.Add("0");// resflag,resflag ,--刷新标识0
  574. arry.Add(strStandardsCode);//标准号26// STANDARDSCODE,STANDARDSCODE ,--内控标准号
  575. arry.Add(strStandardRemak);//标准描述27// STANDARDREMAK,STANDARDREMAK ,--内控标准号描述
  576. arry.Add(strCustomer_Key);//客户参数号28// CUSTOMER_KEY)CUSTOMER_KEY ,--客户参数号
  577. #endregion
  578. string strReturn = ccs.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strErr);
  579. if (!(strErr == null || strErr == ""))
  580. {
  581. MessageBox.Show("数据提交失败!");
  582. }
  583. else
  584. {
  585. DataRow dr = (this.uGrdCutPlan.DataSource as DataTable).NewRow();
  586. for (int j = 0; j < dr.Table.Columns.Count; j++)
  587. {
  588. try
  589. {
  590. dr[j] = ar[j];
  591. }
  592. catch
  593. {
  594. dr[j] = DBNull.Value;
  595. }
  596. }
  597. (this.uGrdCutPlan.DataSource as DataTable).Rows.InsertAt(dr, 0);
  598. (this.uGrdCutPlan.DataSource as DataTable).AcceptChanges();
  599. this.uGrdCutPlan.Rows[0].Activate();
  600. }
  601. }
  602. catch (Exception ex)
  603. {
  604. Console.WriteLine(ex.Message);
  605. }
  606. Query();
  607. if (uGrdCutPlan.Rows.Count > 0)
  608. uGrdCutPlan.Rows[uGrdCutPlan.Rows.Count - 1].Activated = true;
  609. }
  610. /// <summary>
  611. /// 修改
  612. /// </summary>
  613. private void Edit()
  614. {
  615. LastUpdateTime = DateTime.Now;
  616. UltraGridRow ugr = this.uGrdCutPlan.ActiveRow;
  617. if (ugr == null)
  618. {
  619. MessageBox.Show("请选择要删除的行!");
  620. return;
  621. }
  622. if (this.uGrdCutPlan.ActiveRow == null)
  623. {
  624. MessageBox.Show("请选择所要修改的行!");
  625. return;
  626. }
  627. if (this.txtEditRlh.Text.Trim().Length == 0)
  628. {
  629. MessageBox.Show("请输入熔炼号!");
  630. return;
  631. }
  632. else
  633. {
  634. string strHID = this.txtEditRlh.Text.Trim();
  635. strHID = strHID.ToUpper();
  636. if (!IsValidOfHeatNo(strHID))
  637. return;
  638. this.txtEditRlh.Text = strHID.ToUpper();
  639. }
  640. if (this.txtEditPH.Text.Trim().Length == 0)
  641. {
  642. MessageBox.Show("请输入钢坯号!");
  643. return;
  644. }
  645. if (this.cmbEditCcm.Text.Trim().Length == 0)
  646. {
  647. MessageBox.Show("请输入铸机号!");
  648. return;
  649. }
  650. if (this.cmbEditFlowNo.Text.Trim().Length == 0)
  651. {
  652. MessageBox.Show("请输入铸流号!");
  653. return;
  654. }
  655. if (this.txtEditCutN.Text.Trim().Length == 0)
  656. {
  657. MessageBox.Show("请输入切割序号!");
  658. return;
  659. }
  660. ArrayList ar = GetCurrValue();//暂时不用
  661. //if (ar == null)
  662. //{
  663. // MessageBox.Show("输入数据格式错误!");
  664. // return;
  665. //}
  666. string strChildNo = this.txtEditBlock.Text.Trim();
  667. if (strChildNo.Length == 0) strChildNo = "NULL";
  668. //ar.Add( strChildNo );
  669. int nSelCutNo = Convert.ToInt32(ugr.Cells["CUTSEQNO"].Value.ToString());
  670. int nCutSequence = -1;
  671. //检查切割顺序号的合法性
  672. try
  673. {
  674. nCutSequence = Convert.ToInt32(this.txtEditCutN.Text);
  675. }
  676. catch
  677. {
  678. MessageBox.Show("您输入的切割顺序号不对,应该输入数字,\r\n且要注意输入法采用半角。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  679. return;
  680. }
  681. if(nCutSequence != nSelCutNo)
  682. {
  683. //检查是否有两个相同的切割顺序
  684. if (CheckDuplicatRec(nCutSequence))
  685. {
  686. MessageBox.Show("您在同一路中设置了两个相同的切割顺序,这将导致记录重复,操作失败!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  687. return;
  688. }
  689. }
  690. string strLastFlag = ugr.Cells["LASTBILLETFLAG"].Value.ToString();
  691. //if( comboBox6.Text == "是" ) nLastBlock = nLastBlock + 1;
  692. int nMaxCutNo = 0;
  693. string strHeatNo = ugr.Cells["HEATNO"].Value.ToString();
  694. string strCastNo = ugr.Cells["MOULDNO"].Value.ToString();
  695. for (int j = 0; j < this.uGrdCutPlan.Rows.Count; j++)
  696. {
  697. UltraGridRow ugrf = this.uGrdCutPlan.Rows[j];
  698. if (strCastNo == ugrf.Cells["MOULDNO"].Value.ToString())
  699. {
  700. if (strHeatNo == ugrf.Cells["HEATNO"].Value.ToString())
  701. {
  702. int nTempCutNo = Convert.ToInt32(ugrf.Cells["CUTSEQNO"].Value);
  703. if (nTempCutNo > nMaxCutNo) nMaxCutNo = nTempCutNo;
  704. }
  705. }
  706. }
  707. string strMsg = "本浇注位是" + CCMN0 + ":" + Environment.NewLine + "修改数据禁用,请将最后一块的‘是’改为‘否’后再修改数据!!";
  708. int nLastBlock = CheckLastBlockCount();//如果是最后一块,需要检查是否多置了标志
  709. if (nLastBlock >= 1)
  710. {
  711. bool bShowMsg = true;
  712. if (nSelCutNo == nMaxCutNo)
  713. {
  714. if (strLastFlag == "N" && cmbEditEndBlock.Text.Trim() == "是")
  715. {
  716. bShowMsg = false;
  717. }
  718. else if (strLastFlag == "Y" && cmbEditEndBlock.Text.Trim() == "否")
  719. {
  720. bShowMsg = false;
  721. }
  722. else
  723. {
  724. bShowMsg = true;
  725. }
  726. }
  727. if (bShowMsg)
  728. {
  729. MessageBox.Show(strMsg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  730. return;
  731. }
  732. }
  733. if (strLastFlag == "N" && cmbEditEndBlock.Text.Trim() == "是")
  734. {
  735. if (nSelCutNo != nMaxCutNo)
  736. {
  737. MessageBox.Show("请在最后一行置为'是'", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  738. return;
  739. }
  740. }
  741. try
  742. {
  743. string strOut = "";
  744. string strReturn = "";
  745. ArrayList arry = new ArrayList();
  746. arry.Clear();
  747. arry.Add("FrmCutBilletDetails_Edit");
  748. arry.Add(this.txtEditRlh.Text.Trim());//熔炼号 0
  749. arry.Add(this.cmbEditCcm.Text);//铸机号 1
  750. arry.Add(this.cmbEditFlowNo.Text);//铸流号2
  751. arry.Add(this.txtEditCutN.Text.Trim());//切割序号3
  752. arry.Add(this.txtEditPnum.Text.Trim());//浇次号4
  753. //ar.Add(GetSingle(this.textBox6.Text.Trim().ToString()));//浇次内序号
  754. //ar.Add(GetSingle(this.textBox7.Text.Trim().ToString()));//浇次内炉数
  755. //ar.Add(GetSingle(this.textBox3.Text.Trim().ToString()));//长度
  756. //ar.Add(GetSingle(this.textBox9.Text.Trim().ToString()));//宽度
  757. arry.Add(Convert.ToString(this.txtEditPourViews.Text.Trim().ToString()));//浇次内序号5
  758. arry.Add(Convert.ToString(this.txtEditHViews.Text.Trim().ToString()));//浇次内炉数6
  759. arry.Add(Convert.ToString(this.txtEdidLength.Text.Trim().ToString()));//长度7
  760. arry.Add(Convert.ToString(this.txtEditWidth.Text.Trim().ToString()));//宽度8
  761. arry.Add(Convert.ToString(this.txtEditThick.Text.Trim().ToString()));//厚度9
  762. arry.Add(Convert.ToString(this.txtEditWeight.Text.Trim().ToString()));//重量10
  763. //ar.Add(GetSingle(this.textBox10.Text.Trim().ToString()));//厚度
  764. //ar.Add(GetSingle(this.textBox11.Text.Trim().ToString()));//重量
  765. //ar.Add(GetSingle(this.textBox12.Text.Trim().ToString()));//暂时不用
  766. arry.Add(ugr.Cells["SPECRULE"].Value.ToString());//是否定尺--------
  767. arry.Add(this.dTPEditCutTime.Value.ToString());//.ToString("yyyy-MM-dd HH:mm:ss")切割时间
  768. arry.Add(this.cmbEditClass.SelectedValue);//班次SelectedValue cmbEditClass
  769. if (this.cmbEditEndBlock.Text == "是")
  770. arry.Add("Y");
  771. else//是否末块
  772. //arry.Add(this.comboBox6.SelectedIndex);
  773. arry.Add("N");
  774. arry.Add(this.txtEditPH.Text.Trim());//坯次号
  775. //ar.Add(this.textBox14.Text.Trim());//暂时不用
  776. arry.Add(this.UserInfo.GetUserName()); //add on 2009-04-23 记录操作人员
  777. arry.Add(ugr.Cells["BILLETCODE"].Value.ToString());//坯料编码---------
  778. CommonClientToServer ccs = new CommonClientToServer();
  779. ccs.ob = this.ob;
  780. strReturn = ccs.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strOut);
  781. if (!(strOut==null||strOut==""))
  782. {
  783. MessageBox.Show("数据提交失败!\n" + strOut);
  784. }
  785. else
  786. {
  787. //this.ultraGrid1.UpdateData();
  788. Query();
  789. if (uGrdCutPlan.Rows.Count > 0)
  790. uGrdCutPlan.Rows[uGrdCutPlan.Rows.Count - 1].Activated = true;
  791. //if (i == this.ultraGrid1.Rows.Count - 1)
  792. //{
  793. // ugr.Activated = true;
  794. // ugr.Selected = true;
  795. //}
  796. //else
  797. //{
  798. // ugr.Activated = false;
  799. // ugr.Selected = false;
  800. //}
  801. }
  802. }
  803. catch (Exception ex)
  804. {
  805. MessageBox.Show(ex.Message);
  806. return;
  807. }
  808. }
  809. /// <summary>
  810. /// 删除
  811. /// </summary>
  812. private void Del()
  813. {
  814. LastUpdateTime = DateTime.Now;
  815. int i = 0;
  816. int nCutNo = 0;
  817. int nSelCutNo = 0;
  818. string strHeatNo = "";
  819. string strCastNo = "";
  820. string strErr = "";
  821. UltraGridRow ugr = this.uGrdCutPlan.ActiveRow;
  822. if (ugr == null)
  823. {
  824. MessageBox.Show("请选择要删除的行!");
  825. return;
  826. }
  827. strHeatNo = ugr.Cells["HEATNO"].Value.ToString();
  828. strCastNo = ugr.Cells["MOULDNO"].Value.ToString();
  829. ArrayList arry = new ArrayList();
  830. arry.Add("FrmCutBilletDetails_Query6");
  831. CommonClientToServer ccs = new CommonClientToServer();
  832. ccs.ob = this.ob;
  833. arry.Add(strCastNo);
  834. arry.Add(strHeatNo);
  835. DataSet dsCount = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
  836. if (strErr == "" && dsCount != null)
  837. {
  838. if (dsCount.Tables[0].Rows.Count > 0)
  839. nSelCutNo = Convert.ToInt16(dsCount.Tables[0].Rows[0][0]);
  840. }
  841. for (int j = 0; j < this.uGrdCutPlan.Rows.Count; j++)
  842. {
  843. UltraGridRow ugrf = this.uGrdCutPlan.Rows[j];
  844. if (strCastNo == ugrf.Cells["MOULDNO"].Value.ToString())
  845. {
  846. if (strHeatNo == ugrf.Cells["HEATNO"].Value.ToString())
  847. {
  848. nCutNo++;
  849. }
  850. }
  851. }
  852. if (nCutNo != nSelCutNo)
  853. {
  854. MessageBox.Show("选择的钢坯不是本浇次本炉最后一支,请选择要最后一行删除!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  855. return;
  856. }
  857. FrmSelDel frm = new FrmSelDel(ob);
  858. frm.ShowDialog();
  859. i = ugr.Index;
  860. string strWhere = "";
  861. if (frm._Flag == "A")
  862. {
  863. strWhere = " where BILLETCODE = '" + ugr.Cells["BILLETCODE"].Value.ToString() + "'";
  864. }
  865. else if (frm._Flag == "B")
  866. {
  867. strWhere = " where HEATNO = '" + ugr.Cells["HEATNO"].Value.ToString() + "'";
  868. }
  869. else
  870. {
  871. return;
  872. }
  873. try
  874. {
  875. string strsql = "delete stl_incision " + strWhere + "";
  876. string strsql_old = "delete J#stl_incision " + strWhere + "";
  877. CoreClientParam ccp_K = new CoreClientParam();
  878. ccp_K.ServerName = "Core.LgMes.Server.DEV.Methods.DEVPublicMethods";
  879. ccp_K.MethodName = "UpdateMethods";
  880. ccp_K.ServerParams = new object[] { strsql };
  881. ExecuteNonQuery(ccp_K, CoreInvokeType.Internal);
  882. //strerr = ccp_K.ReturnInfo.ToString();
  883. string strOut = ccp_K.ReturnInfo.ToString();
  884. strOut = "";
  885. CoreClientParam ccp = new CoreClientParam();
  886. ccp.ServerName = "Core.LgMes.Server.DEV.Methods.DEVPublicMethods";
  887. ccp.MethodName = "UpdateMethods";
  888. ccp.ServerParams = new object[] { strsql_old };
  889. ExecuteNonQuery(ccp_K, CoreInvokeType.Internal);
  890. strOut = ccp_K.ReturnInfo.ToString();
  891. if (strOut!= "")
  892. {
  893. MessageBox.Show(strOut, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  894. return;
  895. }
  896. }
  897. catch (Exception ex)
  898. {
  899. MessageBox.Show(ex.Message);
  900. return;
  901. }
  902. if (frm._Flag == "B")
  903. {
  904. this.GetSqlWhere();
  905. this.GetData();
  906. return;
  907. }
  908. this.uGrdCutPlan.ActiveRow.Delete(false);
  909. this.uGrdCutPlan.UpdateData();
  910. try
  911. {
  912. this.uGrdCutPlan.Rows[i].Activate();
  913. }
  914. catch
  915. {
  916. int count = this.uGrdCutPlan.Rows.Count;
  917. if (count > 0)
  918. this.uGrdCutPlan.Rows[count - 1].Activate();
  919. }
  920. }
  921. /// <summary>
  922. /// 计划查询
  923. /// </summary>
  924. private void Plan()
  925. {
  926. if (bHandleCoup)
  927. {
  928. bHandleCoup = false;
  929. }
  930. else
  931. {
  932. bHandleCoup = true;
  933. if (_dsMid != null && _dsMid.Tables.Count > 0)
  934. {
  935. _dsMid.Tables[0].Rows.Clear();
  936. this.uGrdCutPlan.DataSource = _dsMid.Tables[0];
  937. uGrdCutPlan.DataBind();
  938. uGrdCutPlan.Refresh();
  939. }
  940. }
  941. //上次开始的计时更新时间(开始用到)
  942. LastUpdateTime = DateTime.Now;
  943. strOldBlockNo = "";
  944. strOldCastNo = "";
  945. //将两个grid利用FixRow分开
  946. SplitTwoGrid();
  947. //装载两个对应关系的数据
  948. RalationUIChange();
  949. }
  950. /// <summary>
  951. /// 显示切换
  952. /// </summary>
  953. private void ShowToolBans()
  954. {
  955. if (this.panel2.Visible)
  956. {
  957. //计划框体展现
  958. this.panel2.Visible = false;
  959. this.ultraExpandableGroupBox1.Expanded = false;
  960. }
  961. else
  962. {
  963. //计划框体展现
  964. this.panel2.Visible = true;
  965. this.ultraExpandableGroupBox1.Expanded = true;
  966. }
  967. }
  968. //将两个grid利用FixRow分开
  969. /// <summary>
  970. /// 将两个grid利用FixRow分开
  971. /// </summary>
  972. private void SplitTwoGrid()
  973. {
  974. this.uGrdCutPlan.DisplayLayout.Override.FixedRowsLimit = -1;
  975. this.uGrdCutPlan.DisplayLayout.Override.FixedRowStyle = FixedRowStyle.Default;
  976. this.uGrdCutPlan.DisplayLayout.Override.FixedRowIndicator = FixedRowIndicator.Default;
  977. this.uGrdCutPlan.DisplayLayout.Override.SpecialRowSeparator = SpecialRowSeparator.Default;
  978. this.uGrdCutPlan.DisplayLayout.Override.SpecialRowSeparatorHeight = -1;
  979. }
  980. //装载两个对应关系的数据
  981. /// <summary>
  982. /// 装载两个对应关系的数据
  983. /// </summary>
  984. private void RalationUIChange()
  985. {
  986. if (bHandleCoup)
  987. {
  988. //ultraToolbarsManager1.Toolbars[0].Tools[5].SharedProps.Caption = "关联察看";
  989. }
  990. else
  991. {
  992. // ultraToolbarsManager1.Toolbars[0].Tools[5].SharedProps.Caption = "单独查询";
  993. }
  994. }
  995. //切换到手动匹配模式
  996. private bool bHandleCoup = false;
  997. /// <summary>
  998. /// 获取参数(新增、修改)
  999. /// </summary>
  1000. /// <returns></returns>
  1001. private ArrayList GetCurrValue()
  1002. {
  1003. ArrayList ar = new ArrayList();
  1004. //ar.Clear();
  1005. try
  1006. {
  1007. ar.Add(this.txtEditRlh.Text.Trim());//熔炼号 0
  1008. ar.Add(this.textBox4.Text.Trim());////连铸炉号 1
  1009. ar.Add(this.cmbEditCcm.Text);//铸机号 2
  1010. ar.Add(this.cmbEditFlowNo.Text);//铸流号3
  1011. ar.Add(this.txtEditCutN.Text.Trim());//切割序号4
  1012. ar.Add(this.txtEditPnum.Text.Trim());//浇次号5
  1013. ar.Add(Convert.ToString(this.txtEditPourViews.Text.Trim().ToString()));//浇次内序号6
  1014. ar.Add(Convert.ToString(this.txtEditHViews.Text.Trim().ToString()));//浇次内炉数7
  1015. ar.Add(Convert.ToString(this.txtEdidLength.Text.Trim().ToString()));//长度8
  1016. ar.Add(Convert.ToString(this.txtEditWidth.Text.Trim().ToString()));//宽度8
  1017. ar.Add(Convert.ToString(this.txtEditThick.Text.Trim().ToString()));//厚度10
  1018. ar.Add(Convert.ToString(this.txtEditWeight.Text.Trim().ToString()));//重量11
  1019. ar.Add(GetSingle(this.textBox12.Text.Trim().ToString()));////是否定尺--------12
  1020. ar.Add(this.dTPEditCutTime.Value.ToString());//.ToString("yyyy-MM-dd HH:mm:ss")切割时间13
  1021. //
  1022. ar.Add(this.cmbEditClass.SelectedIndex);//班次14
  1023. if (this.cmbEditEndBlock.Text == "是")
  1024. ar.Add("Y");
  1025. else//是否末块15
  1026. ar.Add("N");
  1027. ar.Add(this.txtEditPH.Text.Trim());//坯次号16
  1028. ar.Add(this.textBox14.Text.Trim());////坯料编码17
  1029. ar.Add(this.UserInfo.GetUserName()); //add on 2009-04-23 记录操作人员 18
  1030. ar.Add(strV_Heat_ID);//虚拟炉号19
  1031. ar.Add(strV_BilletID);//虚拟坯料号20
  1032. ar.Add(strOrderNO);//订单行号21
  1033. ar.Add(strProdOrderNO);//生产订单号22
  1034. ar.Add(strSurplusFlag);//是否余材23
  1035. ar.Add(strSteelCode);//计划牌号24
  1036. ar.Add(strProductline);////坯料去向 25
  1037. ar.Add(strStandardsCode);//标准号26
  1038. ar.Add(strStandardRemak);//标准描述27
  1039. ar.Add(strCustomer_Key);//客户参数号28
  1040. return ar;
  1041. }
  1042. catch
  1043. {
  1044. return null;
  1045. }
  1046. }
  1047. private object GetSingle(string str)
  1048. {
  1049. if (str == "")
  1050. return "null";
  1051. else
  1052. return Convert.ToSingle(str);
  1053. }
  1054. /// <summary>
  1055. /// 本函数检查是否有重复的记录( 重点是切割顺序 )
  1056. /// </summary>
  1057. /// <param name="nCutSeqence"></param>
  1058. /// <returns></returns>
  1059. private bool CheckDuplicatRec(int nCutSeqence)
  1060. {
  1061. // true 不合法
  1062. if (nCutSeqence == -1) return true;
  1063. //再次在恰当的数据源查找
  1064. DataTable dtFind = uGrdCutPlan.DataSource as DataTable;
  1065. //展现的数据行数
  1066. try
  1067. {
  1068. foreach (DataRow dr in dtFind.Rows)
  1069. {
  1070. int nInt = Convert.ToInt32(dr["CUTSEQNO"].ToString());
  1071. if (nCutSeqence == nInt)
  1072. return true;
  1073. }
  1074. }
  1075. catch { }
  1076. //false 合法
  1077. return false;
  1078. }
  1079. /// <summary>
  1080. /// 本函数检查是否有两个记录都标示是最后一块
  1081. /// </summary>
  1082. /// <returns></returns>
  1083. private int CheckLastBlockCount()
  1084. {
  1085. /*//首先停止现程的扫描
  1086. LastUpdateTime = DateTime.Now;
  1087. //再次在恰当的数据源查找
  1088. DataTable dtFind = ultraGrid1.DataSource as DataTable;
  1089. //展现的数据行数
  1090. //ultraGrid1.Rows.Count+1
  1091. int nRowCount = dtFind.Rows.Count;
  1092. int CheckCount = 0;
  1093. int MaxRows =0;
  1094. foreach( DataRow dr in dtFind.Rows )
  1095. {
  1096. MaxRows=MaxRows+1;
  1097. if (MaxRows==(ultraGrid1.Rows.Count))
  1098. break;
  1099. if( dr["LASTBILLETFLAG"].ToString() == "Y" )
  1100. CheckCount = CheckCount + 1;
  1101. }*/
  1102. bool bHasLastCutBillet = false;
  1103. string strCastNo = "";
  1104. string strHeatNo = "";
  1105. int CheckCount = 0;
  1106. UltraGridRow ugr = this.uGrdCutPlan.ActiveRow;
  1107. strHeatNo = ugr.Cells["HEATNO"].Value.ToString();
  1108. strCastNo = ugr.Cells["MOULDNO"].Value.ToString();
  1109. for (int j = 0; j < this.uGrdCutPlan.Rows.Count; j++)
  1110. {
  1111. UltraGridRow ugrf = this.uGrdCutPlan.Rows[j];
  1112. if (strCastNo == ugrf.Cells["MOULDNO"].Value.ToString())
  1113. {
  1114. if (strHeatNo == ugrf.Cells["HEATNO"].Value.ToString())
  1115. {
  1116. if (ugrf.Cells["LASTBILLETFLAG"].Value.ToString() == "Y")
  1117. {
  1118. bHasLastCutBillet = true;
  1119. break;
  1120. }
  1121. }
  1122. }
  1123. }
  1124. if (bHasLastCutBillet) CheckCount = 1;
  1125. else CheckCount = 0;
  1126. return CheckCount;
  1127. }
  1128. /// <summary>
  1129. /// 统计产量
  1130. /// </summary>
  1131. private void SetSteelSum()
  1132. {
  1133. try
  1134. {
  1135. UltraGridBand band = this.uGrdCutPlan.DisplayLayout.Bands[0];
  1136. band.Summaries.Clear();
  1137. SummarySettings summary = band.Summaries.Add(SummaryType.Count, band.Columns["HEATNO"]);
  1138. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  1139. summary.DisplayFormat = "合计:";
  1140. summary = band.Summaries.Add(SummaryType.Sum, band.Columns["WEIGHT"]);
  1141. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  1142. summary.DisplayFormat = " {0:#####.00}";
  1143. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Center;
  1144. summary.Appearance.ForeColor = Color.DarkBlue;
  1145. summary.Appearance.BackColor = Color.White;
  1146. band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  1147. }
  1148. catch (Exception ex) { string strMsg = ex.Message;};
  1149. }
  1150. private void FrmCutBilletDetails_Load(object sender, EventArgs e)
  1151. {
  1152. string strKey = "";
  1153. if (this.CustomInfo.ToString() != "")
  1154. {
  1155. if (this.Tag != null)
  1156. {
  1157. _DEVICE_POSITION = "CCM" + this.Tag.ToString().Substring(0, 1);
  1158. _DEVICE_POS = Convert.ToInt32(this.Tag.ToString().Substring(0, 1));
  1159. }
  1160. else
  1161. {
  1162. _DEVICE_POSITION = this.CustomInfo.ToString();// this.Key.Substring(this.Key.Length - 5, 5);
  1163. int aa = Convert.ToInt32(this.CustomInfo.Substring(this.CustomInfo.Length - 1, 1));
  1164. _DEVICE_POS = Convert.ToInt32(this.CustomInfo.Substring(this.CustomInfo.Length - 1, 1));
  1165. }
  1166. CCMN0= this.CustomInfo.Substring(this.CustomInfo.Length - 1, 1);
  1167. }
  1168. uGrdCutPlan.DisplayLayout.Appearance.FontData.SizeInPoints = 10;
  1169. this.dtpCutStart.Text = System.DateTime.Today.AddDays(-2).ToString("yyyy-MM-dd") + " 00:00";
  1170. this.dtpCutEnd.Text = System.DateTime.Today.ToString("yyyy-MM-dd") + " 23:59";
  1171. if (_DEVICE_POS == 2 || _DEVICE_POS == 3)
  1172. {
  1173. uGrdCutPlan.DisplayLayout.ValueLists["flow"].ValueListItems[1].DisplayText = "1流";
  1174. uGrdCutPlan.DisplayLayout.ValueLists["flow"].ValueListItems[2].DisplayText = "2流";
  1175. uGrdCutPlan.DisplayLayout.ValueLists["flow"].ValueListItems[3].DisplayText = "3流";
  1176. }
  1177. InitSteel(); //初始化Grid牌号信息
  1178. // GetSqlWhere();
  1179. // GetData();
  1180. //OpenFromGetData();
  1181. InitComboBoxSource();
  1182. if (_DEVICE_POS > -1)
  1183. {
  1184. cmbEditCcm.SelectedIndex = _DEVICE_POS;
  1185. cmbEditCcm.Enabled = false;
  1186. cmbCcm.SelectedIndex = _DEVICE_POS;
  1187. intCcm = _DEVICE_POS;
  1188. }
  1189. strOldBlockNo = "";
  1190. strOldCastNo = "";
  1191. ////计划框体展现
  1192. this.panel2.Visible = true;
  1193. this.ultraExpandableGroupBox1.Expanded = true;
  1194. CheckForIllegalCrossThreadCalls = false;
  1195. blText = true;
  1196. this.txtEditCutN.TextChanged += new System.EventHandler(this.textBox5_TextChanged);
  1197. //刷新线程
  1198. ThreadStart ts = new ThreadStart(SetDataThread);
  1199. _refreshDataThread = new Thread(ts);
  1200. _refreshDataThread.Name = "RefreshData";
  1201. _refreshDataThread.Start();
  1202. bHandleCoup = true;
  1203. bExit = false;
  1204. #region 切割信息
  1205. dtpCutTime.Value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  1206. steelSchTable = new DataTable("steelSchTable");
  1207. cutSchTable = new DataTable("cutSchTable");
  1208. createTable();
  1209. this.uGrdPlanInfo.DataSource = steelSchTable;
  1210. this.uGrdCutInfo.DataSource = cutSchTable;
  1211. setGrid1View();
  1212. InitComboBoxSource_A();
  1213. this.combConNo.SelectedIndex = 0;
  1214. if (this.CustomInfo.ToString() != "")
  1215. {
  1216. //分铸机
  1217. if (intCcm == -1)
  1218. {
  1219. this.ccmNumCobo.SelectedIndex = 0;
  1220. }
  1221. else
  1222. {
  1223. this.ccmNumCobo.SelectedIndex = intCcm;
  1224. chkCcmNo.Checked = true;
  1225. cmbCcm.Enabled = false;//铸机号
  1226. cmbCcm.SelectedIndex = intCcm;
  1227. ccmNumCobo.Enabled = false;
  1228. chkCcm.Checked = true;
  1229. cboZJH.SelectedIndex = intCcm;
  1230. cboZJH.Enabled = false;
  1231. }
  1232. }
  1233. else
  1234. {
  1235. chkCcm.Enabled = true; ;
  1236. cmbCcm.Enabled=false;//铸机号
  1237. chkCcmNo.Enabled = true;
  1238. ccmNumCobo.Enabled=false;
  1239. cboZJH.Enabled=true;
  1240. cmbEditCcm.Enabled = true;
  1241. }
  1242. this.queryBtn_Click(null, new EventArgs());
  1243. #endregion
  1244. }
  1245. /// <summary>
  1246. /// 初始化Grind牌号
  1247. /// </summary>
  1248. private void InitSteel()
  1249. {
  1250. string strErr = "";
  1251. uGrdCutPlan.DisplayLayout.ValueLists.Add("SteelCode");
  1252. ArrayList arry = new ArrayList();
  1253. arry.Add("FrmCutBilletDetails_Query12");
  1254. CommonClientToServer ccs = new CommonClientToServer();
  1255. ccs.ob = this.ob;
  1256. DataSet dsSteel = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
  1257. if (strErr == "" && dsSteel != null)
  1258. {
  1259. //初始经Grid牌号字段数据集
  1260. for (int i = 0; i < dsSteel.Tables[0].Rows.Count; i++)
  1261. {
  1262. uGrdCutPlan.DisplayLayout.ValueLists["SteelCode"].ValueListItems.Add(dsSteel.Tables[0].Rows[i]["SteelCode"].ToString(), dsSteel.Tables[0].Rows[i]["Steel"].ToString());
  1263. }
  1264. //绑定单位
  1265. uGrdCutPlan.DisplayLayout.Bands[0].Columns["SteelCode"].ValueList = uGrdCutPlan.DisplayLayout.ValueLists["SteelCode"];
  1266. }
  1267. }
  1268. /// <summary>
  1269. /// 验证炉号
  1270. /// </summary>
  1271. /// <param name="strSmeltingID"></param>
  1272. /// <returns></returns>
  1273. private bool IsValidOfHeatNo(string strSmeltingID)
  1274. {
  1275. if (strSmeltingID == "")
  1276. return false;
  1277. if (strSmeltingID.Length != 10)
  1278. {
  1279. return false;
  1280. }
  1281. return true;
  1282. }
  1283. public void TimerRefresh()
  1284. {
  1285. LastUpdateTime = DateTime.Now;
  1286. this.GetSqlWhere();
  1287. this.RefreshTable();
  1288. }
  1289. private void InitComboBoxSource()
  1290. {
  1291. this.cmbEditClass.DataSource = GetDutyData();
  1292. this.cmbEditClass.DisplayMember = "name";
  1293. this.cmbEditClass.ValueMember = "id";
  1294. this.cmbEditCcm.DataSource = GetCcmData();
  1295. this.cmbEditCcm.DisplayMember = "name";
  1296. this.cmbEditCcm.ValueMember = "id";
  1297. this.cmbCcm.DataSource = GetCcmData();
  1298. this.cmbCcm.DisplayMember = "name";
  1299. this.cmbCcm.ValueMember = "id";
  1300. this.cmbEditFlowNo.DataSource = GetFlowData();
  1301. this.cmbEditFlowNo.DisplayMember = "name";
  1302. this.cmbEditFlowNo.ValueMember = "id";
  1303. this.cmbEditEndBlock.DataSource = GetStatusData();
  1304. this.cmbEditEndBlock.DisplayMember = "name";
  1305. this.cmbEditEndBlock.ValueMember = "id";
  1306. }
  1307. /// <summary>
  1308. /// 班次班组
  1309. /// </summary>
  1310. /// <returns></returns>
  1311. private DataTable GetDutyData()
  1312. {
  1313. DataTable dt = new DataTable();
  1314. dt.Columns.Add("id", typeof(System.String));
  1315. dt.Columns.Add("name", typeof(System.String));
  1316. dt.Rows.Add(new object[] { "11", "白班甲组" });
  1317. dt.Rows.Add(new object[] { "12", "白班乙组" });
  1318. dt.Rows.Add(new object[] { "13", "白班丙组" });
  1319. dt.Rows.Add(new object[] { "14", "白班丁组" });
  1320. dt.Rows.Add(new object[] { "21", "中班甲组" });
  1321. dt.Rows.Add(new object[] { "22", "中班乙组" });
  1322. dt.Rows.Add(new object[] { "23", "中班丙组" });
  1323. dt.Rows.Add(new object[] { "24", "中班丁组" });
  1324. dt.Rows.Add(new object[] { "31", "夜班甲组" });
  1325. dt.Rows.Add(new object[] { "32", "夜班乙组" });
  1326. dt.Rows.Add(new object[] { "33", "夜班丙组" });
  1327. dt.Rows.Add(new object[] { "34", "夜班丁组" });
  1328. dt.AcceptChanges();
  1329. return dt;
  1330. }
  1331. /// <summary>
  1332. /// 铸机号
  1333. /// </summary>
  1334. /// <returns></returns>
  1335. private DataTable GetCcmData()
  1336. {
  1337. DataTable dt = new DataTable();
  1338. dt.Columns.Add("id", typeof(System.String));
  1339. dt.Columns.Add("name", typeof(System.String));
  1340. //dt.Rows.Add(new object[] { "0", "0#铸机" });
  1341. dt.Rows.Add(new object[] { "1", "1#铸机" });
  1342. dt.Rows.Add(new object[] { "2", "2#铸机" });
  1343. dt.Rows.Add(new object[] { "3", "3#铸机" });
  1344. //dt.Rows.Add(new object[] { "4", "4#铸机" });
  1345. dt.AcceptChanges();
  1346. return dt;
  1347. }
  1348. /// <summary>
  1349. /// 是否是本来末块
  1350. /// </summary>
  1351. /// <returns></returns>
  1352. private DataTable GetStatusData()
  1353. {
  1354. DataTable dt = new DataTable();
  1355. dt.Columns.Add("id", typeof(System.String));
  1356. dt.Columns.Add("name", typeof(System.String));
  1357. dt.Rows.Add(new object[] { "Y", "是" });
  1358. dt.Rows.Add(new object[] { "N", "否" });
  1359. dt.AcceptChanges();
  1360. return dt;
  1361. }
  1362. /// <summary>
  1363. /// 流号
  1364. /// </summary>
  1365. /// <returns></returns>
  1366. private DataTable GetFlowData()
  1367. {
  1368. DataTable dt = new DataTable();
  1369. dt.Columns.Add("id", typeof(System.String));
  1370. dt.Columns.Add("name", typeof(System.String));
  1371. if (_DEVICE_POS == 2 || _DEVICE_POS == 3)
  1372. {
  1373. //dt.Rows.Add(new object[] { "1", "0流" });
  1374. dt.Rows.Add(new object[] { "2", "1流" });
  1375. dt.Rows.Add(new object[] { "3", "2流" });
  1376. dt.Rows.Add(new object[] { "4", "3流" });
  1377. dt.Rows.Add(new object[] { "5", "4流" });
  1378. }
  1379. else
  1380. {
  1381. dt.Rows.Add(new object[] { "1", "1流" });
  1382. dt.Rows.Add(new object[] { "2", "2流" });
  1383. dt.Rows.Add(new object[] { "3", "3流" });
  1384. dt.Rows.Add(new object[] { "4", "4流" });
  1385. //dt.Rows.Add(new object[] { "5", "5流" });
  1386. }
  1387. dt.AcceptChanges();
  1388. return dt;
  1389. }
  1390. /// <summary>
  1391. ///
  1392. /// </summary>
  1393. private void RefreshTable()
  1394. {
  1395. //将Grid的左侧移动到开始位置
  1396. Infragistics.Win.UltraWinGrid.Scrollbars scrollbars = this.uGrdCutPlan.DisplayLayout.Scrollbars;
  1397. if (scrollbars == Infragistics.Win.UltraWinGrid.Scrollbars.Automatic ||
  1398. scrollbars == Infragistics.Win.UltraWinGrid.Scrollbars.Both ||
  1399. scrollbars == Infragistics.Win.UltraWinGrid.Scrollbars.Vertical)
  1400. {
  1401. this.uGrdCutPlan.DisplayLayout.ColScrollRegions[0].Position = 0;
  1402. }
  1403. try
  1404. {
  1405. ArrayList arry = new ArrayList();
  1406. ArrayList sqlList = new ArrayList();
  1407. arry.Add("FrmCutBilletDetails_Query13");
  1408. sqlList.Add(_strWhere + " order by cuttime asc,ccmid asc, heatno desc ");
  1409. CoreClientParam CCP_LgEts = new CoreClientParam();
  1410. DataTable dt = new DataTable();
  1411. CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  1412. CCP_LgEts.MethodName = "doQuery";
  1413. CCP_LgEts.ServerParams = new object[] { arry, sqlList };
  1414. CCP_LgEts.SourceDataTable = dt;
  1415. this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
  1416. //_dsMid.Tables.Add(dt);
  1417. this.uGrdCutPlan.BeginUpdate(); //避免重画
  1418. if (_dsMid != null && _dsMid.Tables.Count > 0)
  1419. {
  1420. if (_dsMid != null && _dsMid.Tables.Count > 0)
  1421. _dsMid.Tables[0].Rows.Clear();
  1422. }
  1423. DataSet dsTemp = new DataSet();
  1424. dsTemp.Tables.Add(dt);
  1425. if (dsTemp.Tables[0].Rows.Count > 0)
  1426. {
  1427. _dsMid = dsTemp;
  1428. this.uGrdCutPlan.DataSource = _dsMid.Tables[0];
  1429. }
  1430. dsTemp.Dispose();
  1431. //准许重画
  1432. this.uGrdCutPlan.EndUpdate();
  1433. string strOld = "";
  1434. string strNew = "";
  1435. string strOld_Order = "";
  1436. string strNew_Order = "";
  1437. Color c1 = Color.GhostWhite;//Color.White;
  1438. Color c2 = Color.MintCream;//Color.GhostWhite;//Color.LightCyan;
  1439. Color c3 = c1;
  1440. Color color_OrderNo1 = Color.Blue;
  1441. Color color_OrderNo2 = Color.Black;
  1442. Color color_OrderNo3 = color_OrderNo1;
  1443. //同时定位到最后一行
  1444. for (int i = 0; i < this.uGrdCutPlan.Rows.Count; i++)
  1445. {
  1446. UltraGridRow ugr = this.uGrdCutPlan.Rows[i];
  1447. strNew = ugr.Cells["HEATNO"].Value.ToString();
  1448. if (i == this.uGrdCutPlan.Rows.Count - 1)
  1449. {
  1450. ugr.Activated = true;
  1451. ugr.Selected = true;
  1452. }
  1453. else
  1454. {
  1455. ugr.Activated = false;
  1456. ugr.Selected = false;
  1457. }
  1458. if (strOld != strNew)
  1459. {
  1460. if (c3 == c1) c3 = c2;
  1461. else c3 = c1;
  1462. strOld = strNew;
  1463. }
  1464. ugr.Appearance.BackColor = c3;
  1465. if (strOld_Order != strNew_Order)
  1466. {
  1467. if (color_OrderNo3 == color_OrderNo1) color_OrderNo3 = color_OrderNo2;
  1468. else color_OrderNo3 = color_OrderNo1;
  1469. strOld_Order = strNew_Order;
  1470. }
  1471. ugr.Appearance.ForeColor = color_OrderNo3;
  1472. }
  1473. }
  1474. catch (Exception ex)
  1475. {
  1476. string strMsg = ex.Message;
  1477. }
  1478. }
  1479. /// <summary>
  1480. /// 切割顺序属性更改事件
  1481. /// </summary>
  1482. /// <param name="sender"></param>
  1483. /// <param name="e"></param>
  1484. private void textBox5_TextChanged(object sender, System.EventArgs e)
  1485. {
  1486. try
  1487. {
  1488. this.txtEditPH.Text = "";
  1489. if (this.txtEditCutN.Text.Trim().Length == 0)
  1490. return;
  1491. if (this.txtEditRlh.Text.Trim().Length == 0 && blText == false)
  1492. {
  1493. MessageBox.Show("请先输入熔炼号!");
  1494. return;
  1495. }
  1496. else
  1497. {
  1498. string strHID = this.txtEditRlh.Text.Trim();
  1499. strHID = strHID.ToUpper();
  1500. if (!IsValidOfHeatNo(strHID))
  1501. return;
  1502. this.txtEditRlh.Text = strHID.ToUpper();
  1503. }
  1504. int cutno = Convert.ToInt32(this.txtEditCutN.Text.Trim());
  1505. string heatno = this.txtHeatno.Text.Trim();
  1506. string strCutNo = "";
  1507. strCutNo = cutno.ToString();
  1508. if (strCutNo.Length == 1) strCutNo = "0" + strCutNo;
  1509. if (strCutNo.Length == 3)
  1510. {
  1511. int nNum = cutno;
  1512. if (nNum >= 100 && nNum < 110) strCutNo = "A" + strCutNo.Substring(2, 1);
  1513. if (nNum >= 110 && nNum < 120) strCutNo = "B" + strCutNo.Substring(2, 1);
  1514. if (nNum >= 120 && nNum < 130) strCutNo = "C" + strCutNo.Substring(2, 1);
  1515. if (nNum >= 130 && nNum < 140) strCutNo = "D" + strCutNo.Substring(2, 1);
  1516. if (nNum >= 140 && nNum < 150) strCutNo = "E" + strCutNo.Substring(2, 1);
  1517. if (nNum >= 150 && nNum < 160) strCutNo = "F" + strCutNo.Substring(2, 1);
  1518. if (nNum >= 160 && nNum < 170) strCutNo = "G" + strCutNo.Substring(2, 1);
  1519. if (nNum >= 170 && nNum < 180) strCutNo = "H" + strCutNo.Substring(2, 1);
  1520. if (nNum >= 180 && nNum < 190) strCutNo = "J" + strCutNo.Substring(2, 1);
  1521. }
  1522. if (strCutNo.Length >= 3 && cutno >= 190)
  1523. {
  1524. MessageBox.Show("请先切割序号过大!!!,最大不能超过190");
  1525. this.txtEditCutN.Text = "";
  1526. return;
  1527. }
  1528. if (heatno.Trim().Length > 0)
  1529. this.txtEditPH.Text = heatno.Substring(1) + strCutNo;
  1530. blText = false;
  1531. }
  1532. catch
  1533. {
  1534. }
  1535. }
  1536. public void GetCutPromptFromServer()
  1537. {
  1538. try
  1539. {
  1540. string strDevNo = CCMN0.Substring(0, 1);
  1541. int nDevNo = Convert.ToInt16(strDevNo);
  1542. if (nDevNo == 0) nDevNo = 4;
  1543. string strOut = "";
  1544. Hashtable htl=new Hashtable ();
  1545. GetCuttinPrompt(nDevNo, out htl, out strOut);
  1546. if (strOut == "")
  1547. {
  1548. cutHash = htl;
  1549. }
  1550. else
  1551. {
  1552. cutHash.Clear();
  1553. }
  1554. }
  1555. catch (Exception ee)
  1556. {
  1557. Console.WriteLine(ee.Message);
  1558. cutHash.Clear();
  1559. }
  1560. }
  1561. public void GetCuttinPrompt(int nDevNo,out Hashtable hsa,out string errs )//ReturnObject
  1562. {
  1563. Hashtable hash = new Hashtable();
  1564. string strHeatNo = "";
  1565. float fltFirstWeight = 0;
  1566. float fltMouldWeight = 0;
  1567. float fltNetWeight = 0;
  1568. int nForecastNum = 0;
  1569. int nCutBilletNum = 0;
  1570. int nRemainNum = 0;
  1571. float sumBillet = 0;
  1572. string _DEVICE_POSITION = "CCM01"; // 设备位置
  1573. string err = "";
  1574. string heatnonoy = "";
  1575. int intRealityPredictNum = 0; //实际预测支数
  1576. int intCastNum = 0; //浇次总支数
  1577. string strHeatNoing = ""; //正在浇的炉号
  1578. float flBilletweight = 0; //米单重
  1579. string strCast_No = ""; //浇次号
  1580. float fltFcpWeight = 0; //副产品重量(切头、挑废等)
  1581. try
  1582. {
  1583. if (nDevNo == 1)
  1584. {
  1585. DataSet TrackInfoDs = (DataSet)GetTrackInfoData("CCM01_DEVICE");
  1586. if (TrackInfoDs == null || TrackInfoDs.Tables[0].Rows.Count == 0)
  1587. {
  1588. hsa = null;
  1589. errs = "";
  1590. }
  1591. DataRow dr = TrackInfoDs.Tables[0].Rows[0];
  1592. strHeatNoing = dr["OBJECTID"].ToString();
  1593. if (dr["OBJECTPOS"].ToString() == "CCM01_DEVICE" || dr["OBJECTID"] == null)
  1594. {
  1595. TimeSpan span = DateTime.Now - Convert.ToDateTime(dr["COMINGTIME"].ToString());
  1596. if (span.TotalMinutes > 80)
  1597. {
  1598. hsa = hash;
  1599. errs = "浇铸已结束";
  1600. }
  1601. }
  1602. }
  1603. if (nDevNo == 2)
  1604. {
  1605. DataSet TrackInfoDs = (DataSet)GetTrackInfoData("CCM02_DEVICE");
  1606. if (TrackInfoDs == null || TrackInfoDs.Tables[0].Rows.Count == 0)
  1607. {
  1608. hsa = null;
  1609. errs = "";
  1610. }
  1611. DataRow dr = TrackInfoDs.Tables[0].Rows[0];
  1612. strHeatNoing = dr["OBJECTID"].ToString();
  1613. if (dr["OBJECTPOS"].ToString() == "CCM02_DEVICE" || dr["OBJECTID"] == null)
  1614. {
  1615. TimeSpan span = DateTime.Now - Convert.ToDateTime(dr["COMINGTIME"].ToString());
  1616. if (span.TotalMinutes > 80)
  1617. {
  1618. hsa=hash;
  1619. errs="浇铸已结束";
  1620. //return(hsa,err);
  1621. }
  1622. }
  1623. }
  1624. if (nDevNo == 3)
  1625. {
  1626. DataSet TrackInfoDs = (DataSet)GetTrackInfoData("CCM03_DEVICE");
  1627. if (TrackInfoDs == null || TrackInfoDs.Tables[0].Rows.Count == 0)
  1628. {
  1629. hsa = null;
  1630. errs = "";
  1631. }
  1632. DataRow dr = TrackInfoDs.Tables[0].Rows[0];
  1633. strHeatNoing = dr["OBJECTID"].ToString();
  1634. if (dr["OBJECTPOS"].ToString() == "CCM03_DEVICE" || dr["OBJECTID"] == null)
  1635. {
  1636. TimeSpan span = DateTime.Now - Convert.ToDateTime(dr["COMINGTIME"].ToString());
  1637. if (span.TotalMinutes > 80)
  1638. {
  1639. hsa = hash;
  1640. errs = "浇铸已结束";
  1641. }
  1642. }
  1643. }
  1644. if (nDevNo == 4)
  1645. {
  1646. DataSet TrackInfoDs = (DataSet)GetTrackInfoData("CCM04_DEVICE");
  1647. if (TrackInfoDs == null || TrackInfoDs.Tables[0].Rows.Count == 0)
  1648. {
  1649. hsa = null;
  1650. errs = "";
  1651. }
  1652. DataRow dr = TrackInfoDs.Tables[0].Rows[0];
  1653. strHeatNoing = dr["OBJECTID"].ToString();
  1654. if (dr["OBJECTPOS"].ToString() == "CCM04_DEVICE" || dr["OBJECTID"] == null)
  1655. {
  1656. TimeSpan span = DateTime.Now - Convert.ToDateTime(dr["COMINGTIME"].ToString());
  1657. if (span.TotalMinutes > 80)
  1658. {
  1659. hsa = hash;
  1660. errs = "浇铸已结束";
  1661. }
  1662. }
  1663. }
  1664. string strErr = "";
  1665. ArrayList arry = new ArrayList();
  1666. CommonClientToServer ccs = new CommonClientToServer();
  1667. DataSet ds = new DataSet();
  1668. //获取切割炉号
  1669. if (nDevNo == 1)
  1670. {
  1671. arry.Clear();
  1672. ds = null;
  1673. arry.Add("FrmCutBilletDetails_Query14");
  1674. ccs.ob = this.ob;
  1675. arry.Add(nDevNo);
  1676. }
  1677. if (nDevNo == 2)
  1678. {
  1679. arry.Clear();
  1680. ds = null;
  1681. arry.Add("FrmCutBilletDetails_Query14");
  1682. ccs.ob = this.ob;
  1683. arry.Add(nDevNo);
  1684. }
  1685. if (nDevNo == 3)
  1686. {
  1687. arry.Clear();
  1688. ds = null;
  1689. arry.Add("FrmCutBilletDetails_Query14");
  1690. ccs.ob = this.ob;
  1691. arry.Add(nDevNo);
  1692. }
  1693. if (nDevNo == 4)
  1694. {
  1695. arry.Clear();
  1696. ds = null;
  1697. arry.Add("FrmCutBilletDetails_Query14");
  1698. ccs.ob = this.ob;
  1699. arry.Add(nDevNo);
  1700. }
  1701. ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
  1702. {
  1703. DataTable dt = ds.Tables[0];
  1704. if (dt.Rows.Count >= 1)
  1705. {
  1706. strHeatNo = dt.Rows[0][0].ToString();
  1707. }
  1708. }
  1709. if (strHeatNo != "")
  1710. {
  1711. string str = " WHERE heatno = '" + strHeatNo.Substring(5, 8) + "' AND stationcode = '" + strHeatNo.Substring(1, 2) + "' AND disposaltime = '" + strHeatNo.Substring(3, 2) + "'";
  1712. string strOut = "";
  1713. ds = null;
  1714. arry.Clear();
  1715. ArrayList sqlList = new ArrayList();
  1716. arry.Add("FrmCutBilletDetails_Query15");
  1717. sqlList.Add(str);
  1718. sqlList.Add(str);
  1719. CoreClientParam CCP_LgEts = new CoreClientParam();
  1720. DataTable dt = new DataTable();
  1721. CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  1722. CCP_LgEts.MethodName = "doQuery";
  1723. CCP_LgEts.ServerParams = new object[] { arry, sqlList };
  1724. CCP_LgEts.SourceDataTable = dt;
  1725. this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
  1726. ds.Tables.Add(dt);
  1727. if (err == "" && ds.Tables.Count > 0)
  1728. {
  1729. dt = null;
  1730. dt = ds.Tables[0];
  1731. if (dt.Rows.Count >= 1)
  1732. {
  1733. fltFirstWeight = Convert.ToSingle(dt.Rows[0][0]);
  1734. fltMouldWeight = Convert.ToSingle(dt.Rows[0][1]);
  1735. fltNetWeight = fltFirstWeight - fltMouldWeight;
  1736. }
  1737. }
  1738. err = "";
  1739. arry.Clear();
  1740. ds = null;
  1741. arry.Add("FrmCutBilletDetails_Query16");
  1742. arry.Add(strHeatNo.Substring(5));
  1743. ccs.ob = ob;
  1744. ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
  1745. if (err == "" && ds.Tables.Count > 0)
  1746. {
  1747. dt = null;
  1748. dt = ds.Tables[0];
  1749. if (dt.Rows.Count >= 1)
  1750. {
  1751. nCutBilletNum = Convert.ToInt16(dt.Rows[0][0]);
  1752. sumBillet = Convert.ToSingle(dt.Rows[0][1]);
  1753. }
  1754. else
  1755. {
  1756. nCutBilletNum = 0;
  1757. sumBillet = 0;
  1758. }
  1759. }
  1760. if (nCutBilletNum > 0 && sumBillet > 0)
  1761. {
  1762. err = "";
  1763. arry.Clear();
  1764. ds = null;
  1765. arry.Add("FrmCutBilletDetails_Query17");
  1766. ccs.ob = ob;
  1767. ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
  1768. if (err == "" && ds.Tables.Count > 0)//获取熔炼号
  1769. {
  1770. dt = null;
  1771. dt = ds.Tables[0];
  1772. if (dt.Rows.Count >= 1)
  1773. {
  1774. int j = dt.Rows.Count;
  1775. int k = ds.Tables[0].Columns.Count;
  1776. for (int i = 0; i < dt.Rows.Count; i++)
  1777. {
  1778. heatnonoy = heatnonoy + dt.Rows[i][0].ToString() + ",";
  1779. }
  1780. }
  1781. }
  1782. err = "";
  1783. arry.Clear();
  1784. ds = null;
  1785. arry.Add("FrmCutBilletDetails_Query18");
  1786. arry.Add(strHeatNo.Substring(5));
  1787. ccs.ob = ob;
  1788. ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
  1789. if (err == "" && ds.Tables.Count > 0)
  1790. {
  1791. dt = null;
  1792. dt = ds.Tables[0];
  1793. if (dt.Rows.Count >= 1)
  1794. {
  1795. nForecastNum = Convert.ToInt32(dt.Rows[0][1]);
  1796. flBilletweight = Convert.ToSingle(dt.Rows[0]["BILLETWEIGHT"]);
  1797. strCast_No = dt.Rows[0]["CAST_NO"].ToString();
  1798. }
  1799. if (nForecastNum >= nCutBilletNum)
  1800. {
  1801. nRemainNum = nForecastNum - nCutBilletNum;
  1802. }
  1803. }
  1804. }
  1805. if (!string.IsNullOrEmpty(strCast_No))
  1806. {
  1807. strErr = "";
  1808. arry.Clear();
  1809. arry.Add("FrmCutBilletDetails_Query19");
  1810. arry.Add(strCast_No);
  1811. ccs.ob = ob;
  1812. DataSet dsCast = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr);
  1813. if (strErr == "")
  1814. {
  1815. if (dsCast != null)
  1816. intCastNum = Convert.ToInt32(dsCast.Tables[0].Rows[0][0]);
  1817. }
  1818. }
  1819. //副产品重量
  1820. if (!string.IsNullOrEmpty(strHeatNo))
  1821. {
  1822. string strFcpErr = "";
  1823. arry.Clear();
  1824. arry.Add("FrmCutBilletDetails_Query20");
  1825. arry.Add(strHeatNo.Substring(5, 8));
  1826. ccs.ob = ob;
  1827. DataSet dsFcp = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strFcpErr);
  1828. if (strFcpErr == "")
  1829. {
  1830. if (dsFcp != null) fltFcpWeight = Convert.ToSingle(dsFcp.Tables[0].Rows[0][0]);
  1831. }
  1832. }
  1833. //计算实际预测支数
  1834. if (strHeatNoing != strHeatNo && flBilletweight > 0)
  1835. intRealityPredictNum = Convert.ToInt32((fltNetWeight - fltFcpWeight) / flBilletweight);
  1836. else
  1837. intRealityPredictNum = Convert.ToInt32((fltFirstWeight - fltFcpWeight - 43) / flBilletweight);
  1838. }
  1839. }
  1840. catch
  1841. {
  1842. }
  1843. hash.Add(0, strHeatNo);
  1844. hash.Add(1, fltFirstWeight);
  1845. hash.Add(2, fltMouldWeight);
  1846. hash.Add(3, fltNetWeight);
  1847. hash.Add(4, nForecastNum);
  1848. hash.Add(5, nCutBilletNum);
  1849. hash.Add(6, nRemainNum);
  1850. hash.Add(7, sumBillet);
  1851. hash.Add(8, heatnonoy);
  1852. hash.Add(9, intRealityPredictNum);
  1853. hash.Add(10, intCastNum);
  1854. hsa = hash;
  1855. errs = "";
  1856. }
  1857. /// <summary>
  1858. /// 获取当前设备的后台实时跟踪信息
  1859. /// </summary>
  1860. private DataSet GetTrackInfoData(string DevNo)
  1861. {
  1862. try
  1863. {
  1864. string err = "", szWhere = " WHERE OBJECTPOS ='" + DevNo + "'";
  1865. DataSet obj = new DataSet();
  1866. ArrayList arry = new ArrayList();
  1867. ArrayList sqlList = new ArrayList();
  1868. arry.Add("FrmCutBilletDetails_Query21");
  1869. sqlList.Add(szWhere);
  1870. CoreClientParam CCP_LgEts = new CoreClientParam();
  1871. DataTable dt = new DataTable();
  1872. CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  1873. CCP_LgEts.MethodName = "doQuery";
  1874. CCP_LgEts.ServerParams = new object[] { arry, sqlList };
  1875. CCP_LgEts.SourceDataTable = dt;
  1876. this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
  1877. obj.Tables.Add(dt);
  1878. return obj;
  1879. }
  1880. catch
  1881. {
  1882. return null;
  1883. }
  1884. }
  1885. public void RefreshCutPrompt()
  1886. {
  1887. this.txtCutHeatN.Tag = "";
  1888. this.txtCutHeatN.Text = "";
  1889. this.txtOfficeWeight.Text = "";
  1890. this.txtDBWeight.Text = "";
  1891. this.txtSteelMWeight.Text = "";
  1892. this.txtPalnCount.Text = "";
  1893. this.txtCutCount.Text = "";
  1894. this.txtRemCount.Text = "";
  1895. this.txtEditTotBlank.Text = "";
  1896. this.txtActForecast.Text = "";
  1897. this.txtEditPacketsN.Text = "";
  1898. if (cutHash.Count < 6) return;
  1899. string strHeatNo = cutHash[0].ToString();
  1900. if (strHeatNo == "") return;
  1901. this.txtCutHeatN.Text = strHeatNo.Substring(5);
  1902. this.txtOfficeWeight.Text = cutHash[1].ToString();
  1903. this.txtDBWeight.Text = cutHash[2].ToString();
  1904. this.txtSteelMWeight.Text = cutHash[3].ToString();
  1905. this.txtPalnCount.Text = cutHash[4].ToString();
  1906. this.txtCutCount.Text = cutHash[5].ToString();
  1907. this.txtRemCount.Text = cutHash[6].ToString();
  1908. this.txtEditTotBlank.Text = cutHash[7].ToString();
  1909. this.txtActForecast.Text = cutHash[9].ToString();
  1910. this.txtEditPacketsN.Text = cutHash[10].ToString();
  1911. }
  1912. /// <summary>
  1913. /// 长度属性事件
  1914. /// </summary>
  1915. /// <param name="sender"></param>
  1916. /// <param name="e"></param>
  1917. private void textBox3_TextChanged(object sender, System.EventArgs e)
  1918. {
  1919. try
  1920. {
  1921. float a = Convert.ToSingle(this.txtEdidLength.Text.Trim());
  1922. float b = Convert.ToSingle(this.txtEditWidth.Text.Trim());
  1923. float c = Convert.ToSingle(this.txtEditThick.Text.Trim());
  1924. this.txtEditWeight.Text = Convert.ToString(Math.Round(a * b * c * 7.82 / 1000000000, 3));
  1925. }
  1926. catch { }
  1927. }
  1928. /// <summary>
  1929. /// 刷新数据
  1930. /// </summary>
  1931. private void SetDataThread()
  1932. {
  1933. ReStartSetDataThread:
  1934. while (true)
  1935. {
  1936. if (!this.On_Off_Thread)
  1937. {
  1938. System.Threading.Thread.Sleep(500);
  1939. continue;
  1940. }
  1941. if (bExit) return;
  1942. //在数据处于定时刷新
  1943. if (bHandleCoup)
  1944. {
  1945. //如果更新超过一定的时间长度(半分钟内),即组织刷新
  1946. TimeSpan timespan = DateTime.Now - LastUpdateTime;
  1947. if (timespan.TotalSeconds > 30)
  1948. {
  1949. LastUpdateTime = DateTime.Now;
  1950. try
  1951. {
  1952. //刷新右边的数据
  1953. this.Invoke(new CallRefreshThreadDelegate(TimerRefresh));
  1954. }
  1955. catch { }
  1956. }
  1957. if (DateTime.Now.Second % 2 == 0)
  1958. {
  1959. GetCutPromptFromServer();
  1960. Thread.Sleep(300);
  1961. }
  1962. if (DateTime.Now.Second % 3 == 1)
  1963. {
  1964. this.Invoke(new CallRefreshThreadDelegate(RefreshCutPrompt));
  1965. }
  1966. }
  1967. for (int j = 0; j < 3; j++)
  1968. {
  1969. Thread.Sleep(1000);
  1970. if (bExit) return;
  1971. }
  1972. }
  1973. goto ReStartSetDataThread;
  1974. }
  1975. /// <summary>
  1976. /// 单击切割信息 编辑区赋值
  1977. /// </summary>
  1978. /// <param name="sender"></param>
  1979. /// <param name="e"></param>
  1980. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  1981. {
  1982. if (this.uGrdCutPlan.ActiveRow == null) return;
  1983. UltraGridRow ugr = this.uGrdCutPlan.ActiveRow;
  1984. int i1 = 0; //炉内切割数
  1985. int i2 = 0; //浇次内炉数
  1986. string str1 = ugr.Cells["HEATNO"].Value.ToString(); //smeltingid 炉号
  1987. string str2 = ugr.Cells["MOULDNO"].Value.ToString(); //castno 浇次号
  1988. string str3 = "";
  1989. for (int i = 0; i < this.uGrdCutPlan.Rows.Count; i++)
  1990. {
  1991. UltraGridRow ugrf = this.uGrdCutPlan.Rows[i];
  1992. if (str2 == ugrf.Cells["MOULDNO"].Value.ToString())
  1993. {
  1994. if (str1 == ugrf.Cells["HEATNO"].Value.ToString())
  1995. {
  1996. i1++;
  1997. }
  1998. if (str3 != ugrf.Cells["HEATNO"].Value.ToString())
  1999. {
  2000. i2++;
  2001. str3 = ugrf.Cells["HEATNO"].Value.ToString();
  2002. }
  2003. }
  2004. }
  2005. //////try
  2006. //////{
  2007. ////// this.richTextBox1.Text = "浇次内炉数:" + i2.ToString() + " 炉内切割数:" + i1.ToString();
  2008. //////}
  2009. //////catch (Exception ex)
  2010. //////{
  2011. ////// MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  2012. //////}
  2013. this.txtEditRlh.Text = ugr.Cells["HEATNO"].Value.ToString();//熔炼号
  2014. this.textBox4.Text = ugr.Cells["CCMSTOVENO"].Value.ToString();// 连铸炉号
  2015. this.cmbEditCcm.Text = ugr.Cells["CCMID"].Value.ToString();//铸机号
  2016. this.cmbEditFlowNo.Text = ugr.Cells["FLOWNO"].Value.ToString();//铸流号
  2017. this.txtEditCutN.Text = ugr.Cells["CUTSEQNO"].Value.ToString();//切割顺序号
  2018. this.txtEditPnum.Text = ugr.Cells["MOULDNO"].Value.ToString();//浇次号
  2019. strSteelCode = ugr.Cells["SteelCode"].Value.ToString();
  2020. if (ugr.Cells["HEATCNT"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["HEATCNT"].Value.ToString()))
  2021. this.txtEditPourViews.Text = "";
  2022. else//浇次顺序号
  2023. this.txtEditPourViews.Text = Convert.ToSingle(ugr.Cells["HEATCNT"].Value).ToString();
  2024. if (ugr.Cells["HEATSEQ"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["HEATSEQ"].Value.ToString()))
  2025. this.txtEditHViews.Text = "";
  2026. else//浇次内炉数
  2027. this.txtEditHViews.Text = Convert.ToSingle(ugr.Cells["HEATSEQ"].Value).ToString();
  2028. if (ugr.Cells["LENGTH"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["LENGTH"].Value.ToString()))
  2029. this.txtEdidLength.Text = "";
  2030. else//长度
  2031. this.txtEdidLength.Text = Convert.ToSingle(ugr.Cells["LENGTH"].Value).ToString();
  2032. if (ugr.Cells["WIDTH"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["WIDTH"].Value.ToString()))
  2033. this.txtEditWidth.Text = "";
  2034. else//宽度
  2035. this.txtEditWidth.Text = Convert.ToSingle(ugr.Cells["WIDTH"].Value).ToString();
  2036. if (ugr.Cells["THICKNESS"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["THICKNESS"].Value.ToString()))
  2037. this.txtEditThick.Text = "";
  2038. else//厚度
  2039. this.txtEditThick.Text = Convert.ToSingle(ugr.Cells["THICKNESS"].Value).ToString();
  2040. if (ugr.Cells["WEIGHT"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["WEIGHT"].Value.ToString()))
  2041. this.txtEditWeight.Text = "";
  2042. else//重量
  2043. this.txtEditWeight.Text = Convert.ToString(Math.Round(Convert.ToSingle(ugr.Cells["WEIGHT"].Value), 3));
  2044. if (ugr.Cells["SPECRULE"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["SPECRULE"].Value.ToString()))
  2045. this.textBox12.Text = "";
  2046. else//是否定尺
  2047. this.textBox12.Text = Convert.ToSingle(ugr.Cells["SPECRULE"].Value).ToString();
  2048. if (ugr.Cells["BILLETNO"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["BILLETNO"].Value.ToString()))
  2049. this.txtEditPH.Text = "";
  2050. else//坯料号
  2051. this.txtEditPH.Text = ugr.Cells["BILLETNO"].Value.ToString();
  2052. if (ugr.Cells["BILLETCODE"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["BILLETCODE"].Value.ToString()))
  2053. this.textBox14.Text = "";
  2054. else//坯料编码
  2055. this.textBox14.Text = ugr.Cells["BILLETCODE"].Value.ToString();
  2056. if (ugr.Cells["CHILDBLOCKNO"].Value == DBNull.Value || string.IsNullOrEmpty(ugr.Cells["CHILDBLOCKNO"].Value.ToString()))
  2057. this.txtEditBlock.Text = "";
  2058. else//块号
  2059. this.txtEditBlock.Text = ugr.Cells["CHILDBLOCKNO"].Value.ToString();
  2060. try
  2061. {
  2062. this.dTPEditCutTime.Value = Convert.ToDateTime(ugr.Cells["CUTTIME"].Value);//切割时间
  2063. if (ugr.Cells["SHIFTCODE"].Value != System.DBNull.Value)
  2064. this.cmbEditClass.SelectedValue = ugr.Cells["SHIFTCODE"].Value.ToString();
  2065. else//班次
  2066. {
  2067. this.cmbEditClass.SelectedIndex = -1;
  2068. this.cmbEditClass.Text = "";
  2069. }
  2070. if (ugr.Cells["LASTBILLETFLAG"] == null)
  2071. this.cmbEditEndBlock.Text = "N";
  2072. else//是否末块
  2073. this.cmbEditEndBlock.Text = ugr.Cells["LASTBILLETFLAG"].Value.ToString();
  2074. }
  2075. catch { }
  2076. }
  2077. /// <summary>
  2078. /// 检验实绩切割支数是否超出计划切割支数
  2079. /// </summary>
  2080. /// <param name="strWhere"></param>
  2081. /// <returns></returns>
  2082. public bool CheckCutQty_PlanQty(string strHeatNo, string strOrder_No, string strProdorder_No)
  2083. {
  2084. string strOrderWhere = "";
  2085. string strProdorderWhere = "";
  2086. string strHeatNoWhere = "";
  2087. string strErr = "";
  2088. try
  2089. {
  2090. //非计划不作任何操作
  2091. if (string.IsNullOrEmpty(strOrder_No) && string.IsNullOrEmpty(strProdorder_No))
  2092. {
  2093. return false;
  2094. }
  2095. strHeatNoWhere = " and heatno = '" + strHeatNo + "'";
  2096. if (!string.IsNullOrEmpty(strOrder_No))
  2097. {
  2098. strOrderWhere = " and orderno = '" + strOrder_No + "' ";
  2099. }
  2100. if (string.IsNullOrEmpty(strProdorder_No))
  2101. {
  2102. strProdorderWhere = " and (prodorderno is null or prodorderno = '')";
  2103. }
  2104. else
  2105. {
  2106. strProdorderWhere = " and prodorderno = '" + strProdorder_No + "'";
  2107. }
  2108. ArrayList arry = new ArrayList();
  2109. ArrayList sqlList = new ArrayList();
  2110. arry.Add("FrmCutBilletDetails_Query3");
  2111. sqlList.Add(strHeatNoWhere);
  2112. sqlList.Add(strOrderWhere);
  2113. sqlList.Add(strProdorderWhere);
  2114. sqlList.Add(strHeatNoWhere);
  2115. sqlList.Add(strOrderWhere);
  2116. sqlList.Add(strProdorderWhere);
  2117. CoreClientParam CCP_LgEts = new CoreClientParam();
  2118. DataTable dt = new DataTable();
  2119. CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  2120. CCP_LgEts.MethodName = "doQuery";
  2121. CCP_LgEts.ServerParams = new object[] { arry, sqlList };
  2122. CCP_LgEts.SourceDataTable = dt;
  2123. this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
  2124. DataSet dsCutQty_PlanQty = new DataSet();
  2125. dsCutQty_PlanQty.Tables.Add(dt);
  2126. strErr = CCP_LgEts.ReturnInfo;
  2127. if (strErr == "" && dsCutQty_PlanQty != null)
  2128. {
  2129. if (dsCutQty_PlanQty.Tables[0].Rows.Count > 0)
  2130. {
  2131. if (Convert.ToInt64(dsCutQty_PlanQty.Tables[0].Rows[0]["billetqty"]) <= Convert.ToInt64(dsCutQty_PlanQty.Tables[0].Rows[0]["CutQty"]))
  2132. return true;
  2133. else
  2134. return false;
  2135. }
  2136. else
  2137. {
  2138. return false;
  2139. }
  2140. }
  2141. else
  2142. {
  2143. return false;
  2144. }
  2145. }
  2146. catch (Exception ex)
  2147. {
  2148. return false;
  2149. }
  2150. }
  2151. /// <summary>
  2152. /// 计划切割信息查询
  2153. /// </summary>
  2154. /// <param name="sender"></param>
  2155. /// <param name="e"></param>
  2156. private void queryBtn_Click(object sender, EventArgs e)
  2157. {
  2158. try
  2159. {
  2160. string startTime = dtpCutStart.Value.ToString();
  2161. string endTime = dtpCutEnd.Value.ToString();
  2162. string strWhere = "where 1=1";
  2163. if (chkCutTime.Checked)
  2164. {
  2165. strWhere += " and PLAN_MAKING_TIME>=to_date('" + startTime + "','yyyy-MM-dd HH24:Mi:ss') AND PLAN_MAKING_TIME<=to_date('" + endTime + "','yyyy-MM-dd HH24:Mi:ss')";
  2166. }
  2167. if (this.chkCcmNo.Checked)
  2168. {
  2169. strWhere += " AND CAST_ID='" + this.ccmNumCobo.SelectedValue + "'";
  2170. }
  2171. //以下是转炉查询
  2172. if (this.chkConNo.Checked)
  2173. {
  2174. strWhere += " AND substr(heatno,3,1)='" + this.combConNo.SelectedValue + "'";
  2175. }//转炉
  2176. ;
  2177. strWhere += " and heatno is not null ";
  2178. string err = "";
  2179. this.steelSchTable.Clear();
  2180. routeHash.Clear();
  2181. ArrayList arry = new ArrayList();
  2182. ArrayList sqlList = new ArrayList();
  2183. arry.Add("FrmCutBilletDetails_Query7");
  2184. sqlList.Clear();
  2185. sqlList.Add(strWhere);
  2186. sqlList.Add(strWhere);
  2187. CoreClientParam CCP_LgEts = new CoreClientParam();
  2188. DataTable dt = new DataTable();
  2189. CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  2190. CCP_LgEts.MethodName = "doQuery";
  2191. CCP_LgEts.ServerParams = new object[] { arry, sqlList };
  2192. CCP_LgEts.SourceDataTable = dt;
  2193. this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
  2194. DataSet ds = new DataSet();
  2195. ds.Tables.Add(dt);
  2196. err = CCP_LgEts.ReturnInfo;
  2197. if (err != "" && ds.Tables[0].Rows.Count <= 0)
  2198. {
  2199. //MessageBox.Show("炼钢数据查询错误:"+err,"提示");
  2200. return;
  2201. }
  2202. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  2203. {
  2204. this.uGrdPlanInfo.BeginUpdate();
  2205. this.cutSchTable.Clear();
  2206. int rowCount = ds.Tables[0].Rows.Count;
  2207. DataRow row;
  2208. string name = "";
  2209. for (int i = 0; i < rowCount; i++)
  2210. {
  2211. row = this.steelSchTable.NewRow();
  2212. foreach (DataColumn column in steelSchTable.Columns)
  2213. {
  2214. name = column.ColumnName;
  2215. if (name != "PLAN_LINES")
  2216. row[name] = ds.Tables[0].Rows[i][name].ToString();
  2217. else
  2218. {
  2219. row[name] = CStaticMethod.analysPlan_Lines(ds.Tables[0].Rows[i][name].ToString());//analysPath(ds.Tables[0].Rows[i][name].ToString());
  2220. }
  2221. }
  2222. this.steelSchTable.Rows.Add(row);
  2223. string status = row["HEAT_STATE"].ToString();
  2224. if (status == "03")
  2225. {
  2226. foreach (UltraGridCell cell in uGrdPlanInfo.Rows[i].Cells)
  2227. cell.Appearance.BackColor = Color.White;//计划状态
  2228. }
  2229. else if (status == "09")
  2230. {
  2231. foreach (UltraGridCell cell in uGrdPlanInfo.Rows[i].Cells)
  2232. cell.Appearance.BackColor = Color.LightCyan; //Color.MintCream;//连铸结束
  2233. }
  2234. else
  2235. {
  2236. foreach (UltraGridCell cell in uGrdPlanInfo.Rows[i].Cells)
  2237. cell.Appearance.BackColor = Color.LightGreen;//在生产用颜色区分
  2238. }
  2239. }
  2240. this.uGrdPlanInfo.EndUpdate();
  2241. }
  2242. }
  2243. catch { }
  2244. }
  2245. #region
  2246. private void createTable()//----创建对应表
  2247. {
  2248. try
  2249. {
  2250. //炼钢指示表
  2251. DataColumn myDataColumn = new DataColumn();
  2252. myDataColumn = new DataColumn();
  2253. myDataColumn.DataType = System.Type.GetType("System.String");
  2254. myDataColumn.ColumnName = "HEATNO";
  2255. myDataColumn.Caption = "炉号";
  2256. steelSchTable.Columns.Add(myDataColumn);
  2257. myDataColumn = new DataColumn();
  2258. myDataColumn.DataType = System.Type.GetType("System.String");
  2259. myDataColumn.ColumnName = "AIM_GRADE_CODE";
  2260. myDataColumn.Caption = "目标钢号";
  2261. steelSchTable.Columns.Add(myDataColumn);
  2262. myDataColumn = new DataColumn();
  2263. myDataColumn.DataType = System.Type.GetType("System.String");
  2264. myDataColumn.ColumnName = "CAST_ID";
  2265. myDataColumn.Caption = "铸机";
  2266. steelSchTable.Columns.Add(myDataColumn);
  2267. myDataColumn = new DataColumn();
  2268. myDataColumn.DataType = System.Type.GetType("System.String");
  2269. myDataColumn.ColumnName = "CAST_NO";
  2270. myDataColumn.Caption = "浇次号";
  2271. steelSchTable.Columns.Add(myDataColumn);
  2272. myDataColumn = new DataColumn();
  2273. myDataColumn.DataType = System.Type.GetType("System.String");
  2274. myDataColumn.ColumnName = "HEAT_NUM";
  2275. myDataColumn.Caption = "炉数";
  2276. steelSchTable.Columns.Add(myDataColumn);
  2277. myDataColumn = new DataColumn();
  2278. myDataColumn.DataType = System.Type.GetType("System.String");
  2279. myDataColumn.ColumnName = "CAST_SEQ";
  2280. myDataColumn.Caption = "顺序";
  2281. steelSchTable.Columns.Add(myDataColumn);
  2282. myDataColumn = new DataColumn();
  2283. myDataColumn.DataType = System.Type.GetType("System.String");
  2284. myDataColumn.ColumnName = "PLAN_LINES";// "PLAN_ROUTE";
  2285. myDataColumn.Caption = "工艺路径";
  2286. steelSchTable.Columns.Add(myDataColumn);
  2287. myDataColumn = new DataColumn();
  2288. myDataColumn.DataType = System.Type.GetType("System.String");
  2289. myDataColumn.ColumnName = "BILLETQTY";
  2290. myDataColumn.Caption = "方坯数";
  2291. steelSchTable.Columns.Add(myDataColumn);
  2292. //myDataColumn = new DataColumn();
  2293. //myDataColumn.DataType = System.Type.GetType("System.String");
  2294. //myDataColumn.ColumnName = "AIM_S";
  2295. //myDataColumn.Caption = "目标含硫量";
  2296. //steelSchTable.Columns.Add(myDataColumn);
  2297. myDataColumn = new DataColumn();
  2298. myDataColumn.DataType = System.Type.GetType("System.String");
  2299. myDataColumn.ColumnName = "PLAN_IRON_QTY";
  2300. myDataColumn.Caption = "计划铁水量";
  2301. steelSchTable.Columns.Add(myDataColumn);
  2302. //myDataColumn = new DataColumn();
  2303. //myDataColumn.DataType = System.Type.GetType("System.String");
  2304. //myDataColumn.ColumnName = "AIM_MIF_STR_TIME";
  2305. //myDataColumn.Caption = "计划出铁开始时刻";
  2306. //steelSchTable.Columns.Add(myDataColumn);
  2307. //myDataColumn = new DataColumn();
  2308. //myDataColumn.DataType = System.Type.GetType("System.String");
  2309. //myDataColumn.ColumnName = "AIM_MIF_END_TIME";
  2310. //myDataColumn.Caption = "计划出铁结束时刻";
  2311. //steelSchTable.Columns.Add(myDataColumn);
  2312. myDataColumn = new DataColumn();
  2313. myDataColumn.DataType = System.Type.GetType("System.String");
  2314. myDataColumn.ColumnName = "PLAN_HMP_STR_TIME";
  2315. myDataColumn.Caption = "计划脱硫开始时刻";
  2316. steelSchTable.Columns.Add(myDataColumn);
  2317. myDataColumn = new DataColumn();
  2318. myDataColumn.DataType = System.Type.GetType("System.String");
  2319. myDataColumn.ColumnName = "PLAN_HMP_END_TIME";
  2320. myDataColumn.Caption = "计划脱硫结束时刻";
  2321. steelSchTable.Columns.Add(myDataColumn);
  2322. //myDataColumn = new DataColumn();
  2323. //myDataColumn.DataType = System.Type.GetType("System.String");
  2324. //myDataColumn.ColumnName = "AIM_HM_STR_TIME";
  2325. //myDataColumn.Caption = "计划装料开始时刻";
  2326. //steelSchTable.Columns.Add(myDataColumn);
  2327. myDataColumn = new DataColumn();
  2328. myDataColumn.DataType = System.Type.GetType("System.String");
  2329. myDataColumn.ColumnName = "PLAN_BOF_STR_TIME";
  2330. myDataColumn.Caption = "计划吹炼开始时刻";
  2331. steelSchTable.Columns.Add(myDataColumn);
  2332. myDataColumn = new DataColumn();
  2333. myDataColumn.DataType = System.Type.GetType("System.String");
  2334. myDataColumn.ColumnName = "PLAN_BOF_END_TIME";
  2335. myDataColumn.Caption = "计划吹炼结束时刻";
  2336. steelSchTable.Columns.Add(myDataColumn);
  2337. //myDataColumn = new DataColumn();
  2338. //myDataColumn.DataType = System.Type.GetType("System.String");
  2339. //myDataColumn.ColumnName = "AIM_TAP_END_TIME";
  2340. //myDataColumn.Caption = "计划出钢结束时刻";
  2341. //steelSchTable.Columns.Add(myDataColumn);
  2342. myDataColumn = new DataColumn();
  2343. myDataColumn.DataType = System.Type.GetType("System.String");
  2344. myDataColumn.ColumnName = "AIM_STEEL_QTY";
  2345. myDataColumn.Caption = "目标出钢量";
  2346. steelSchTable.Columns.Add(myDataColumn);
  2347. //myDataColumn = new DataColumn();
  2348. //myDataColumn.DataType = System.Type.GetType("System.String");
  2349. //myDataColumn.ColumnName = "AIM_STEEL_QTY";
  2350. //myDataColumn.Caption = "出钢目标温度";
  2351. //steelSchTable.Columns.Add(myDataColumn);
  2352. myDataColumn = new DataColumn();
  2353. myDataColumn.DataType = System.Type.GetType("System.String");
  2354. myDataColumn.ColumnName = "PLAN_AR_STR_TIME";
  2355. myDataColumn.Caption = "计划AR开始时刻";
  2356. steelSchTable.Columns.Add(myDataColumn);
  2357. myDataColumn = new DataColumn();
  2358. myDataColumn.DataType = System.Type.GetType("System.String");
  2359. myDataColumn.ColumnName = "PLAN_AR_END_TIME";
  2360. myDataColumn.Caption = "计划AR结束时刻";
  2361. steelSchTable.Columns.Add(myDataColumn);
  2362. //myDataColumn = new DataColumn();
  2363. //myDataColumn.DataType = System.Type.GetType("System.String");
  2364. //myDataColumn.ColumnName = "AIM_AR_TEMP";
  2365. //myDataColumn.Caption = "AR目标温度";
  2366. //steelSchTable.Columns.Add(myDataColumn);
  2367. myDataColumn = new DataColumn();
  2368. myDataColumn.DataType = System.Type.GetType("System.String");
  2369. myDataColumn.ColumnName = "PLAN_LF_STR_TIME";
  2370. myDataColumn.Caption = "计划LF开始时刻";
  2371. steelSchTable.Columns.Add(myDataColumn);
  2372. myDataColumn = new DataColumn();
  2373. myDataColumn.DataType = System.Type.GetType("System.String");
  2374. myDataColumn.ColumnName = "PLAN_LF_END_TIME";
  2375. myDataColumn.Caption = "计划LF结束时刻";
  2376. steelSchTable.Columns.Add(myDataColumn);
  2377. //myDataColumn = new DataColumn();
  2378. //myDataColumn.DataType = System.Type.GetType("System.String");
  2379. //myDataColumn.ColumnName = "AIM_LF_TEMP";
  2380. //myDataColumn.Caption = "LF目标温度";
  2381. //steelSchTable.Columns.Add(myDataColumn);
  2382. myDataColumn = new DataColumn();
  2383. myDataColumn.DataType = System.Type.GetType("System.String");
  2384. myDataColumn.ColumnName = "PLAN_RH_STR_TIME";
  2385. myDataColumn.Caption = "计划RH开始时刻";
  2386. steelSchTable.Columns.Add(myDataColumn);
  2387. myDataColumn = new DataColumn();
  2388. myDataColumn.DataType = System.Type.GetType("System.String");
  2389. myDataColumn.ColumnName = "PLAN_RH_ENT_TIME";
  2390. myDataColumn.Caption = "计划RH结束时刻";
  2391. steelSchTable.Columns.Add(myDataColumn);
  2392. //myDataColumn = new DataColumn();
  2393. //myDataColumn.DataType = System.Type.GetType("System.String");
  2394. //myDataColumn.ColumnName = "AIM_VD_TEMP";
  2395. //myDataColumn.Caption = "RH目标温度";
  2396. //steelSchTable.Columns.Add(myDataColumn);
  2397. myDataColumn = new DataColumn();
  2398. myDataColumn.DataType = System.Type.GetType("System.String");
  2399. myDataColumn.ColumnName = "PLAN_CCM_STR_TIME";
  2400. myDataColumn.Caption = "计划浇注开始时刻";
  2401. steelSchTable.Columns.Add(myDataColumn);
  2402. myDataColumn = new DataColumn();
  2403. myDataColumn.DataType = System.Type.GetType("System.String");
  2404. myDataColumn.ColumnName = "PLAN_CCM_END_TIME";
  2405. myDataColumn.Caption = "计划浇注结束时刻";
  2406. steelSchTable.Columns.Add(myDataColumn);
  2407. //myDataColumn = new DataColumn();
  2408. //myDataColumn.DataType = System.Type.GetType("System.String");
  2409. //myDataColumn.ColumnName = "AIM_TD_TEMP";
  2410. //myDataColumn.Caption = "浇注温度";
  2411. //steelSchTable.Columns.Add(myDataColumn);
  2412. myDataColumn = new DataColumn();
  2413. myDataColumn.DataType = System.Type.GetType("System.String");
  2414. myDataColumn.ColumnName = "HEAT_STATE";
  2415. myDataColumn.Caption = "生产状态";
  2416. steelSchTable.Columns.Add(myDataColumn);
  2417. myDataColumn = new DataColumn();
  2418. myDataColumn.DataType = System.Type.GetType("System.String");
  2419. myDataColumn.ColumnName = "v_heat_ID";
  2420. myDataColumn.Caption = "虚拟炉号";
  2421. steelSchTable.Columns.Add(myDataColumn);
  2422. myDataColumn = new DataColumn();
  2423. myDataColumn.DataType = System.Type.GetType("System.String");
  2424. myDataColumn.ColumnName = "STEELCODE";
  2425. myDataColumn.Caption = "牌号编码";
  2426. steelSchTable.Columns.Add(myDataColumn);
  2427. //切割指示表
  2428. myDataColumn = new DataColumn();
  2429. myDataColumn = new DataColumn();
  2430. myDataColumn.DataType = System.Type.GetType("System.String");
  2431. myDataColumn.ColumnName = "heatno";
  2432. myDataColumn.Caption = "炉号";
  2433. cutSchTable.Columns.Add(myDataColumn);
  2434. myDataColumn = new DataColumn();
  2435. myDataColumn.DataType = System.Type.GetType("System.String");
  2436. myDataColumn.ColumnName = "BILLET_XN";
  2437. myDataColumn.Caption = "计划坯号";
  2438. cutSchTable.Columns.Add(myDataColumn);
  2439. myDataColumn = new DataColumn();
  2440. myDataColumn.DataType = System.Type.GetType("System.String");
  2441. myDataColumn.ColumnName = "DIRECTIONTYPE";
  2442. myDataColumn.Caption = "计划去向";
  2443. cutSchTable.Columns.Add(myDataColumn);
  2444. myDataColumn = new DataColumn();
  2445. myDataColumn.DataType = System.Type.GetType("System.String");
  2446. myDataColumn.ColumnName = "CUTTASKCODE";
  2447. myDataColumn.Caption = "铸机号";
  2448. cutSchTable.Columns.Add(myDataColumn);
  2449. myDataColumn = new DataColumn();
  2450. myDataColumn.DataType = System.Type.GetType("System.String");
  2451. myDataColumn.ColumnName = "CAST_NO";
  2452. myDataColumn.Caption = "浇次号";
  2453. cutSchTable.Columns.Add(myDataColumn);
  2454. myDataColumn = new DataColumn();
  2455. myDataColumn.DataType = System.Type.GetType("System.String");
  2456. myDataColumn.ColumnName = "SLABLENGTH";
  2457. myDataColumn.Caption = "目标长度";
  2458. cutSchTable.Columns.Add(myDataColumn);
  2459. myDataColumn = new DataColumn();
  2460. myDataColumn.DataType = System.Type.GetType("System.String");
  2461. myDataColumn.ColumnName = "SLABWIDTH";
  2462. myDataColumn.Caption = "目标宽度";
  2463. cutSchTable.Columns.Add(myDataColumn);
  2464. myDataColumn = new DataColumn();
  2465. myDataColumn.DataType = System.Type.GetType("System.String");
  2466. myDataColumn.ColumnName = "SLABHEIGHT";
  2467. myDataColumn.Caption = "目标厚度";
  2468. cutSchTable.Columns.Add(myDataColumn);
  2469. myDataColumn = new DataColumn();
  2470. myDataColumn.DataType = System.Type.GetType("System.String");
  2471. myDataColumn.ColumnName = "THEROYWEIGHT";
  2472. myDataColumn.Caption = "坯料重量";
  2473. cutSchTable.Columns.Add(myDataColumn);
  2474. myDataColumn = new DataColumn();
  2475. myDataColumn.DataType = System.Type.GetType("System.String");
  2476. myDataColumn.ColumnName = "SEQUENCENO";
  2477. myDataColumn.Caption = "炉内顺序号";
  2478. cutSchTable.Columns.Add(myDataColumn);
  2479. myDataColumn = new DataColumn();
  2480. myDataColumn.DataType = System.Type.GetType("System.String");
  2481. myDataColumn.ColumnName = "SEQUENCEINCAST";
  2482. myDataColumn.Caption = "浇次内炉序";
  2483. cutSchTable.Columns.Add(myDataColumn);
  2484. myDataColumn = new DataColumn();
  2485. myDataColumn.DataType = System.Type.GetType("System.String");
  2486. myDataColumn.ColumnName = "BILLETQTY";
  2487. myDataColumn.Caption = "方坯数";
  2488. cutSchTable.Columns.Add(myDataColumn);
  2489. myDataColumn = new DataColumn();
  2490. myDataColumn.DataType = System.Type.GetType("System.String");
  2491. myDataColumn.ColumnName = "BILLETWEIGHT";
  2492. myDataColumn.Caption = "坯料单重";
  2493. cutSchTable.Columns.Add(myDataColumn);
  2494. myDataColumn = new DataColumn();
  2495. myDataColumn.DataType = System.Type.GetType("System.String");
  2496. myDataColumn.ColumnName = "FURNACENO";
  2497. myDataColumn.Caption = "虚拟炉号";
  2498. cutSchTable.Columns.Add(myDataColumn);
  2499. myDataColumn = new DataColumn();
  2500. myDataColumn.DataType = System.Type.GetType("System.String");
  2501. myDataColumn.ColumnName = "PRODORDERNO";
  2502. myDataColumn.Caption = "生产订单号";
  2503. cutSchTable.Columns.Add(myDataColumn);
  2504. myDataColumn = new DataColumn();
  2505. myDataColumn.DataType = System.Type.GetType("System.String");
  2506. myDataColumn.ColumnName = "ORDERNO";
  2507. myDataColumn.Caption = "订单行号";
  2508. cutSchTable.Columns.Add(myDataColumn);
  2509. myDataColumn = new DataColumn();
  2510. myDataColumn.DataType = System.Type.GetType("System.String");
  2511. myDataColumn.ColumnName = "BATCHPLANNO";
  2512. myDataColumn.Caption = "批量计划号";
  2513. cutSchTable.Columns.Add(myDataColumn);
  2514. myDataColumn = new DataColumn();
  2515. myDataColumn.DataType = System.Type.GetType("System.String");
  2516. myDataColumn.ColumnName = "SEQUENCEINBATCH";
  2517. myDataColumn.Caption = "批量计划内序号";
  2518. cutSchTable.Columns.Add(myDataColumn);
  2519. myDataColumn = new DataColumn();
  2520. myDataColumn.DataType = System.Type.GetType("System.String");
  2521. myDataColumn.ColumnName = "CUSTOMER_KEY";
  2522. myDataColumn.Caption = "客户参数号";
  2523. cutSchTable.Columns.Add(myDataColumn);
  2524. myDataColumn = new DataColumn();
  2525. myDataColumn.DataType = System.Type.GetType("System.String");
  2526. myDataColumn.ColumnName = "SURPLUSFLAG";
  2527. myDataColumn.Caption = "是否余材";
  2528. cutSchTable.Columns.Add(myDataColumn);
  2529. myDataColumn = new DataColumn();
  2530. myDataColumn.DataType = System.Type.GetType("System.String");
  2531. myDataColumn.ColumnName = "STANDARDSCODE";
  2532. myDataColumn.Caption = "内控标准";
  2533. cutSchTable.Columns.Add(myDataColumn);
  2534. myDataColumn = new DataColumn();
  2535. myDataColumn.DataType = System.Type.GetType("System.String");
  2536. myDataColumn.ColumnName = "STANDARDREMAK";
  2537. myDataColumn.Caption = "标准描述";
  2538. cutSchTable.Columns.Add(myDataColumn);
  2539. myDataColumn = new DataColumn();
  2540. myDataColumn.DataType = System.Type.GetType("System.String");
  2541. myDataColumn.ColumnName = "PDTSTYLE";
  2542. myDataColumn.Caption = "产品类型";
  2543. cutSchTable.Columns.Add(myDataColumn);
  2544. myDataColumn = new DataColumn();
  2545. myDataColumn.DataType = System.Type.GetType("System.String");
  2546. myDataColumn.ColumnName = "SPECDESCRIPTION";
  2547. myDataColumn.Caption = "成品规格描述";
  2548. cutSchTable.Columns.Add(myDataColumn);
  2549. myDataColumn = new DataColumn();
  2550. myDataColumn.DataType = System.Type.GetType("System.String");
  2551. myDataColumn.ColumnName = "FOREIGN_TRADE";
  2552. myDataColumn.Caption = "是否出口";
  2553. cutSchTable.Columns.Add(myDataColumn);
  2554. myDataColumn = new DataColumn();
  2555. myDataColumn.DataType = System.Type.GetType("System.String");
  2556. myDataColumn.ColumnName = "CUTSTARTTIME";
  2557. myDataColumn.Caption = "计划切割时间";
  2558. cutSchTable.Columns.Add(myDataColumn);
  2559. }
  2560. catch (Exception ex)
  2561. {
  2562. string msg = ex.Message;
  2563. }
  2564. }
  2565. /// <summary>
  2566. /// 设置grid外观
  2567. /// </summary>
  2568. private void setGrid1View()//----设置grid外观
  2569. {
  2570. try
  2571. {
  2572. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["HEAT_STATE"].Hidden = true;
  2573. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["v_heat_ID"].Hidden = true;
  2574. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_RH_STR_TIME"].Hidden = true;
  2575. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_RH_ENT_TIME"].Hidden = true;
  2576. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_HMP_STR_TIME"].Hidden = true;
  2577. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_HMP_END_TIME"].Hidden = true;
  2578. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_IRON_QTY"].Hidden = true;
  2579. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["HEAT_NUM"].Hidden = true;
  2580. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["STEELCODE"].Hidden = true;
  2581. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[0].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2582. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[1].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2583. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[2].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2584. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[3].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2585. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[4].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2586. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[5].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2587. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[6].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2588. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[7].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2589. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[8].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2590. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[9].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2591. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[10].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2592. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[11].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2593. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[12].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2594. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[13].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2595. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[14].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2596. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[15].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2597. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[16].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2598. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[17].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2599. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[18].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2600. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[19].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2601. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[20].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2602. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[15].Format = "yy-MM-dd HH:mm";
  2603. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[16].Format = "yy-MM-dd HH:mm";
  2604. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[17].Format = "yy-MM-dd HH:mm";
  2605. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[18].Format = "yy-MM-dd HH:mm";
  2606. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[19].Format = "yy-MM-dd HH:mm";
  2607. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[20].Format = "yy-MM-dd HH:mm";
  2608. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[21].Format = "yy-MM-dd HH:mm";
  2609. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["HEATNO"].Width = 80;
  2610. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["AIM_GRADE_CODE"].Width = 60;
  2611. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["CAST_ID"].Width = 50;
  2612. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["CAST_NO"].Width = 70;
  2613. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["HEAT_NUM"].Width = 50;
  2614. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["CAST_SEQ"].Width = 50;
  2615. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["PLAN_LINES"].Width = 150;
  2616. uGrdPlanInfo.DisplayLayout.Bands[0].Columns["BILLETQTY"].Width = 38;
  2617. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[8].Width = 60;
  2618. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[10].Width = 130;
  2619. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[11].Width = 130;
  2620. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[12].Width = 130;
  2621. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[13].Width = 60;
  2622. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[14].Width = 130;
  2623. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[15].Width = 130;
  2624. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[16].Width = 130;
  2625. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[17].Width = 130;
  2626. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[1].CellAppearance.BackColor = Color.GhostWhite;
  2627. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[2].CellAppearance.BackColor = Color.GhostWhite;
  2628. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[3].CellAppearance.BackColor = Color.GhostWhite;
  2629. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[4].CellAppearance.BackColor = Color.GhostWhite;
  2630. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[5].CellAppearance.BackColor = Color.GhostWhite;
  2631. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[6].CellAppearance.BackColor = Color.GhostWhite;
  2632. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[7].CellAppearance.BackColor = Color.GhostWhite;
  2633. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[8].CellAppearance.BackColor = Color.GhostWhite;
  2634. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[9].CellAppearance.BackColor = Color.GhostWhite;
  2635. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[10].CellAppearance.BackColor = Color.GhostWhite;
  2636. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[11].CellAppearance.BackColor = Color.GhostWhite;
  2637. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[12].CellAppearance.BackColor = Color.GhostWhite;
  2638. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[13].CellAppearance.BackColor = Color.GhostWhite;
  2639. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[14].CellAppearance.BackColor = Color.GhostWhite;
  2640. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[15].CellAppearance.BackColor = Color.GhostWhite;
  2641. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[16].CellAppearance.BackColor = Color.GhostWhite;
  2642. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[17].CellAppearance.BackColor = Color.GhostWhite;
  2643. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[18].CellAppearance.BackColor = Color.GhostWhite;
  2644. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[19].CellAppearance.BackColor = Color.LightGoldenrodYellow;
  2645. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[20].CellAppearance.BackColor = Color.LightGoldenrodYellow;
  2646. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[21].CellAppearance.BackColor = Color.LightGoldenrodYellow;
  2647. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[22].CellAppearance.BackColor = Color.LightPink;
  2648. uGrdPlanInfo.DisplayLayout.Bands[0].Columns[23].CellAppearance.BackColor = Color.LightPink;
  2649. uGrdCutInfo.DisplayLayout.Bands[0].Columns["FURNACENO"].Hidden = true;
  2650. uGrdCutInfo.DisplayLayout.Bands[0].Columns["HeatNo"].Width = 80;
  2651. uGrdCutInfo.DisplayLayout.Bands[0].Columns["STANDARDREMAK"].Width = 100;
  2652. uGrdCutInfo.DisplayLayout.Bands[0].Columns["BILLET_XN"].Width = 90;
  2653. uGrdCutInfo.DisplayLayout.Bands[0].Columns["SLABLENGTH"].Width = 60;//目标长度
  2654. uGrdCutInfo.DisplayLayout.Bands[0].Columns["SLABWIDTH"].Width = 60;//目标宽度
  2655. uGrdCutInfo.DisplayLayout.Bands[0].Columns["SLABHEIGHT"].Width = 60;//目标厚度
  2656. uGrdCutInfo.DisplayLayout.Bands[0].Columns["THEROYWEIGHT"].Width = 70;//目标重量
  2657. uGrdCutInfo.DisplayLayout.Bands[0].Columns["CUTTASKCODE"].Width = 50;
  2658. uGrdCutInfo.DisplayLayout.Bands[0].Columns["CAST_NO"].Width = 50;
  2659. uGrdCutInfo.DisplayLayout.Bands[0].Columns["SEQUENCEINCAST"].Width = 50;
  2660. uGrdCutInfo.DisplayLayout.Bands[0].Columns["DIRECTIONTYPE"].Width = 70;
  2661. uGrdCutInfo.DisplayLayout.Bands[0].Columns["BILLETQTY"].Width = 60;
  2662. uGrdCutInfo.DisplayLayout.Bands[0].Columns["BILLETWEIGHT"].Width = 80;
  2663. uGrdCutInfo.DisplayLayout.Bands[0].Columns[19].Width = 60;
  2664. uGrdCutInfo.DisplayLayout.Bands[0].Columns[24].Width = 60;
  2665. uGrdCutInfo.DisplayLayout.Bands[0].Columns[25].Width = 126;
  2666. uGrdCutInfo.DisplayLayout.Bands[0].Columns[0].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2667. uGrdCutInfo.DisplayLayout.Bands[0].Columns[1].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2668. uGrdCutInfo.DisplayLayout.Bands[0].Columns[2].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2669. uGrdCutInfo.DisplayLayout.Bands[0].Columns[3].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2670. uGrdCutInfo.DisplayLayout.Bands[0].Columns[4].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2671. uGrdCutInfo.DisplayLayout.Bands[0].Columns[5].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2672. uGrdCutInfo.DisplayLayout.Bands[0].Columns[6].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2673. uGrdCutInfo.DisplayLayout.Bands[0].Columns[7].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2674. uGrdCutInfo.DisplayLayout.Bands[0].Columns[8].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2675. uGrdCutInfo.DisplayLayout.Bands[0].Columns[9].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2676. uGrdCutInfo.DisplayLayout.Bands[0].Columns[10].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2677. uGrdCutInfo.DisplayLayout.Bands[0].Columns[11].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2678. uGrdCutInfo.DisplayLayout.Bands[0].Columns[12].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2679. uGrdCutInfo.DisplayLayout.Bands[0].Columns[13].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2680. uGrdCutInfo.DisplayLayout.Bands[0].Columns[14].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2681. uGrdCutInfo.DisplayLayout.Bands[0].Columns[15].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2682. uGrdCutInfo.DisplayLayout.Bands[0].Columns[16].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2683. uGrdCutInfo.DisplayLayout.Bands[0].Columns[17].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2684. uGrdCutInfo.DisplayLayout.Bands[0].Columns[18].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2685. uGrdCutInfo.DisplayLayout.Bands[0].Columns[19].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2686. uGrdCutInfo.DisplayLayout.Bands[0].Columns[20].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2687. uGrdCutInfo.DisplayLayout.Bands[0].Columns[21].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2688. uGrdCutInfo.DisplayLayout.Bands[0].Columns[22].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2689. uGrdCutInfo.DisplayLayout.Bands[0].Columns[23].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2690. uGrdCutInfo.DisplayLayout.Bands[0].Columns[24].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2691. uGrdCutInfo.DisplayLayout.Bands[0].Columns[25].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  2692. }
  2693. catch (Exception ex)
  2694. {
  2695. string msg = ex.Message;
  2696. }
  2697. }
  2698. /// <summary>
  2699. /// 路径解析
  2700. /// </summary>
  2701. /// <param name="craftPath"></param>
  2702. /// <returns></returns>
  2703. private string analysPath(string craftPath)//----路径解析
  2704. {
  2705. string path = "";
  2706. try
  2707. {
  2708. if (craftPath.Length > 14)
  2709. {
  2710. string str = "", route = "";
  2711. if (craftPath.Length >= 2)
  2712. {
  2713. str = craftPath.Substring(0, 2);
  2714. switch (str)
  2715. {
  2716. case "A0":
  2717. route = "";
  2718. break;
  2719. case "A1":
  2720. route = "1#混铁炉";
  2721. break;
  2722. case "A2":
  2723. route = "2#混铁炉";
  2724. break;
  2725. }
  2726. path = path + route;
  2727. }
  2728. else
  2729. return path;
  2730. if (craftPath.Length >= 4)
  2731. {
  2732. str = craftPath.Substring(2, 2);
  2733. switch (str)
  2734. {
  2735. case "B0":
  2736. route = "";
  2737. break;
  2738. case "B1":
  2739. route = "->1#铁水预处理";
  2740. break;
  2741. case "B2":
  2742. route = "->2#铁水预处理";
  2743. break;
  2744. }
  2745. path = path + route;
  2746. }
  2747. else
  2748. return path;
  2749. if (craftPath.Length >= 6)
  2750. {
  2751. str = craftPath.Substring(4, 2);
  2752. switch (str)
  2753. {
  2754. case "C0":
  2755. route = "";
  2756. break;
  2757. case "C1":
  2758. route = "->1#转炉";
  2759. break;
  2760. case "C2":
  2761. route = "->2#转炉";
  2762. break;
  2763. case "C3":
  2764. route = "->3#转炉";
  2765. break;
  2766. }
  2767. path = path + route;
  2768. }
  2769. else
  2770. return path;
  2771. if (craftPath.Length >= 8)
  2772. {
  2773. str = craftPath.Substring(6, 2);
  2774. switch (str)
  2775. {
  2776. case "D0":
  2777. route = "";
  2778. break;
  2779. case "D1":
  2780. route = "->1#吹氩站";
  2781. break;
  2782. case "D2":
  2783. route = "->2#吹氩站";
  2784. break;
  2785. case "D3":
  2786. route = "->3#吹氩站";
  2787. break;
  2788. }
  2789. path = path + route;
  2790. }
  2791. else
  2792. return path;
  2793. ///2008-02-28 刘现
  2794. if (craftPath.Length >= 10)
  2795. {
  2796. str = craftPath.Substring(8, 2);
  2797. switch (str)
  2798. {
  2799. case "F0":
  2800. route = "";
  2801. break;
  2802. case "F1":
  2803. route = "->1#RH炉";
  2804. break;
  2805. }
  2806. path = path + route;
  2807. }
  2808. else
  2809. return path;
  2810. if (craftPath.Length >= 12)
  2811. {
  2812. str = craftPath.Substring(10, 2);
  2813. switch (str)
  2814. {
  2815. case "E0":
  2816. route = "";
  2817. break;
  2818. case "E1":
  2819. route = "->1#精练";
  2820. break;
  2821. case "E2":
  2822. route = "->2#精练";
  2823. break;
  2824. }
  2825. path = path + route;
  2826. }
  2827. else
  2828. return path;
  2829. if (craftPath.Length >= 14)
  2830. {
  2831. str = craftPath.Substring(12, 2);
  2832. switch (str)
  2833. {
  2834. case "F0":
  2835. route = "";
  2836. break;
  2837. case "F1":
  2838. route = "->1#RH炉";
  2839. break;
  2840. }
  2841. path = path + route;
  2842. }
  2843. else
  2844. return path;
  2845. if (craftPath.Length >= 14)
  2846. {
  2847. str = craftPath.Substring(14, 2);
  2848. switch (str)
  2849. {
  2850. case "G0":
  2851. route = "";
  2852. break;
  2853. case "G1":
  2854. route = "->1#连铸机";
  2855. break;
  2856. case "G2":
  2857. route = "->2#连铸机";
  2858. break;
  2859. case "G3":
  2860. route = "->3#连铸机";
  2861. break;
  2862. case "G4":
  2863. route = "->0#连铸机";
  2864. break;
  2865. }
  2866. path = path + route;
  2867. }
  2868. else
  2869. return path;
  2870. if (path.Length < 2)
  2871. return "";
  2872. if (path.IndexOf("->", 0) == 0)
  2873. {
  2874. int len = path.Length;
  2875. path = path.Substring(2, len - 2);
  2876. }
  2877. }
  2878. else
  2879. {
  2880. string str = "", route = "";
  2881. if (craftPath.Length >= 2)
  2882. {
  2883. str = craftPath.Substring(0, 2);
  2884. switch (str)
  2885. {
  2886. case "A0":
  2887. route = "";
  2888. break;
  2889. case "A1":
  2890. route = "1#混铁炉";
  2891. break;
  2892. case "A2":
  2893. route = "2#混铁炉";
  2894. break;
  2895. }
  2896. path = path + route;
  2897. }
  2898. else
  2899. return path;
  2900. if (craftPath.Length >= 4)
  2901. {
  2902. str = craftPath.Substring(2, 2);
  2903. switch (str)
  2904. {
  2905. case "B0":
  2906. route = "";
  2907. break;
  2908. case "B1":
  2909. route = "->1#铁水预处理";
  2910. break;
  2911. case "B2":
  2912. route = "->2#铁水预处理";
  2913. break;
  2914. }
  2915. path = path + route;
  2916. }
  2917. else
  2918. return path;
  2919. if (craftPath.Length >= 6)
  2920. {
  2921. str = craftPath.Substring(4, 2);
  2922. switch (str)
  2923. {
  2924. case "C0":
  2925. route = "";
  2926. break;
  2927. case "C1":
  2928. route = "->1#转炉";
  2929. break;
  2930. case "C2":
  2931. route = "->2#转炉";
  2932. break;
  2933. case "C3":
  2934. route = "->3#转炉";
  2935. break;
  2936. }
  2937. path = path + route;
  2938. }
  2939. else
  2940. return path;
  2941. if (craftPath.Length >= 8)
  2942. {
  2943. str = craftPath.Substring(6, 2);
  2944. switch (str)
  2945. {
  2946. case "D0":
  2947. route = "";
  2948. break;
  2949. case "D1":
  2950. route = "->1#吹氩站";
  2951. break;
  2952. case "D2":
  2953. route = "->2#吹氩站";
  2954. break;
  2955. case "D3":
  2956. route = "->3#吹氩站";
  2957. break;
  2958. }
  2959. path = path + route;
  2960. }
  2961. else
  2962. return path;
  2963. if (craftPath.Length >= 10)
  2964. {
  2965. str = craftPath.Substring(8, 2);
  2966. switch (str)
  2967. {
  2968. case "E0":
  2969. route = "";
  2970. break;
  2971. case "E1":
  2972. route = "->1#精练";
  2973. break;
  2974. case "E2":
  2975. route = "->2#精练";
  2976. break;
  2977. }
  2978. path = path + route;
  2979. }
  2980. else
  2981. return path;
  2982. if (craftPath.Length >= 12)
  2983. {
  2984. str = craftPath.Substring(10, 2);
  2985. switch (str)
  2986. {
  2987. case "F0":
  2988. route = "";
  2989. break;
  2990. case "F1":
  2991. route = "->1#RH炉";
  2992. break;
  2993. case "F2":
  2994. route = "->2#RH炉";
  2995. break;
  2996. }
  2997. path = path + route;
  2998. }
  2999. else
  3000. return path;
  3001. if (craftPath.Length >= 14)
  3002. {
  3003. str = craftPath.Substring(12, 2);
  3004. switch (str)
  3005. {
  3006. case "G0":
  3007. route = "";
  3008. break;
  3009. case "G1":
  3010. route = "->1#连铸机";
  3011. break;
  3012. case "G2":
  3013. route = "->2#连铸机";
  3014. break;
  3015. case "G3":
  3016. route = "->3#连铸机";
  3017. break;
  3018. case "G4":
  3019. route = "->0#连铸机";
  3020. break;
  3021. }
  3022. path = path + route;
  3023. }
  3024. else
  3025. return path;
  3026. if (path.Length < 2)
  3027. return "";
  3028. if (path.IndexOf("->", 0) == 0)
  3029. {
  3030. int len = path.Length;
  3031. path = path.Substring(2, len - 2);
  3032. }
  3033. }
  3034. return path;
  3035. }
  3036. catch (Exception ex)
  3037. {
  3038. string msg = ex.Message;
  3039. return path;
  3040. }
  3041. }
  3042. private void InitComboBoxSource_A()
  3043. {
  3044. this.ccmNumCobo.DataSource = GetCcmData();
  3045. this.ccmNumCobo.DisplayMember = "name";
  3046. this.ccmNumCobo.ValueMember = "id";
  3047. this.combConNo.DataSource = GetConData();
  3048. this.combConNo.DisplayMember = "name";
  3049. this.combConNo.ValueMember = "id";
  3050. this.cboFlowNo.DataSource = GetFlowData();
  3051. this.cboFlowNo.DisplayMember = "name";
  3052. this.cboFlowNo.ValueMember = "id";
  3053. }
  3054. //private DataTable GetCcmData()
  3055. //{
  3056. // DataTable dt = new DataTable();
  3057. // dt.Columns.Add("id", typeof(System.String));
  3058. // dt.Columns.Add("name", typeof(System.String));
  3059. // //dt.Rows.Add(new object[] { "0", "0#铸机" });
  3060. // dt.Rows.Add(new object[] { "1", "1#铸机" });
  3061. // dt.Rows.Add(new object[] { "2", "2#铸机" });
  3062. // dt.Rows.Add(new object[] { "3", "3#铸机" });
  3063. // // dt.Rows.Add(new object[] { "4", "4#铸机" });
  3064. // dt.AcceptChanges();
  3065. // return dt;
  3066. //}
  3067. /// <summary>
  3068. /// 加载转炉号
  3069. /// </summary>
  3070. /// <returns></returns>
  3071. private DataTable GetConData()
  3072. {
  3073. DataTable dt = new DataTable();
  3074. dt.Columns.Add("id", typeof(System.String));
  3075. dt.Columns.Add("name", typeof(System.String));
  3076. dt.Rows.Add(new object[] { "1", "1#转炉" });
  3077. dt.Rows.Add(new object[] { "2", "2#转炉" });
  3078. //dt.Rows.Add(new object[] { "3", "3#转炉" });
  3079. dt.AcceptChanges();
  3080. return dt;
  3081. }
  3082. /// <summary>
  3083. /// 计划信息单击
  3084. /// </summary>
  3085. /// <param name="sender"></param>
  3086. /// <param name="e"></param>
  3087. private void uGrdPlanInfo_AfterRowActivate(object sender, EventArgs e)
  3088. {
  3089. try
  3090. {
  3091. if (this.uGrdPlanInfo.Rows.Count < 1)
  3092. return;
  3093. if (this.uGrdPlanInfo.ActiveRow == null)
  3094. return;
  3095. UltraGridRow ultraRow = this.uGrdPlanInfo.ActiveRow;
  3096. string castNo = ultraRow.Cells["heatNo"].Value.ToString();
  3097. string strV_HeatID = ultraRow.Cells["v_heat_ID"].Value.ToString();
  3098. string strWhere = " WHERE FURNACENO='" + strV_HeatID + "' ";
  3099. txtHeatno.Text = ultraRow.Cells["HEATNO"].Value.ToString();
  3100. //this.textBox1.Enabled = true;
  3101. this.chkRlh.Checked = true;
  3102. Query();
  3103. string err = "";
  3104. ArrayList arry = new ArrayList();
  3105. ArrayList sqlList = new ArrayList();
  3106. arry.Add("FrmCutBilletDetails_Query8");
  3107. sqlList.Clear();
  3108. sqlList.Add(strWhere);
  3109. sqlList.Add(strWhere);
  3110. CoreClientParam CCP_LgEts = new CoreClientParam();
  3111. DataTable dt = new DataTable();
  3112. CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  3113. CCP_LgEts.MethodName = "doQuery";
  3114. CCP_LgEts.ServerParams = new object[] { arry, sqlList };
  3115. CCP_LgEts.SourceDataTable = dt;
  3116. this.ExecuteQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal);
  3117. DataSet ds = new DataSet();
  3118. ds.Tables.Add(dt);
  3119. err = CCP_LgEts.ReturnInfo;
  3120. if (err != "" && ds.Tables[0].Rows.Count <= 0)
  3121. {
  3122. //MessageBox.Show("切割数据查询错误:"+err,"提示");
  3123. this.groupBox1.Text = "切割信息";
  3124. return;
  3125. }
  3126. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  3127. {
  3128. string strMsg = "切割信息 块数:";
  3129. strMsg = strMsg + ds.Tables[0].Rows.Count.ToString();
  3130. this.groupBox1.Text = strMsg;
  3131. this.cutSchTable.Clear();
  3132. uGrdCutInfo.UpdateData();
  3133. int rowCount = ds.Tables[0].Rows.Count;
  3134. DataRow row;
  3135. for (int i = 0; i < rowCount; i++)
  3136. {
  3137. row = this.cutSchTable.NewRow();
  3138. foreach (DataColumn column in cutSchTable.Columns)
  3139. {
  3140. if (column.ColumnName.ToUpper() == "DIRECTIONTYPE") //坯料去向
  3141. //row[column.ColumnName] = (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "0" ? "弹扁" : (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "1" ? "棒材" : "高线"));
  3142. //去向类型(0:下线,1:中板(Z)),2:厚板(P),3:热轧(H))
  3143. row[column.ColumnName] = (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "0" ? "下线" : (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "1" ? "中板" :(ds.Tables[0].Rows[i][column.ColumnName].ToString() == "2" ? "厚板" :(ds.Tables[0].Rows[i][column.ColumnName].ToString() == "3" ? "热轧" : "未知") ) ));
  3144. //去向类型(0:下线,1:中板(Z)),2:厚板(P),3:热轧(H))
  3145. else if (column.ColumnName.ToUpper() == "SURPLUSFLAG") //是否余材
  3146. row[column.ColumnName] = (ds.Tables[0].Rows[i][column.ColumnName].ToString() == "1" ? "是" : "否");
  3147. else
  3148. row[column.ColumnName] = ds.Tables[0].Rows[i][column.ColumnName].ToString();
  3149. }
  3150. this.cutSchTable.Rows.Add(row);
  3151. if (i > 0)
  3152. {
  3153. Color color1;
  3154. Color color2;
  3155. if (ds.Tables[0].Rows[i]["SLABLENGTH"].ToString() != ds.Tables[0].Rows[i - 1]["SLABLENGTH"].ToString())
  3156. {
  3157. color1 = (Color)uGrdCutInfo.Rows[i - 1].Cells["SLABLENGTH"].Appearance.BackColor;
  3158. if (color1 == Color.LightGreen)//Color.FromArgb(205, 228, 225))
  3159. color2 = Color.MintCream;// Color.FromArgb(0, 0, 0, 0);
  3160. else
  3161. color2 = Color.LightGreen;//Color.FromArgb(205, 228, 225);
  3162. }
  3163. else
  3164. color2 = (Color)uGrdCutInfo.Rows[i - 1].Cells["SLABLENGTH"].Appearance.BackColor;
  3165. foreach (UltraGridCell cell in uGrdCutInfo.Rows[i].Cells)
  3166. cell.Appearance.BackColor = color2;//在生产用颜色区分
  3167. }
  3168. }
  3169. //UltraGridRow ulCutRow = this.uGrdCutInfo.ActiveRow;
  3170. this.txtHLH.Text = castNo;
  3171. this.cboZJH.Text = ultraRow.Cells["CAST_ID"].Value.ToString();
  3172. this.txtBlocks.Text = this.uGrdCutInfo.Rows.Count.ToString();
  3173. this.tbxLength.Text = this.uGrdCutInfo.Rows[0].Cells["SLABLENGTH"].Value.ToString();
  3174. this.tbxWidth.Text = this.uGrdCutInfo.Rows[0].Cells["SLABWIDTH"].Value.ToString();
  3175. this.tbxThick.Text = this.uGrdCutInfo.Rows[0].Cells["SLABHEIGHT"].Value.ToString();
  3176. float a = Convert.ToSingle(this.tbxLength.Text.Trim());
  3177. float b = Convert.ToSingle(this.tbxWidth.Text.Trim());
  3178. float c = Convert.ToSingle(this.tbxThick.Text.Trim());
  3179. if (this.uGrdCutInfo.Rows[0].Cells["BILLETQTY"].Value.ToString() != "")//&& Convert.ToDouble(this.uGrdCutInfo.Rows[0].Cells["BILLETQTY"].Value.ToString()) > 0
  3180. this.tbxWeight.Text = Convert.ToString(Convert.ToInt32(this.uGrdCutInfo.Rows[0].Cells["THEROYWEIGHT"].Value) / Convert.ToInt32(this.uGrdCutInfo.Rows[0].Cells["BILLETQTY"].Value));
  3181. else
  3182. {
  3183. tbxWeight.Text = Convert.ToString(Math.Round(Convert.ToDouble(this.uGrdCutInfo.Rows[0].Cells["THEROYWEIGHT"].Value) / Math.Round(a * b * c * 7.82 / 1000000000, 3), 4));
  3184. }
  3185. }
  3186. else
  3187. {
  3188. this.cutSchTable.Clear();
  3189. this.groupBox1.Text = "";
  3190. this.txtHLH.Text = null;
  3191. this.cboZJH.Text = "";
  3192. this.txtBlocks.Text = "";
  3193. this.tbxLength.Text ="";
  3194. this.tbxWidth.Text ="";
  3195. this.tbxThick.Text = "";
  3196. this.tbxWeight.Text ="";
  3197. }
  3198. }
  3199. catch (Exception ex)
  3200. {
  3201. string msg = ex.Message;
  3202. }
  3203. }
  3204. /// <summary>
  3205. /// 切割信息单击
  3206. /// </summary>
  3207. /// <param name="sender"></param>
  3208. /// <param name="e"></param>
  3209. private void uGrdCutInfo_AfterRowActivate(object sender, EventArgs e)
  3210. {
  3211. try
  3212. {
  3213. if (this.uGrdCutInfo.Rows.Count < 1)
  3214. return;
  3215. if (this.uGrdCutInfo.ActiveRow == null)
  3216. return;
  3217. UltraGridRow ultraRow = this.uGrdCutInfo.ActiveRow;
  3218. string strCastNo = ultraRow.Cells[0].Value.ToString();
  3219. string strBlockNo = ultraRow.Cells[1].Value.ToString();
  3220. strV_BilletID = ultraRow.Cells["BILLET_XN"].Value.ToString();//虚拟批号
  3221. strV_Heat_ID = ultraRow.Cells["FURNACENO"].Value.ToString();//虚拟炉号strV_Heat_ID
  3222. strOrderNO = ultraRow.Cells["ORDERNO"].Value.ToString();//订单行号
  3223. strProdOrderNO = ultraRow.Cells["PRODORDERNO"].Value.ToString();//生产订单号
  3224. strSurplusFlag = (ultraRow.Cells["SURPLUSFLAG"].Value.ToString() == "是" ? "1" : "0");
  3225. strProductline = (ultraRow.Cells["DIRECTIONTYPE"].Value.ToString()) == "弹扁" ? "0" : (ultraRow.Cells["DIRECTIONTYPE"].Value.ToString()) == "棒材" ? "1" : "2";
  3226. strStandardsCode = ultraRow.Cells["STANDARDSCODE"].Value.ToString();
  3227. strStandardRemak = ultraRow.Cells["STANDARDREMAK"].Value.ToString();
  3228. strCustomer_Key = ultraRow.Cells["CUSTOMER_KEY"].Value.ToString();
  3229. this.txtHLH.Text = ultraRow.Cells["HeatNo"].Value.ToString();
  3230. this.cboZJH.Text = ultraRow.Cells["CAST_No"].Value.ToString();
  3231. this.txtBlocks.Text = ultraRow.Cells["BILLETQTY"].Value.ToString();
  3232. this.tbxLength.Text = ultraRow.Cells["SLABLENGTH"].Value.ToString();
  3233. this.tbxWidth.Text = ultraRow.Cells["SLABWIDTH"].Value.ToString();
  3234. this.tbxThick.Text = ultraRow.Cells["SLABHEIGHT"].Value.ToString();
  3235. this.txtProdorderNO.Text = ultraRow.Cells["ProdorderNo"].Value.ToString();
  3236. txtOrderNO.Text = ultraRow.Cells["OrderNo"].Value.ToString();
  3237. txtSurplusFlag.Text = ultraRow.Cells["SurplusFlag"].Value.ToString();
  3238. float a = Convert.ToSingle(this.tbxLength.Text.Trim());
  3239. float b = Convert.ToSingle(this.tbxWidth.Text.Trim());
  3240. float c = Convert.ToSingle(this.tbxThick.Text.Trim());
  3241. if (ultraRow.Cells["BILLETWEIGHT"].Value != null && ultraRow.Cells["BILLETWEIGHT"].Value.ToString().Length > 0)
  3242. tbxWeight.Text = ultraRow.Cells["BILLETWEIGHT"].Value.ToString();
  3243. else
  3244. {
  3245. if (ultraRow.Cells["BILLETQTY"].Value != null && !string.IsNullOrEmpty(ultraRow.Cells["BILLETQTY"].Value.ToString()) && Convert.ToDouble(ultraRow.Cells["BILLETQTY"].Value) > 0)
  3246. this.tbxWeight.Text = Convert.ToString(Convert.ToInt32(ultraRow.Cells["THEROYWEIGHT"].Value) / Convert.ToInt32(ultraRow.Cells["BILLETQTY"].Value));
  3247. else
  3248. tbxWeight.Text = Convert.ToString(Math.Round(Convert.ToDouble(ultraRow.Cells["THEROYWEIGHT"].Value) / Math.Round(a * b * c * 7.82 / 1000000000, 3),4));
  3249. }
  3250. //选择行进行了改变
  3251. if (reportSelect != null)
  3252. reportSelect(strCastNo, strBlockNo);
  3253. }
  3254. catch (Exception ex)
  3255. {
  3256. string msg = ex.Message;
  3257. }
  3258. }
  3259. /// <summary>
  3260. /// 生成
  3261. /// </summary>
  3262. /// <param name="sender"></param>
  3263. /// <param name="e"></param>
  3264. private void button3_Click(object sender, EventArgs e)
  3265. {
  3266. {
  3267. string yncheck = "";
  3268. yncheck = yncheckCut();
  3269. //只有在连铸机生产或已生产完的
  3270. if (!GetHeatState(txtHLH.Text))
  3271. {
  3272. MessageBox.Show("炉号【" + txtHLH.Text + "】没有上连铸机生产,不能生成坯料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  3273. return;
  3274. }
  3275. if (yncheck == "Y")
  3276. {
  3277. MessageBox.Show("请将本炉最后一块置成否后再增加支数");
  3278. return;
  3279. }
  3280. if (this.uGrdPlanInfo.ActiveRow == null || this.uGrdCutInfo.Rows.Count == 0)
  3281. {
  3282. return;
  3283. }
  3284. if (this.uGrdCutInfo.ActiveRow == null)
  3285. {
  3286. MessageBox.Show("没有选择切割计划,请选择!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  3287. return;
  3288. }
  3289. if (this.cboFlowNo.Text.Trim().Length == 0)
  3290. {
  3291. MessageBox.Show("请输入铸流号!");
  3292. return;
  3293. }
  3294. if (this.textBox26.Text.Trim().Length == 0)
  3295. this.textBox26.Text = "1";
  3296. int intIndex = 1;
  3297. try
  3298. {
  3299. intIndex = Convert.ToInt32(this.textBox26.Text.Trim());
  3300. }
  3301. catch
  3302. {
  3303. MessageBox.Show("起始序号请输入数字!");
  3304. return;
  3305. }
  3306. //检查一下数量
  3307. string strInputSmeltID = txtHLH.Text;
  3308. //通过计划查找其铸机号
  3309. int nCCMNo = FindCCMNoInPlan(strInputSmeltID);
  3310. if (nCCMNo == -1)
  3311. {
  3312. MessageBox.Show("不存在指定的计划,或者数据查询错误,请重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Stop);
  3313. return;
  3314. }
  3315. //对比现在选择的铸机
  3316. //int nSelectCCMNo = Convert.ToInt32(comboBox3.SelectedItem) ;
  3317. int nSelectCCMNo = Convert.ToInt32(cboZJH.SelectedItem);
  3318. if (nCCMNo != nSelectCCMNo)
  3319. {
  3320. if (DialogResult.No == MessageBox.Show("您选择的铸机号和计划要去的连铸机号不同。确实要继续吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning))
  3321. return;
  3322. }
  3323. //InsertAllData(GetCurrValue());
  3324. InsertAllData();
  3325. ////提示用户修改班次信息
  3326. //MessageBox.Show("该炉号所有坯子重量不能大于140,请修改手动生成记录的班次信息!", "插入记录成功!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
  3327. Query();
  3328. }
  3329. }
  3330. private void InsertAllData()
  3331. {
  3332. try
  3333. {
  3334. UltraGridRow ugr = this.uGrdPlanInfo.ActiveRow;
  3335. UltraGridRow ugr2 = this.uGrdCutInfo.ActiveRow;
  3336. string err = "";
  3337. int billetNum = 0;//切割顺序
  3338. float billetSum = 0;//重量
  3339. string strDutyNo = "";//班次
  3340. //得到班次
  3341. ArrayList arry = new ArrayList();
  3342. arry.Add("FrmCutBilletDetails_Query9");
  3343. CommonClientToServer ccs = new CommonClientToServer();
  3344. ccs.ob = this.ob;
  3345. DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
  3346. if (err == "" && ds.Tables.Count > 0)
  3347. {
  3348. DataTable dtTemp = ds.Tables[0];
  3349. if (dtTemp.Rows.Count >= 1)
  3350. {
  3351. strDutyNo = dtTemp.Rows[0][0].ToString();
  3352. }
  3353. }
  3354. //交给数据库统计总重量
  3355. arry.Clear();
  3356. ds = null;
  3357. ccs.ob = ob;
  3358. arry.Add("FrmCutBilletDetails_Query10");
  3359. arry.Add(ugr.Cells["HEATNO"].Value.ToString());
  3360. ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
  3361. if (err == "" && ds.Tables.Count > 0)
  3362. {
  3363. DataTable dtTemp = ds.Tables[0];
  3364. if (dtTemp.Rows.Count >= 1)
  3365. {
  3366. billetNum = dtTemp.Rows[0]["cutseqno"] != System.DBNull.Value ? Convert.ToInt32(dtTemp.Rows[0]["cutseqno"]) : 0;
  3367. billetSum = dtTemp.Rows[0]["weight"] != System.DBNull.Value ? Convert.ToSingle(dtTemp.Rows[0]["weight"]) : 0;
  3368. }
  3369. }
  3370. billetNum = billetNum + 1;
  3371. DataTable dt =((DataTable) uGrdCutInfo.DataSource);
  3372. if (dt == null || dt.Rows.Count == 0) return ;
  3373. int index = Convert.ToInt32(this.textBox26.Text.Trim());//
  3374. int count1 = Convert.ToInt32(this.txtBlocks.Text.Trim());//生产块数
  3375. DataRow dr = null;
  3376. for (int i = 0; i < count1; i++)
  3377. {
  3378. string strRecNo = "";
  3379. string strBilletNo = "";
  3380. //检验实绩切割支数是否超出计划切割支数
  3381. if (CheckCutQty_PlanQty(ugr.Cells["HEATNO"].Value.ToString(), txtOrderNO.Text,txtProdorderNO.Text))
  3382. {
  3383. strOrderNO = "";//订单行号
  3384. strProdOrderNO = "";//生产订单号
  3385. strSurplusFlag = "1";//是否余材
  3386. }
  3387. if (i < dt.Rows.Count)
  3388. dr = dt.Rows[i];
  3389. if (billetNum == 0)
  3390. billetNum = index + i;
  3391. else
  3392. billetNum = index + i;// billetNum + i;
  3393. string strCutNo = "";
  3394. strCutNo = Convert.ToString(index + i);// billetNum.ToString();// this.textBox26.Text.Trim();// this.txtHLH.Text.ToString().Trim();// Convert.ToInt32(this.txtHLH.Text.Trim());
  3395. //if (strCutNo.Length == 1) strCutNo = "0" + strCutNo;
  3396. //if (strCutNo.Length == 3)
  3397. //{
  3398. // int nNum = Convert.ToInt32(ar[3]);
  3399. // if (nNum >= 100 && nNum < 110) strCutNo = "A" + strCutNo.Substring(2, 1);
  3400. // if (nNum >= 110 && nNum < 120) strCutNo = "B" + strCutNo.Substring(2, 1);
  3401. // if (nNum >= 120 && nNum < 130) strCutNo = "C" + strCutNo.Substring(2, 1);
  3402. // if (nNum >= 130 && nNum < 140) strCutNo = "D" + strCutNo.Substring(2, 1);
  3403. // if (nNum >= 140 && nNum < 150) strCutNo = "E" + strCutNo.Substring(2, 1);
  3404. // if (nNum >= 150 && nNum < 160) strCutNo = "F" + strCutNo.Substring(2, 1);
  3405. // if (nNum >= 160 && nNum < 170) strCutNo = "G" + strCutNo.Substring(2, 1);
  3406. // if (nNum >= 170 && nNum < 180) strCutNo = "H" + strCutNo.Substring(2, 1);
  3407. // if (nNum >= 180 && nNum < 190) strCutNo = "J" + strCutNo.Substring(2, 1);
  3408. //}
  3409. strBilletNo = this.txtHLH.Text.Trim() + strCutNo.PadLeft(3, '0');
  3410. billetSum = billetSum + Convert.ToSingle(tbxWeight.Text);
  3411. if (billetSum > 100) break; //钢包总重量的限制
  3412. strRecNo = DateTime.Now.ToString("yyyyMMddhhmmssfff") + strCutNo.PadLeft(3, '0');
  3413. arry.Clear();
  3414. ccs.ob = ob;
  3415. arry.Add("FrmCutBilletDetails_Add1");
  3416. arry.Add(ugr.Cells["HEATNO"].Value.ToString());//熔炼号
  3417. arry.Add(cboZJH.Text.Trim());//铸机号
  3418. arry.Add(this.cboFlowNo.SelectedValue);//流号
  3419. arry.Add(billetNum);//切割序号
  3420. arry.Add(ugr.Cells["CAST_NO"].Value.ToString());//浇次号
  3421. arry.Add(ugr.Cells["CAST_SEQ"].Value.ToString());//炉内序号 5
  3422. arry.Add(ugr.Cells["HEAT_NUM"].Value.ToString());//浇次炉数 6
  3423. arry.Add(tbxLength.Text);//长度
  3424. arry.Add(tbxWidth.Text);//8宽度
  3425. arry.Add(tbxThick.Text);//9厚度
  3426. arry.Add(tbxWeight.Text);//10重量
  3427. arry.Add(Convert.ToDateTime(dtpCutTime.Value).ToString("yyyy-MM-dd HH:mm:ss"));//11生产时间
  3428. arry.Add(strRecNo);//坯料编码
  3429. arry.Add(strDutyNo);//班次
  3430. arry.Add(strBilletNo);//坯号
  3431. arry.Add(UserInfo.GetUserName());//记录操作人员13
  3432. arry.Add(ugr2.Cells["FURNACENO"].Value.ToString());//虚拟炉号
  3433. arry.Add(ugr2.Cells["BILLET_XN"].Value.ToString());//虚拟坯号
  3434. arry.Add(txtOrderNO.Text);//16订单行号
  3435. arry.Add(txtProdorderNO.Text);//17生产订单号
  3436. arry.Add((txtSurplusFlag.Text == "是" ? "1" : "0"));//18是否余材
  3437. arry.Add(ugr.Cells["SteelCode"].Value.ToString());//19计划牌号
  3438. //是否最后一块
  3439. //是否定尺-- DIRECTIONTYPE
  3440. arry.Add((ugr2.Cells["DIRECTIONTYPE"].Value.ToString()) == "弹扁" ? "0" : (ugr2.Cells["DIRECTIONTYPE"].Value.ToString()) == "棒材" ? "1" : "2");//去向
  3441. //l2flag,--喷号机标识
  3442. // resflag,--刷新标识
  3443. arry.Add(ugr2.Cells["STANDARDSCODE"].Value.ToString());//21内控标准号
  3444. arry.Add(ugr2.Cells["STANDARDREMAK"].Value.ToString());//22内控标准号描述
  3445. arry.Add(ugr2.Cells["CUSTOMER_KEY"].Value.ToString());//23客户参数号
  3446. string strOut = "";
  3447. string strReturn = ccs.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strOut);
  3448. if (!(strOut==""||strOut==null))
  3449. {
  3450. MessageBox.Show("数据提交失败!\n" + strOut);
  3451. }
  3452. }
  3453. }
  3454. catch (Exception ex)
  3455. {
  3456. Console.WriteLine(ex.Message);
  3457. }
  3458. }
  3459. public string yncheckCut()
  3460. {
  3461. string strLastFla = "";
  3462. if (this.uGrdCutPlan.Rows.Count < 1)
  3463. {
  3464. strLastFla = "N";
  3465. }
  3466. if (this.uGrdCutPlan.Rows.Count > 0)
  3467. {
  3468. UltraGridRow ugr = this.uGrdCutPlan.Rows[uGrdCutPlan.Rows.Count - 1];
  3469. strLastFla = ugr.Cells["LASTBILLETFLAG"].Value.ToString();
  3470. }
  3471. return Convert.ToString(strLastFla);
  3472. }
  3473. /// <summary>
  3474. /// 切割信息生产时获取铸机号
  3475. /// </summary>
  3476. /// <param name="strSmeltID"></param>
  3477. /// <returns></returns>
  3478. private int FindCCMNoInPlan(string strSmeltID)
  3479. {
  3480. string err = "";
  3481. ArrayList arry = new ArrayList();
  3482. arry.Add("FrmCutBilletDetails_Query11");
  3483. arry.Add(strSmeltID);
  3484. CommonClientToServer ccs = new CommonClientToServer();
  3485. ccs.ob = this.ob;
  3486. DataSet ds = ccs.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out err);
  3487. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  3488. {
  3489. return Convert.ToInt32(ds.Tables[0].Rows[0][0].ToString());
  3490. }
  3491. return -1;
  3492. }
  3493. #endregion
  3494. /// <summary>
  3495. /// 炉号设置
  3496. /// </summary>
  3497. /// <param name="sender"></param>
  3498. /// <param name="e"></param>
  3499. private void btn_setheatid_Click(object sender, EventArgs e)
  3500. {
  3501. string strDevNo =CCMN0.Substring(0, 1);
  3502. if (strDevNo == "0") strDevNo = "4";
  3503. FrmSetHeatid setheatCcmFrm= new FrmSetHeatid(ob);
  3504. setheatCcmFrm.Location = GetChildWindowLocation(setheatCcmFrm.Size);
  3505. setheatCcmFrm.Ccmno = strDevNo;
  3506. setheatCcmFrm.Heatno = txtCutHeatN.Text;
  3507. setheatCcmFrm.ShowDialog();
  3508. }
  3509. private void btnDown_Click(object sender, EventArgs e)
  3510. {
  3511. ////SendCommdForLadleWeight();
  3512. }
  3513. ////private void SendCommdForLadleWeight()
  3514. ////{
  3515. //// string strDevNo = CCMN0.Substring(0, 1);
  3516. //// string strPosition = "";
  3517. //// if (Convert.ToString(this.txtCutHeatN.Tag) == "") return;
  3518. //// strPosition = string.Format("CCM0{0}_DEVICE", strDevNo);
  3519. //// this._commClass.setHeatID(Convert.ToString(this.txtCutHeatN.Tag));
  3520. //// this._commClass.setProcValueCommand(strPosition, "JOB_CCM_OPTINFO", "PFBALEWGT", "FLTTYPE", this.txtOfficeWeight.Text);
  3521. //// this._commClass.setProcValueCommand(strPosition, "JOB_CCM_OPTINFO", "MOULDBALEWGT", "FLTTYPE", this.txtDBWeight.Text);
  3522. //// SendCommResetBilletNum();
  3523. ////}
  3524. ////public void SendCommResetBilletNum()
  3525. ////{
  3526. //// string strHeatNo = "";
  3527. //// float fltFirstWeight = 0;
  3528. //// float fltMouldWeight = 0;
  3529. //// strHeatNo = Convert.ToString(this.textBox16.Tag);
  3530. //// fltFirstWeight = Convert.ToSingle(this.textBox17.Text);
  3531. //// fltMouldWeight = Convert.ToSingle(this.textBox18.Text);
  3532. //// //hengxing
  3533. //// //CallingMessage par = new CallingMessage();
  3534. //// //par.ServerName = "lgJobMgt";
  3535. //// //par.AssemblyName = "Core.LgMes.Server.lgJobMgt";
  3536. //// //par.ClassName = "Core.LgMes.Server.lgJobMgt.classCutJob";
  3537. //// //par.MethodName = "ResetBilletNum";
  3538. //// //par.args = new object[] { strHeatNo, fltFirstWeight, fltMouldWeight };
  3539. //// string strOut = "";
  3540. //// object obj = null;// ClientCommon._RemotingHelp.ExecuteMethod(par, out strOut);
  3541. //// if (strOut != "")
  3542. //// {
  3543. //// MessageBox.Show("数据更新失败! " + strOut);
  3544. //// }
  3545. ////}
  3546. }
  3547. }