FrmMilGetBatchAndSample.cs 155 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using CoreFS.CA06;
  10. using Core.Mes.Client.Comm.Tool;
  11. using Core.Mes.Client.Comm.Control;
  12. using System.Collections;
  13. using Core.Mes.Client.Comm.Server;
  14. using Infragistics.Win.UltraWinGrid;
  15. using Infragistics.Win;
  16. using Infragistics.Win.UltraWinEditors;
  17. namespace Core.StlMes.Client.Lims.Port
  18. {
  19. public partial class FrmMilGetBatchAndSample : FrmBase
  20. {
  21. private string PlineCode = "";//产线
  22. //private DataTable m_dtSampleReqDetail;//存放检验项目明细
  23. //private DataTable m_dtSampleReqDetail_Chem;//存放检验项目明细
  24. //private DataTable m_dtSelectPhyMax;//已选择的大项
  25. //public DataTable DtSelectPhyMax
  26. //{
  27. // get { return m_dtSelectPhyMax; }
  28. // set { m_dtSelectPhyMax = value; }
  29. //}
  30. //
  31. private DataTable m_dtSelectPhySampleCode;//选择的取样码
  32. private DataTable m_dtSelectChem;//成分
  33. public DataTable DtSelectPhySampleCode
  34. {
  35. get { return m_dtSelectPhySampleCode; }
  36. set { m_dtSelectPhySampleCode = value; }
  37. }
  38. private DataTable m_dtSelectPhyMin;//已选择的小项
  39. public DataTable DtSelectPhyMin
  40. {
  41. get { return m_dtSelectPhyMin; }
  42. set { m_dtSelectPhyMin = value; }
  43. }
  44. private DataTable m_dtSelectPhyR;//已选择的方向温度尺寸
  45. public DataTable DtSelectPhyR
  46. {
  47. get { return m_dtSelectPhyR; }
  48. set { m_dtSelectPhyR = value; }
  49. }
  50. private DataTable m_dtSelectSampleKey;//选择的试样组+方向温度尺寸
  51. public DataTable DtSelectSampleKey
  52. {
  53. get { return m_dtSelectSampleKey; }
  54. set { m_dtSelectSampleKey = value; }
  55. }
  56. public FrmMilGetBatchAndSample()
  57. {
  58. InitializeComponent();
  59. }
  60. protected override void OnLoad(EventArgs e)
  61. {
  62. base.OnLoad(e);
  63. ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框
  64. //ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  65. ultraGrid2.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;//不显示行头
  66. ultraGrid3.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  67. ultraGrid4.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  68. ultraGrid5.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  69. ultraGrid6.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  70. ultraGrid7.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  71. ultraGrid7.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;//不显示行头
  72. ultraGrid8.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  73. ultraGrid9.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  74. ultraGrid10.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  75. ultraGrid11.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  76. ultraGrid12.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  77. ultraGrid13.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  78. ultraGrid14.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  79. ultraGrid15.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  80. ultraGrid16.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  81. ultraGrid17.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
  82. }
  83. private void FrmMilGetBatchAndSample_Complex_Load(object sender, EventArgs e)
  84. {
  85. portQueryBase1.UpdateControl("开始时间");
  86. PlineCode = PublicPort.GetPCode(this.ValidDataPurviewIds, ob);//获取 用户 对应的产线
  87. BindProcessDesc();
  88. InitColumnsDataTable();
  89. ColumnsNotSort();
  90. }
  91. private void InitColumnsDataTable()
  92. {
  93. portMilShowBase1.TxtBATCH_MAX.TextChanged += TxtBATCH_MAX_TextChanged;
  94. //生产批号、炉号队列
  95. string[] arrColumnsLot = new string[] { "ID", "SEQ", "LOT_NO", "STOVE_NO", "JUDGE_STOVE_NO", "JUDGE_STOVE_NO_DESC", "FEED_HEAT_NO", "PLINE_CODE", "VARIETIES", "IMP_PROCESS", "CRAFT_PATH", "ROLL_STANDRAD", "PRODUCE_STANDRAD", "CONTRACT_NO", "STEELNAME", "GRADENAME", "PIPE_SIZE", "BUCKLE_TYPE", "PROCESS_STATUS", "TARGET_LENGTH", "LENGTH_RANGE", "SIMPLE_PROCESS", "BATCH_MAX", "SAW_NUM", "SPLINE_DESC", "BATCH_INTERVAL", "CHECK_NO", "ORD_LN_DLY_PK","PRO_PLAN_ID","GX_PLAN_NO" };
  96. string[] arrCaptionLot = new string[] { "ID", "SEQ", "生产批号", "熔炼炉号", "炉号", "炉号", "上料炉号", "产线", "品名", "工艺文件号", "工艺文件路径", "轧管标准", "成品判定标准", "工序合同", "钢级", "钢号", "规格", "扣型", "工艺状态", "目标长度", "长度范围", "取样工序点", "分批上限", "分切数", "编号首字母", "批号区间", "检验编号", "交货行PK","轧管排产单号","排产序号" };
  97. PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable1, ultraGrid1, new string[] { "LOT_NO", "JUDGE_STOVE_NO_DESC" }, true, null);
  98. PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable6, ultraGrid6, new string[] { "LOT_NO", "JUDGE_STOVE_NO_DESC" }, true, null);
  99. PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable11, ultraGrid11, new string[] { "LOT_NO", "JUDGE_STOVE_NO_DESC" }, true, null);
  100. PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable16, ultraGrid16, new string[] { "LOT_NO", "JUDGE_STOVE_NO_DESC", "CHECK_NO" }, true, null);
  101. //管号队列
  102. string[] arrColumnsPipe = new string[] { "CHK", "SEQ", "PIPE_NO", "SAMPLE_PIPE_LEN", "BATCH_NO", "ISVALID", "ORDER_LENGTH", "ACT_THEORY_WEIGHT" };
  103. string[] arrCaptionPipe = new string[] { "选择", "序号", "材料号", "长度(mm)", "批号", "有效", "定尺长度", "理论重量" };//{ "选择", "管号序号", "材料号", "取样长度(mm)", "性能批号", "是否有效", "定尺长度", "理论重量" };
  104. PublicPort.InitColumns(arrColumnsPipe, arrCaptionPipe, dataTable2, ultraGrid2, new string[] { "ORDER_LENGTH", "ACT_THEORY_WEIGHT" }, false, new string[] { "CHK", "SAMPLE_PIPE_LEN" });//"PIPE_NO",
  105. PublicPort.InitColumns(arrColumnsPipe, arrCaptionPipe, dataTable7, ultraGrid7, new string[] { "ORDER_LENGTH", "ACT_THEORY_WEIGHT" }, false, null);
  106. //性能批号队列
  107. string[] arrColumnsBatch = new string[] { "BATCH_NO", "START_PIPE_NO", "START_SEQ", "END_PIPE_NO", "END_SEQ", "PIPE_NUM", "SAMPLE_NUM" };
  108. string[] arrCaptionBatch = new string[] { "性能批号", "起始管号", "起始序号", "结束管号", "结束序号", "管数", "取样数" };//有效管数
  109. PublicPort.InitColumns(arrColumnsBatch, arrCaptionBatch, dataTable3, ultraGrid3, new string[] { "START_PIPE_NO", "END_PIPE_NO" }, false, new string[] { "BATCH_NO" });//null
  110. PublicPort.InitColumns(arrColumnsBatch, arrCaptionBatch, dataTable8, ultraGrid8, new string[] { "START_PIPE_NO", "END_PIPE_NO" }, false, null);
  111. //取样要求队列
  112. string[] arrColumnsSampleReq = new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "DEPT_ID", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "SAMPLE_STYLE", "DESC_SAMPLE_STYLE", "STD_CODE", "STD_NAME", "LENGTH", "WIDTH", "RATE", "DESC_RATE", "BATCH_UNIT", "BATCH_CNT", "POSITION", "DESC_POSITION", "DESC_COUNT", "SAMPLE_COUNT", "ADD_TYPE", "ADD_TYPE_DESC", "DATA_TYPE", "DATA_TYPE_DESC", "STD_NAME_TEST", "EIC", "SPLINE_NO", "PHY_DIR", "SIZE_DESC" };//CHECK_STD
  113. string[] arrCaptionSampleReq = new string[] { "试样组代码", "试样组", "部门ID", "检验大项代码", "检验大项", "试样组描述代码", "试样组描述", "样片类型", "样片类型", "标准代码", "标准名称", "取样长度", "取样宽度", "取样频率代码", "取样频率", "分批单位", "分批数量", "取样位置代码", "取样位置", "取样数量", "样条数", "数据类型", "数据类型", "样品类型", "样品类型", "试验标准", "试样索引号", "试样编码", "试验方向", "名义规格" };
  114. PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable4);
  115. PublicPort.setColumnShowOrHidden(ultraGrid4, new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "DEPT_ID", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "RATE", "POSITION", "ADD_TYPE", "ADD_TYPE_DESC", "DATA_TYPE", "DATA_TYPE_DESC", "CHECK_STD", "EIC", "SPLINE_NO", "PHY_DIR", "SIZE_DESC" }, false);//不需要显示的行
  116. PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable9);
  117. PublicPort.setColumnShowOrHidden(ultraGrid9, new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "DEPT_ID", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "RATE", "POSITION", "ADD_TYPE", "ADD_TYPE_DESC", "DATA_TYPE", "DATA_TYPE_DESC", "CHECK_STD", "EIC", "SPLINE_NO", "PHY_DIR", "SIZE_DESC" }, false);//不需要显示的行
  118. PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable14);
  119. PublicPort.setColumnShowOrHidden(ultraGrid14, new string[] { "PHY_CODE_MAX", "SAMPLE_KEY_DESC", "DEPT_ID", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "RATE", "POSITION", "ADD_TYPE", "ADD_TYPE_DESC", "DATA_TYPE", "DATA_TYPE_DESC", "CHECK_STD", "EIC", "SPLINE_NO", "PHY_DIR", "SIZE_DESC" }, false);//不需要显示的行
  120. //委托字段
  121. string[] arrColumnsConsign = new string[] { "BATCH_NO", "PIPE_NO", "SAMPLE_PIPE_LEN","HX" };
  122. string[] arrCaptionConsign = new string[] { "批号", "材料号", "长度(mm)","化学" };
  123. PublicPort.InitColumns(arrColumnsConsign, arrCaptionConsign, dataTable12);
  124. //PublicPort.InitColumns(arrColumnsConsign, arrCaptionConsign, dataTable17);
  125. //化学检验元素明细
  126. string[] arrColumnsChem = new string[] { "CHEM_CODE", "CHEM_NAME", "ISCHECK", "ISJUDGE", "ISQUOTE", "STDMIN_SIGN", "STDMIN", "STDMAX_SIGN", "STDMAX", "STDTARGET" };
  127. string[] arrCaptionChem = new string[] { "元素", "元素", "是否检验", "是否判定", "是否报出", "下限符号", "下限", "上限符号", "上限", "目标值" };
  128. PublicPort.InitColumns(arrColumnsChem, arrCaptionChem, dataTable13, ultraGrid13, new string[] { "CHEM_CODE", "ISCHECK", "ISJUDGE", "ISQUOTE" }, false, null);
  129. //理化检验元素
  130. string[] arrColumnsDetail = new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "PHY_CODE", "PHY_NAME", "ITEM_CODE_F", "ITEM_NAME_F", "ITEM_CODE_W", "ITEM_NAME_W", "ITEM_CODE_C", "ITEM_NAME_C" };
  131. string[] arrCaptionDetail = new string[] { "试样组代码", "试样组", "检验大项代码", "检验大项", "试样组描述代码", "试样组描述", "检验基础项代码", "检验基础项", "试验方向代码", "试验方向", "试验温度代码", "试验温度", "试样尺寸代码", "试样尺寸" };
  132. PublicPort.InitColumns(arrColumnsDetail, arrCaptionDetail, dataTable15, ultraGrid15, new string[] { "PHY_CODE_MAX", "PHY_NAME_MIN", "PHY_CODE_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "PHY_CODE", "ITEM_CODE_F", "ITEM_CODE_W", "ITEM_CODE_C" }, false, null);
  133. //委托字段
  134. string[] arrColumnsConsignDetail = new string[] { "BATCH_NO", "SAMPLE_PIPE_LEN", "SAMPLE_NO", "HX", "ONH" };
  135. string[] arrCaptionConsignDetail = new string[] { "批号", "长度(mm)", "样管号", "化学", "ONH" };
  136. PublicPort.InitColumns(arrColumnsConsignDetail, arrCaptionConsignDetail, dataTable17);
  137. }
  138. //列不允许排序
  139. private void ColumnsNotSort()
  140. {
  141. foreach (DataColumn dc in dataTable2.Columns)
  142. {
  143. if (ultraGrid2.DisplayLayout.Bands[0].Columns.Exists(dc.ColumnName))
  144. {
  145. ultraGrid2.DisplayLayout.Bands[0].Columns[dc.ColumnName].SortIndicator = Infragistics.Win.UltraWinGrid.SortIndicator.Disabled;
  146. }
  147. }
  148. }
  149. /// <summary>
  150. /// 重写基类方法
  151. /// </summary>
  152. /// <param name="sender"></param>
  153. /// <param name="ToolbarKey"></param>
  154. public override void ToolBar_Click(object sender, string ToolbarKey)
  155. {
  156. switch (ToolbarKey)
  157. {
  158. case "Query":
  159. if (ultraTabControl1.SelectedTab.Index == 0)
  160. {
  161. QueryLotNoAndStoveNo(dataTable1, ultraGrid1, "0");//未分批
  162. }
  163. else if (ultraTabControl1.SelectedTab.Index == 1)
  164. {
  165. QueryLotNoAndStoveNo(dataTable6, ultraGrid6, "123");//已分批
  166. }
  167. else if (ultraTabControl1.SelectedTab.Index == 2)
  168. {
  169. QueryLotNoAndStoveNo(dataTable11, ultraGrid11, "2");//已委托
  170. }
  171. else if (ultraTabControl1.SelectedTab.Index == 3)
  172. {
  173. QueryLotNoAndStoveNo(dataTable16, ultraGrid16, "3");//已委托
  174. }
  175. break;
  176. case "AddBatch":
  177. AddBatchSampleInfo();
  178. break;
  179. case "AddSample":
  180. //AddSampleInfo();
  181. break;
  182. case "Delete":
  183. //if (ultraTabControl1.SelectedTab.Index == 0)
  184. //{
  185. // DeleteBatchInfo();
  186. //}
  187. //else
  188. if (ultraTabControl1.SelectedTab.Index == 1)
  189. {
  190. DeleteBatchInfo();
  191. }
  192. break;
  193. case "Confirm":
  194. AddCheckConsign();
  195. break;
  196. case "Cancel":
  197. DeleteCheckConsign();
  198. break;
  199. case "PrintSample":
  200. if (ultraTabControl1.SelectedTab.Index == 1)
  201. {
  202. RepLimsPortGetSample(ultraGrid6);
  203. }
  204. break;
  205. case "PrintConsign":
  206. if (ultraTabControl1.SelectedTab.Index == 3)
  207. {
  208. RepLimsPortCheckConsignOrder(ultraGrid16);
  209. }
  210. break;
  211. case "Close":
  212. this.Close();
  213. break;
  214. }
  215. }
  216. private void FrmMilGetBatchAndSample_Complex_Shown(object sender, EventArgs e)
  217. {
  218. if (toolMenu == null) return;
  219. if (toolMenu.Toolbars[0].Tools.Exists("AddBatch"))
  220. {
  221. toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.True;
  222. }
  223. if (toolMenu.Toolbars[0].Tools.Exists("AddSample"))
  224. {
  225. this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False;
  226. }
  227. if (toolMenu.Toolbars[0].Tools.Exists("Delete"))
  228. {
  229. toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False;
  230. }
  231. if (toolMenu.Toolbars[0].Tools.Exists("Confirm"))
  232. {
  233. toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False;
  234. }
  235. if (toolMenu.Toolbars[0].Tools.Exists("Cancel"))
  236. {
  237. toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.False;
  238. }
  239. if (toolMenu.Toolbars[0].Tools.Exists("PrintSample"))
  240. {
  241. toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.False;
  242. }
  243. if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign"))
  244. {
  245. toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.False;
  246. }
  247. }
  248. private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e)
  249. {
  250. if (toolMenu == null) return;
  251. if (ultraTabControl1.SelectedTab.Index == 0)//委托
  252. {
  253. if (toolMenu.Toolbars[0].Tools.Exists("AddBatch"))
  254. {
  255. toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.True;
  256. }
  257. if (toolMenu.Toolbars[0].Tools.Exists("AddSample"))
  258. {
  259. this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False;
  260. }
  261. if (toolMenu.Toolbars[0].Tools.Exists("Delete"))
  262. {
  263. toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False;
  264. }
  265. if (toolMenu.Toolbars[0].Tools.Exists("Confirm"))
  266. {
  267. //委托确认放在第三个Tab页
  268. toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False;
  269. }
  270. if (toolMenu.Toolbars[0].Tools.Exists("Cancel"))
  271. {
  272. toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.False;
  273. }
  274. if (toolMenu.Toolbars[0].Tools.Exists("PrintSample"))
  275. {
  276. toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.False;
  277. }
  278. if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign"))
  279. {
  280. toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.False;
  281. }
  282. }
  283. else if (ultraTabControl1.SelectedTab.Index == 1)
  284. {
  285. if (toolMenu.Toolbars[0].Tools.Exists("AddBatch"))
  286. {
  287. toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.False;
  288. }
  289. if (toolMenu.Toolbars[0].Tools.Exists("AddSample"))
  290. {
  291. this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False;
  292. }
  293. if (toolMenu.Toolbars[0].Tools.Exists("Delete"))
  294. {
  295. toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.True;
  296. }
  297. if (toolMenu.Toolbars[0].Tools.Exists("Confirm"))
  298. {
  299. toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False;
  300. }
  301. if (toolMenu.Toolbars[0].Tools.Exists("Cancel"))
  302. {
  303. toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.False;
  304. }
  305. if (toolMenu.Toolbars[0].Tools.Exists("PrintSample"))
  306. {
  307. toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.True;
  308. }
  309. if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign"))
  310. {
  311. toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.False;
  312. }
  313. }
  314. else if (ultraTabControl1.SelectedTab.Index == 2)
  315. {
  316. if (toolMenu.Toolbars[0].Tools.Exists("AddBatch"))
  317. {
  318. toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.False;
  319. }
  320. if (toolMenu.Toolbars[0].Tools.Exists("AddSample"))
  321. {
  322. this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False;
  323. }
  324. if (toolMenu.Toolbars[0].Tools.Exists("Delete"))
  325. {
  326. toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False;
  327. }
  328. if (toolMenu.Toolbars[0].Tools.Exists("Confirm"))
  329. {
  330. toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.True;
  331. }
  332. if (toolMenu.Toolbars[0].Tools.Exists("Cancel"))
  333. {
  334. toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.False;
  335. }
  336. if (toolMenu.Toolbars[0].Tools.Exists("PrintSample"))
  337. {
  338. toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.False;
  339. }
  340. if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign"))
  341. {
  342. toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.False;
  343. }
  344. }
  345. else if (ultraTabControl1.SelectedTab.Index == 3)
  346. {
  347. if (toolMenu.Toolbars[0].Tools.Exists("AddBatch"))
  348. {
  349. toolMenu.Toolbars[0].Tools["AddBatch"].InstanceProps.Visible = DefaultableBoolean.False;
  350. }
  351. if (toolMenu.Toolbars[0].Tools.Exists("AddSample"))
  352. {
  353. this.toolMenu.Toolbars[0].Tools["AddSample"].InstanceProps.Visible = DefaultableBoolean.False;
  354. }
  355. if (toolMenu.Toolbars[0].Tools.Exists("Delete"))
  356. {
  357. toolMenu.Toolbars[0].Tools["Delete"].InstanceProps.Visible = DefaultableBoolean.False;
  358. }
  359. if (toolMenu.Toolbars[0].Tools.Exists("Confirm"))
  360. {
  361. toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False;
  362. }
  363. if (toolMenu.Toolbars[0].Tools.Exists("Cancel"))
  364. {
  365. toolMenu.Toolbars[0].Tools["Cancel"].InstanceProps.Visible = DefaultableBoolean.True;
  366. }
  367. if (toolMenu.Toolbars[0].Tools.Exists("PrintSample"))
  368. {
  369. toolMenu.Toolbars[0].Tools["PrintSample"].InstanceProps.Visible = DefaultableBoolean.False;
  370. }
  371. if (toolMenu.Toolbars[0].Tools.Exists("PrintConsign"))
  372. {
  373. toolMenu.Toolbars[0].Tools["PrintConsign"].InstanceProps.Visible = DefaultableBoolean.True;
  374. }
  375. }
  376. }
  377. //绑定工序下拉框、选择不同的工序显示不同的管号队列
  378. private void BindProcessDesc()
  379. {
  380. Infragistics.Win.ValueList valueList = new Infragistics.Win.ValueList();
  381. //valueList.ValueListItems.Add("0", "锯切前");//锯切完成 1
  382. //valueList.ValueListItems.Add("1", "锯切后");
  383. //valueList.ValueListItems.Add("2", "加热炉");
  384. //valueList.ValueListItems.Add("3", "穿孔");
  385. //valueList.ValueListItems.Add("4", "连轧");
  386. //valueList.ValueListItems.Add("5", "再加热炉");
  387. //valueList.ValueListItems.Add("6", "定径");
  388. valueList.ValueListItems.Add("7", "分切前");//在此工序分批 分切表
  389. valueList.ValueListItems.Add("8", "分切后");//在此工序分批 矫直
  390. valueList.ValueListItems.Add("9", "矫直");
  391. valueList.ValueListItems.Add("10", "探伤");
  392. valueList.ValueListItems.Add("-10", "精整区域");
  393. valueList.ValueListItems.Add("11", "人工质检");
  394. ultraSIMPLE_PROCESS.ValueList = valueList;
  395. ultraSIMPLE_PROCESS.Text = valueList.ValueListItems.GetItem(4).ToString();
  396. }
  397. //获取计划基本信息
  398. private void QueryLotNoAndStoveNo(DataTable dataTable, UltraGrid ultraGrid, string param)
  399. {
  400. try
  401. {
  402. dataTable.Rows.Clear();
  403. ArrayList al = portQueryBase1.GetQueryInfo(param);
  404. //产线、批次号、炉号
  405. DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryLotNoAndStoveNo",
  406. new Object[] { al, PlineCode }, ob);
  407. if (dt == null || dt.Rows.Count == 0)
  408. {
  409. if (dataTable == dataTable1)
  410. {
  411. dataTable2.Rows.Clear();
  412. dataTable3.Rows.Clear();
  413. dataTable4.Rows.Clear();
  414. dataTable5.Rows.Clear();
  415. }
  416. else if (dataTable == dataTable6)
  417. {
  418. dataTable7.Rows.Clear();
  419. dataTable8.Rows.Clear();
  420. dataTable9.Rows.Clear();
  421. dataTable10.Rows.Clear();
  422. dataTable10.Columns.Clear();
  423. }
  424. else if (dataTable == dataTable11)
  425. {
  426. dataTable12.Rows.Clear();//从第四列开始清除
  427. for (int i = 3; i < dataTable12.Columns.Count; i++)
  428. {
  429. dataTable12.Columns.RemoveAt(i);
  430. }
  431. dataTable13.Rows.Clear();
  432. dataTable14.Rows.Clear();
  433. dataTable15.Rows.Clear();
  434. }
  435. else
  436. {
  437. dataTable17.Rows.Clear();
  438. }
  439. return;
  440. }
  441. GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1
  442. GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid
  443. }
  444. catch (Exception e)
  445. {
  446. MessageUtil.ShowWarning(e.Message);
  447. }
  448. }
  449. #region 未分批
  450. private void ultraGrid1_AfterRowActivate(object sender, EventArgs e)
  451. {
  452. try
  453. {
  454. dataTable3.Rows.Clear();
  455. portMilShowBase1.ShowBaseInfo(ultraGrid1.ActiveRow);
  456. ArrayList aryList = new ArrayList();
  457. string strORD_LN_DLY_PK = this.ultraGrid1.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim();
  458. aryList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-')-3));
  459. DataTable ds = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReq_DesginMaxBathNum", new object[] { aryList }, ob);
  460. if (ds.Rows.Count > 0)
  461. {
  462. portMilShowBase1.StrBATCH_MAX = GetMaxBatchNum(ds).ToString();
  463. }
  464. else
  465. {
  466. portMilShowBase1.StrBATCH_MAX = "1000";
  467. }
  468. QueryGetSampleReq_Desgin_Process(portMilShowBase1, ultraGrid1);
  469. QueryGetSampleReq(portMilShowBase1, ultraGrid1, dataTable4, ultraGrid4);
  470. QueryPipeNoRack();//获取管号队列
  471. textChanged();
  472. GetStartBatch();//获取起始批次号
  473. InitColumnsSampleReq();//赋值
  474. }
  475. catch (Exception ex)
  476. {
  477. MessageUtil.ShowWarning(ex.Message);
  478. }
  479. }
  480. private int GetMaxBatchNum(DataTable ds)
  481. {
  482. int maxBacthNum = ds.Rows.Cast<DataRow>().Min(a => int.Parse(a["BATCH_CNT"].ToString()));
  483. return maxBacthNum;
  484. }
  485. void TxtBATCH_MAX_TextChanged(object sender, EventArgs e)
  486. {
  487. dataTable3.Rows.Clear();
  488. textChanged();
  489. }
  490. private void textChanged()
  491. {
  492. if (dataTable2 != null && dataTable2.Rows.Count > 0)
  493. {
  494. ultraSTART_PIPE_NO.Text = "";
  495. if (portMilShowBase1.StrBATCH_MAX == "")
  496. {
  497. txtBATCH_MIN.Text = "1";
  498. }
  499. else if (portMilShowBase1.StrBATCH_MAX.TryParseInt())
  500. {
  501. int maxNum = Convert.ToInt16(portMilShowBase1.StrBATCH_MAX);//分批上限
  502. if (maxNum <= 0)
  503. {
  504. return;
  505. }
  506. int resNum = dataTable2.Rows.Count % maxNum;//余数
  507. int batch = dataTable2.Rows.Count / maxNum;//批数
  508. txtBATCH_MIN.Text = (resNum == 0 ? batch : batch + 1).ToString();//批数参考
  509. }
  510. ultraSTART_PIPE_NO.Text = dataTable2.Rows[0]["SEQ"].ToString().Trim();
  511. }
  512. }
  513. //起始管号变化事件
  514. private void ultraSTART_PIPE_NO_TextChanged(object sender, EventArgs e)
  515. {
  516. ultraEND_PIPE_NO.Text = "";
  517. if (dataTable2 != null && dataTable2.Rows.Count > 0 && ultraSTART_PIPE_NO.Text.Trim() != "")
  518. {
  519. if (portMilShowBase1.StrBATCH_MAX == "")
  520. {
  521. ultraEND_PIPE_NO.Text = dataTable2.Rows[dataTable2.Rows.Count - 1]["SEQ"].ToString().Trim();
  522. }
  523. else if (portMilShowBase1.StrBATCH_MAX.TryParseInt() == true)
  524. {
  525. //结束管号自动变为起始管号+分批上限区间
  526. DataRow[] start = dataTable2.Select("SEQ = '" + ultraSTART_PIPE_NO.Text.Trim() + "'");//起始管号位置
  527. if (start == null || start.Length == 0)
  528. {
  529. return;
  530. }
  531. int startNum = dataTable2.Rows.IndexOf(start[0]);//起始管号位置
  532. DataTable dt = dataTable2.Clone();
  533. for (int i = startNum; i < startNum + Convert.ToInt16(portMilShowBase1.StrBATCH_MAX) && i < dataTable2.Rows.Count; i++)
  534. {
  535. dt.ImportRow(dataTable2.Rows[i]);
  536. }
  537. ultraEND_PIPE_NO.DataSource = dt;
  538. ultraEND_PIPE_NO.DisplayMember = "SEQ";
  539. ultraEND_PIPE_NO.ValueMember = "SEQ";
  540. ultraEND_PIPE_NO.Text = dt.Rows[dt.Rows.Count - 1]["SEQ"].ToString().Trim();
  541. }
  542. }
  543. }
  544. //取样点变化事件
  545. private void ultraSIMPLE_PROCESS_TextChanged(object sender, EventArgs e)
  546. {
  547. QueryPipeNoRack();
  548. }
  549. //人工分批
  550. private void btnConfirm_Click(object sender, EventArgs e)
  551. {
  552. if (txtStartBatch.Text.Trim() == "")
  553. {
  554. MessageUtil.ShowWarning("起始批号不能为空!");
  555. return;
  556. }
  557. if (dataTable2 == null || dataTable2.Rows.Count == 0)
  558. {
  559. MessageUtil.ShowWarning("没有有效的管号队列不能分批!");
  560. return;
  561. }
  562. if (portMilShowBase1.StrBATCH_MAX != "" && portMilShowBase1.StrBATCH_MAX.TryParseInt() == false)
  563. {
  564. MessageUtil.ShowWarning("分批上限不为整数不能人工分批!");
  565. return;
  566. }
  567. if (ultraSTART_PIPE_NO.Text.Trim() == "")
  568. {
  569. MessageUtil.ShowWarning("起始管号不能为空!");
  570. return;
  571. }
  572. if (ultraEND_PIPE_NO.Text.Trim() == "")
  573. {
  574. MessageUtil.ShowWarning("结束管号不能为空!");
  575. return;
  576. }
  577. if (dataTable3.Rows.Count > 0 && dataTable2.Rows[dataTable2.Rows.Count - 1]["SEQ"].ToString().Trim() == dataTable3.Rows[dataTable3.Rows.Count - 1]["END_SEQ"].ToString().Trim())
  578. {
  579. MessageUtil.ShowWarning("分批已经完成不能再分批!");
  580. return;
  581. }
  582. //判断起始和结束管号在不在有效管号区间内
  583. DataRow[] start = dataTable2.Select("SEQ = '" + ultraSTART_PIPE_NO.Text.Trim() + "'");//起始管号位置
  584. if (start == null || start.Length == 0)
  585. {
  586. MessageUtil.ShowWarning("请选择有效的起始管号!");
  587. return;
  588. }
  589. DataRow[] end = dataTable2.Select("SEQ = '" + ultraEND_PIPE_NO.Text.Trim() + "'");//结束管号位置
  590. if (end == null || end.Length == 0)
  591. {
  592. MessageUtil.ShowWarning("请选择有效的结束管号!");
  593. return;
  594. }
  595. int startNum = dataTable2.Rows.IndexOf(start[0]);//起始管号位置
  596. int endNum = dataTable2.Rows.IndexOf(end[0]);//结束管号位置
  597. if (endNum < startNum)
  598. {
  599. MessageUtil.ShowWarning("结束管号不能小于起始管号!");
  600. return;
  601. }
  602. if (portMilShowBase1.StrBATCH_MAX != "")
  603. {
  604. if (endNum - startNum >= Convert.ToInt16(portMilShowBase1.StrBATCH_MAX))
  605. {
  606. MessageUtil.ShowWarning("此批管号数已大于分批上限分批失败!");
  607. return;
  608. }
  609. }
  610. //判断起始管号有木有等于上一批次的结束管号+1 Convert.ToInt16(txtStartBatch.Text.Trim())
  611. string strBATCH_NO = (Convert.ToInt16(txtStartBatch.Text.Trim()) + dataTable3.Rows.Count).ToString();//(dataTable3.Rows.Count + 1).ToString().PadLeft(3, '0');
  612. DataRow dr = dataTable3.NewRow();
  613. dr["BATCH_NO"] = strBATCH_NO;//规则加批次为批号
  614. dr["START_PIPE_NO"] = ultraSTART_PIPE_NO.Value.ToString();//开始管号
  615. dr["START_SEQ"] = ultraSTART_PIPE_NO.Text.Trim();//开始序号 20151030
  616. dr["END_PIPE_NO"] = ultraEND_PIPE_NO.Value.ToString();//结束管号
  617. dr["END_SEQ"] = ultraEND_PIPE_NO.Text.Trim();//结束序号
  618. dr["PIPE_NUM"] = (endNum - startNum + 1).ToString();//有效管数
  619. dataTable3.Rows.Add(dr);
  620. GridHelper.RefreshAndAutoSize(ultraGrid3);
  621. //为批号赋值
  622. int count = Convert.ToInt32(txtPIPE_SIZE.Text.Trim() == "" ? "0" : txtPIPE_SIZE.Text.Trim());
  623. for (int i = Convert.ToInt16(ultraSTART_PIPE_NO.Text.Trim()) - 1; i < Convert.ToInt16(ultraEND_PIPE_NO.Text.Trim()); i++)
  624. {
  625. ultraGrid2.Rows[i].Cells["BATCH_NO"].Value = strBATCH_NO;
  626. ultraGrid2.Rows[i].Cells["CHK"].Value = "False";
  627. ultraGrid2.Rows[i].Cells["SAMPLE_PIPE_LEN"].Value = "";
  628. if (count > 0)
  629. {
  630. ultraGrid2.Rows[i].Cells["CHK"].Value = "True";
  631. count--;
  632. }
  633. }
  634. //分批完成后起始管号自动等于上一批次结束管号+1
  635. if (endNum < dataTable2.Rows.Count - 1)
  636. {
  637. ultraSTART_PIPE_NO.Text = dataTable2.Rows[endNum + 1]["SEQ"].ToString();//序号 20151030
  638. }
  639. ultraGrid2.UpdateData();
  640. foreach (DataRow dataRow in dataTable3.Rows)
  641. {
  642. dataRow["SAMPLE_NUM"] = dataTable2.Select("CHK = 'True' AND BATCH_NO = '" + dataRow["BATCH_NO"].ToString() + "'").Length;
  643. }
  644. }
  645. private void btnAuto_Click(object sender, EventArgs e)
  646. {
  647. if (ultraGrid1.ActiveRow == null)
  648. {
  649. return;
  650. }
  651. if (txtStartBatch.Text.Trim() == "")
  652. {
  653. MessageUtil.ShowWarning("起始批号不能为空!");
  654. return;
  655. }
  656. if (dataTable2 == null || dataTable2.Rows.Count == 0)
  657. {
  658. MessageUtil.ShowWarning("不存在有效的管号队列不能分批!");
  659. return;
  660. }
  661. dataTable3.Rows.Clear();
  662. int maxNum = portMilShowBase1.StrBATCH_MAX == "" ? dataTable2.Rows.Count : Convert.ToInt16(portMilShowBase1.StrBATCH_MAX);//分批上限
  663. int resNum = dataTable2.Rows.Count % maxNum;//余数
  664. int batch = dataTable2.Rows.Count / maxNum;//批数
  665. int minBatchNo = resNum == 0 ? batch : batch + 1;//最小批数
  666. int start = Convert.ToInt16(txtStartBatch.Text.Trim());
  667. int startNum = 1;
  668. //为批号赋值
  669. int count = 0, sum = Convert.ToInt32(txtPIPE_SIZE.Text.Trim() == "" ? "0" : txtPIPE_SIZE.Text.Trim());
  670. for (int i = 0; i < dataTable2.Rows.Count; i += maxNum)
  671. {
  672. if (startNum <= minBatchNo)
  673. {
  674. //批次号生成规则(start + startNum - 1).ToString().PadLeft(3, '0'),startNum.ToString().PadLeft(3, '0')
  675. count = sum;
  676. DataRow dr = dataTable3.NewRow();
  677. dr["BATCH_NO"] = (start + startNum - 1).ToString();//规则加批次为批号 .PadLeft(3, '0')
  678. dr["START_PIPE_NO"] = dataTable2.Rows[i]["PIPE_NO"].ToString();//开始管号
  679. dr["START_SEQ"] = dataTable2.Rows[i]["SEQ"].ToString();
  680. if (maxNum * startNum > dataTable2.Rows.Count)
  681. {
  682. dr["END_PIPE_NO"] = dataTable2.Rows[dataTable2.Rows.Count - 1]["PIPE_NO"].ToString();//结束管号
  683. dr["END_SEQ"] = dataTable2.Rows[dataTable2.Rows.Count - 1]["SEQ"].ToString();//结束序号
  684. dr["PIPE_NUM"] = (dataTable2.Rows.Count - i).ToString();//有效管数
  685. //为批号赋值
  686. for (int j = i; j < dataTable2.Rows.Count; j++)
  687. {
  688. ultraGrid2.Rows[j].Cells["BATCH_NO"].Value = (start + startNum - 1).ToString();//.PadLeft(3, '0')
  689. ultraGrid2.Rows[j].Cells["CHK"].Value = "False";
  690. ultraGrid2.Rows[j].Cells["SAMPLE_PIPE_LEN"].Value = "";
  691. if (count > 0)
  692. {
  693. ultraGrid2.Rows[j].Cells["CHK"].Value = "True";
  694. count--;
  695. }
  696. }
  697. }
  698. else
  699. {
  700. dr["END_PIPE_NO"] = dataTable2.Rows[maxNum * startNum - 1]["PIPE_NO"].ToString();//结束管号
  701. dr["END_SEQ"] = dataTable2.Rows[maxNum * startNum - 1]["SEQ"].ToString();
  702. dr["PIPE_NUM"] = maxNum.ToString();//有效管数
  703. for (int j = i; j < i + maxNum; j++)
  704. {
  705. ultraGrid2.Rows[j].Cells["BATCH_NO"].Value = (start + startNum - 1).ToString();//.PadLeft(3, '0')
  706. ultraGrid2.Rows[j].Cells["CHK"].Value = "False";
  707. ultraGrid2.Rows[j].Cells["SAMPLE_PIPE_LEN"].Value = "";
  708. if (count > 0)
  709. {
  710. ultraGrid2.Rows[j].Cells["CHK"].Value = "True";
  711. count--;
  712. }
  713. }
  714. }
  715. dataTable3.Rows.Add(dr);
  716. startNum++;
  717. }
  718. }
  719. ultraGrid2.UpdateData();
  720. foreach (DataRow dataRow in dataTable3.Rows)
  721. {
  722. dataRow["SAMPLE_NUM"] = dataTable2.Select("CHK = 'True' AND BATCH_NO = '" + dataRow["BATCH_NO"].ToString() + "'").Length;
  723. }
  724. GridHelper.RefreshAndAutoSize(ultraGrid3);
  725. }
  726. private void btnCancel_Click(object sender, EventArgs e)
  727. {
  728. if (dataTable2 == null || dataTable2.Rows.Count == 0)
  729. {
  730. //MessageUtil.ShowWarning("没有有效的管号队列不能分批!");
  731. return;
  732. }
  733. if (dataTable3 == null || dataTable3.Rows.Count == 0 || ultraGrid3.ActiveRow == null || ultraGrid3.ActiveRow.Activated == false)
  734. {
  735. MessageUtil.ShowWarning("请选择一条需要删除的性能批号信息!");
  736. return;
  737. }
  738. if (MessageUtil.ShowYesNoAndQuestion("您确定删除此条性能批号信息吗?") == DialogResult.Yes)
  739. {
  740. //为批号赋值
  741. for (int i = Convert.ToInt16(ultraGrid3.ActiveRow.Cells["START_SEQ"].Text.Trim()) - 1; i < ultraGrid2.Rows.Count; i++)
  742. {
  743. //ultraGrid2.Rows[i].Cells["CHK"].Value = "False";
  744. //ultraGrid2.Rows[i].Cells["BATCH_NO"].Value = "";
  745. dataTable2.Rows[i]["CHK"] = "False";
  746. dataTable2.Rows[i]["BATCH_NO"] = "";
  747. }
  748. int startNum = ultraGrid3.ActiveRow.Index;
  749. int length = dataTable3.Rows.Count;
  750. //dataTable5的相应信息也需要删除
  751. if (startNum == 0)
  752. {
  753. dataTable3.Rows.Clear();
  754. }
  755. else
  756. {
  757. for (int i = startNum; i < length; i++)
  758. {
  759. dataTable3.Rows.RemoveAt(startNum);
  760. }
  761. }
  762. //取消批数起始管号和结束管号重新赋值
  763. if (dataTable3.Rows.Count == 0)
  764. {
  765. ultraSTART_PIPE_NO.Text = dataTable2.Rows[0]["SEQ"].ToString();
  766. }
  767. else
  768. {
  769. DataRow[] end = dataTable2.Select("SEQ = '" + dataTable3.Rows[dataTable3.Rows.Count - 1]["END_SEQ"].ToString() + "'");//结束管号位置
  770. if (end == null || end.Length == 0)
  771. {
  772. return;
  773. }
  774. int endNum = dataTable2.Rows.IndexOf(end[0]);//结束管号位置
  775. ultraSTART_PIPE_NO.Text = dataTable2.Rows[endNum + 1]["SEQ"].ToString();//序号 20151030
  776. }
  777. }
  778. }
  779. //保存分批试样信息
  780. private void AddBatchSampleInfo()
  781. {
  782. try
  783. {
  784. if (ultraTabControl1.SelectedTab.Index != 0)
  785. {
  786. MessageUtil.ShowWarning("只有在未分批页才能进行完成分批操作!");
  787. return;
  788. }
  789. if (ultraGrid1.ActiveRow == null || dataTable1.Rows.Count == 0)
  790. {
  791. MessageUtil.ShowWarning("请选择炉号信息!");
  792. return;
  793. }
  794. if (dataTable3 == null || dataTable3.Rows.Count == 0)
  795. {
  796. MessageUtil.ShowWarning("分批没有完成不能进行此操作!");
  797. return;
  798. }
  799. if (dataTable3.Rows.Count < Convert.ToInt16(txtBATCH_MIN.Text.Trim()))
  800. {
  801. MessageUtil.ShowWarning("批数太少不符合标准要求!");
  802. return;
  803. }
  804. ultraGrid2.UpdateData();
  805. //if (ultraGrid1.ActiveRow.Cells["PLINE_CODE"].Text.Trim() != "C017")//产线为460可以不取样
  806. //{
  807. //}
  808. DataRow[] arrBase = dataTable2.Select("CHK = 'True'");
  809. if (arrBase == null || arrBase.Length == 0)
  810. {
  811. //MessageUtil.ShowTips("请勾选样管!");
  812. if (MessageUtil.ShowYesNoAndQuestion("是否确认完成分批不取样?") == DialogResult.Yes)
  813. {
  814. }
  815. else
  816. {
  817. return;
  818. }
  819. }
  820. else
  821. {
  822. foreach (DataRow dr in arrBase)
  823. {
  824. if (dr["SAMPLE_PIPE_LEN"].ToString() == "")
  825. {
  826. MessageUtil.ShowTips("序号" + dr["SEQ"].ToString() + "样管长度不能为空!");
  827. return;
  828. }
  829. else if (dr["SAMPLE_PIPE_LEN"].ToString() == "0")
  830. {
  831. MessageUtil.ShowTips("序号" + dr["SEQ"].ToString() + "样管长度不能为0,如此炉不取样则不勾选!");
  832. return;
  833. }
  834. else if (dr["BATCH_NO"].ToString() == "")
  835. {
  836. MessageUtil.ShowTips("序号" + dr["SEQ"].ToString() + "批次号不能为空!");
  837. return;
  838. }
  839. }
  840. if (MessageUtil.ShowYesNoAndQuestion("是否确认完成分批取样?") == DialogResult.Yes)
  841. {
  842. }
  843. else
  844. {
  845. return;
  846. }
  847. }
  848. //if (MessageUtil.ShowYesNoAndQuestion("是否确认完成分批?") == DialogResult.Yes)
  849. //{
  850. //往分批表和取样表里面插数据
  851. ultraGrid3.UpdateData();
  852. string strID = ultraGrid1.ActiveRow.Cells["ID"].Text.Trim();//id
  853. string strLOT_NO = ultraGrid1.ActiveRow.Cells["LOT_NO"].Text.Trim();//生产批号
  854. string strSTOVE_NO = ultraGrid1.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();//炉号
  855. string strPLINE_CODE = ultraGrid1.ActiveRow.Cells["PLINE_CODE"].Text.Trim();//产线代码
  856. string strTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  857. ArrayList alAll = new ArrayList();
  858. ArrayList alPlan = new ArrayList();
  859. ArrayList alPlanParams = new ArrayList();//更改状态位
  860. alPlanParams.Add("");
  861. alPlanParams.Add(ultraSIMPLE_PROCESS.Value.ToString());
  862. alPlanParams.Add(portMilShowBase1.StrBATCH_MAX);//最大批数
  863. alPlanParams.Add("2");
  864. alPlanParams.Add("0");
  865. alPlanParams.Add(strLOT_NO);
  866. alPlanParams.Add(strSTOVE_NO);//判定炉号
  867. alPlanParams.Add(strID);
  868. alPlan.Add(alPlanParams);
  869. ArrayList alSampleBatch = new ArrayList();//先修改批次号
  870. ArrayList alSampleBatchParams;//批次号参数PROCESS_CDOE
  871. foreach (DataRow dr in dataTable2.Rows)
  872. {
  873. alSampleBatchParams = new ArrayList();
  874. alSampleBatchParams.Add(dr["BATCH_NO"].ToString());//性能批号
  875. alSampleBatchParams.Add(strPLINE_CODE);//产线代码
  876. alSampleBatchParams.Add(dr["PIPE_NO"].ToString());//材料号
  877. //alSampleBatchParams.Add(strLOT_NO);
  878. //alSampleBatchParams.Add(strSTOVE_NO);//判定炉号
  879. //alSampleBatchParams.Add(strID);
  880. alSampleBatch.Add(alSampleBatchParams);
  881. }
  882. //20160830 屏蔽减去取样重量代码
  883. //double count = 1;
  884. //string[] arrSize = ultraGrid1.ActiveRow.Cells["PIPE_SIZE"].Text.Trim().Split('*');
  885. //double wj = arrSize.Length > 0 && Double.TryParse(arrSize[0], out count) ? Convert.ToDouble(arrSize[0]) : 0;//外径
  886. //double bh = arrSize.Length > 1 && Double.TryParse(arrSize[1], out count) ? Convert.ToDouble(arrSize[1]) : 0;//壁厚
  887. ArrayList alSample = new ArrayList();//修改样管信息
  888. ArrayList alSampleParams;//批次号参数PROCESS_CDOE
  889. foreach (DataRow dr in dataTable2.Rows)
  890. {
  891. alSampleParams = new ArrayList();
  892. if (dr["CHK"].ToString().ToUpper() == "TRUE")
  893. {
  894. alSampleParams.Add("1");//是否样管
  895. alSampleParams.Add(dr["SAMPLE_PIPE_LEN"].ToString());//样管长度
  896. alSampleParams.Add(UserInfo.GetUserName());//取样人
  897. alSampleParams.Add(strTime);//取样时间
  898. alSampleParams.Add(UserInfo.GetUserOrder());//班次
  899. alSampleParams.Add(UserInfo.GetUserGroupText());//班组
  900. //长度、重量
  901. //alSampleParams.Add("");//长度
  902. //if (dr["ACT_THEORY_WEIGHT"].ToString() != "" && Double.TryParse(dr["ACT_THEORY_WEIGHT"].ToString(), out count) && Double.TryParse(dr["SAMPLE_PIPE_LEN"].ToString(), out count))
  903. //{
  904. // //double b = (Convert.ToDouble(dr["SAMPLE_PIPE_LEN"].ToString()) / 1000);
  905. // double a = 0.02466 * bh * (wj - bh) * (Convert.ToDouble(dr["SAMPLE_PIPE_LEN"].ToString()) / 1000) / 1000;
  906. // alSampleParams.Add((Convert.ToDouble(dr["ACT_THEORY_WEIGHT"].ToString()) - (0.02466 * bh * (wj - bh) * (Convert.ToDouble(dr["SAMPLE_PIPE_LEN"].ToString()) / 1000)) / 1000).ToString("f3"));//重量
  907. //}
  908. //else
  909. //{
  910. // alSampleParams.Add("");
  911. //}
  912. alSampleParams.Add(strPLINE_CODE);//产线代码
  913. alSampleParams.Add(dr["PIPE_NO"].ToString());//材料号
  914. alSampleParams.Add(strLOT_NO);
  915. alSampleParams.Add(strSTOVE_NO);//判定炉号
  916. alSampleParams.Add(strID);
  917. alSample.Add(alSampleParams);
  918. }
  919. }
  920. //加入取样明细
  921. ArrayList alSampleNo = new ArrayList();
  922. ArrayList alSampleNoParams;
  923. foreach (DataRow dr in dataTable5.Rows)
  924. {
  925. foreach (DataRow dRow in dataTable4.Rows)
  926. {
  927. if (dr[dRow["SAMPLE_KEY"].ToString()].ToString().IndexOf("√") == 0 && dr[dRow["SAMPLE_KEY"].ToString()].ToString().Remove(0, 1).Trim().Split(' ').Contains(dRow["ROW_INDEX"].ToString()))
  928. {
  929. alSampleNoParams = new ArrayList();
  930. alSampleNoParams.Add(strID);
  931. alSampleNoParams.Add(strLOT_NO);
  932. alSampleNoParams.Add(strSTOVE_NO);//判定炉号
  933. alSampleNoParams.Add(dr["BATCH_NO"].ToString());//性能批号
  934. alSampleNoParams.Add(dr["PIPE_NO"].ToString());//管号
  935. alSampleNoParams.Add(dr["SEQ"].ToString());//序号
  936. alSampleNoParams.Add(dr["DESC_POSITION"].ToString());//取样位置
  937. alSampleNoParams.Add(dr["XH"].ToString());//序号
  938. alSampleNoParams.Add(dr["SAMPLE_BARCODE"]);//样品条形码
  939. alSampleNoParams.Add(dr["SAMPLE_LEN"]);//试样长度20151112
  940. alSampleNoParams.Add(dRow["PHY_CODE_MAX"].ToString());//
  941. alSampleNoParams.Add(dRow["PHY_NAME_MAX"].ToString());//
  942. alSampleNoParams.Add(dRow["PHY_CODE_MIN"].ToString());//
  943. alSampleNoParams.Add(dRow["PHY_NAME_MIN"].ToString());//
  944. alSampleNoParams.Add(dRow["SAMPLE_KEY"].ToString());//
  945. alSampleNoParams.Add(dRow["SAMPLE_KEY_DESC"].ToString());
  946. alSampleNoParams.Add(dRow["SAMPLE_COUNT"].ToString());//试样数SAMPLE_KEY
  947. alSampleNoParams.Add(UserInfo.GetUserName());//取样人
  948. //alSampleNoParams.Add(strTime);//取样时间
  949. alSampleNoParams.Add(UserInfo.GetUserOrder());//班次
  950. alSampleNoParams.Add(UserInfo.GetUserGroupText());//班组
  951. alSampleNoParams.Add("");//备注
  952. //alSampleNoParams.Add(dRow["ADD_TYPE"].ToString());//数据类型
  953. //alSampleNoParams.Add(dRow["DATA_TYPE"].ToString());//样品类型
  954. alSampleNoParams.Add(dr["SAMPLE_NO"].ToString());//序号
  955. alSampleNo.Add(alSampleNoParams);
  956. }
  957. }
  958. }
  959. alAll.Add(alPlan);
  960. //alAll.Add(alBatchNo);
  961. alAll.Add(alSampleBatch);
  962. alAll.Add(alSample);
  963. alAll.Add(alSampleNo);
  964. string strSampleCode = ultraGrid1.ActiveRow.Cells["SPLINE_DESC"].Text.Trim();//试样号首字母
  965. PublicServer.SetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.AddBatchSampleInfo",
  966. new Object[] { alAll, ultraSIMPLE_PROCESS.Value.ToString(), strSampleCode }, this.ob);
  967. txtPIPE_SIZE.Text = "2";
  968. dataTable2.Rows.Clear();
  969. dataTable3.Rows.Clear();
  970. QueryLotNoAndStoveNo(dataTable1, ultraGrid1, "0");//刷新GRID1
  971. //PublicPort.ActiveOperateRow(ultraGrid6, new string[] { "LOT_NO", "JUDGE_STOVE_NO" }, new string[] { strLOT_NO, strSTOVE_NO });//定位
  972. MessageUtil.ShowTips("分批完成!");
  973. }
  974. //}
  975. catch (Exception e)
  976. {
  977. MessageUtil.ShowWarning(e.Message);
  978. }
  979. }
  980. //查询管号队列
  981. private void QueryPipeNoRack()
  982. {
  983. try
  984. {
  985. if (ultraGrid1.ActiveRow != null && ultraGrid1.ActiveRow.Activated)
  986. {
  987. dataTable2.Rows.Clear();
  988. txtPIPE_NUM.Text = "";
  989. ArrayList al = new ArrayList();
  990. //产线、批次号、炉号
  991. //al.Add(PlineCode);
  992. al.Add(ultraGrid1.ActiveRow.Cells["LOT_NO"].Text.Trim());
  993. al.Add(ultraGrid1.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim());
  994. al.Add(ultraGrid1.ActiveRow.Cells["ID"].Text.Trim());
  995. DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryPipeNoRack", new object[] { al, ultraSIMPLE_PROCESS.Value.ToString() }, this.ob);
  996. if (dt == null || dt.Rows.Count == 0)
  997. {
  998. return;
  999. }
  1000. GridHelper.CopyDataToDatatable(dt, dataTable2, true);//把dt复制给dataTable2
  1001. dataTable2.Rows[0]["CHK"] = "True";
  1002. if (dataTable2.Rows.Count > 1)
  1003. {
  1004. dataTable2.Rows[1]["CHK"] = "True";
  1005. }
  1006. GridHelper.RefreshAndAutoSize(ultraGrid2);//刷新Grid
  1007. txtPIPE_NUM.Text = dt.Rows.Count.ToString();//有效管数
  1008. }
  1009. }
  1010. catch (Exception e)
  1011. {
  1012. MessageUtil.ShowWarning(e.Message);
  1013. }
  1014. }
  1015. #endregion
  1016. //查询合同轧制制程是否经过成分和理化
  1017. private void QueryGetSampleReq_Desgin_Process(PortMilShowBase portMilShowBase, UltraGrid ultraGrid)
  1018. {
  1019. try
  1020. {
  1021. portMilShowBase.StrIsChem = "";//初始化数据
  1022. portMilShowBase.StrIsPhy = "";
  1023. ArrayList arrayList = new ArrayList();
  1024. string strORD_LN_DLY_PK = ultraGrid.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim();
  1025. //arrayList.Add(strORD_LN_DLY_PK.Substring(strORD_LN_DLY_PK.IndexOf('-') + 1));
  1026. arrayList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-')-3));
  1027. DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReq_Desgin_Process",
  1028. new Object[] { arrayList }, ob);
  1029. if (dt != null && dt.Rows.Count > 0)
  1030. {
  1031. foreach (DataRow dr in dt.Rows)
  1032. {
  1033. if (dr["STATION_CODE"].ToString() == "40230" || dr["STATION_DESC"].ToString() == "成品成分")
  1034. {
  1035. portMilShowBase.StrIsChem = "是";
  1036. }
  1037. else
  1038. {
  1039. portMilShowBase.StrIsPhy = "是";
  1040. }
  1041. }
  1042. }
  1043. if (portMilShowBase.StrIsChem != "是")
  1044. {
  1045. MessageUtil.ShowWarning("轧制工序不经过成品成分工序点请注意是否维护有误!");
  1046. }
  1047. }
  1048. catch (Exception e)
  1049. {
  1050. MessageUtil.ShowWarning(e.Message);
  1051. }
  1052. }
  1053. //查询取样要求
  1054. //根据冶金规范查找MSC下的取样要求 COM_MSC_STD_PIC - BATCH_LOCA 分批位置 COM_BASE_SAMPLE - BATCH_CNT 每批支数
  1055. //1.通过PLN_ORDER_ZG - PRO_ORDER_NO轧管工序合同号找到交货行号ORD_LN_DLY_PK
  1056. //2.通过ORD_LN_DLY_PK 找到 SLM_ORDER_LINE 里的MSC
  1057. //3.通过MSC找到COM_MSC_STD_PIC 和 COM_MSC_PHY_SAMPLE 里的PIC
  1058. //4.通过PIC找到COM_BASE_SAMPLE 找到 SIC 取样要求
  1059. //根据质量设计查找DESGIN_KEY下的取样要求
  1060. //1.通过PLN_ORDER_ZG - PRO_ORDER_NO轧管工序合同号找到交货行号ORD_LN_DLY_PK , CRAFT_ORD_DESIGN
  1061. //2.通过交货行号ORD_LN_DLY_PK 找到 SLM_ORDER_LINE_DELIVERY里的ORD_LN_PK 通过 ORD_LN_PK 找到CRAFT_ORD_DESIGN里的DESGIN_KEY
  1062. //3.通过DESGIN_KEY 找到 CRAFT_ORD_DESIGN_STD_PIC 里的检验项目
  1063. //4.通过DESGIN_KEY 找到 CRAFT_ORD_DESIGN_STD_PIC_SMP 里的取样要求
  1064. //通过轧管合同号找取样要求
  1065. private void QueryGetSampleReq(PortMilShowBase portMilShowBase, UltraGrid ultraGridSource, DataTable dataTable, UltraGrid ultraGrid)
  1066. {
  1067. try
  1068. {
  1069. dataTable.Rows.Clear();
  1070. ArrayList arrayList = new ArrayList();
  1071. //string strORD_LN_DLY_PK = ultraGridSource.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim();
  1072. ////arrayList.Add(strORD_LN_DLY_PK.Substring(strORD_LN_DLY_PK.IndexOf('-') + 1));
  1073. //arrayList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-')-3));
  1074. arrayList.Add(ultraGridSource.ActiveRow.Cells["PRO_PLAN_ID"].Text.Trim());
  1075. arrayList.Add(ultraGridSource.ActiveRow.Cells["GX_PLAN_NO"].Text.Trim());
  1076. //以SAMPLE_KEY显示
  1077. DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReq_Desgin",
  1078. new Object[] { arrayList }, ob);
  1079. if (dt == null)//|| dt.Rows.Count == 0 无化学取样要求时去掉此条件 C0001_I0001_I0003
  1080. {
  1081. return;
  1082. }
  1083. m_dtSelectPhySampleCode = dt.DefaultView.ToTable(true, "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN");
  1084. m_dtSelectPhyR = dt.Copy();
  1085. m_dtSelectSampleKey = dt.Copy();
  1086. AddColumns(4, m_dtSelectSampleKey, dataTable12);//把选中的大项增加到publicUltraGridDetail1.DataTable
  1087. GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1
  1088. GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid
  1089. if (portMilShowBase == portMilShowBase1)
  1090. {
  1091. GetMaxBatchNum(portMilShowBase1, dataTable4, ultraGrid1);
  1092. }
  1093. }
  1094. catch (Exception e)
  1095. {
  1096. MessageUtil.ShowWarning(e.Message);
  1097. }
  1098. }
  1099. //分批方法
  1100. private void GetMaxBatchNum(PortMilShowBase portMilShowBase, DataTable dt, UltraGrid ug)
  1101. {
  1102. if (dt != null && dt.Rows.Count > 0 && dt.Columns.Contains("RATE") && dt.Columns.Contains("DESC_RATE"))
  1103. {
  1104. int num = 0;
  1105. foreach (DataRow dr in dt.Rows)
  1106. {
  1107. if (dr["RATE"].ToString() == "408602" || dr["DESC_RATE"].ToString() == "检验批")
  1108. {
  1109. int BATCH_CNT = dr["BATCH_CNT"].ToString().TryParseInt() ? Convert.ToInt16(dr["BATCH_CNT"].ToString()) : 0;//分批数量
  1110. //分批单位是米或者吨根据每支的重量和长度换算成支
  1111. if (dr["BATCH_UNIT"].ToString() == "米")
  1112. {
  1113. //TARGET_LENGTH 目标长度
  1114. double length = Convert.ToDouble(ug.ActiveRow.Cells["TARGET_LENGTH"].Text.Trim());
  1115. //BATCH_CNT = Convert.ToInt16(BATCH_CNT / length);
  1116. }
  1117. else if (dr["BATCH_UNIT"].ToString() == "吨")
  1118. {
  1119. //num = num <= BATCH_CNT ? num : BATCH_CNT;
  1120. }
  1121. else if (dr["BATCH_UNIT"].ToString() == "支")
  1122. {
  1123. //num = num <= BATCH_CNT ? num : BATCH_CNT;
  1124. }
  1125. num = num == 0 ? BATCH_CNT : num;
  1126. num = num <= BATCH_CNT ? num : BATCH_CNT;
  1127. }
  1128. }
  1129. portMilShowBase.StrBATCH_MAX = num == 0 ? "1000" : num.ToString();
  1130. if (num == 0)
  1131. {
  1132. //MessageUtil.ShowWarning("没有取样频率为检验批的项目默认一炉为一批!");
  1133. }
  1134. }
  1135. }
  1136. //获取起始批号
  1137. private void GetStartBatch()
  1138. {
  1139. string strBatch = ultraGrid1.ActiveRow.Cells["BATCH_INTERVAL"].Text.Trim();
  1140. if (strBatch == "")
  1141. {
  1142. //MessageUtil.ShowWarning("请维护对应产线的性能批号区间!");
  1143. //txtStartBatch.Text = "";//如果批次区间为空则不清除
  1144. return;
  1145. }
  1146. string[] arrBatch = strBatch.Split(';');
  1147. txtStartBatch.Text = arrBatch[0].Split('-')[0];
  1148. }
  1149. //一个检验项目对应一种取样码,一个取样码下面对应多个试样码 试样码分为方向、尺寸不同长和宽不同
  1150. //根据试样码去计算取样的长、宽则根据试样周长、不足的也取一个圆环、少了的加长
  1151. //先计算出取样码 取样个数
  1152. private void InitColumnsSampleReq()
  1153. {
  1154. if (dataTable3.Rows.Count == 0)
  1155. {
  1156. return;
  1157. }
  1158. InitColumnsSampleReqDt(dataTable5, ultraGrid5, dataTable4);
  1159. //先计算出每批A断和B断的最大值
  1160. //然后再增加行
  1161. int numA = 0;
  1162. int numB = 0;
  1163. int numAB = 0;//记录检验批A或B最大有几个
  1164. int numA_ = 0;
  1165. int numB_ = 0;
  1166. int numAB_ = 0;//记录炉A或B最大有几个
  1167. foreach (DataRow dr in dataTable4.Rows)
  1168. {
  1169. if (StringUtil.IsInt(dr["DESC_COUNT"].ToString()))//判断取样数量
  1170. {
  1171. int temp = Convert.ToInt16(dr["DESC_COUNT"].ToString());
  1172. if (dr["DESC_RATE"].ToString() == "检验批")
  1173. {
  1174. if (dr["DESC_POSITION"].ToString() == "A端和B端")
  1175. {
  1176. numA = numA >= temp ? numA : temp;
  1177. numB = numB >= temp ? numB : temp;
  1178. }
  1179. else if (dr["DESC_POSITION"].ToString() == "A端或B端")
  1180. {
  1181. numAB = numAB >= temp ? numAB : temp;
  1182. }
  1183. else if (dr["DESC_POSITION"].ToString() == "A端")
  1184. {
  1185. numA = numA >= temp ? numA : temp;
  1186. }
  1187. else if (dr["DESC_POSITION"].ToString() == "B端")
  1188. {
  1189. numB = numB >= temp ? numB : temp;
  1190. }
  1191. }
  1192. else if (dr["DESC_RATE"].ToString() == "炉")
  1193. {
  1194. if (dr["DESC_POSITION"].ToString() == "A端和B端")
  1195. {
  1196. numA_ = numA_ >= temp ? numA_ : temp;
  1197. numB_ = numB_ >= temp ? numB_ : temp;
  1198. }
  1199. else if (dr["DESC_POSITION"].ToString() == "A端或B端")
  1200. {
  1201. numAB_ = numAB_ >= temp ? numAB_ : temp;
  1202. }
  1203. else if (dr["DESC_POSITION"].ToString() == "A端")
  1204. {
  1205. numA_ = numA_ >= temp ? numA_ : temp;
  1206. }
  1207. else if (dr["DESC_POSITION"].ToString() == "B端")
  1208. {
  1209. numB_ = numB_ >= temp ? numB_ : temp;
  1210. }
  1211. }
  1212. }
  1213. }
  1214. //A和B相加小于A或B情况下 差的数默认为A端
  1215. if (numA + numB - numAB < 0)
  1216. {
  1217. numA += (numAB - (numA + numB));
  1218. }
  1219. if (numA_ + numB_ - numAB_ < 0)
  1220. {
  1221. numA_ += (numAB_ - (numA_ + numB_));
  1222. }
  1223. //int sum = numA + numB;
  1224. //int sum_ = numA_ + numB_;
  1225. //根据分批实绩自动生成参考取样要求队列区分A、B端
  1226. //1.numA_大于numA*批数则在第一批增加少的样管数numA_ - numA*批数
  1227. //2.numB_大于numB*批数则在第一批增加少的样管数numB_ - numB*批数
  1228. //string row = "";//存放所有样管号判断是否有重复批号+样管号
  1229. //增加所有样管数
  1230. DataRow newDr = dataTable5.NewRow();
  1231. foreach (DataRow dr in dataTable3.Rows)
  1232. {
  1233. //先判断此批
  1234. int pipe_num = 1;
  1235. //第一批赋值A端
  1236. if (dr["BATCH_NO"].ToString() == dataTable3.Rows[0]["BATCH_NO"].ToString())
  1237. {
  1238. if (numA_ > numA * dataTable3.Rows.Count)//判断炉A和检验批A比较
  1239. {
  1240. for (int i = 1; i <= numA + numA_ - numA * dataTable3.Rows.Count; i++)
  1241. {
  1242. newDr = dataTable5.NewRow();
  1243. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  1244. newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num;
  1245. newDr["DESC_POSITION"] = "A";
  1246. dataTable5.Rows.Add(newDr);
  1247. pipe_num++;
  1248. }
  1249. }
  1250. else
  1251. {
  1252. for (int i = 1; i <= numA; i++)//判断炉A和检验批A比较
  1253. {
  1254. newDr = dataTable5.NewRow();
  1255. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  1256. newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num;
  1257. newDr["DESC_POSITION"] = "A";
  1258. dataTable5.Rows.Add(newDr);
  1259. pipe_num++;
  1260. }
  1261. }
  1262. //B端
  1263. if (numB_ > numB * dataTable3.Rows.Count)//判断炉B和检验批B比较
  1264. {
  1265. for (int i = 1; i <= numB + numB_ - numB * dataTable3.Rows.Count; i++)
  1266. {
  1267. newDr = dataTable5.NewRow();
  1268. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  1269. newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num;
  1270. newDr["DESC_POSITION"] = "B";
  1271. dataTable5.Rows.Add(newDr);
  1272. pipe_num++;
  1273. }
  1274. }
  1275. else
  1276. {
  1277. for (int i = 1; i <= numB; i++)
  1278. {
  1279. newDr = dataTable5.NewRow();
  1280. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  1281. newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num;
  1282. newDr["DESC_POSITION"] = "B";
  1283. dataTable5.Rows.Add(newDr);
  1284. pipe_num++;
  1285. }
  1286. }
  1287. }
  1288. else
  1289. {
  1290. for (int i = 1; i <= numA; i++)
  1291. {
  1292. newDr = dataTable5.NewRow();
  1293. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  1294. newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num;
  1295. newDr["DESC_POSITION"] = "A";
  1296. dataTable5.Rows.Add(newDr);
  1297. pipe_num++;
  1298. }
  1299. for (int i = 1; i <= numB; i++)
  1300. {
  1301. newDr = dataTable5.NewRow();
  1302. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  1303. newDr["XH"] = dr["BATCH_NO"].ToString() + "-" + pipe_num;
  1304. newDr["DESC_POSITION"] = "B";
  1305. dataTable5.Rows.Add(newDr);
  1306. pipe_num++;
  1307. }
  1308. }
  1309. }
  1310. //1计算出每个检验项A,B要多少
  1311. //按炉 如果是A则沿着A端赋值、B则沿着B端赋值、A或B则沿着行随意赋值取样数量
  1312. //按检验批 A则每批沿着A赋值取样数量行、B则每批沿着B赋值取样数量行、A或B则每批沿着行随意赋值取样数量
  1313. string batch = "";//存放批号判断是否从0开始
  1314. int sumA = 0;
  1315. int sumB = 0;
  1316. int sumAB = 0;
  1317. int tempA = 0;
  1318. int tempAB = 0;
  1319. int tempB = 0;
  1320. foreach (DataRow dataRow in dataTable4.Rows)
  1321. {
  1322. batch = "";
  1323. sumA = 0;
  1324. sumB = 0;
  1325. sumAB = 0;
  1326. tempA = 0;
  1327. tempAB = 0;
  1328. tempB = 0;
  1329. if (StringUtil.IsInt(dataRow["DESC_COUNT"].ToString()))//判断取样数量
  1330. {
  1331. int temp = Convert.ToInt16(dataRow["DESC_COUNT"].ToString());
  1332. if (dataRow["DESC_POSITION"].ToString() == "A端")
  1333. {
  1334. sumA += temp;
  1335. }
  1336. else if (dataRow["DESC_POSITION"].ToString() == "B端")
  1337. {
  1338. sumB += temp;
  1339. }
  1340. else if (dataRow["DESC_POSITION"].ToString() == "A端和B端")
  1341. {
  1342. sumA += temp;
  1343. sumB += temp;
  1344. }
  1345. else
  1346. {
  1347. sumAB += temp;//A或B
  1348. }
  1349. if (dataRow["RATE"].ToString() == "408603" || dataRow["DESC_RATE"].ToString() == "炉")
  1350. {
  1351. if (sumAB == 0)//如果取样位置不是A或B
  1352. {
  1353. foreach (DataRow dr in dataTable5.Rows)
  1354. {
  1355. if (sumA <= tempA && sumB <= tempB)
  1356. {
  1357. break;
  1358. }
  1359. //炉取样原来是先优先从每批第一个样管开始 , 现有的从第一根样管开始 直到结束
  1360. if (dr["DESC_POSITION"].ToString() == "A" && sumA > tempA)
  1361. {
  1362. //√加上行序号
  1363. if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "")
  1364. {
  1365. dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " ";
  1366. }
  1367. else
  1368. {
  1369. dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " ";
  1370. }
  1371. tempA++;
  1372. }
  1373. if (dr["DESC_POSITION"].ToString() == "B" && sumB > tempB)
  1374. {
  1375. if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "")
  1376. {
  1377. dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " ";
  1378. }
  1379. else
  1380. {
  1381. dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " ";
  1382. }
  1383. tempB++;
  1384. }
  1385. }
  1386. }
  1387. else
  1388. {
  1389. foreach (DataRow dr in dataTable5.Rows)
  1390. {
  1391. if (sumAB <= tempAB)
  1392. {
  1393. break;
  1394. }
  1395. if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "")
  1396. {
  1397. dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " ";
  1398. }
  1399. else
  1400. {
  1401. dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " ";
  1402. }
  1403. tempAB++;
  1404. }
  1405. }
  1406. }
  1407. else if (dataRow["RATE"].ToString() == "408602" || dataRow["DESC_RATE"].ToString() == "检验批")
  1408. {
  1409. if (sumAB == 0)
  1410. {
  1411. foreach (DataRow dr in dataTable5.Rows)
  1412. {
  1413. if (batch.IndexOf(dr["BATCH_NO"].ToString()) < 0)
  1414. {
  1415. batch += dr["BATCH_NO"].ToString() + " ";//新批次全部置0
  1416. tempA = 0;
  1417. tempB = 0;
  1418. //tempAB = 0;
  1419. }
  1420. if (sumA <= tempA && sumB <= tempB)
  1421. {
  1422. continue;
  1423. }
  1424. if (dr["DESC_POSITION"].ToString() == "A" && sumA > tempA)
  1425. {
  1426. if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "")
  1427. {
  1428. dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " ";
  1429. }
  1430. else
  1431. {
  1432. dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " ";
  1433. }
  1434. tempA++;
  1435. }
  1436. if (dr["DESC_POSITION"].ToString() == "B" && sumB > tempB)
  1437. {
  1438. if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "")
  1439. {
  1440. dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " ";
  1441. }
  1442. else
  1443. {
  1444. dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " ";
  1445. }
  1446. tempB++;
  1447. }
  1448. }
  1449. }
  1450. else
  1451. {
  1452. foreach (DataRow dr in dataTable5.Rows)
  1453. {
  1454. if (batch.IndexOf(dr["BATCH_NO"].ToString()) < 0)
  1455. {
  1456. batch += dr["BATCH_NO"].ToString() + " ";//新批次全部置0
  1457. tempAB = 0;
  1458. }
  1459. if (sumAB <= tempAB)
  1460. {
  1461. continue;
  1462. }
  1463. if (dr[dataRow["SAMPLE_KEY"].ToString()].ToString().Trim() != "")
  1464. {
  1465. dr[dataRow["SAMPLE_KEY"].ToString()] += dataRow["ROW_INDEX"].ToString() + " ";
  1466. }
  1467. else
  1468. {
  1469. dr[dataRow["SAMPLE_KEY"].ToString()] = "√" + dataRow["ROW_INDEX"].ToString() + " ";
  1470. }
  1471. tempAB++;
  1472. }
  1473. }
  1474. }
  1475. }
  1476. }
  1477. //为取样长度赋值 ,计算周长是否超过管的周长
  1478. //一个检验项可能有多个取样码,一个取样码下可能有多个试样码,如果一根样管下的检验项目有多个取样码,则要计算此取样码下所有试样码的长宽
  1479. foreach (DataRow dataRow in dataTable5.Rows)
  1480. {
  1481. int Samplelen = 0;
  1482. int maxPian = 0;//片状试样最大长度
  1483. double SampleWidth = 0;//宽度
  1484. foreach (DataRow dr in dataTable4.Rows)
  1485. {
  1486. if (dataRow[dr["SAMPLE_KEY"].ToString()].ToString().IndexOf("√") == 0)
  1487. {
  1488. string[] arr = dataRow[dr["SAMPLE_KEY"].ToString()].ToString().Remove(0, 1).Trim().Split(' ');
  1489. if (!dr["LENGTH"].ToString().Replace("mm", "").Trim().TryParseInt())
  1490. {
  1491. //dataRow["SAMPLE_LEN"] = dr["DESC_LENGTH"].ToString().Replace("mm", "").Trim();
  1492. break;
  1493. }
  1494. int len = Convert.ToInt32(dr["LENGTH"].ToString().Replace("mm", "").Trim()) * Convert.ToInt32(dr["SAMPLE_COUNT"].ToString());
  1495. if (!arr.Contains(dr["ROW_INDEX"].ToString()))
  1496. {
  1497. continue;
  1498. }
  1499. if (dr["SAMPLE_STYLE"].ToString() == "408101" || dr["DESC_SAMPLE_STYLE"].ToString() == "片状")
  1500. {
  1501. if (len > maxPian)
  1502. {
  1503. maxPian = len;//片长度*样条数len * DESC_COUNT
  1504. }
  1505. SampleWidth += Convert.ToDouble(dr["WIDTH"].ToString() == "" ? "0" : dr["WIDTH"].ToString());
  1506. }
  1507. else
  1508. {
  1509. Samplelen += len;//片加环的长度得出样管长度
  1510. }
  1511. }
  1512. }
  1513. //if(SampleWidth > 2*3.14*)//如果大于管子的周长则需加长样管
  1514. Samplelen += maxPian;
  1515. dataRow["SAMPLE_LEN"] = Samplelen;// +"mm";
  1516. }
  1517. //长度计算新方法,环相加,片长或者宽*样条数,然后计算周长,周长超过外径*壁厚则长度适当增加
  1518. //如何确切知道某一生产批的首炉 炉的和按检验批的依照原来方法进行
  1519. }
  1520. #region 已取样分批
  1521. private void InitColumnsSampleReqDt(DataTable dtSource, UltraGrid ug, DataTable dtData)
  1522. {
  1523. if (dtSource == null || dtData == null || dtData.Rows.Count == 0)
  1524. {
  1525. return;
  1526. }
  1527. dtSource.Rows.Clear();
  1528. dtSource.Columns.Clear();
  1529. //参考取样要求队列
  1530. ArrayList alColumnsSampleReq = new ArrayList();
  1531. alColumnsSampleReq.Add("BATCH_NO");
  1532. alColumnsSampleReq.Add("XH");
  1533. alColumnsSampleReq.Add("PIPE_NO");
  1534. alColumnsSampleReq.Add("SEQ");
  1535. alColumnsSampleReq.Add("DESC_POSITION");
  1536. alColumnsSampleReq.Add("SAMPLE_NO");
  1537. alColumnsSampleReq.Add("SAMPLE_NO_MIN");
  1538. ArrayList alCaptionSampleReq = new ArrayList();
  1539. alCaptionSampleReq.Add("性能批号");
  1540. alCaptionSampleReq.Add("试样序号");
  1541. alCaptionSampleReq.Add("管号");
  1542. alCaptionSampleReq.Add("序号");
  1543. alCaptionSampleReq.Add("取样位置");
  1544. alCaptionSampleReq.Add("样管号");
  1545. alCaptionSampleReq.Add("钢印号");
  1546. foreach (DataRow dr in dtData.Rows)
  1547. {
  1548. if (dr["SAMPLE_KEY"].ToString() != "" && dr["SAMPLE_KEY_DESC"].ToString() != "")
  1549. {
  1550. alColumnsSampleReq.Add(dr["SAMPLE_KEY"].ToString());
  1551. alCaptionSampleReq.Add(dr["SAMPLE_KEY_DESC"].ToString());
  1552. }
  1553. }
  1554. alColumnsSampleReq.Add("SAMPLE_LEN");
  1555. alCaptionSampleReq.Add("取样长度");
  1556. alColumnsSampleReq.Add("SAMPLE_BARCODE");//产线+2年+管号+方向A或B
  1557. alCaptionSampleReq.Add("样管条形码");
  1558. PublicPort.InitColumns(alColumnsSampleReq.ToArray(), alCaptionSampleReq.ToArray(), dtSource);
  1559. PublicPort.setColumnShowOrHidden(ug, new string[] { "XH", "PIPE_NO", "SAMPLE_NO", "SAMPLE_NO_MIN" }, false);
  1560. PublicPort.InitCellPositionRight(ug, new string[] { "SAMPLE_LEN" });
  1561. ug.DisplayLayout.Bands[0].Columns["SEQ"].Width = 60;
  1562. }
  1563. private void InitColumnsSampleStdReq()
  1564. {
  1565. ArrayList arrayList = new ArrayList();
  1566. arrayList.Add(ultraGrid6.ActiveRow.Cells["LOT_NO"].Text.Trim());
  1567. arrayList.Add(ultraGrid6.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim());//条件
  1568. DataTable dtDis = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QuerySampleInfoPhy_Distinct",
  1569. new Object[] { arrayList }, ob);
  1570. if (dtDis == null || dtDis.Rows.Count == 0)
  1571. {
  1572. return;
  1573. }
  1574. InitColumnsSampleReqDt(dataTable10, ultraGrid10, PublicPort.GetSelectDt(dtDis, "SAMPLE_KEY IS NOT NULL", "PHY_CODE_MIN").DefaultView.ToTable(true, "SAMPLE_KEY", "SAMPLE_KEY_DESC"));
  1575. string row = "";//存放所有样管号判断是否有重复样管号
  1576. DataRow newDr = dataTable10.NewRow();
  1577. foreach (DataRow dr in dtDis.Rows)
  1578. {
  1579. if (row.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断是否有重复样管号,有则不增加行只增加对应的列
  1580. {
  1581. row += dr["SAMPLE_NO"].ToString() + " ";
  1582. newDr = dataTable10.NewRow();
  1583. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  1584. newDr["XH"] = dr["XH"].ToString();
  1585. newDr["PIPE_NO"] = dr["PIPE_NO"].ToString();
  1586. newDr["SEQ"] = dr["SEQ"].ToString();
  1587. newDr["DESC_POSITION"] = dr["DESC_POSITION"].ToString();//取样位置
  1588. newDr["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString();
  1589. newDr["SAMPLE_NO_MIN"] = dr["SAMPLE_NO_MIN"].ToString();
  1590. newDr["SAMPLE_BARCODE"] = dr["SAMPLE_BARCODE"].ToString();
  1591. newDr["SAMPLE_LEN"] = dr["SAMPLE_LEN"].ToString();
  1592. newDr[dr["SAMPLE_KEY"].ToString()] = "√";
  1593. dataTable10.Rows.Add(newDr);
  1594. }
  1595. else
  1596. {
  1597. newDr[dr["SAMPLE_KEY"].ToString()] = "√";
  1598. }
  1599. }
  1600. PublicPort.setOtherColumnReadOnly(ultraGrid10, null);
  1601. GridHelper.RefreshAndAutoSize(ultraGrid10);
  1602. }
  1603. private void ultraGrid6_AfterRowActivate(object sender, EventArgs e)
  1604. {
  1605. portMilShowBase2.ShowBaseInfo(ultraGrid6.ActiveRow);
  1606. //QueryGetSampleReq_Desgin_Process(portMilShowBase2, ultraGrid6);
  1607. //QueryGetSampleReq(portMilShowBase2, ultraGrid6, dataTable9, ultraGrid9);//获取每批最小支数
  1608. QueryPipeNoRackSample();//查询已取样队列
  1609. QueryBatchSampleInfo();
  1610. //InitColumnsSampleStdReq();//20160829
  1611. //QueryGetSampleReqDetail();//查询检验项目明细
  1612. }
  1613. //查询管号队列
  1614. private void QueryPipeNoRackSample()
  1615. {
  1616. try
  1617. {
  1618. dataTable7.Rows.Clear();
  1619. ArrayList al = new ArrayList();
  1620. //产线、批次号、炉号
  1621. al.Add(ultraGrid6.ActiveRow.Cells["LOT_NO"].Text.Trim());
  1622. al.Add(ultraGrid6.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim());
  1623. al.Add(ultraGrid6.ActiveRow.Cells["ID"].Text.Trim());
  1624. DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryPipeNoRack", new object[] { al, ultraGrid6.ActiveRow.Cells["SIMPLE_PROCESS"].Text.Trim() }, this.ob);
  1625. if (dt == null || dt.Rows.Count == 0)
  1626. {
  1627. return;
  1628. }
  1629. GridHelper.CopyDataToDatatable(dt, dataTable7, true);//把dt复制给dataTable2
  1630. GridHelper.RefreshAndAutoSize(ultraGrid7);//刷新Grid
  1631. }
  1632. catch (Exception e)
  1633. {
  1634. MessageUtil.ShowWarning(e.Message);
  1635. }
  1636. }
  1637. private void QueryBatchSampleInfo()
  1638. {
  1639. dataTable8.Rows.Clear();
  1640. //查询已录入性能批号+样管号
  1641. string strLOT_NO = ultraGrid6.ActiveRow.Cells["LOT_NO"].Text.Trim();//生产批号
  1642. string strSTOVE_NO = ultraGrid6.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();//炉号
  1643. string strID = ultraGrid6.ActiveRow.Cells["ID"].Text.Trim();//炉号
  1644. ArrayList arrayList = new ArrayList();
  1645. arrayList.Add(strLOT_NO);
  1646. arrayList.Add(strSTOVE_NO);
  1647. arrayList.Add(strID);//条件
  1648. DataTable dtBATCH_NO = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryBatchInfo",
  1649. new Object[] { arrayList }, ob);
  1650. if (dtBATCH_NO == null || dtBATCH_NO.Rows.Count == 0)
  1651. {
  1652. return;
  1653. }
  1654. //portMilShowBase1.UpdateBatchValue(dtBATCH_NO.Rows[0]["BATCH_NAME"].ToString().Trim(), dtBATCH_NO.Rows[0]["BATCH_TIME"].ToString().Trim(), dtBATCH_NO.Rows[0]["BATCH_CLASS"].ToString().Trim());
  1655. GridHelper.CopyDataToDatatable(dtBATCH_NO, dataTable8, true);
  1656. GridHelper.RefreshAndAutoSize(ultraGrid8);
  1657. }
  1658. //删除分批信息
  1659. private void DeleteBatchInfo()
  1660. {
  1661. try
  1662. {
  1663. if (ultraTabControl1.SelectedTab.Index != 1)
  1664. {
  1665. MessageUtil.ShowWarning("只有在已分批取样数据页才能进行删除操作!");
  1666. return;
  1667. }
  1668. if (ultraGrid6.ActiveRow == null || dataTable6.Rows.Count == 0)
  1669. {
  1670. MessageUtil.ShowWarning("请选择需要删除的炉号信息!");
  1671. return;
  1672. }
  1673. if (MessageUtil.ShowYesNoAndQuestion("是否确认删除分批取样实绩?") == DialogResult.Yes)
  1674. {
  1675. string strID = ultraGrid6.ActiveRow.Cells["ID"].Text.Trim();//id
  1676. string strLOT_NO = ultraGrid6.ActiveRow.Cells["LOT_NO"].Text.Trim();//生产批号
  1677. string strSTOVE_NO = ultraGrid6.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();//炉号
  1678. string strPLINE_CODE = ultraGrid6.ActiveRow.Cells["PLINE_CODE"].Text.Trim();//产线代码
  1679. ArrayList alAll = new ArrayList();
  1680. ArrayList alPlan = new ArrayList();
  1681. ArrayList alPlanParams = new ArrayList();//更改状态位
  1682. alPlanParams.Add("");//检验编号
  1683. alPlanParams.Add("");
  1684. alPlanParams.Add("");//最大批数
  1685. alPlanParams.Add("0");
  1686. alPlanParams.Add("2");
  1687. alPlanParams.Add(strLOT_NO);
  1688. alPlanParams.Add(strSTOVE_NO);//判定炉号
  1689. alPlanParams.Add(strID);
  1690. alPlan.Add(alPlanParams);
  1691. ArrayList alSampleBatch = new ArrayList();//先修改批次号
  1692. ArrayList alSampleBatchParams;//批次号参数PROCESS_CDOE
  1693. foreach (DataRow dr in dataTable7.Rows)
  1694. {
  1695. alSampleBatchParams = new ArrayList();
  1696. alSampleBatchParams.Add("");//性能批号
  1697. alSampleBatchParams.Add(strPLINE_CODE);//产线代码
  1698. alSampleBatchParams.Add(dr["PIPE_NO"].ToString());//材料号
  1699. alSampleBatch.Add(alSampleBatchParams);
  1700. }
  1701. //20160830 取样不减去重量
  1702. //double count = 1;
  1703. //string[] arrSize = ultraGrid6.ActiveRow.Cells["PIPE_SIZE"].Text.Trim().Split('*');
  1704. //double wj = arrSize.Length > 0 && Double.TryParse(arrSize[0], out count) ? Convert.ToDouble(arrSize[0]) : 0;//外径
  1705. //double bh = arrSize.Length > 1 && Double.TryParse(arrSize[1], out count) ? Convert.ToDouble(arrSize[1]) : 0;//壁厚
  1706. ArrayList alSample = new ArrayList();//修改样管信息
  1707. ArrayList alSampleParams;//批次号参数PROCESS_CDOE
  1708. foreach (DataRow dr in dataTable7.Rows)
  1709. {
  1710. alSampleParams = new ArrayList();
  1711. if (dr["CHK"].ToString().ToUpper() == "TRUE")
  1712. {
  1713. alSampleParams.Add("0");//是否样管
  1714. alSampleParams.Add("");//样管长度
  1715. alSampleParams.Add("");//取样人
  1716. alSampleParams.Add("");//取样时间
  1717. alSampleParams.Add("");//班次
  1718. alSampleParams.Add("");//班组
  1719. //长度、重量
  1720. //alSampleParams.Add("");//长度
  1721. //if (Double.TryParse(dr["ORDER_LENGTH"].ToString(), out count))
  1722. //{
  1723. // alSampleParams.Add((0.02466 * bh * (wj - bh) * (Convert.ToDouble(dr["ORDER_LENGTH"].ToString()) / 1000)).ToString("f3"));//重量
  1724. //}
  1725. //else
  1726. //{
  1727. // alSampleParams.Add("");
  1728. //}
  1729. alSampleParams.Add(strPLINE_CODE);//产线代码
  1730. alSampleParams.Add(dr["PIPE_NO"].ToString());//材料号
  1731. alSampleParams.Add(strLOT_NO);
  1732. alSampleParams.Add(strSTOVE_NO);//判定炉号
  1733. alSampleParams.Add(strID);
  1734. alSample.Add(alSampleParams);
  1735. }
  1736. }
  1737. alAll.Add(alPlan);
  1738. //alAll.Add(alBatchNo);
  1739. alAll.Add(alSampleBatch);
  1740. alAll.Add(alSample);
  1741. PublicServer.SetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.DeleteBatchInfo",
  1742. new Object[] { alAll, ultraGrid6.ActiveRow.Cells["SIMPLE_PROCESS"].Text.Trim(), strSTOVE_NO, strID }, ob);
  1743. QueryLotNoAndStoveNo(dataTable6, ultraGrid6, "12");//刷新GRID1
  1744. PublicPort.ActiveOperateRow(ultraGrid1, new string[] { "LOT_NO", "JUDGE_STOVE_NO" }, new string[] { strLOT_NO, strSTOVE_NO });//定位
  1745. MessageUtil.ShowTips("分批取样实绩删除成功!");
  1746. }
  1747. }
  1748. catch (Exception e)
  1749. {
  1750. MessageUtil.ShowWarning(e.Message);
  1751. }
  1752. }
  1753. #endregion
  1754. private void ultraGrid2_CellChange(object sender, CellEventArgs e)
  1755. {
  1756. ultraGrid2.UpdateData();
  1757. if (e.Cell.Column.Key == "CHK")// && e.Cell.Text == "True" && e.Cell.Row.Cells["ISVALID"].Text == "否"
  1758. {
  1759. if (e.Cell.Row.Cells["ISVALID"].Text == "否")
  1760. {
  1761. e.Cell.Value = "False";
  1762. }
  1763. else
  1764. {
  1765. foreach (DataRow dr in dataTable3.Rows)
  1766. {
  1767. if (e.Cell.Row.Cells["BATCH_NO"].Text == dr["BATCH_NO"].ToString())
  1768. {
  1769. dr["SAMPLE_NUM"] = dataTable2.Select("CHK = 'True' AND BATCH_NO = '" + e.Cell.Row.Cells["BATCH_NO"].Text + "'").Length;
  1770. return;
  1771. }
  1772. }
  1773. }
  1774. }
  1775. else if (e.Cell.Column.Key == "SAMPLE_PIPE_LEN" && e.Cell.Text.Trim() != "" && !StringUtil.IsInt(e.Cell.Text.Trim()))
  1776. {
  1777. MessageUtil.ShowTips("样管长度必须为整数!");
  1778. e.Cell.Value = "";
  1779. }
  1780. }
  1781. private void txtPIPE_SIZE_TextChanged(object sender, EventArgs e)
  1782. {
  1783. if (txtPIPE_SIZE.Text.Trim() != "" && !StringUtil.IsNumber(txtPIPE_SIZE.Text.Trim()))
  1784. {
  1785. MessageUtil.ShowTips("每批样管数只能为整数!");
  1786. txtPIPE_SIZE.Text = "2";
  1787. return;
  1788. }
  1789. }
  1790. private void btnAddSampleAll_Click(object sender, EventArgs e)
  1791. {
  1792. if (dataTable2 != null && dataTable2.Rows.Count > 0 && dataTable3.Rows.Count > 0 && dataTable5 != null)// && dataTable5.Rows.Count > 0
  1793. {
  1794. ultraGrid2.UpdateData();
  1795. InitColumnsSampleReq();
  1796. ValueList vlMin = PublicPort.GeneralValuelist(ref dataTable2, "PIPE_NO", "SEQ");
  1797. ultraGrid5.DisplayLayout.Bands[0].Columns["PIPE_NO"].ValueList = vlMin;
  1798. //先获取每一批次要取多少样 A\B端分别要取多少个样
  1799. int i = 0;
  1800. int j = 0;
  1801. foreach (DataRow dr in dataTable3.Rows)
  1802. {
  1803. i = 0;
  1804. DataRow[] arrDataRowA = dataTable5.Select("BATCH_NO = '" + dr["BATCH_NO"].ToString() + "' AND DESC_POSITION = 'A'");
  1805. DataRow[] arrDataRowB = dataTable5.Select("BATCH_NO = '" + dr["BATCH_NO"].ToString() + "' AND DESC_POSITION = 'B'");
  1806. int num = Convert.ToInt16(dr["PIPE_NUM"].ToString());
  1807. DataRow[] arrDr = dataTable2.Select("BATCH_NO = '" + dr["BATCH_NO"].ToString() + "'", "SEQ");
  1808. if (arrDr == null || arrDr.Length == 0)
  1809. {
  1810. continue;
  1811. }
  1812. int index = dataTable2.Rows.IndexOf(arrDr[0]);
  1813. if (arrDataRowA.Length + arrDataRowB.Length <= num)//如果AB端之和小于等于此批支数
  1814. {
  1815. foreach (DataRow drs in dataTable5.Rows)
  1816. {
  1817. if (dr["BATCH_NO"].ToString() != drs["BATCH_NO"].ToString())
  1818. {
  1819. continue;
  1820. }
  1821. j++;
  1822. drs["PIPE_NO"] = dataTable2.Rows[index + i]["PIPE_NO"].ToString();//管号
  1823. //drs["PIPE_NO"] = dataTable2.Rows[index + i]["SEQ"].ToString();//管号
  1824. drs["SEQ"] = dataTable2.Rows[index + i]["SEQ"].ToString();//序号
  1825. drs["SAMPLE_NO"] = j;//样管号
  1826. drs["SAMPLE_BARCODE"] = ultraGrid1.ActiveRow.Cells["PLINE_CODE"].Text.Trim() + DateTime.Now.Year.ToString().Substring(2) + dataTable2.Rows[index + i]["PIPE_NO"].ToString() + drs["DESC_POSITION"];
  1827. i++;
  1828. }
  1829. }
  1830. else
  1831. {
  1832. foreach (DataRow drs in dataTable5.Rows)
  1833. {
  1834. if (dr["BATCH_NO"].ToString() != drs["BATCH_NO"].ToString())
  1835. {
  1836. continue;
  1837. }
  1838. j++;
  1839. drs["PIPE_NO"] = dataTable2.Rows[index + i]["PIPE_NO"].ToString();//管号
  1840. //drs["PIPE_NO"] = dataTable2.Rows[index + i]["SEQ"].ToString();//管号
  1841. drs["SEQ"] = dataTable2.Rows[index + i]["SEQ"].ToString();//序号
  1842. drs["SAMPLE_NO"] = j;//样管号
  1843. drs["SAMPLE_BARCODE"] = ultraGrid1.ActiveRow.Cells["PLINE_CODE"].Text.Trim() + DateTime.Now.Year.ToString().Substring(2) + dataTable2.Rows[index + i]["PIPE_NO"].ToString() + drs["DESC_POSITION"];
  1844. i++;
  1845. if (i >= num)
  1846. {
  1847. i = 0;
  1848. }
  1849. }
  1850. }
  1851. }
  1852. PublicPort.RefreshAndAutoSizeColumns(ultraGrid5, new string[] { "SEQ" }, false);//刷新Grid
  1853. }
  1854. }
  1855. private void btnFindSampleReq_Click(object sender, EventArgs e)
  1856. {
  1857. if (splitContainer2.Panel1Collapsed)
  1858. {
  1859. splitContainer2.Panel1Collapsed = false;
  1860. }
  1861. else
  1862. {
  1863. splitContainer2.Panel1Collapsed = true; ;
  1864. }
  1865. }
  1866. private void ultraGrid5_AfterRowActivate(object sender, EventArgs e)
  1867. {
  1868. if (dataTable2 == null || dataTable2.Rows.Count == 0)
  1869. {
  1870. return;
  1871. }
  1872. UltraGridRow ugr = ultraGrid5.ActiveRow;
  1873. DataTable dt = PublicPort.GetSelectDt(dataTable2, "BATCH_NO = '" + ugr.Cells["BATCH_NO"].Text + "' AND ISVALID = '是'");
  1874. DataRow drs = dt.NewRow();
  1875. drs["SEQ"] = "";
  1876. drs["PIPE_NO"] = "";
  1877. dt.Rows.Add(drs);
  1878. ValueList vlMin = PublicPort.GeneralValuelist(ref dt, "PIPE_NO", "SEQ");
  1879. ugr.Cells["SEQ"].ValueList = vlMin;
  1880. }
  1881. private void ultraGrid5_CellChange(object sender, CellEventArgs e)
  1882. {
  1883. if (e.Cell.Column.Key == "SEQ" && e.Cell.Text != "")
  1884. {
  1885. ultraGrid5.Update();
  1886. ultraGrid5.UpdateData();
  1887. e.Cell.Row.Cells["PIPE_NO"].Value = e.Cell.Value.ToString();
  1888. e.Cell.Value = e.Cell.Text.Trim();
  1889. foreach (DataRow dr in dataTable5.Rows)
  1890. {
  1891. if (dr["XH"].ToString() != e.Cell.Row.Cells["XH"].Text)
  1892. {
  1893. //如果存在相同的管号和AB端
  1894. if (dr["SEQ"].ToString() == e.Cell.Row.Cells["SEQ"].Value.ToString() && dr["DESC_POSITION"].ToString() == e.Cell.Row.Cells["DESC_POSITION"].Text)
  1895. {
  1896. e.Cell.Value = "";
  1897. e.Cell.Row.Cells["PIPE_NO"].Value = "";
  1898. MessageUtil.ShowWarning("已存在相同的管号和取样位置请重新选择!");
  1899. return;
  1900. }
  1901. }
  1902. }
  1903. ultraGrid5.DataBind();
  1904. }
  1905. }
  1906. private void txtStartBatch_TextChanged(object sender, EventArgs e)
  1907. {
  1908. if (txtStartBatch.Text.Trim() != "" && !StringUtil.IsNumber(txtStartBatch.Text.Trim()))
  1909. {
  1910. MessageUtil.ShowTips("起始批号只能为整数!");
  1911. txtStartBatch.Text = "";
  1912. return;
  1913. }
  1914. }
  1915. private void btnRefresh_Click(object sender, EventArgs e)
  1916. {
  1917. if (ultraGrid1.ActiveRow == null)
  1918. {
  1919. return;
  1920. }
  1921. if (txtStartBatch.Text.Trim() == "")
  1922. {
  1923. MessageUtil.ShowWarning("起始批号不能为空!");
  1924. return;
  1925. }
  1926. if (dataTable2 == null || dataTable2.Rows.Count == 0)
  1927. {
  1928. MessageUtil.ShowWarning("不存在有效的管号队列不能分批!");
  1929. return;
  1930. }
  1931. ultraGrid3.UpdateData();
  1932. if (dataTable3 == null || dataTable3.Rows.Count == 0)
  1933. {
  1934. //MessageUtil.ShowWarning("不存在有效的管号队列不能分批!");
  1935. return;
  1936. }
  1937. int count = 0, sum = Convert.ToInt32(txtPIPE_SIZE.Text.Trim() == "" ? "0" : txtPIPE_SIZE.Text.Trim());
  1938. foreach (DataRow dr in dataTable3.Rows)
  1939. {
  1940. count = sum;
  1941. int start = Convert.ToInt16(dr["START_SEQ"].ToString());
  1942. int end = Convert.ToInt16(dr["END_SEQ"].ToString());
  1943. for (int j = start - 1; j < end; j++)
  1944. {
  1945. ultraGrid2.Rows[j].Cells["BATCH_NO"].Value = dr["BATCH_NO"].ToString();
  1946. ultraGrid2.Rows[j].Cells["CHK"].Value = "False";
  1947. ultraGrid2.Rows[j].Cells["SAMPLE_PIPE_LEN"].Value = "";
  1948. if (count > 0)
  1949. {
  1950. ultraGrid2.Rows[j].Cells["CHK"].Value = "True";
  1951. count--;
  1952. }
  1953. }
  1954. }
  1955. }
  1956. private void btnSampleLength_Click(object sender, EventArgs e)
  1957. {
  1958. if (dataTable3.Rows.Count > 0)
  1959. {
  1960. ultraGrid5.UpdateData();
  1961. if (dataTable5.Rows.Count > 0)
  1962. {
  1963. DataRow[] arrDr;
  1964. foreach (DataRow dr in dataTable2.Rows)
  1965. {
  1966. arrDr = dataTable5.Select("BATCH_NO = '" + dr["BATCH_NO"].ToString() + "' AND SEQ = '" + dr["SEQ"].ToString() + "'");
  1967. if (arrDr != null && arrDr.Length > 0)
  1968. {
  1969. dr["CHK"] = "True";//SAMPLE_PIPE_LEN
  1970. dr["SAMPLE_PIPE_LEN"] = arrDr[0]["SAMPLE_LEN"].ToString();
  1971. }
  1972. else
  1973. {
  1974. dr["CHK"] = "False";
  1975. dr["SAMPLE_PIPE_LEN"] = "";
  1976. }
  1977. }
  1978. }
  1979. else
  1980. {
  1981. foreach (DataRow dr in dataTable2.Rows)
  1982. {
  1983. dr["CHK"] = "False";
  1984. dr["SAMPLE_PIPE_LEN"] = "";
  1985. }
  1986. }
  1987. }
  1988. else
  1989. {
  1990. dataTable5.Rows.Clear();
  1991. foreach (DataRow dr in dataTable2.Rows)
  1992. {
  1993. dr["CHK"] = "False";
  1994. dr["SAMPLE_PIPE_LEN"] = "";
  1995. dr["BATCH_NO"] = "";
  1996. }
  1997. }
  1998. }
  1999. private void btnFindSampleStdReq_Click(object sender, EventArgs e)
  2000. {
  2001. if (splitContainer4.Panel1Collapsed)
  2002. {
  2003. splitContainer4.Panel1Collapsed = false;
  2004. }
  2005. else
  2006. {
  2007. splitContainer4.Panel1Collapsed = true; ;
  2008. }
  2009. }
  2010. private void btnFindBatch_Click(object sender, EventArgs e)
  2011. {
  2012. if (splitContainer3.Panel1Collapsed)
  2013. {
  2014. splitContainer3.Panel1Collapsed = false;
  2015. }
  2016. else
  2017. {
  2018. splitContainer3.Panel1Collapsed = true; ;
  2019. }
  2020. }
  2021. private void InitColumnsSampleConsign()
  2022. {
  2023. ArrayList arrayList = new ArrayList();
  2024. arrayList.Add(ultraGrid11.ActiveRow.Cells["LOT_NO"].Text.Trim());
  2025. arrayList.Add(ultraGrid11.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim());//条件
  2026. DataTable dtDis = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QuerySampleInfoPhy_Distinct",
  2027. new Object[] { arrayList }, ob);
  2028. if (dtDis == null || dtDis.Rows.Count == 0)
  2029. {
  2030. return;
  2031. }
  2032. InitColumnsSampleReqDt(dataTable12, ultraGrid12, PublicPort.GetSelectDt(dtDis, "SAMPLE_KEY IS NOT NULL", "PHY_CODE_MIN").DefaultView.ToTable(true, "SAMPLE_KEY", "SAMPLE_KEY_DESC"));
  2033. string row = "";//存放所有样管号判断是否有重复样管号
  2034. DataRow newDr = dataTable12.NewRow();
  2035. foreach (DataRow dr in dtDis.Rows)
  2036. {
  2037. if (row.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断是否有重复样管号,有则不增加行只增加对应的列
  2038. {
  2039. row += dr["SAMPLE_NO"].ToString() + " ";
  2040. newDr = dataTable12.NewRow();
  2041. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  2042. newDr["XH"] = dr["XH"].ToString();
  2043. newDr["PIPE_NO"] = dr["PIPE_NO"].ToString();
  2044. newDr["SEQ"] = dr["SEQ"].ToString();
  2045. newDr["DESC_POSITION"] = dr["DESC_POSITION"].ToString();//取样位置
  2046. newDr["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString();
  2047. newDr["SAMPLE_NO_MIN"] = dr["SAMPLE_NO_MIN"].ToString();
  2048. newDr["SAMPLE_BARCODE"] = dr["SAMPLE_BARCODE"].ToString();
  2049. newDr["SAMPLE_LEN"] = dr["SAMPLE_LEN"].ToString();
  2050. newDr[dr["SAMPLE_KEY"].ToString()] = "√";
  2051. dataTable12.Rows.Add(newDr);
  2052. }
  2053. else
  2054. {
  2055. newDr[dr["SAMPLE_KEY"].ToString()] = "√";
  2056. }
  2057. }
  2058. PublicPort.setOtherColumnReadOnly(ultraGrid12, null);
  2059. GridHelper.RefreshAndAutoSize(ultraGrid12);
  2060. }
  2061. //取样单
  2062. private void RepLimsPortGetSample(UltraGrid ultraGrid)
  2063. {
  2064. try
  2065. {
  2066. this.Cursor = Cursors.WaitCursor;
  2067. UltraGridRow ugr = ultraGrid.ActiveRow;
  2068. if (ugr == null)
  2069. {
  2070. MessageUtil.ShowWarning("请选择您要打印的炉号!");
  2071. return;
  2072. }
  2073. string strID = ugr.Cells["ID"].Text.Trim();
  2074. string strLOT_NO = ugr.Cells["LOT_NO"].Text.Trim();
  2075. string strJUDGE_STOVE_NO = ugr.Cells["JUDGE_STOVE_NO"].Text.Trim();
  2076. string strurl = "";
  2077. //if (ob.MainUrl.StartsWith("http://127.0.0.1"))
  2078. //{
  2079. // strurl = "http://localhost:8075/WebReport/ReportServer?reportlet=RepLimsPortGetSample.cpt&bypagesize=false" + "&ID=" + strID + "&LOT_NO=" + strLOT_NO + "&JUDGE_STOVE_NO=" + strJUDGE_STOVE_NO;
  2080. //}
  2081. //else
  2082. //{
  2083. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepLimsPortGetSample.cpt&bypagesize=false" + "&ID=" + strID + "&LOT_NO=" + strLOT_NO + "&JUDGE_STOVE_NO=" + strJUDGE_STOVE_NO;
  2084. //}
  2085. FrmRepExcel fBug = new FrmRepExcel(ob, strurl);
  2086. fBug.AutoSize = true;
  2087. fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  2088. fBug.WindowState = FormWindowState.Maximized;
  2089. fBug.Text = "取样计划单";
  2090. fBug.Show();
  2091. }
  2092. finally
  2093. {
  2094. this.Cursor = Cursors.Default;
  2095. }
  2096. }
  2097. //检验委托单
  2098. private void RepLimsPortCheckConsignOrder(UltraGrid ultraGrid)
  2099. {
  2100. try
  2101. {
  2102. this.Cursor = Cursors.WaitCursor;
  2103. UltraGridRow ugr = ultraGrid.ActiveRow;
  2104. if (ugr == null)
  2105. {
  2106. MessageUtil.ShowWarning("请选择您要打印的炉号!");
  2107. return;
  2108. }
  2109. string strID = ugr.Cells["ID"].Text.Trim();
  2110. string strLOT_NO = ugr.Cells["LOT_NO"].Text.Trim();
  2111. string strJUDGE_STOVE_NO = ugr.Cells["JUDGE_STOVE_NO"].Text.Trim();
  2112. string checkNo = ugr.Cells["CHECK_NO"].Text.Trim();
  2113. string strurl = "";
  2114. //if (ob.MainUrl.StartsWith("http://127.0.0.1"))
  2115. //{
  2116. // strurl = "http://localhost:8075/WebReport/ReportServer?reportlet=RepLimsPortCheckConsignOrder.cpt&bypagesize=false" + "&ID=" + strID + "&LOT_NO=" + strLOT_NO + "&JUDGE_STOVE_NO=" + strJUDGE_STOVE_NO;
  2117. //}
  2118. //else
  2119. //{
  2120. strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepLimsPortCheckConsignOrder.cpt&&format=pdf&__embed__=true" + "&CHECK_NO=" + checkNo;
  2121. //}
  2122. FrmRepExcel fBug = new FrmRepExcel(ob, strurl);
  2123. fBug.AutoSize = true;
  2124. fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  2125. fBug.WindowState = FormWindowState.Maximized;
  2126. fBug.Text = "检验委托单";
  2127. fBug.Show();
  2128. }
  2129. finally
  2130. {
  2131. this.Cursor = Cursors.Default;
  2132. }
  2133. }
  2134. #region 未委托数据页
  2135. private void ultraGrid11_AfterRowActivate(object sender, EventArgs e)
  2136. {
  2137. string blType = "";
  2138. portMilShowBase3.ShowBaseInfo(ultraGrid11.ActiveRow);
  2139. QuerySampleInfo();
  2140. if (ultraGrid11.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim() == "")
  2141. {
  2142. dataTable13.Rows.Clear();
  2143. dataTable14.Rows.Clear();
  2144. dataTable15.Rows.Clear();
  2145. return;
  2146. }
  2147. //QueryGetSampleReq_Desgin_Process(portMilShowBase3, ultraGrid11);//查询工序点是否经过成分和理化
  2148. blType = doQueryBltype(ultraGrid11.ActiveRow.Cells["PRO_PLAN_ID"].Text.Trim(), ultraGrid11.ActiveRow.Cells["GX_PLAN_NO"].Text.Trim());
  2149. QueryGetSampleReqDetail();//查询理化项目明细和成分项目明细
  2150. QueryGetSampleReq(portMilShowBase3, ultraGrid11, dataTable14, ultraGrid14);//通过轧管合同号找取样要求
  2151. }
  2152. /// <summary>
  2153. /// 查询备料类型
  2154. /// </summary>
  2155. /// <returns></returns>
  2156. private string doQueryBltype(string proPlanId,string gxPlanNo)
  2157. {
  2158. string bltype = "";
  2159. DataTable ds = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.doQueryBltype", new object[] { proPlanId, gxPlanNo }, ob);
  2160. if (ds.Rows.Count > 0)
  2161. {
  2162. bltype = ds.Rows[0]["BLTYPE"].ToString();
  2163. }
  2164. return bltype;
  2165. }
  2166. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  2167. {
  2168. switch (e.Tool.Key.ToString())
  2169. {
  2170. case "AddPhy":
  2171. AddPhyItems();
  2172. break;
  2173. }
  2174. }
  2175. //增加理化检验项目
  2176. private void AddPhyItems()
  2177. {
  2178. FrmBaseSelectItems _selectItems = new FrmBaseSelectItems(this.ob);//0810
  2179. _selectItems.DtSelectPhySampleCode = m_dtSelectPhySampleCode;
  2180. _selectItems.DtSelectPhyMin = m_dtSelectPhyMin;
  2181. _selectItems.DtSelectPhyR = m_dtSelectPhyR;
  2182. _selectItems.DtSelectSampleKey = m_dtSelectSampleKey;
  2183. _selectItems.ShowDialog();
  2184. //!!!PHY_CODE_MIN 检验大项 PHY_CODE_MAX 试样组 PHY_CODE检验报出项
  2185. m_dtSelectPhySampleCode = _selectItems.DtSelectPhySampleCode;//PHY_CODE_MAX C0001 PHY_CODE_MIN R0001
  2186. m_dtSelectPhyMin = _selectItems.DtSelectPhyMin;//PHY_CODE_MAX C0001 PHY_CODE_MIN R0001 PHY_CODE P0001
  2187. m_dtSelectPhyR = _selectItems.DtSelectPhyR;//PHY_CODE_MAX C0001 PHY_CODE_MIN R0001 ITEM_CODE_F ITEM_CODE_W ITEM_CODE_C
  2188. m_dtSelectSampleKey = _selectItems.DtSelectSampleKey;//PHY_CODE_MAX C0001 PHY_CODE_MIN R0001 SAMPLE_KEY ITEM_CODE_F ITEM_CODE_W ITEM_CODE_C
  2189. AddColumns(4, m_dtSelectSampleKey, dataTable12);//把选中的大项增加到publicUltraGridDetail1.DataTable
  2190. }
  2191. /// <summary>
  2192. /// 增加列
  2193. /// </summary>
  2194. /// <param name="dt"></param>源DataTable
  2195. /// <param name="dataTable"></param>需要增加的DataTable
  2196. public void AddColumns(int startNum, DataTable dt, DataTable dataTable)
  2197. {
  2198. if (dt != null && dt.Rows.Count > 0)
  2199. {
  2200. ultraGrid12.UpdateData();
  2201. int dcNum = dataTable.Columns.Count;//清除列
  2202. if (dcNum > startNum)//判断此列是否为空,如果不为空则不清除
  2203. {
  2204. bool isClear;
  2205. string strClear = "";//需要清除列拼接
  2206. foreach (DataColumn dCol in dataTable.Columns)
  2207. {
  2208. if (dataTable.Columns.IndexOf(dCol) < startNum)
  2209. {
  2210. continue;
  2211. }
  2212. isClear = true;
  2213. foreach (DataRow drR in dt.Rows)
  2214. {
  2215. //20151118 PHY_CODE_MAX 换成SAMPLE_KEY
  2216. if (drR["SAMPLE_KEY"].ToString() == dCol.ColumnName)
  2217. {
  2218. isClear = false;
  2219. break;
  2220. }
  2221. }
  2222. if (isClear == true)
  2223. {
  2224. strClear += dCol.ColumnName + " ";
  2225. //break;
  2226. }
  2227. }
  2228. if (strClear != "")
  2229. {
  2230. string[] arr = strClear.Split(' ');
  2231. for (int i = 0; i < arr.Length - 1; i++)
  2232. {
  2233. if (dataTable.Columns.Contains(arr[i]))
  2234. {
  2235. dataTable.Columns.Remove(arr[i]);
  2236. }
  2237. }
  2238. }
  2239. }
  2240. DataColumn dc;
  2241. foreach (DataRow dr in dt.Rows)//增加列
  2242. {
  2243. try
  2244. {
  2245. //dc = new DataColumn(dr["PHY_CODE_MAX"].ToString());
  2246. //dc.Caption = dr["PHY_NAME_MAX"].ToString();
  2247. dc = new DataColumn(dr["SAMPLE_KEY"].ToString());
  2248. dc.Caption = dr["SAMPLE_KEY_DESC"].ToString();
  2249. dataTable.Columns.Add(dc);
  2250. }
  2251. catch
  2252. {
  2253. continue;
  2254. }
  2255. }
  2256. }
  2257. else
  2258. {
  2259. for (int i = startNum; i < dataTable12.Columns.Count; i++)
  2260. {
  2261. dataTable12.Columns.RemoveAt(i);
  2262. }
  2263. }
  2264. ultraGrid12.DataBind();//dataTable发生变化提交给ultraGrid
  2265. GridHelper.RefreshAndAutoSize(ultraGrid12);
  2266. }
  2267. //自适应
  2268. private void RefreshAutoSize(int num)
  2269. {
  2270. if (num < 0)
  2271. {
  2272. return;
  2273. }
  2274. //ultraGrid12.DisplayLayout.Bands[0].Columns[0].Width = 80;
  2275. for (int i = num; i < ultraGrid12.DisplayLayout.Bands[0].Columns.Count; i++)
  2276. {
  2277. ultraGrid12.DisplayLayout.Bands[0].Columns[i].Width = 60;//设置列宽
  2278. }
  2279. }
  2280. private void QuerySampleInfo()
  2281. {
  2282. try
  2283. {
  2284. dataTable12.Rows.Clear();
  2285. //查询已录入性能批号+样管号
  2286. string strLOT_NO = ultraGrid11.ActiveRow.Cells["LOT_NO"].Text.Trim();//生产批号
  2287. string strSTOVE_NO = ultraGrid11.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();//炉号
  2288. string strID = ultraGrid11.ActiveRow.Cells["ID"].Text.Trim();//炉号
  2289. ArrayList arrayList = new ArrayList();
  2290. arrayList.Add(strLOT_NO);
  2291. arrayList.Add(strSTOVE_NO);
  2292. arrayList.Add(strID);//条件
  2293. DataTable dtBATCH_NO = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QuerySampleInfo",
  2294. new Object[] { arrayList }, ob);
  2295. if (dtBATCH_NO == null || dtBATCH_NO.Rows.Count == 0)
  2296. {
  2297. return;
  2298. }
  2299. GridHelper.CopyDataToDatatable(dtBATCH_NO, dataTable12, true);
  2300. GridHelper.RefreshAndAutoSize(ultraGrid12);
  2301. }
  2302. catch (Exception e)
  2303. {
  2304. MessageUtil.ShowWarning(e.Message);
  2305. return;
  2306. }
  2307. }
  2308. private void ultraGrid12_ClickCell(object sender, ClickCellEventArgs e)
  2309. {
  2310. if (e.Cell.Column.Key != "BATCH_NO" && e.Cell.Column.Key != "PIPE_NO" && e.Cell.Column.Key != "SAMPLE_PIPE_LEN")
  2311. {
  2312. if (e.Cell.Text.Trim() == "")
  2313. {
  2314. e.Cell.Value = "√";
  2315. }
  2316. else
  2317. {
  2318. e.Cell.Value = "";
  2319. }
  2320. }
  2321. }
  2322. //查询成分和理化是否监制
  2323. private string[] QueryGetPrdceReq()
  2324. {
  2325. string[] arr = new string[2];
  2326. try
  2327. {
  2328. ArrayList arrayList = new ArrayList();
  2329. string strCONTRACT_NO = ultraGrid11.ActiveRow.Cells["CONTRACT_NO"].Text.Trim();
  2330. arrayList.Add(strCONTRACT_NO.Substring(strCONTRACT_NO.IndexOf('/') + 1).PadLeft(3, '0'));
  2331. arrayList.Add(strCONTRACT_NO.Substring(0, strCONTRACT_NO.IndexOf('/')));
  2332. DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetPrdceReq",
  2333. new Object[] { arrayList }, ob);
  2334. if (dt != null && dt.Rows.Count > 0)
  2335. {
  2336. foreach (DataRow dr in dt.Rows)
  2337. {
  2338. if (dr["STATION_CODE"].ToString() == "40230" || dr["STATION_DESC"].ToString() == "成品成分")
  2339. {
  2340. arr[0] = "监制";
  2341. }
  2342. else
  2343. {
  2344. arr[1] = "监制";
  2345. }
  2346. }
  2347. }
  2348. }
  2349. catch (Exception e)
  2350. {
  2351. MessageUtil.ShowWarning(e.Message);
  2352. }
  2353. return arr;
  2354. }
  2355. //查询理化项目明细和成分项目明细
  2356. private void QueryGetSampleReqDetail()
  2357. {
  2358. try
  2359. {
  2360. ArrayList arrayList = new ArrayList();
  2361. ArrayList aryList = new ArrayList();
  2362. //string strORD_LN_DLY_PK = ultraGrid11.ActiveRow.Cells["ORD_LN_DLY_PK"].Text.Trim();
  2363. ////arrayList.Add(strORD_LN_DLY_PK.Substring(strORD_LN_DLY_PK.IndexOf('-') + 1));
  2364. //arrayList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-')-3));
  2365. //string gradeName = ultraGrid11.ActiveRow.Cells["GRADENAME"].Text.Trim();
  2366. //aryList.Add(gradeName);
  2367. //aryList.Add(strORD_LN_DLY_PK.Substring(0, strORD_LN_DLY_PK.IndexOf('-') - 3));
  2368. string proPlanId = ultraGrid11.ActiveRow.Cells["PRO_PLAN_ID"].Text.Trim();
  2369. string gxPlanNo = ultraGrid11.ActiveRow.Cells["GX_PLAN_NO"].Text.Trim();
  2370. aryList.Add(proPlanId);
  2371. aryList.Add(gxPlanNo);
  2372. arrayList.Add(proPlanId);
  2373. arrayList.Add(gxPlanNo);
  2374. DataTable dtChem = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReqDetail_Chem",
  2375. new Object[] { aryList }, ob);
  2376. DataColumn dc;
  2377. if (dtChem == null || dtChem.Rows.Count == 0)
  2378. {
  2379. dataTable13.Rows.Clear();
  2380. this.ultraGrid12.DisplayLayout.Bands[0].Columns["HX"].Hidden = true;
  2381. }
  2382. else
  2383. {
  2384. this.ultraGrid12.DisplayLayout.Bands[0].Columns["HX"].Hidden = false;
  2385. }
  2386. GridHelper.CopyDataToDatatable(dtChem, dataTable13, true);
  2387. GridHelper.RefreshAndAutoSize(ultraGrid13);
  2388. DataTable dtPhy = PublicServer.GetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.QueryGetSampleReqDetail_Phy",
  2389. new Object[] { arrayList }, ob);
  2390. if (dtPhy == null || dtPhy.Rows.Count == 0)
  2391. {
  2392. dataTable15.Rows.Clear();
  2393. if (m_dtSelectPhySampleCode != null)
  2394. {
  2395. m_dtSelectPhySampleCode.Rows.Clear();
  2396. }
  2397. if (m_dtSelectPhyMin != null)
  2398. {
  2399. m_dtSelectPhyMin.Rows.Clear();
  2400. }
  2401. if (m_dtSelectPhyR != null)
  2402. {
  2403. m_dtSelectPhyR.Rows.Clear();
  2404. }
  2405. if (m_dtSelectSampleKey != null)
  2406. {
  2407. m_dtSelectSampleKey.Rows.Clear();
  2408. }
  2409. for (int i = 4; i < dataTable12.Columns.Count; i++)
  2410. {
  2411. dataTable12.Columns.RemoveAt(i);//删除多余的列
  2412. }
  2413. return;
  2414. }
  2415. GridHelper.CopyDataToDatatable(dtPhy, dataTable15, true);
  2416. GridHelper.RefreshAndAutoSize(ultraGrid15);
  2417. m_dtSelectPhyMin = dtPhy.Copy();//查询出的检验项只赋值已选择检验项
  2418. }
  2419. catch (Exception e)
  2420. {
  2421. MessageUtil.ShowWarning(e.Message);
  2422. }
  2423. }
  2424. //获取检验委托基本信息
  2425. public ArrayList GetCheckConsignBase(UltraGrid ultraGrid, string strJZ)
  2426. {
  2427. ArrayList al = new ArrayList();
  2428. al.Add(ultraGrid.ActiveRow.Cells["LOT_NO"].Text.Trim());//LOT_NO
  2429. al.Add(ultraGrid.ActiveRow.Cells["STOVE_NO"].Text.Trim());//STOVE_NO
  2430. al.Add(ultraGrid.ActiveRow.Cells["PLINE_CODE"].Text.Trim());//HEAT_NO
  2431. al.Add(ultraGrid.ActiveRow.Cells["JUDGE_STOVE_NO_DESC"].Text.Trim());//HEAT_NO
  2432. al.Add(ultraGrid.ActiveRow.Cells["STEELNAME"].Text.Trim());//钢级 STEEL_GRADE
  2433. al.Add(ultraGrid.ActiveRow.Cells["GRADENAME"].Text.Trim());//钢号 STEEL_NO
  2434. al.Add(ultraGrid.ActiveRow.Cells["VARIETIES"].Text.Trim());//品名 PRODUCT_NAME
  2435. al.Add(ultraGrid.ActiveRow.Cells["IMP_PROCESS"].Text.Trim());//执行工艺 CRAFT_FILE_NO
  2436. al.Add(ultraGrid.ActiveRow.Cells["CRAFT_PATH"].Text.Trim());//工艺文件路径
  2437. al.Add(ultraGrid.ActiveRow.Cells["PRODUCE_STANDRAD"].Text.Trim());//产品标准 PRODUCT_STD
  2438. al.Add(ultraGrid.ActiveRow.Cells["CONTRACT_NO"].Text.Trim());// CONTRACT_NO
  2439. string strPIPE_SIZE = ultraGrid.ActiveRow.Cells["PIPE_SIZE"].Text.Trim();
  2440. if (strPIPE_SIZE.IndexOf("*") >= 0)
  2441. {
  2442. al.Add(strPIPE_SIZE.Substring(0, strPIPE_SIZE.IndexOf("*")));//规格 外径*壁厚
  2443. al.Add(strPIPE_SIZE.Substring(strPIPE_SIZE.IndexOf("*") + 1));
  2444. }
  2445. else
  2446. {
  2447. al.Add("");
  2448. al.Add("");
  2449. }
  2450. al.Add(ultraGrid.ActiveRow.Cells["BUCKLE_TYPE"].Text.Trim()); //扣型
  2451. al.Add(ultraGrid.ActiveRow.Cells["PROCESS_STATUS"].Text.Trim()); //工艺状态
  2452. al.Add(UserInfo.GetUserName());//委托单位取样人
  2453. al.Add(DateTime.Now.ToString());//委托人取样时间
  2454. al.Add(UserInfo.GetDepartment());//委托单位 CONSIGN_DEPT
  2455. al.Add(UserInfo.GetUserName());//委托人
  2456. al.Add(UserInfo.GetUserName());//委托单位送样人
  2457. al.Add("0"); //是否监制--监制信息如何读取 "0"不监制
  2458. al.Add("");//特殊要求
  2459. al.Add("1");//默认委托单位已送样
  2460. al.Add(txtREMARK.Text);//备注
  2461. return al;
  2462. }
  2463. //获取勾选的元素
  2464. public ArrayList GetCheckChem()
  2465. {
  2466. ArrayList al = new ArrayList();
  2467. string chemONH = "";
  2468. string chemItems = "";
  2469. ArrayList alchem = new ArrayList();
  2470. if (dataTable13.Rows.Count > 0)
  2471. {
  2472. foreach (DataRow dr in dataTable13.Rows)
  2473. {
  2474. if ("ONH".IndexOf(dr["CHEM_NAME"].ToString()) >= 0)
  2475. {
  2476. chemONH += dr["CHEM_NAME"].ToString() + " ";
  2477. }
  2478. else
  2479. {
  2480. chemItems += dr["CHEM_NAME"].ToString() + " ";
  2481. }
  2482. }
  2483. }
  2484. alchem.Add(chemItems);
  2485. alchem.Add(chemONH);
  2486. al.Add(alchem);
  2487. return al;
  2488. }
  2489. //增加检验委托
  2490. private void AddCheckConsign()
  2491. {
  2492. try
  2493. {
  2494. if (ultraGrid11.ActiveRow == null || ultraGrid11.ActiveRow.Activated == false)
  2495. {
  2496. return;
  2497. }
  2498. if (dataTable12 == null || dataTable12.Rows.Count == 0)
  2499. {
  2500. MessageUtil.ShowWarning("没有取样要求明细不能生成委托!");
  2501. return;
  2502. }
  2503. string strAddChem = isValid();
  2504. if (strAddChem != "")
  2505. {
  2506. MessageUtil.ShowWarning(strAddChem);
  2507. return;
  2508. }
  2509. //if (portMilShowBase3.StrIsPhy == "是" && (m_dtSampleReqDetail == null || m_dtSampleReqDetail.Rows.Count == 0))
  2510. //{
  2511. // MessageUtil.ShowWarning("没有对应的检验项不能生成委托!");
  2512. // return;
  2513. //}
  2514. if (MessageUtil.ShowYesNoAndQuestion("是否确认新增?") == DialogResult.Yes)
  2515. {
  2516. string[] arr = QueryGetPrdceReq();//查询是否监制
  2517. ultraGrid12.UpdateData();
  2518. string strSIMPLE_PROCESS = ultraGrid11.ActiveRow.Cells["SIMPLE_PROCESS"].Text.Trim();
  2519. string strID = ultraGrid11.ActiveRow.Cells["ID"].Text.Trim();//id SIMPLE_PROCESS
  2520. string strLOT_NO = ultraGrid11.ActiveRow.Cells["LOT_NO"].Text.Trim();//批号
  2521. string strJUDGE_STOVE_NO_DESC = ultraGrid11.ActiveRow.Cells["JUDGE_STOVE_NO_DESC"].Text.Trim();//判定炉号
  2522. string strJUDGE_STOVE_NO = ultraGrid11.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();
  2523. string strSTOVE_NO = ultraGrid11.ActiveRow.Cells["STOVE_NO"].Text.Trim();
  2524. string strPline = ultraGrid11.ActiveRow.Cells["PLINE_CODE"].Text.Trim();
  2525. string strCHECK_NO = strPline + strJUDGE_STOVE_NO_DESC;//产线+炉号+流水
  2526. ArrayList alAll = new ArrayList();//整体list,插入几个表增加几个List
  2527. ArrayList alBase = new ArrayList();//基础表list
  2528. ArrayList alDetail = new ArrayList();//检验信息详细表list
  2529. ArrayList alPhyDetail = new ArrayList();//理化信息list
  2530. ArrayList alChemDetail = new ArrayList();//化学信息list
  2531. ArrayList alBaseParams = new ArrayList();//基础表参数list
  2532. ArrayList alDetailParams = new ArrayList();//检验信息详细表参数list
  2533. ArrayList alPhyDetailParams = new ArrayList();//理化信息参数list
  2534. ArrayList alChemDetailParams = new ArrayList();//化学信息参数list
  2535. alBase.Add(GetCheckConsignBase(ultraGrid11, (arr[0] != "" || arr[1] != "" ? "1" : "0")));//增加基础表参数
  2536. string strPHY_CODE_MAX = "";
  2537. string strPHY_NAME_MAX = "";
  2538. DataRow[] arrAddMax = null;//存放试样信息
  2539. DataRow[] arrAddMin = null;
  2540. ArrayList al = GetCheckChem();
  2541. int sampleSeq = 0;//加入序号标示第几个试样
  2542. int k = 0;//材质序号
  2543. foreach (DataRow dr in dataTable12.Rows)
  2544. {
  2545. sampleSeq++;
  2546. foreach (DataColumn dc in dataTable12.Columns)
  2547. {
  2548. if (dc.ColumnName != "BATCH_NO" && dc.ColumnName != "PIPE_NO" && dc.ColumnName != "SAMPLE_PIPE_LEN" && dr[dc.ColumnName].ToString().Trim() != "")
  2549. {
  2550. strPHY_CODE_MAX = dc.ColumnName;//strSAMPLE_KEY
  2551. strPHY_NAME_MAX = dc.Caption.Trim();
  2552. if (strPHY_CODE_MAX == "HX")
  2553. {
  2554. if (((ArrayList)al[0])[0].ToString() != "")
  2555. {
  2556. alDetailParams = new ArrayList();//增加明细表参数
  2557. //alDetailParams.Add(strCHECK_NO);//检验编号
  2558. //alDetailParams.Add(strSAMPLE_NO);//试样号服务端生成
  2559. //alDetailParams.Add(strSAMPLE_NO_MIN);//钢印号服务端生成
  2560. alDetailParams.Add(sampleSeq.ToString());
  2561. alDetailParams.Add(dr["BATCH_NO"].ToString().Trim());//性能批号
  2562. alDetailParams.Add(strPline + DateTime.Now.ToString("yy") + dr["PIPE_NO"].ToString() + "A");//试样条形码SAMPLE_BARCODE
  2563. alDetailParams.Add(dr["SAMPLE_PIPE_LEN"].ToString().Trim());//试样长度
  2564. alDetailParams.Add("HX");//大项
  2565. alDetailParams.Add(((ArrayList)al[0])[0].ToString());
  2566. alDetailParams.Add("002001007010");//部门DEPT_ID
  2567. alDetailParams.Add("1");//样条数
  2568. alDetailParams.Add("");//试验标准STD_NAME_TEST
  2569. alDetailParams.Add("");//LENGTH
  2570. alDetailParams.Add("");//WIDTH
  2571. alDetailParams.Add("");//试样编码SPLINE_NO
  2572. alDetailParams.Add("");//试验方向
  2573. alDetailParams.Add("");//名义规格
  2574. alDetailParams.Add("0");//是否热处理
  2575. alDetailParams.Add((arr[0] != null && arr[0] != "") ? "1" : "0");//是否监制
  2576. alDetail.Add(alDetailParams);//增加明细表参数List
  2577. }
  2578. if (((ArrayList)al[0])[1].ToString() != "")
  2579. {
  2580. alDetailParams = new ArrayList();
  2581. //alDetailParams.Add(strCHECK_NO);//检验编号
  2582. //alDetailParams.Add(strSAMPLE_NO);//试样号服务端生成
  2583. //alDetailParams.Add(strSAMPLE_NO_MIN);//试样号服务端生成
  2584. alDetailParams.Add(sampleSeq.ToString());
  2585. alDetailParams.Add(dr["BATCH_NO"].ToString().Trim());//性能批号
  2586. alDetailParams.Add(strPline + DateTime.Now.ToString("yy") + dr["PIPE_NO"].ToString() + "A");//试样条形码SAMPLE_BARCODE
  2587. alDetailParams.Add(dr["SAMPLE_PIPE_LEN"].ToString().Trim());//试样长度
  2588. alDetailParams.Add("ONH");
  2589. alDetailParams.Add(((ArrayList)al[0])[1].ToString());
  2590. alDetailParams.Add("002001007010");//部门DEPT_ID 一快分 二快分002001020001,002001020002
  2591. alDetailParams.Add("1");//样条数
  2592. alDetailParams.Add("");//试验标准STD_NAME_TEST
  2593. alDetailParams.Add("");//LENGTH
  2594. alDetailParams.Add("");//WIDTH
  2595. alDetailParams.Add("");//试样编码SPLINE_NO
  2596. alDetailParams.Add("");//试验方向
  2597. alDetailParams.Add("");//名义规格
  2598. alDetailParams.Add("0");//
  2599. alDetailParams.Add((arr[0] != null && arr[0] != "") ? "1" : "0");
  2600. alDetail.Add(alDetailParams);//增加明细表参数List
  2601. }
  2602. if (dataTable13 != null && dataTable13.Rows.Count > 0)
  2603. {
  2604. if (dataTable13.Rows.Count > 0)
  2605. {
  2606. foreach (DataRow drs in dataTable13.Rows)
  2607. {
  2608. alChemDetailParams = new ArrayList();//增加化学明细表参数
  2609. //alChemDetailParams.Add(strCHECK_NO);
  2610. //alChemDetailParams.Add(dr["SAMPLE_NO"].ToString().Trim());
  2611. alChemDetailParams.Add(sampleSeq.ToString());
  2612. alChemDetailParams.Add(drs["CHEM_CODE"].ToString().Trim());
  2613. alChemDetailParams.Add(drs["CHEM_NAME"].ToString().Trim());
  2614. alChemDetailParams.Add(drs["ISCHECK"].ToString().Trim());
  2615. alChemDetailParams.Add(drs["ISJUDGE"].ToString().Trim());
  2616. alChemDetailParams.Add(drs["ISQUOTE"].ToString().Trim());
  2617. alChemDetailParams.Add(drs["STDMIN_SIGN"].ToString().Trim());
  2618. alChemDetailParams.Add(drs["STDMIN"].ToString().Trim());
  2619. alChemDetailParams.Add(drs["STDMAX_SIGN"].ToString().Trim());
  2620. alChemDetailParams.Add(drs["STDMAX"].ToString().Trim());
  2621. alChemDetailParams.Add(drs["STDTARGET"].ToString().Trim());
  2622. alChemDetail.Add(alChemDetailParams);
  2623. }
  2624. }
  2625. }
  2626. }
  2627. else
  2628. {
  2629. if (m_dtSelectSampleKey != null && m_dtSelectSampleKey.Rows.Count > 0)
  2630. {
  2631. if (m_dtSelectPhyMin != null && m_dtSelectPhyMin.Rows.Count > 0)
  2632. {
  2633. arrAddMin = m_dtSelectPhyMin.Select("PHY_CODE_MAX = '" + strPHY_CODE_MAX.Substring(0, 5) + "'");//筛选符合条件的小项
  2634. }
  2635. alDetailParams = new ArrayList();
  2636. //alDetailParams.Add(strCHECK_NO);//检验编号
  2637. //alDetailParams.Add(strSAMPLE_NO);//试样号服务端生成
  2638. //alDetailParams.Add(strSAMPLE_NO_MIN);//试样号服务端生成
  2639. alDetailParams.Add(sampleSeq.ToString());
  2640. alDetailParams.Add(dr["BATCH_NO"].ToString().Trim());//性能批号
  2641. alDetailParams.Add(strPline + DateTime.Now.ToString("yy") + dr["PIPE_NO"].ToString() + "A");//试样条形码SAMPLE_BARCODE
  2642. alDetailParams.Add(dr["SAMPLE_PIPE_LEN"].ToString().Trim());//试样长度
  2643. alDetailParams.Add(strPHY_CODE_MAX);
  2644. alDetailParams.Add(strPHY_NAME_MAX);
  2645. arrAddMax = m_dtSelectSampleKey.Select("SAMPLE_KEY = '" + strPHY_CODE_MAX + "'");//从查出来的取样码中筛选符合条件的试样信息
  2646. if (arrAddMax != null && arrAddMax.Length > 0)
  2647. {
  2648. alDetailParams.Add(arrAddMax[0]["DEPT_ID"].ToString());
  2649. alDetailParams.Add(arrAddMax[0]["SAMPLE_COUNT"].ToString());//样条数
  2650. alDetailParams.Add(arrAddMax[0]["STD_NAME_TEST"].ToString());//试验标准STD_NAME_TEST
  2651. alDetailParams.Add(arrAddMax[0]["LENGTH"].ToString());//LENGTH
  2652. alDetailParams.Add(arrAddMax[0]["WIDTH"].ToString());//WIDTH
  2653. alDetailParams.Add(arrAddMax[0]["SPLINE_NO"].ToString());//试样编码SPLINE_NO
  2654. alDetailParams.Add(arrAddMax[0]["PHY_DIR"].ToString());//试验方向
  2655. alDetailParams.Add(arrAddMax[0]["SIZE_DESC"].ToString());//名义规格
  2656. alDetailParams.Add((arrAddMin != null && arrAddMin.Length > 0) ? arrAddMin[0]["BILLET_SAMPLE"].ToString().Trim() : "0");//坯样热处理和是否监制
  2657. alDetailParams.Add((arr[1] != null && arr[1] != "") ? "1" : "0");
  2658. //alDetailParams.Add(arrAddMax[0]["DESC_COUNT"].ToString());//取样数量(毛样)
  2659. //alDetailParams.Add(arrAddMax[0]["DESC_POSITION"].ToString());//取样位置
  2660. //alDetailParams.Add(arrAddMax[0]["SAMPLE_COUNT"].ToString());//样条个数
  2661. }
  2662. else
  2663. {
  2664. alDetailParams.Add("");//部门 DEPT_ID
  2665. alDetailParams.Add("");//样条数
  2666. alDetailParams.Add("");//试验标准STD_NAME_TEST
  2667. alDetailParams.Add("");//LENGTH
  2668. alDetailParams.Add("");//WIDTH
  2669. alDetailParams.Add("");//试样编码SPLINE_NO
  2670. alDetailParams.Add("");//试验方向
  2671. alDetailParams.Add("");//名义规格
  2672. alDetailParams.Add("0");//坯样热处理和是否监制
  2673. alDetailParams.Add((arr[1] != null && arr[1] != "") ? "1" : "0");
  2674. //alDetailParams.Add("");//取样数量(毛样)
  2675. //alDetailParams.Add("");//取样位置
  2676. //alDetailParams.Add("");//样条个数
  2677. }
  2678. alDetail.Add(alDetailParams);//增加明细表参数List
  2679. if (arrAddMin != null && arrAddMin.Length > 0)
  2680. {
  2681. foreach (DataRow drR in arrAddMin)
  2682. {
  2683. k++;
  2684. alPhyDetailParams = new ArrayList();
  2685. //alPhyDetailParams.Add(strCHECK_NO);
  2686. //alPhyDetailParams.Add(strSAMPLE_NO);
  2687. alPhyDetailParams.Add(sampleSeq.ToString());
  2688. alPhyDetailParams.Add(dr["BATCH_NO"].ToString().Trim());//性能批号
  2689. alPhyDetailParams.Add(k.ToString());//材质序号
  2690. alPhyDetailParams.Add(drR["DEPT_ID"].ToString().Trim());
  2691. alPhyDetailParams.Add(strPHY_CODE_MAX);//SAMPLE_KEY
  2692. alPhyDetailParams.Add(strPHY_NAME_MAX);//SAMPLE_KEY_DESC
  2693. alPhyDetailParams.Add(drR["PHY_CODE_MIN"].ToString());//大项代码
  2694. alPhyDetailParams.Add(drR["PHY_NAME_MIN"].ToString());//大项描述
  2695. alPhyDetailParams.Add(drR["PHY_CODE"].ToString());//检验项代码
  2696. alPhyDetailParams.Add(drR["PHY_NAME"].ToString());//检验项描述
  2697. alPhyDetailParams.Add(drR["PHY_UNIT"].ToString());//值单位
  2698. alPhyDetailParams.Add(drR["ITEM_CODE_F"].ToString());//方向代码
  2699. alPhyDetailParams.Add(drR["ITEM_NAME_F"].ToString());//方向描述
  2700. alPhyDetailParams.Add(drR["ITEM_CODE_W"].ToString());//温度代码
  2701. alPhyDetailParams.Add(drR["ITEM_NAME_W"].ToString());//温度描述
  2702. alPhyDetailParams.Add(drR["ITEM_CODE_C"].ToString());//尺寸代码
  2703. alPhyDetailParams.Add(drR["ITEM_NAME_C"].ToString());//尺寸描述
  2704. alPhyDetailParams.Add(drR["ISCHECK"].ToString().Trim());
  2705. alPhyDetailParams.Add(drR["ISJUDGE"].ToString().Trim());
  2706. alPhyDetailParams.Add(drR["ISQUOTE"].ToString().Trim());
  2707. alPhyDetailParams.Add(drR["RESULT_COUNT"].ToString().Trim());
  2708. alPhyDetailParams.Add(drR["STDMIN_SIGN"].ToString().Trim());
  2709. alPhyDetailParams.Add(drR["STDMIN"].ToString().Trim());
  2710. alPhyDetailParams.Add(drR["STDMAX_SIGN"].ToString().Trim());
  2711. alPhyDetailParams.Add(drR["STDMAX"].ToString().Trim());
  2712. alPhyDetailParams.Add(drR["JUDGE_BASIS"].ToString().Trim());
  2713. alPhyDetailParams.Add(drR["STDMEMO"].ToString().Trim());
  2714. alPhyDetailParams.Add(drR["BILLET_SAMPLE"].ToString().Trim());//小样热处理
  2715. alPhyDetail.Add(alPhyDetailParams);
  2716. }
  2717. }
  2718. }
  2719. }
  2720. }
  2721. }
  2722. }
  2723. alAll.Add(alBase);
  2724. //alAll.Add(alJg);
  2725. alAll.Add(alDetail);
  2726. alAll.Add(alPhyDetail);
  2727. alAll.Add(alChemDetail);
  2728. ArrayList alPlan = new ArrayList();
  2729. ArrayList alPlanParams = new ArrayList();//更改状态位
  2730. alPlanParams.Add(strSIMPLE_PROCESS);
  2731. alPlanParams.Add(portMilShowBase2.StrBATCH_MAX);//最大批数
  2732. alPlanParams.Add("3");
  2733. alPlanParams.Add("2");
  2734. alPlanParams.Add(strLOT_NO);
  2735. alPlanParams.Add(strJUDGE_STOVE_NO);//判定炉号
  2736. alPlanParams.Add(strID);
  2737. alPlan.Add(alPlanParams);
  2738. alAll.Add(alPlan);
  2739. string strSampleCode = ultraGrid11.ActiveRow.Cells["SPLINE_DESC"].Text.Trim();//试样号首字母
  2740. PublicServer.SetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.AddCheckConsign1",
  2741. new Object[] { alAll, strPline + strJUDGE_STOVE_NO_DESC, strSampleCode }, this.ob);
  2742. QueryLotNoAndStoveNo(dataTable11, ultraGrid11, "2");
  2743. MessageUtil.ShowTips("新增委托成功!");
  2744. }
  2745. }
  2746. catch (Exception e)
  2747. {
  2748. MessageUtil.ShowWarning(e.Message);
  2749. return;
  2750. }
  2751. }
  2752. //委托是否有效
  2753. private string isValid()
  2754. {
  2755. ultraGrid12.UpdateData();
  2756. bool isHaveItems = false;
  2757. foreach (UltraGridRow ur in ultraGrid12.Rows)
  2758. {
  2759. isHaveItems = false;
  2760. foreach (UltraGridColumn uc in ultraGrid12.DisplayLayout.Bands[0].Columns)
  2761. {
  2762. if (uc.Key != "BATCH_NO" && uc.Key != "PIPE_NO" && uc.Key != "SAMPLE_PIPE_LEN")
  2763. {
  2764. if (ur.Cells[uc.Key].Text.Trim() != "")
  2765. {
  2766. isHaveItems = true;
  2767. }
  2768. }
  2769. }
  2770. if (isHaveItems == false)
  2771. {
  2772. return "批号:" + ur.Cells["BATCH_NO"].Text.Trim() + ",样管号:" + ur.Cells["PIPE_NO"].Text.Trim() + "没有选择检验项目!";
  2773. }
  2774. }
  2775. return "";
  2776. }
  2777. #endregion
  2778. #region 已委托数据页
  2779. private void DeleteCheckConsign()
  2780. {
  2781. try
  2782. {
  2783. if (ultraTabControl1.SelectedTab.Index != 3)
  2784. {
  2785. MessageUtil.ShowWarning("只有在已委托数据页才能进行取消委托操作!");
  2786. return;
  2787. }
  2788. if (ultraGrid16.ActiveRow == null || ultraGrid16.ActiveRow.Activated == false)
  2789. {
  2790. MessageUtil.ShowWarning("请点击选择一条需要取消委托的信息!");
  2791. return;
  2792. }
  2793. if (MessageUtil.ShowYesNoAndQuestion("是否确认取消?") == DialogResult.Yes)
  2794. {
  2795. string strSIMPLE_PROCESS = ultraGrid16.ActiveRow.Cells["SIMPLE_PROCESS"].Text.Trim();
  2796. string strID = ultraGrid16.ActiveRow.Cells["ID"].Text.Trim();//id SIMPLE_PROCESS
  2797. string strLOT_NO = ultraGrid16.ActiveRow.Cells["LOT_NO"].Text.Trim();//批号
  2798. string strJUDGE_STOVE_NO = ultraGrid16.ActiveRow.Cells["JUDGE_STOVE_NO"].Text.Trim();
  2799. string strCHECK_NO = ultraGrid16.ActiveRow.Cells["CHECK_NO"].Text.Trim();
  2800. ArrayList all = new ArrayList();
  2801. ArrayList alPlanParams = new ArrayList();//更改状态位
  2802. alPlanParams.Add("");
  2803. alPlanParams.Add(strSIMPLE_PROCESS);
  2804. alPlanParams.Add(portMilShowBase3.StrBATCH_MAX);//最大批数
  2805. alPlanParams.Add("2");
  2806. alPlanParams.Add("3");
  2807. alPlanParams.Add(strLOT_NO);
  2808. alPlanParams.Add(strJUDGE_STOVE_NO);//判定炉号
  2809. alPlanParams.Add(strID);
  2810. ArrayList alConsign = new ArrayList();
  2811. alConsign.Add("0");
  2812. alConsign.Add(strCHECK_NO);
  2813. all.Add(alPlanParams);
  2814. all.Add(alConsign);
  2815. PublicServer.SetData("com.steering.mes.port.mil.FrmMilGetBatchAndSample_Complex.DeleteCheckConsign",
  2816. new Object[] { strCHECK_NO, all }, this.ob);
  2817. QueryLotNoAndStoveNo(dataTable16, ultraGrid16, "3");
  2818. MessageUtil.ShowTips("取消委托成功!");
  2819. }
  2820. }
  2821. catch (Exception e)
  2822. {
  2823. MessageUtil.ShowWarning(e.Message);
  2824. QueryLotNoAndStoveNo(dataTable16, ultraGrid16, "3");
  2825. return;
  2826. }
  2827. }
  2828. #endregion
  2829. private void ultraGrid16_AfterRowActivate(object sender, EventArgs e)
  2830. {
  2831. portMilShowBase4.ShowBaseInfo(ultraGrid16.ActiveRow);
  2832. ArrayList al = new ArrayList();
  2833. al.Add("");
  2834. al.Add(ultraGrid16.ActiveRow.Cells["CHECK_NO"].Text.Trim());
  2835. QueryCheckConsignDetail(al, 5);
  2836. string strHide = "HX,ONH";
  2837. PublicPort.HideNullColumn(strHide, ultraGrid17);
  2838. GridHelper.RefreshAndAutoSize(ultraGrid17);//刷新Grid
  2839. }
  2840. //查询检验委托明细信息
  2841. public void QueryCheckConsignDetail(ArrayList arrayList, int startNum)
  2842. {
  2843. DataTable dt = PublicServer.GetData("com.steering.lims.data.pipe.PublicPipeBase.QueryCheckConsignDetail",
  2844. new Object[] { arrayList }, ob);
  2845. if (dt == null || dt.Rows.Count == 0)
  2846. {
  2847. dataTable17.Rows.Clear();
  2848. int dcNum = dataTable17.Columns.Count;//清除列
  2849. if (dcNum > startNum)
  2850. {
  2851. for (int i = 0; i < dcNum - startNum; i++)
  2852. {
  2853. dataTable17.Columns.RemoveAt(startNum);
  2854. }
  2855. }
  2856. return;
  2857. }
  2858. if (startNum == -1)
  2859. {
  2860. GridHelper.CopyDataToDatatable(dt, dataTable17, true);//把dt复制给dataTable4
  2861. //GridHelper.RefreshAndAutoSize(ultraGrid17);//刷新Grid
  2862. return;
  2863. }
  2864. ShowColumns(startNum, dt, dataTable17);
  2865. string row = "";//存放所有样管号判断是否有重复样管号
  2866. dataTable17.Rows.Clear();//清除行
  2867. DataRow newDr = dataTable17.NewRow();
  2868. foreach (DataRow dr in dt.Rows)
  2869. {
  2870. if (row.IndexOf(dr["SAMPLE_NO"].ToString()) < 0)//判断是否有重复样管号,有则不增加行只增加对应的列
  2871. {
  2872. row += dr["SAMPLE_NO"].ToString() + " ";
  2873. newDr = dataTable17.NewRow();
  2874. newDr["BATCH_NO"] = dr["BATCH_NO"].ToString();
  2875. newDr["SAMPLE_PIPE_LEN"] = dr["SAMPLE_LEN"].ToString();
  2876. newDr["SAMPLE_NO"] = dr["SAMPLE_NO"].ToString();
  2877. newDr[dr["PHY_CODE_MAX"].ToString()] = dr["SAMPLE_COUNT"].ToString();
  2878. dataTable17.Rows.Add(newDr);
  2879. }
  2880. else
  2881. {
  2882. newDr[dr["PHY_CODE_MAX"].ToString()] = dr["SAMPLE_COUNT"].ToString();
  2883. }
  2884. }
  2885. ultraGrid17.DataBind();//dataTable发生变化提交给ultraGrid
  2886. //GridHelper.RefreshAndAutoSize(ultraGrid17);//刷新Grid
  2887. }
  2888. public void ShowColumns(int startNum, DataTable dt, DataTable dataTable)
  2889. {
  2890. if (dt != null && dataTable != null)
  2891. {
  2892. int dcNum = dataTable.Columns.Count;//清除列
  2893. if (dcNum > startNum)
  2894. {
  2895. for (int i = 0; i < dcNum - startNum; i++)
  2896. {
  2897. dataTable.Columns.RemoveAt(startNum);
  2898. }
  2899. }
  2900. foreach (DataRow dr in dt.Rows)//增加列
  2901. {
  2902. try
  2903. {
  2904. DataColumn dc = new DataColumn(dr["PHY_CODE_MAX"].ToString());
  2905. if (dr["PHY_CODE_MAX"].ToString() == "HX")
  2906. {
  2907. dc.Caption = "化学";
  2908. }
  2909. else if (dr["PHY_CODE_MAX"].ToString() == "ONH")
  2910. {
  2911. dc.Caption = "ONH";
  2912. }
  2913. else
  2914. {
  2915. dc.Caption = dr["PHY_NAME_MAX"].ToString();
  2916. }
  2917. dataTable.Columns.Add(dc);
  2918. }
  2919. catch
  2920. {
  2921. continue;
  2922. }
  2923. }
  2924. }
  2925. }
  2926. }
  2927. }