a35c29320984a022b35e59817fbb4f489d67bf5a.svn-base 86 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet type="text/css" href="../../css/body.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>
  6. <![CDATA[热轧非计划发货管理 > 发货处理 > 汽车排车及装车指示(UIJ020300)]]>
  7. </xhtml:title>
  8. <model id="model1">
  9. <instance id="instance1">
  10. <root xmlns="">
  11. <initData/>
  12. <resData/>
  13. <reqData/>
  14. <searchData>
  15. <fromDate/>
  16. <toDate/>
  17. <SHIP_DIRNO/>
  18. <DLIV_TP/>
  19. <SHIP_COMP_NM/>
  20. <SHIP_PROG_CD/>
  21. <CUR_PROG_CD/>
  22. <LANE_TP/>
  23. <ENTERANCE_SEQ/>
  24. </searchData>
  25. <datagrid1/>
  26. <datagrid2>
  27. <SHIPDIR_VO>
  28. <SHIPDIR_Row>
  29. <CHK/>
  30. <OLD_SAMPL_NO/>
  31. <COIL_NO/>
  32. <TOT_DEC_GRD/>
  33. <COIL_WTH/>
  34. <COIL_OUTDIA/>
  35. <ACT_WGT/>
  36. <CUR_LOAD_LOC/>
  37. <ALLOC_SEQ/>
  38. <DLIV_DIRNO/>
  39. <SHIP_DIRNO/>
  40. </SHIPDIR_Row>
  41. </SHIPDIR_VO>
  42. </datagrid2>
  43. <SHIP_DIRNO/>
  44. <ALLOC_SEQ/>
  45. <bool1/>
  46. <bool2/>
  47. <init>
  48. <DLIVTPData/>
  49. <SHIPCOMPData/>
  50. <TRAIN_STEP_NO/>
  51. </init>
  52. <bool/>
  53. <COIL>
  54. <ord_no/>
  55. <ord_seq/>
  56. <coil_no/>
  57. <coil_back/>
  58. <coil_back/>
  59. <ACT_WGT/>
  60. <COIL_THK/>
  61. <COIL_WTH/>
  62. </COIL>
  63. <datagrid3>
  64. <FHMX>
  65. <ALLOC_SEQ/>
  66. <DEST_PCD_DESC/>
  67. <ORD_NM/>
  68. <SPEC_STL_GRD/>
  69. <OLD_SAMPL_NO/>
  70. <T_W/>
  71. <ACT_WGT/>
  72. <TOT_DEC_GRD/>
  73. <CUR_LOAD_LOC/>
  74. <CAR_NO/>
  75. </FHMX>
  76. </datagrid3>
  77. <dliv_dirno/>
  78. <bool3/>
  79. <datagrid4/>
  80. <DLIV_DIRNO_JH/>
  81. </root>
  82. </instance>
  83. </model>
  84. <script type="javascript" src="../../js/boaMsg.js"/>
  85. <script type="javascript" src="../../js/boaCommon.js"/>
  86. <script type="javascript" src="../../js/dCommon.js"/>
  87. <script type="javascript">
  88. <![CDATA[
  89. function Init(node) {
  90. InitParams(node);
  91. //增加datagrid2表格中的选择按钮
  92. datagrid2.fixedcellcheckbox(0,datagrid2.colRef("CHK"))=true;
  93. datagrid2.colStatus(0)=false;
  94. InitParamsEE();
  95. }
  96. //调用公共的初始化方法获得登录用户名
  97. function InitParams(node) {
  98. if (typeof node == "undefined" && typeof node != "object") return;
  99. model.removenode("/root/initData/rcvInfo");
  100. model.makeNode("/root/initData/rcvInfo");
  101. var nodeList = node.childNodes;
  102. node = model.instances(0).selectSingleNode("/root/initData/rcvInfo");
  103. for (var i = 0; i < nodeList.length; i++)
  104. node.appendChild(nodeList.item(i));
  105. }
  106. function InitParamsEE(){
  107. commSubmit("UIJ020300-service","success","glueAction.do");
  108. //汽车运输直接给出汽车运输的标志,不需要进行选择
  109. //commAppendData("/root/init/DLIVTPData/DLIVTPData_VO","/root/resData/DLIVTPData_VO");
  110. commAppendData("/root/init/SHIPCOMPData/SHIPCOMPData_VO","/root/resData/SHIPCOMPData_VO");
  111. model.refresh();
  112. }
  113. //查询方法
  114. function find(){
  115. //清空发送接点
  116. model.removenode("/root/reqData");
  117. model.makeNode("/root/reqData");
  118. //清空datagrid1
  119. model.removenode("/root/datagrid1");
  120. model.makeNode("/root/datagrid1");
  121. //清空datagrid2
  122. model.removenode("/root/datagrid2");
  123. model.makeNode("/root/datagrid2");
  124. //清空一次排车顺序接点,不然会接着上次的数字开始排
  125. model.setValue("/root/ALLOC_SEQ","");
  126. //判断发货指示时间是否为空
  127. var fromDate = model.getValue("/root/searchData/fromDate");
  128. var toDate = model.getValue("/root/searchData/toDate");
  129. if(fromDate == ""){
  130. alert(" 发货指示的开始时间不能为空,请选择相应的发货指示开始时间! ");
  131. return;
  132. }
  133. if(toDate == ""){
  134. alert(" 发货指示的结束时间不能为空,请选择相应的发货指示结束时间! ");
  135. return;
  136. }
  137. //把相应的接点放入发送对象
  138. //初始化页面,查询的发货指示状态为03排车待机和材料进度"SFA"
  139. model.setValue("/root/searchData/SHIP_PROG_CD","03");
  140. model.duplicate("/root/reqData","/root/searchData/SHIP_PROG_CD");
  141. model.duplicate("/root/reqData","/root/searchData/fromDate");
  142. model.duplicate("/root/reqData","/root/searchData/toDate");
  143. model.duplicate("/root/reqData","/root/searchData/SHIP_DIRNO");
  144. //这里物料进度为SFA
  145. model.setValue("/root/searchData/CUR_PROG_CD","SFB");
  146. //5
  147. model.duplicate("/root/reqData","/root/searchData/CUR_PROG_CD");
  148. model.duplicate("/root/reqData","/root/searchData/fromDate");
  149. model.duplicate("/root/reqData","/root/searchData/toDate");
  150. //汽车运输直接给出汽车运输的方式
  151. model.setValue("/root/searchData/DLIV_TP","C");
  152. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  153. model.setValue("/root/searchData/LANE_TP","");
  154. model.duplicate("/root/reqData","/root/searchData/LANE_TP");
  155. model.setValue("/root/searchData/ENTERANCE_SEQ","");
  156. model.duplicate("/root/reqData","/root/searchData/ENTERANCE_SEQ");
  157. //11
  158. model.duplicate("/root/reqData","/root/searchData/SHIP_COMP_NM");
  159. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  160. commSubmit("UIJ020300-service","find","glueAction.do");
  161. commAppendData("/root/datagrid1/DLIVDIR_VO","/root/resData/DLIVDIR_VO");
  162. model.refresh();
  163. }
  164. //保存方法
  165. function save(){
  166. // 表格中的行数
  167. var gridRows = datagrid1.rows - datagrid1.fixedRows;
  168. //清空发送接点
  169. //控制输入数据不能为空,前提是该行已经CHK 选择
  170. for(var i = datagrid1.fixedRows ; i < (gridRows + datagrid1.fixedRows) ; i++){
  171. if(datagrid1.valueMatrix(i,datagrid1.colRef("CHK")) == "Y" &&
  172. datagrid1.valueMatrix(i,datagrid1.colRef("TRANS_CAR_NO")) == ""){
  173. alert(" 车辆号不能有空值 ");
  174. return;
  175. }
  176. //datagrid1.valueMatrix(i,datagrid1.colRef("REG_ID")) = model.getValue("/root/initData/rcvInfo/REG_NM");
  177. }
  178. //这里保存的作用是把车厢号和排车顺序号更新到钢卷公共表,
  179. //并且改变TBJ01_SHIP_DIR的状态,从03-04,物料暂时不变SFB
  180. //并且还需要改变tbh02_coil_cmm中的SHIP_PROG_CD
  181. //清空发送接点
  182. model.removenode("/root/reqData");
  183. model.makeNode("/root/reqData");
  184. //清空排车顺序节点
  185. model.removenode("/root/init/TRAIN_STEP_NO");
  186. model.makeNode("/root/init/TRAIN_STEP_NO");
  187. //把整个datagrid1中的数据发送到保存类中
  188. //这里因为改变了行数据,所以不用设置行状态
  189. commMultiUpdate(datagrid1,"/root/reqData","A",true,"rowStuts1");
  190. //汽运的情况直接给出汽运的标识,不给出的话保存后无法看到钢卷信息
  191. model.setValue("/root/searchData/DLIV_TP","C");
  192. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  193. commSubmit("UIJ020300-service","save","glueAction.do");
  194. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  195. model.refresh();
  196. //需要把datagrid1中的已经保存到表中的行改为灰色,不允许再次修改
  197. var nodeSet1 = datagrid1.nodeset;
  198. for(var i=1;i<datagrid1.rows-1;i++){
  199. var chk = model.getValue(nodeSet1+"["+i+"]/CHK");
  200. if(chk == "Y"){
  201. //这里自加一行,因为datagrid1表头如果有两行的话会认为数据行从2开始
  202. var row = i+1;
  203. //把选中行的可输入位置改为灰色
  204. //datagrid1.isReadOnly(row,datagrid1.colRef("TRANS_CAR_NO")) = true;
  205. //datagrid1.isReadOnly(row,datagrid1.colRef("ALLOC_SEQ")) = true;
  206. datagrid1.isReadOnly(row,datagrid1.colRef("CHK")) = true;
  207. //datagrid1.isReadOnly(row,datagrid1.colRef("LANE_TP")) = true;
  208. //datagrid1.isReadOnly(row,datagrid1.colRef("ENTERANCE_SEQ")) = true;
  209. //根据实际的排车顺序情况,把排车顺序号带到车厢字段中
  210. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/LABEL");
  211. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/VALUE");
  212. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/LABEL",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  213. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/VALUE",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  214. //model.refresh();
  215. }
  216. }
  217. model.refresh();
  218. }
  219. //确认方法
  220. function comfirm(){
  221. //这里要把已经分好车的卷保存到表中,盖掉原来默认的排车顺序
  222. //应该不存在一个车组分开多次保存的情况,所以先按整车组处理
  223. //不同车组之间不能同时出现在datagrid2中,不然还要再次进行目的地判断
  224. //暂时按照同一车组一次确定的情况处理,具体再定
  225. model.removenode("/root/reqData");
  226. model.makeNode("/root/reqData");
  227. //确认的时候给出提示,是否需要完成排车操作
  228. var isUse = commComfirmBox("是否排车完毕,确认后不能进行换卷操作?","提示");
  229. if(isUse == "0"){
  230. //如果选择否的话,不进行相应操作
  231. return;
  232. }
  233. //超重的情况下是都继续执行的标志
  234. var top_wgt = null;
  235. //超重的车辆的总数
  236. var num_car = 0;
  237. var nodeSet1 = datagrid1.nodeset;
  238. //要判断datagrid1中是否存在超重的情况,存在的话要给予提示
  239. for(var i=1;i<datagrid1.rows-1;i++){
  240. var chk = model.getValue(nodeSet1+"["+i+"]/CHK");
  241. //运输方式
  242. var DLIV_TP = model.getValue(nodeSet1+"["+i+"]/DLIV_TP");
  243. //汽车应该不存在这种情况
  244. if(DLIV_TP == "T" || DLIV_TP =="t"){
  245. //判断选择好了的车组
  246. if(chk == "Y"){
  247. var wgt = model.getValue(nodeSet1+"["+i+"]/ACT_WGT");
  248. //alert("wgt : "+wgt+" iiiiiiiiiiii "+i);
  249. //如果重量大于60吨
  250. if(Number(wgt) >= "60000"){
  251. alert(" 第"+i+"车的重量超过最大载重量60吨,超重"+((Number(wgt)-60000)/1000)+"吨! ");
  252. //每超重一辆车,num_car++
  253. num_car = num_car+1;
  254. var isUse = commComfirmBox("是否继续进行装车操作?","提示");
  255. if(isUse=="0"){
  256. //如果选择否的话,不进行相应操作
  257. return;
  258. }else{
  259. //这里给出的是允许超重的标志
  260. top_wgt = "Y";
  261. }
  262. }
  263. }
  264. }else if(DLIV_TP == "C" || DLIV_TP =="c"){
  265. //汽车的处理方式另行添加,以汽车的载重量为准
  266. //这里汽车不做相应的超重控制,以销售下的计划来装。不能换卷换车
  267. }
  268. }
  269. //如果不存在超重的车辆的情况下直接保存
  270. if(num_car == 0){
  271. //alert("num_car : "+num_car);
  272. var nodeSet2 = datagrid2.nodeset;
  273. //这里需要判断是否datagrid2的所有选项全部选上,没有的话给予提示不能提交
  274. for(var j=1;j<datagrid2.rows-1;j++){
  275. var chk_2 = model.getValue(nodeSet2+"["+j+"]/CHK");
  276. if(chk_2 != "Y"){
  277. alert(" 第"+j+"行的选择项没有选择,做为同一批次的车不能出现为空的现象! ");
  278. return;
  279. }else{
  280. //选中的行给予相关的行状态
  281. //这里需要加一后才能包括所有的选择项目
  282. datagrid2.rowStatus(parseInt(j+1)) = 2;
  283. }
  284. }
  285. //提交datagrid2的全部数据,可能需要改变行状态
  286. commMultiUpdate(datagrid2,"/root/reqData","A",true,"rowStuts2");
  287. //这里如果同一目的地,同一客户的钢卷进行混装的情况,要怎么记录具体哪个卷
  288. //上了哪个车,这里在表中没有相应的对应字段。是不是可以修改钢卷公共表的对应关系
  289. //但是在程序中只改变了车厢号与卷的对应,并且也不能改变运输号与卷的对应关系。
  290. //这里就是更新钢卷公共表中的对应关系
  291. //这里加入登录用户名,会不会与已有的initData冲突
  292. model.makeValue("/root/reqData/REG_ID",model.getValue("/root/initData/rcvInfo/REG_ID"));
  293. //这里只处理同一发货指示号下的钢卷,不同发货指示号下钢卷混装的情况现在还不能处理
  294. commSubmit("UIJ020300-service","comfirm","glueAction.do");
  295. //errorMessage();
  296. model.refresh();
  297. //获取品质保证书的返回标志,如果品质保证书生成不成功给予提示
  298. if(model.getValue("root/resData/rs_VO/rs_Row")=="sRETURN_CD")
  299. {
  300. window.alert(" 品质保证书生成失败,请联系管理员! ");
  301. return;
  302. }
  303. find();
  304. //这里流程走过了一遍searchSHIPDIR,希望能够清空datagrid2
  305. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  306. model.refresh();
  307. }else{
  308. //这里给出一个标志,在选择继续执行的情况下给予保存
  309. if(top_wgt == "Y" && top_wgt != null){
  310. //alert("top_wgt : "+top_wgt);
  311. //alert("num_car : "+num_car);
  312. var nodeSet2 = datagrid2.nodeset;
  313. //这里需要判断是否datagrid2的所有选项全部选上,没有的话给予提示不能提交
  314. for(var j=1;j<datagrid2.rows-1;j++){
  315. var chk_2 = model.getValue(nodeSet2+"["+j+"]/CHK");
  316. if(chk_2 != "Y"){
  317. alert(" 第"+j+"行的选择项没有选择,做为同一批次的车不能出现为空的现象! ");
  318. return;
  319. }else{
  320. //选中的行给予相关的行状态
  321. //这里需要加一后才能包括所有的选择项目
  322. datagrid2.rowStatus(parseInt(j+1)) = 2;
  323. }
  324. }
  325. //提交datagrid2的全部数据,可能需要改变行状态
  326. commMultiUpdate(datagrid2,"/root/reqData","A",true,"rowStuts2");
  327. //这里如果同一目的地,同一客户的钢卷进行混装的情况,要怎么记录具体哪个卷
  328. //上了哪个车,这里在表中没有相应的对应字段。是不是可以修改钢卷公共表的对应关系
  329. //但是在程序中只改变了车厢号与卷的对应,并且也不能改变运输号与卷的对应关系。
  330. //这里就是更新钢卷公共表中的对应关系
  331. //这里加入登录用户名,会不会与已有的initData冲突
  332. model.makeValue("/root/reqData/REG_ID",model.getValue("/root/initData/rcvInfo/REG_ID"));
  333. //这里只处理同一发货指示号下的钢卷,不同发货指示号下钢卷混装的情况现在还不能处理
  334. commSubmit("UIJ020300-service","comfirm","glueAction.do");
  335. //errorMessage();
  336. model.refresh();
  337. //获取品质保证书的返回标志,如果品质保证书生成不成功给予提示
  338. if(model.getValue("root/resData/rs_VO/rs_Row")=="sRETURN_CD")
  339. {
  340. window.alert(" 品质保证书生成失败,请联系管理员! ");
  341. return;
  342. }
  343. find();
  344. //这里流程走过了一遍searchSHIPDIR,希望能够清空datagrid2
  345. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  346. model.refresh();
  347. }else{
  348. alert(" 请确定是否有需要确定的钢卷信息! ");
  349. }
  350. }
  351. }
  352. //在bool2为true的情况下,混编钢卷刷新datagrid1的情况
  353. function Bool2_True(){
  354. //这里定位到车厢的选择字段上面
  355. if(datagrid2.col == datagrid2.colRef("ALLOC_SEQ")){
  356. //这里每次改变车厢号信息,要颜色提示超重的运输号
  357. //这里只能整体刷新datagrid1,暂不考虑效率问题。不清空datagrid1
  358. //这里还必须区分,不同目的地的卷不能装到同一辆车上去
  359. var nodeSet1 = datagrid1.nodeset;
  360. var nodeSet2 = datagrid2.nodeset;
  361. //统计个车钢卷个数的变量
  362. var count1=0;
  363. var count2=0;
  364. var count3=0;
  365. var count4=0;
  366. var count5=0;
  367. var count6=0;
  368. var count7=0;
  369. var count8=0;
  370. //这里可能为加入实际车的吨位,具体的情况待定
  371. //统计钢卷重量的变量
  372. var wgt1=0;
  373. var wgt2=0;
  374. var wgt3=0;
  375. var wgt4=0;
  376. var wgt5=0;
  377. var wgt6=0;
  378. var wgt7=0;
  379. var wgt8=0;
  380. // //来源车厢号
  381. // var TRANS_CAR_NO_FROM = "";
  382. // //去向车厢号
  383. // var TRANS_CAR_NO_TO = "";
  384. // //来源运输指示号
  385. // var DLIV_DIRNO_FROM = "";
  386. // //去向运输指示号
  387. // var DLIV_DIRNO_TO = "";
  388. //这里是为了定位到选择到的行
  389. //去向排车顺序号
  390. var ALLOC_SEQ_TO_Y = 0;
  391. //钢卷重量
  392. var ACT_WGT_Y = 0;
  393. //来源目的地
  394. var DEST_PCD_FROM_Y = "";
  395. //来源运输号
  396. var DLIV_DIRNO_FROM_Y = "";
  397. //这里是为了求和运算
  398. //去向排车顺序号
  399. var ALLOC_SEQ_TO = 0;
  400. //钢卷重量
  401. var ACT_WGT = 0;
  402. //来源目的地
  403. var DEST_PCD_FROM = "";
  404. //来源运输号
  405. var DLIV_DIRNO_FROM = "";
  406. //发货指使只在页面显示,不录入数据库
  407. //这里需要定位到选择的具体哪一行,否则的话不能够获得实际的去向排车顺序号和来源运输号
  408. for(var w=0;w<datagrid2.selectedRows;w++){
  409. rw = datagrid2.selectedRow(w);
  410. //把选中行的数字正确的显示
  411. rw = parseInt(rw-1);
  412. //这里的值用于判断等否累加,并且给出提示
  413. ALLOC_SEQ_TO_Y = model.getValue(nodeSet2+"["+rw+"]/ALLOC_SEQ");
  414. ACT_WGT_Y = model.getValue(nodeSet2+"["+rw+"]/ACT_WGT");
  415. DEST_PCD_FROM_Y = model.getValue(nodeSet2+"["+rw+"]/DEST_PCD");
  416. DLIV_DIRNO_FROM_Y = model.getValue(nodeSet2+"["+rw+"]/DLIV_DIRNO");
  417. }
  418. for(var i=1;i<datagrid2.rows-1;i++){
  419. ALLOC_SEQ_TO = model.getValue(nodeSet2+"["+i+"]/ALLOC_SEQ");
  420. ACT_WGT = model.getValue(nodeSet2+"["+i+"]/ACT_WGT");
  421. DEST_PCD_FROM = model.getValue(nodeSet2+"["+i+"]/DEST_PCD");
  422. DLIV_DIRNO_FROM = model.getValue(nodeSet2+"["+i+"]/DLIV_DIRNO");
  423. //循环datagrid1,找到与去向排车顺序号对应的目的地信息。
  424. //如果两个目的地信息相等,就可以进行车内钢卷互换
  425. for(var k=1;k<datagrid1.rows-1;k++){
  426. //求出datagrid1中已有的排车顺序信息
  427. var ALLOC_SEQ_TMP = model.getValue(nodeSet1+"["+k+"]/ALLOC_SEQ");
  428. //求出datagrid1中已有运输指示号信息
  429. var DLIV_DIRNO_TMP = model.getValue(nodeSet1+"["+k+"]/DLIV_DIRNO");
  430. //如果去向排车顺序号相等,取出相对应的目的地信息,以及去向车厢号信息
  431. //这里使用的是选择特定行的数据
  432. if(ALLOC_SEQ_TMP == ALLOC_SEQ_TO_Y){
  433. var DEST_PCD_TO = model.getValue(nodeSet1+"["+k+"]/DEST_PCD");
  434. if(DEST_PCD_FROM_Y == DEST_PCD_TO){
  435. //取出去向的车厢号,并且回填到来源的位置上
  436. var TRANS_CAR_NO_TO = model.getValue(nodeSet1+"["+k+"]/TRANS_CAR_NO");
  437. //这里获取的车厢号必须回填到选择行上去
  438. model.setValue(nodeSet2+"["+rw+"]/TRANS_CAR_NO",TRANS_CAR_NO_TO);
  439. //进行相应的统计计算,并且改变颜色
  440. //判断各个车厢号的情况,把相应的数量和重量加起来
  441. //这里写死,最多也不会超过10辆车
  442. if(ALLOC_SEQ_TO == "1"){
  443. count1 = Number(++count1);
  444. wgt1 = Number(wgt1) + Number(ACT_WGT);
  445. }else if(ALLOC_SEQ_TO == "2"){
  446. count2 = Number(++count2);
  447. wgt2 = Number(wgt2) + Number(ACT_WGT);
  448. }else if(ALLOC_SEQ_TO == "3"){
  449. count3 = Number(++count3);
  450. wgt3 = Number(wgt3) + Number(ACT_WGT);
  451. }else if(ALLOC_SEQ_TO == "4"){
  452. count4 = Number(++count4);
  453. wgt4 = Number(wgt4) + Number(ACT_WGT);
  454. }else if(ALLOC_SEQ_TO == "5"){
  455. count5 = Number(++count5);
  456. wgt5 = Number(wgt5) + Number(ACT_WGT);
  457. }else if(ALLOC_SEQ_TO == "6"){
  458. count6 = Number(++count6);
  459. wgt6 = Number(wgt6) + Number(ACT_WGT);
  460. }else if(ALLOC_SEQ_TO == "7"){
  461. count7= Number(++count7);
  462. wgt7 = Number(wgt7) + Number(ACT_WGT);
  463. }else if(ALLOC_SEQ_TO == "8"){
  464. count8= Number(++count8);
  465. wgt8 = Number(wgt8) + Number(ACT_WGT);
  466. }else{
  467. //先处理7个的情况,10个的以后统一加
  468. alert("datagrid2 超过车辆的最大进库数!");
  469. }
  470. // alert("count1 : "+count1);
  471. // alert("count2 : "+count2);
  472. // alert("count3 : "+count3);
  473. // alert("count4 : "+count4);
  474. // alert("count5 : "+count5);
  475. // alert("count6 : "+count6);
  476. // alert("count7 : "+count7);
  477. //
  478. // alert("wgt1 : "+wgt1);
  479. // alert("wgt2 : "+wgt2);
  480. // alert("wgt3 : "+wgt3);
  481. // alert("wgt4 : "+wgt4);
  482. // alert("wgt5 : "+wgt5);
  483. // alert("wgt6 : "+wgt6);
  484. // alert("wgt7 : "+wgt7);
  485. //把所有的计算结果放入datagrid1中的相应位置,如果超重要用红色表示
  486. for(var j=1;j<datagrid1.rows-1;j++){
  487. var ALLOC_SEQ_1 = model.getValue(nodeSet1+"["+j+"]/ALLOC_SEQ");
  488. var chk_1 = model.getValue(nodeSet1+"["+j+"]/CHK");
  489. //求出特定字段对应的行数
  490. var col_cnt = datagrid1.colRef("CNT");
  491. var col_wgt = datagrid1.colRef("ACT_WGT");
  492. //判断车厢号,并且把相应的数据添入。给出颜色指示
  493. if(ALLOC_SEQ_1 == "1"){
  494. model.setValue(nodeSet1+"["+j+"]/CNT",count1);
  495. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt1);
  496. var row1 = parseInt(j+1);
  497. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  498. if(wgt1 >= "60000"){
  499. //超过重量的时候要变成红色
  500. datagrid1.cellStyle("background-color",Number(row1),Number(col_cnt))="#ff0000";
  501. datagrid1.cellStyle("background-color",Number(row1),Number(col_wgt))="#ff0000";
  502. }else{
  503. //还原回来后就要恢复原来的颜色
  504. datagrid1.cellStyle("background-color",Number(row1),Number(col_cnt))="#ffffff";
  505. datagrid1.cellStyle("background-color",Number(row1),Number(col_wgt))="#ffffff";
  506. }
  507. }else if(ALLOC_SEQ_1 == "2"){
  508. model.setValue(nodeSet1+"["+j+"]/CNT",count2);
  509. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt2);
  510. var row2 = parseInt(j+1);
  511. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  512. if(wgt2 >= "60000"){
  513. //超重改变颜色
  514. datagrid1.cellStyle("background-color",Number(row2),Number(col_cnt))="#ff0000";
  515. datagrid1.cellStyle("background-color",Number(row2),Number(col_wgt))="#ff0000";
  516. }else{
  517. //不超重就还原
  518. datagrid1.cellStyle("background-color",Number(row2),Number(col_cnt))="#ffffff";
  519. datagrid1.cellStyle("background-color",Number(row2),Number(col_wgt))="#ffffff";
  520. }
  521. }else if(ALLOC_SEQ_1 == "3"){
  522. model.setValue(nodeSet1+"["+j+"]/CNT",count3);
  523. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt3);
  524. var row3 = parseInt(j+1);
  525. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  526. if(wgt3 >= "60000"){
  527. //超重
  528. datagrid1.cellStyle("background-color",Number(row3),Number(col_cnt))="#ff0000";
  529. datagrid1.cellStyle("background-color",Number(row3),Number(col_wgt))="#ff0000";
  530. }else{
  531. datagrid1.cellStyle("background-color",Number(row3),Number(col_cnt))="#ffffff";
  532. datagrid1.cellStyle("background-color",Number(row3),Number(col_wgt))="#ffffff";
  533. }
  534. }else if(ALLOC_SEQ_1 == "4"){
  535. model.setValue(nodeSet1+"["+j+"]/CNT",count4);
  536. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt4);
  537. var row4 = parseInt(j+1);
  538. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  539. if(wgt4 >= "60000"){
  540. //超重
  541. datagrid1.cellStyle("background-color",Number(row4),Number(col_cnt))="#ff0000";
  542. datagrid1.cellStyle("background-color",Number(row4),Number(col_wgt))="#ff0000";
  543. }else{
  544. datagrid1.cellStyle("background-color",Number(row4),Number(col_cnt))="#ffffff";
  545. datagrid1.cellStyle("background-color",Number(row4),Number(col_wgt))="#ffffff";
  546. }
  547. }else if(ALLOC_SEQ_1 == "5"){
  548. model.setValue(nodeSet1+"["+j+"]/CNT",count5);
  549. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt5);
  550. var row5 = parseInt(j+1);
  551. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  552. if(wgt5 >= "60000"){
  553. //超重
  554. datagrid1.cellStyle("background-color",Number(row5),Number(col_cnt))="#ff0000";
  555. datagrid1.cellStyle("background-color",Number(row5),Number(col_wgt))="#ff0000";
  556. }else{
  557. datagrid1.cellStyle("background-color",Number(row5),Number(col_cnt))="#ffffff";
  558. datagrid1.cellStyle("background-color",Number(row5),Number(col_wgt))="#ffffff";
  559. }
  560. }else if(ALLOC_SEQ_1 == "6"){
  561. model.setValue(nodeSet1+"["+j+"]/CNT",count6);
  562. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt6);
  563. var row6 = parseInt(j+1);
  564. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  565. if(wgt6 >= "60000"){
  566. //超重
  567. datagrid1.cellStyle("background-color",Number(row6),Number(col_cnt))="#ff0000";
  568. datagrid1.cellStyle("background-color",Number(row6),Number(col_wgt))="#ff0000";
  569. }else{
  570. datagrid1.cellStyle("background-color",Number(row6),Number(col_cnt))="#ffffff";
  571. datagrid1.cellStyle("background-color",Number(row6),Number(col_wgt))="#ffffff";
  572. }
  573. }else if(ALLOC_SEQ_1 == "7"){
  574. model.setValue(nodeSet1+"["+j+"]/CNT",count7);
  575. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt7);
  576. var row7 = parseInt(j+1);
  577. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  578. if(wgt7 >= "60000"){
  579. //超重
  580. datagrid1.cellStyle("background-color",Number(row7),Number(col_cnt))="#ff0000";
  581. datagrid1.cellStyle("background-color",Number(row7),Number(col_wgt))="#ff0000";
  582. }else{
  583. datagrid1.cellStyle("background-color",Number(row7),Number(col_cnt))="#ffffff";
  584. datagrid1.cellStyle("background-color",Number(row7),Number(col_wgt))="#ffffff";
  585. }
  586. }else if(ALLOC_SEQ_1 == "8"){
  587. model.setValue(nodeSet1+"["+j+"]/CNT",count8);
  588. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt8);
  589. var row8 = parseInt(j+1);
  590. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  591. if(wgt8 >= "60000"){
  592. //超重
  593. datagrid1.cellStyle("background-color",Number(row8),Number(col_cnt))="#ff0000";
  594. datagrid1.cellStyle("background-color",Number(row8),Number(col_wgt))="#ff0000";
  595. }else{
  596. datagrid1.cellStyle("background-color",Number(row8),Number(col_cnt))="#ffffff";
  597. datagrid1.cellStyle("background-color",Number(row8),Number(col_wgt))="#ffffff";
  598. }
  599. }else{
  600. //提示错误信息
  601. //alert(" datagrid1 超过最大车辆数!");
  602. }
  603. }
  604. }else{
  605. //这里需要把车厢号还原到改变以前
  606. //如果出现两个或者两个以上的相同目的地信息,回填就会出错.使用运输号
  607. for(var a=1;a<datagrid1.rows-1;a++){
  608. var DLIV_DIRNO_TO = model.getValue(nodeSet1+"["+a+"]/DLIV_DIRNO");
  609. //通过原来的运输号信息获得原来的车辆顺序号
  610. if(DLIV_DIRNO_TO == DLIV_DIRNO_FROM_Y){
  611. var ALLOC_SEQ_FROM = model.getValue(nodeSet1+"["+a+"]/ALLOC_SEQ");
  612. //把车辆顺序号还原
  613. model.setValue(nodeSet2+"["+rw+"]/ALLOC_SEQ",ALLOC_SEQ_FROM);
  614. }
  615. }
  616. alert(" 目的地不相同,不能进行钢卷混编车操作! ");
  617. //这里需不需要重新查询一次,把默认值出去
  618. return;
  619. }
  620. }
  621. }
  622. }
  623. }
  624. }
  625. //datagrid2 选择车厢的时候整车替换的情况
  626. function Bool2_False(){
  627. //不能选择到具体的钢卷,只能整运输号之间调整
  628. //只在选择车辆号时触发事件
  629. if(datagrid2.col == datagrid2.colRef("ALLOC_SEQ")){
  630. var nodeSet2 = datagrid2.nodeset;
  631. var nodeSet1 = datagrid1.nodeset;
  632. var rw;
  633. //获取选择位置的去向的车厢号
  634. var ALLOC_SEQ_TO = null;
  635. //获取选择位置的来源的运输指示号
  636. var DLIV_DIRNO_FROM = null;
  637. //获得去向车厢号对应的运输指示号
  638. var DLIV_DIRNO_TO = null;
  639. //获取来源运输指示号对应的车厢号
  640. var ALLOC_SEQ_FROM = null;
  641. for(var i=0;i<datagrid2.selectedRows;i++){
  642. rw = datagrid2.selectedRow(i);
  643. //把选中行的数字正确的显示
  644. rw = parseInt(rw-1);
  645. ALLOC_SEQ_TO = model.getValue(nodeSet2+"["+rw+"]/ALLOC_SEQ");
  646. DLIV_DIRNO_FROM = model.getValue(nodeSet2+"["+rw+"]/DLIV_DIRNO");
  647. }
  648. //alert("ALLOC_SEQ_TO : "+ALLOC_SEQ_TO);
  649. //alert("DLIV_DIRNO_FROM : "+DLIV_DIRNO_FROM);
  650. //发货指示号
  651. var SHIP_DIRNO_FROM;
  652. //装车地点
  653. var GET_NO_PCD_FROM;
  654. //专用线
  655. var EXLV_LINE_CD_FROM;
  656. //卸车地点
  657. var GET_OFF_PCD_FROM;
  658. //运输方式
  659. var DLIV_TP_NM_FROM;
  660. //运输单位
  661. var SM_CFNM_FROM;
  662. //铁路运输号
  663. var TRAIN_DLIVNO_FROM;
  664. //数量
  665. var CNT_FROM;
  666. //重量
  667. var ACT_WGT_FROM;
  668. //目的地
  669. var DEST_PCD_FROM;
  670. //新增加车厢号
  671. var TRANS_CAR_NO_FROM;
  672. //发货指示号
  673. var SHIP_DIRNO_TO;
  674. //装车地点
  675. var GET_NO_PCD_TO;
  676. //专用线
  677. var EXLV_LINE_CD_TO;
  678. //卸车地点
  679. var GET_OFF_PCD_TO;
  680. //运输方式
  681. var DLIV_TP_NM_TO;
  682. //运输单位
  683. var SM_CFNM_TO;
  684. //铁路运输号
  685. var TRAIN_DLIVNO_TO;
  686. //数量
  687. var CNT_TO;
  688. //重量
  689. var ACT_WGT_TO;
  690. //目的地
  691. var DEST_PCD_TO;
  692. //新增加车厢号
  693. var TRANS_CAR_NO_TO;
  694. //通过选择位置的去向车厢号和来源运输号找到相应的
  695. //这里需要改变datagrid1中的运输号与排车顺序号的对应,否则再第二次选择的时候就对应不上了
  696. for(var k=1;k<datagrid1.rows-1;k++){
  697. var DLIV_DIRNO_TMP = model.getValue(nodeSet1+"["+k+"]/DLIV_DIRNO");
  698. var ALLOC_SEQ_TMP = model.getValue(nodeSet1+"["+k+"]/ALLOC_SEQ");
  699. //获得去向运输号
  700. if(ALLOC_SEQ_TO == ALLOC_SEQ_TMP){
  701. DLIV_DIRNO_TO = model.getValue(nodeSet1+"["+k+"]/DLIV_DIRNO");
  702. //alert("DLIV_DIRNO_TO : "+DLIV_DIRNO_TO);
  703. //把已经改变了车厢号的运输号对应到具体的车厢上去
  704. SHIP_DIRNO_TO = model.getValue(nodeSet1+"["+k+"]/SHIP_DIRNO");
  705. GET_NO_PCD_TO = model.getValue(nodeSet1+"["+k+"]/GET_NO_PCD");
  706. EXLV_LINE_CD_TO = model.getValue(nodeSet1+"["+k+"]/EXLV_LINE_CD");
  707. GET_OFF_PCD_TO = model.getValue(nodeSet1+"["+k+"]/GET_OFF_PCD");
  708. DLIV_TP_NM_TO = model.getValue(nodeSet1+"["+k+"]/DLIV_TP_NM");
  709. SM_CFNM_TO = model.getValue(nodeSet1+"["+k+"]/SM_CFNM");
  710. TRAIN_DLIVNO_TO = model.getValue(nodeSet1+"["+k+"]/TRAIN_DLIVNO");
  711. CNT_TO = model.getValue(nodeSet1+"["+k+"]/CNT");
  712. ACT_WGT_TO = model.getValue(nodeSet1+"["+k+"]/ACT_WGT");
  713. DEST_PCD_TO = model.getValue(nodeSet1+"["+k+"]/DEST_PCD");
  714. TRANS_CAR_NO_TO = model.getValue(nodeSet1+"["+k+"]/TRANS_CAR_NO");
  715. model.refresh();
  716. }
  717. //获得来源排车顺序号
  718. if(DLIV_DIRNO_FROM == DLIV_DIRNO_TMP){
  719. ALLOC_SEQ_FROM = model.getValue(nodeSet1+"["+k+"]/ALLOC_SEQ");
  720. //alert("ALLOC_SEQ_FROM : "+ALLOC_SEQ_FROM);
  721. //把已经改变了车厢号的运输号对应到具体的车厢上去
  722. SHIP_DIRNO_FROM = model.getValue(nodeSet1+"["+k+"]/SHIP_DIRNO");
  723. GET_NO_PCD_FROM = model.getValue(nodeSet1+"["+k+"]/GET_NO_PCD");
  724. EXLV_LINE_CD_FROM = model.getValue(nodeSet1+"["+k+"]/EXLV_LINE_CD");
  725. GET_OFF_PCD_FROM = model.getValue(nodeSet1+"["+k+"]/GET_OFF_PCD");
  726. DLIV_TP_NM_FROM = model.getValue(nodeSet1+"["+k+"]/DLIV_TP_NM");
  727. SM_CFNM_FROM = model.getValue(nodeSet1+"["+k+"]/SM_CFNM");
  728. TRAIN_DLIVNO_FROM = model.getValue(nodeSet1+"["+k+"]/TRAIN_DLIVNO");
  729. CNT_FROM = model.getValue(nodeSet1+"["+k+"]/CNT");
  730. ACT_WGT_FROM = model.getValue(nodeSet1+"["+k+"]/ACT_WGT");
  731. DEST_PCD_FROM = model.getValue(nodeSet1+"["+k+"]/DEST_PCD");
  732. TRANS_CAR_NO_FROM = model.getValue(nodeSet1+"["+k+"]/TRANS_CAR_NO");
  733. model.refresh();
  734. }
  735. }
  736. //这里需要再循环一次datagrid1才可以把值都赋予上去
  737. //因为不知道到底哪一行是取出的哪一行是赋予的
  738. for(var m=1;m<=datagrid1.rows-1;m++){
  739. var DLIV_DIRNO_M = model.getValue(nodeSet1+"["+m+"]/DLIV_DIRNO");
  740. var ALLOC_SEQ_M = model.getValue(nodeSet1+"["+m+"]/ALLOC_SEQ");
  741. if(ALLOC_SEQ_TO == ALLOC_SEQ_M){
  742. //alert("ALLOC_SEQ_M : "+ALLOC_SEQ_M+" MMMMMMMMMMMM "+m);
  743. //alert("SHIP_DIRNO_FROM : "+SHIP_DIRNO_FROM);
  744. //把来源的值换过来
  745. datagrid1.valueMatrix(m+1,datagrid1.colRef("SHIP_DIRNO")) = SHIP_DIRNO_FROM;
  746. datagrid1.valueMatrix(m+1,datagrid1.colRef("GET_NO_PCD")) = GET_NO_PCD_FROM;
  747. datagrid1.valueMatrix(m+1,datagrid1.colRef("EXLV_LINE_CD")) = EXLV_LINE_CD_FROM;
  748. datagrid1.valueMatrix(m+1,datagrid1.colRef("GET_OFF_PCD")) = GET_OFF_PCD_FROM;
  749. datagrid1.valueMatrix(m+1,datagrid1.colRef("DLIV_TP_NM")) = DLIV_TP_NM_FROM;
  750. datagrid1.valueMatrix(m+1,datagrid1.colRef("SM_CFNM")) = SM_CFNM_FROM;
  751. datagrid1.valueMatrix(m+1,datagrid1.colRef("TRAIN_DLIVNO")) = TRAIN_DLIVNO_FROM;
  752. datagrid1.valueMatrix(m+1,datagrid1.colRef("CNT")) = CNT_FROM;
  753. datagrid1.valueMatrix(m+1,datagrid1.colRef("ACT_WGT")) = ACT_WGT_FROM;
  754. datagrid1.valueMatrix(m+1,datagrid1.colRef("DLIV_DIRNO")) = DLIV_DIRNO_FROM;
  755. datagrid1.valueMatrix(m+1,datagrid1.colRef("DEST_PCD")) = DEST_PCD_FROM;
  756. model.refresh();
  757. }
  758. //获得来源排车顺序号
  759. if(DLIV_DIRNO_FROM == DLIV_DIRNO_M){
  760. //alert("DLIV_DIRNO_M : "+DLIV_DIRNO_M+" AAAAAAAAAAA "+m);
  761. //调试代码
  762. // alert("SHIP_DIRNO_TO : "+SHIP_DIRNO_TO);
  763. // alert("GET_NO_PCD_TO : "+GET_NO_PCD_TO);
  764. // alert("EXLV_LINE_CD_TO : "+EXLV_LINE_CD_TO);
  765. // alert("GET_OFF_PCD_TO : "+GET_OFF_PCD_TO);
  766. // alert("DLIV_TP_NM_TO : "+DLIV_TP_NM_TO);
  767. // alert("SM_CFNM_TO : "+SM_CFNM_TO);
  768. // alert("TRAIN_DLIVNO_TO : "+TRAIN_DLIVNO_TO);
  769. // alert("CNT_TO : "+CNT_TO);
  770. // alert("ACT_WGT_TO : "+ACT_WGT_TO);
  771. // alert("DLIV_DIRNO_TO : "+DLIV_DIRNO_TO);
  772. // alert("DEST_PCD_TO : "+DEST_PCD_TO);
  773. //把去向的值换过来
  774. datagrid1.valueMatrix(m+1,datagrid1.colRef("SHIP_DIRNO")) = SHIP_DIRNO_TO;
  775. datagrid1.valueMatrix(m+1,datagrid1.colRef("GET_NO_PCD")) = GET_NO_PCD_TO;
  776. datagrid1.valueMatrix(m+1,datagrid1.colRef("EXLV_LINE_CD")) = EXLV_LINE_CD_TO;
  777. datagrid1.valueMatrix(m+1,datagrid1.colRef("GET_OFF_PCD")) = GET_OFF_PCD_TO;
  778. datagrid1.valueMatrix(m+1,datagrid1.colRef("DLIV_TP_NM")) = DLIV_TP_NM_TO;
  779. datagrid1.valueMatrix(m+1,datagrid1.colRef("SM_CFNM")) = SM_CFNM_TO;
  780. datagrid1.valueMatrix(m+1,datagrid1.colRef("TRAIN_DLIVNO")) = TRAIN_DLIVNO_TO;
  781. datagrid1.valueMatrix(m+1,datagrid1.colRef("CNT")) = CNT_TO;
  782. datagrid1.valueMatrix(m+1,datagrid1.colRef("ACT_WGT")) = ACT_WGT_TO;
  783. datagrid1.valueMatrix(m+1,datagrid1.colRef("DLIV_DIRNO")) = DLIV_DIRNO_TO;
  784. datagrid1.valueMatrix(m+1,datagrid1.colRef("DEST_PCD")) = DEST_PCD_TO;
  785. model.refresh();
  786. }
  787. }
  788. //把相应的车厢号对调,不能改变运输号对应的卷。
  789. for(var j=1;j<datagrid2.rows-1;j++){
  790. var DLIV_DIRNO1 = model.getValue(nodeSet2+"["+j+"]/DLIV_DIRNO");
  791. //alert("DLIV_DIRNO1 : "+DLIV_DIRNO1+" JJJJJJJJJJJJ "+j);
  792. //同一运输指示号下面的钢卷要一起变化,不能改变运输号
  793. if(DLIV_DIRNO_FROM == DLIV_DIRNO1){
  794. //改变运输号中来源的数据,车厢序号以及车厢号TRANS_CAR_NO_FROM
  795. model.setValue(nodeSet2+"["+j+"]/ALLOC_SEQ",ALLOC_SEQ_TO);
  796. model.setValue(nodeSet2+"["+j+"]/TRANS_CAR_NO",TRANS_CAR_NO_TO);
  797. }else if(DLIV_DIRNO_TO == DLIV_DIRNO1){
  798. //改变运输号中去向的数据,车厢序号以及车厢号
  799. model.setValue(nodeSet2+"["+j+"]/ALLOC_SEQ",ALLOC_SEQ_FROM);
  800. model.setValue(nodeSet2+"["+j+"]/TRANS_CAR_NO",TRANS_CAR_NO_FROM);
  801. }
  802. }
  803. }
  804. }
  805. //导出EXCEL方法
  806. function saveExcelScript(sDGridName, sExcelSheetName, saveType) {
  807. var sExcelName = window.fileDialog( "save", "", false, "SaveFileName", "xls", "Excel Files(*.xls)|*.xls" );
  808. if ( sExcelName == "" ) {
  809. return;
  810. }
  811. //var sCSVName = "C:\\TFSmartUpdater\\" + sExcelName.lastIndexOf(".") +".csv";
  812. var sCSVName = sExcelName +".csv";
  813. //alert("sExcelName = ["+ sExcelName +"]\nsCSVName = ["+ sCSVName + "]");
  814. eval(sDGridName).saveText(sCSVName, "\n", ",", '\:', true); //DataGrid? ??? CSV??? ??
  815. ObjTFExcel.launchNewInstance(0); //Execute EXCEL
  816. ObjTFExcel.createWorkbook(); //Create new Workbook(for example:Sheet1,Sheet2,Sheet3) -- createWorkBook(Excel-TemplateFile)
  817. ObjTFExcel.loadCSV(sCSVName); //Loading Contents, from CSV to Excel
  818. //Setting up EXCEL Layout.
  819. var nRows = sDGridName.rows - sDGridName.fixedRows + 1; //Keep Careful !!!
  820. var nCols = sDGridName.cols;
  821. //Header
  822. //Line 1 : Sheet Title
  823. //行高的设置
  824. //All of the range
  825. ObjTFExcel.fontcolor ( 01, 01, nRows, nCols ) = "#000000" ;
  826. ObjTFExcel.font ( 01, 01, nRows, nCols ) = "SimSun" ;
  827. //取消边框
  828. ObjTFExcel.setBorderColor( 01, 01, nRows, nCols, "#000000") ;
  829. ObjTFExcel.bold ( 01, 01, nRows, nCols ) = true ;
  830. //改变字体大小
  831. ObjTFExcel.fontsize ( 01, 01, nRows, nCols ) = 12 ;
  832. ObjTFExcel.underline ( 01, 01, nRows, nCols ) = 0 ;
  833. ObjTFExcel.valign ( 01, 01, nRows, nCols ) ="middle" ;
  834. //字体居中
  835. ObjTFExcel.halign ( 01, 01, nRows, nCols ) ="center" ;
  836. //Query-Results Data
  837. var iRow = 1; // iRow = HeaderLine + 1;
  838. //这里设置字体的行宽
  839. // for(var i = iRow; i <= nRows; i++ ) {
  840. // if( (i%5) == 1 ) {
  841. // ObjTFExcel.rowHeight( i ) = 60;
  842. // ObjTFExcel.mergeCell( i, 01, i, nCols );
  843. // } else if( (i%5) == 0 ) {
  844. // ObjTFExcel.rowHeight( i ) = 45;
  845. // ObjTFExcel.mergeCell( i, 01, i, nCols );
  846. // } else {
  847. // ObjTFExcel.rowHeight( i ) = 40;
  848. // }
  849. // }
  850. //改变文本格式的方法,未知
  851. //ObjTFExcel.setformat(02,02,02,03,'@');
  852. //设置列的宽度
  853. ObjTFExcel.colwidth ( 01 ) = 5 ;
  854. ObjTFExcel.colwidth ( 02 ) = 10 ;
  855. ObjTFExcel.colwidth ( 03 ) = 20 ;
  856. ObjTFExcel.colwidth ( 04 ) = 10 ;
  857. ObjTFExcel.colwidth ( 05 ) = 15 ;
  858. ObjTFExcel.colwidth ( 06 ) = 10 ;
  859. ObjTFExcel.colwidth ( 07 ) = 10 ;
  860. ObjTFExcel.colwidth ( 08 ) = 5 ;
  861. ObjTFExcel.colwidth ( 09 ) = 5 ;
  862. ObjTFExcel.colwidth ( 10 ) = 10 ;
  863. // ObjTFExcel.setFormat(iRow, 14, nRows, 14, "yyyy\"-\"mm\"-\"dd\"\" hh\":\"mm\":\"ss\"\";@");
  864. ObjTFExcel.sheetName(1) = sExcelSheetName;
  865. ObjTFExcel.save(sExcelName); //Saving EXCEL
  866. ObjTFExcel.close(); //Closing EXCEL. (You must be closed EXCEL !!!)
  867. window.exec("EXCEL.EXE", sExcelName); //Openning EXCEL
  868. }
  869. ]]>
  870. </script>
  871. </xhtml:head>
  872. <xhtml:body>
  873. <caption id="caption5" class="cell" style="left:0px; top:0px; width:90px; height:20px; font-weight:bold; text-align:left; border-color:#000000; border-style:solid; ">发货指示时间</caption>
  874. <input id="input1" ref="/root/searchData/fromDate" inputtype="date" format="yyyy-mm-dd" style="left:90px; top:0px; width:115px; height:20px; background-color:#ffff99; "/>
  875. <input id="input2" ref="/root/searchData/toDate" inputtype="date" format="yyyy-mm-dd" style="left:235px; top:0px; width:115px; height:20px; background-color:#ffff99; "/>
  876. <caption id="caption1" style="left:205px; top:0px; width:30px; height:20px; text-align:center; vertical-align:middle; ">--</caption>
  877. <caption id="caption2" class="cell" style="left:380px; top:0px; width:75px; height:20px; font-weight:bold; text-align:center; border-color:#000000; border-style:solid; ">发货指示号</caption>
  878. <input id="input6" ref="/root/searchData/SHIP_DIRNO" style="left:455px; top:0px; width:95px; height:20px; background-color:#ffff99; "/>
  879. <select1 id="combo2" ref="/root/searchData/SHIP_COMP_NM" appearance="minimal" editmode="input" style="left:870px; top:0px; width:110px; height:20px; background-color:#ffff99; border-color:#000000; ">
  880. <choices>
  881. <itemset nodeset="/root/init/SHIPCOMPData/SHIPCOMPData_VO/SHIPCOMPData_Row">
  882. <label ref="LABEL"/>
  883. <value ref="VALUE"/>
  884. </itemset>
  885. </choices>
  886. </select1>
  887. <caption id="caption4" class="cell" style="left:775px; top:0px; width:95px; height:20px; font-weight:bold; text-align:center; border-color:#000000; border-style:solid; ">运输单位</caption>
  888. <datagrid id="datagrid1" nodeset="/root/datagrid1/DLIVDIR_VO/DLIVDIR_Row" caption="选择^发货指示号^目的地^专用线^收货单位^合同单位^合同号^订单号^牌号^规格^排车顺序^车辆号^运输单位^运输指示号^发货指示^发货指示^火车入库道次^装车次数^^^^^^|选择^发货指示号^目的地^专用线^收货单位^合同单位^合同号^订单号^牌号^规格^排车顺序^车辆号^运输单位^运输指示号^数量^重量^火车入库道次^装车次数^^^^^^" colsep="^" colwidth="21, 88, 70, 70, 100, 100, 80, 50, 69, 68, 32, 100, 88, 88, 43, 43, 53, 68, 100, 100, 100, 100, 100, 100" defaultrows="12" explorerbar="sortshow" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:20px; width:980px; height:250px; ">
  889. <col checkvalue="Y,N" ref="CHK" type="checkbox"/>
  890. <col ref="SHIP_DIRNO"/>
  891. <col ref="DEST_PCD_DESC"/>
  892. <col ref="EXLV_LINE_CD_DESC"/>
  893. <col ref="CUST_NM"/>
  894. <col ref="ORD_NM"/>
  895. <col ref="ORD_NO"/>
  896. <col ref="ORD_SEQ"/>
  897. <col ref="SPEC_STL_GRD"/>
  898. <col ref="T_W"/>
  899. <col ref="ALLOC_SEQ" type="input" format="999999-9999999" maxlength="2" style="background-color:#ffff99; "/>
  900. <col ref="TRANS_CAR_NO" type="input" maxlength="20" style="background-color:#ffff99; "/>
  901. <col ref="SM_CFNM"/>
  902. <col ref="DLIV_DIRNO"/>
  903. <col ref="CNT"/>
  904. <col ref="ACT_WGT"/>
  905. <col ref="LANE_TP" type="combo" visibility="hidden" style="background-color:#ffff99; ">
  906. <choices>
  907. <item>
  908. <label/>
  909. <value/>
  910. </item>
  911. <item>
  912. <label>A</label>
  913. <value>A</value>
  914. </item>
  915. <item>
  916. <label>B</label>
  917. <value>B</value>
  918. </item>
  919. </choices>
  920. </col>
  921. <col ref="ENTERANCE_SEQ" type="input" visibility="hidden" style="background-color:#ffff99; "/>
  922. <col ref="TRAIN_DLIVNO" visibility="hidden"/>
  923. <col ref="DLIV_TP_NM" visibility="hidden"/>
  924. <col ref="GET_NO_PCD" visibility="hidden"/>
  925. <col ref="DEST_PCD" visibility="hidden"/>
  926. <col ref="EXLV_LINE_CD" visibility="hidden"/>
  927. <col ref="GET_OFF_PCD" visibility="hidden"/>
  928. <script type="javascript" ev:event="xforms-value-changed">
  929. <![CDATA[
  930. //把事件定位在车辆号输入处,这里通过CHK为Y的情况增加排车顺序。
  931. //只要是CHK为Y的情况让排车序号依次增加,只能整发货指示进行暂时不考虑分装的情况
  932. //这里暂时不处理车辆道次和装车次数的自动处理情况,由业务确定后再增加
  933. if(datagrid1.col == datagrid1.colRef("TRANS_CAR_NO")){
  934. var nodeSet1 = datagrid1.nodeset;
  935. var rw = 0;
  936. var ALLOC_SEQ = model.getValue("/root/ALLOC_SEQ");
  937. //获取选中的行,取出相应的信息
  938. for(var i=0;i<datagrid1.selectedRows;i++){
  939. rw = datagrid1.selectedRow(i);
  940. //把选中行的数字正确的显示
  941. rw = parseInt(rw-1);
  942. }
  943. //这里是否需要先选择再输入车厢号,具体的控制由客户定。暂时不控制
  944. var chk = model.getValue(nodeSet1+"["+rw+"]/CHK");
  945. var TRANS_CAR_NO = model.getValue(nodeSet1+"["+rw+"]/TRANS_CAR_NO");
  946. //datagrid1中选中行所在的排车顺序
  947. var ALLOC_SEQ1 = model.getValue(nodeSet1+"["+rw+"]/ALLOC_SEQ");
  948. //运输方式
  949. var DLIV_TP = model.getValue(nodeSet1+"["+rw+"]/DLIV_TP");
  950. //汽运的时候,不对铁路运输做出处理
  951. if(DLIV_TP == "T" || DLIV_TP == "t"){
  952. //这里需要通过车辆号和选择项来增加排车顺序
  953. //并且只有铁路运输的方式才能生成排车需要,汽车运输是一辆一辆进厂的所以不用考虑
  954. if(ALLOC_SEQ1 == ""){
  955. if(chk == "Y"){
  956. if(TRANS_CAR_NO != ""){
  957. //这里排车顺序号需要做相应的处理,具体的样子如A01,A02.....A12,B01
  958. // ALLOC_SEQ = ++ALLOC_SEQ;
  959. // model.setValue(nodeSet1+"["+rw+"]/ALLOC_SEQ",ALLOC_SEQ);
  960. // model.setValue("/root/ALLOC_SEQ",ALLOC_SEQ);
  961. // model.refresh();
  962. }
  963. }else{
  964. //如果是没有选中的情况,给出提示并且不能输入
  965. // alert(" 请先选择要发货的发货指示号,再输入相应的车厢号! ");
  966. // model.setValue(nodeSet1+"["+rw+"]/TRANS_CAR_NO","");
  967. // return;
  968. }
  969. }
  970. }else if(DLIV_TP == "C" || DLIV_TP == "c"){
  971. if(chk == "Y"){
  972. //汽车运输的情况只能选一个,不使用ALLOC_SEQ接点数据信息
  973. //model.setValue(nodeSet1+"["+rw+"]/ALLOC_SEQ","1");
  974. }else{
  975. //如果是没有选中的情况,给出提示并且不能输入
  976. //alert(" 请先选择要发货的发货指示号,再输入相应的车厢号! ");
  977. //model.setValue(nodeSet1+"["+rw+"]/TRANS_CAR_NO","");
  978. //return;
  979. }
  980. }
  981. }
  982. ]]>
  983. </script>
  984. <script type="javascript" ev:event="onclick">
  985. <![CDATA[
  986. //这里需要实现根据运输指示号查询具体钢卷信息的功能,并且在datagrid2中显示
  987. if(datagrid1.col == datagrid1.colRef("CHK")){
  988. var nodeSet1 = datagrid1.nodeset;
  989. //这里暂时不处理点击一个发货号,选中相同的发货指示号的情况 参见JS
  990. var rw = 0;
  991. for(var i=0;i<datagrid1.selectedRows;i++){
  992. rw = datagrid1.selectedRow(i);
  993. //把选中行的数字正确的显示
  994. rw = parseInt(rw-1);
  995. }
  996. //运输方式代码
  997. var DLIV_TP = model.getValue(nodeSet1+"["+rw+"]/DLIV_TP");
  998. //求出选中行的发货指示号
  999. var SHIP_DIRNO = model.getValue(nodeSet1+"["+rw+"]/SHIP_DIRNO");
  1000. //运输指示号
  1001. var DLIV_DIRNO = model.getValue(nodeSet1+"["+rw+"]/DLIV_DIRNO");
  1002. //车辆号
  1003. var TRANS_CAR_NO = model.getValue(nodeSet1+"["+rw+"]/TRANS_CAR_NO");
  1004. //选择
  1005. var chk = model.getValue(nodeSet1+"["+rw+"]/CHK");
  1006. //如果是火车运输的情况,不做处理
  1007. if(DLIV_TP == "T" || DLIV_TP == "t"){
  1008. //if(chk == "Y"){
  1009. //for(var j=1;j<=datagrid1.rows-2;j++){
  1010. //var SHIP_DIRNO_j = model.getValue(nodeSet1+"["+j+"]/SHIP_DIRNO");
  1011. //找到选中的哪一行,并且根据选中的发货指示号匹配datagrid1中的存在的发货指示号
  1012. //if(SHIP_DIRNO == SHIP_DIRNO_j){
  1013. //model.setValue(nodeSet1+"["+j+"]/CHK","Y");
  1014. //model.refresh();
  1015. //}
  1016. //}
  1017. //}
  1018. }else if(DLIV_TP == "C" || DLIV_TP == "c"){
  1019. //如果是公路运输的情况,只允许选择一个
  1020. //这里不做限制,想一次选择多个都可以
  1021. // for(var j=1;j<=datagrid1.rows-2;j++){
  1022. // //把不是选中行全部改为非选择
  1023. // if(rw != j){
  1024. // model.setValue(nodeSet1+"["+j+"]/CHK","N");
  1025. // model.refresh();
  1026. // }
  1027. // }
  1028. }
  1029. }
  1030. ]]>
  1031. </script>
  1032. </datagrid>
  1033. <datagrid id="datagrid2" nodeset="/root/datagrid2/SHIPDIR_VO/SHIPDIR_Row" scroll="both" caption="选择^钢卷号^等级^牌号^厚度^宽度^重量(磅重)^重量(理论)^堆放位置^收货单位^合同单位^外径^运输指示号(计划号)^目的地^车厢^车厢号^合同号^订单号^钢卷颜色备注^^^^|选择^钢卷号^等级^牌号^厚度^宽度^重量(磅重)^重量(理论)^堆放位置^收货单位^合同单位^外径^运输指示号(计划号)^目的地^车厢^车厢号^合同号^订单号^钢卷颜色备注^^^^" colsep="^" colwidth="45, 90, 41, 80, 48, 60, 52, 45, 90, 100, 100, 51, 100, 100, 83, 100, 100, 100, 100, 100, 100, 100, 100" explorerbar="sortshow" frozencols="9" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:305px; width:855px; height:315px; ">
  1034. <col checkvalue="Y,N" ref="CHK" type="checkbox"/>
  1035. <col editable="false" ref="OLD_SAMPL_NO" type="input" style="background-color:#ffffff; "/>
  1036. <col ref="TOT_DEC_GRD"/>
  1037. <col editable="false" ref="SPEC_STL_GRD" type="input" style="background-color:#ffffff; "/>
  1038. <col editable="false" ref="COIL_THK" type="input" style="background-color:#ffffff; "/>
  1039. <col editable="false" ref="COIL_WTH" type="input" style="background-color:#ffffff; "/>
  1040. <col editable="false" ref="ACT_WGT" type="input" format="#,###" style="background-color:#ffffff; "/>
  1041. <col editable="false" ref="CAL_WGT" type="input" format="#,###" style="background-color:#ffffff; "/>
  1042. <col editable="false" ref="CUR_LOAD_LOC" type="input" style="background-color:#ffffff; "/>
  1043. <col editable="false" ref="CUST_NM" type="input" style="background-color:#ffffff; "/>
  1044. <col editable="false" ref="ORD_NM" type="input" style="background-color:#ffffff; "/>
  1045. <col editable="false" ref="COIL_OUTDIA" type="input" style="background-color:#ffffff; "/>
  1046. <col editable="false" ref="DLIV_DIRNO" type="input" style="background-color:#ffffff; "/>
  1047. <col editable="false" ref="DEST_PCD_DESC" type="input" style="background-color:#ffffff; "/>
  1048. <col ref="ALLOC_SEQ" type="combo">
  1049. <choices>
  1050. <itemset nodeset="/root/init/TRAIN_STEP_NO">
  1051. <label ref="LABEL"/>
  1052. <value ref="VALUE"/>
  1053. </itemset>
  1054. </choices>
  1055. </col>
  1056. <col editable="false" ref="TRANS_CAR_NO" type="input" style="background-color:#ffffff; "/>
  1057. <col editable="false" ref="ORD_NO" type="input" style="background-color:#ffffff; "/>
  1058. <col editable="false" ref="ORD_SEQ" type="input" style="background-color:#ffffff; "/>
  1059. <col editable="false" ref="HCOLOUR_REM" type="input" style="background-color:#ffffff; "/>
  1060. <col ref="MATRL_END_CAUSE_CD" visibility="hidden"/>
  1061. <col editable="false" ref="COIL_NO" type="input" visibility="hidden" style="background-color:#ffffff; "/>
  1062. <col editable="false" ref="SHIP_DIRNO" type="input" visibility="hidden" style="background-color:#ffffff; "/>
  1063. <col ref="DEST_PCD" visibility="hidden"/>
  1064. <script type="javascript" ev:event="xforms-select">
  1065. <![CDATA[
  1066. //汽车的情况,一次装一个并且不允许换车
  1067. // //这里给一个选择判断,如果没有选择上的不允许换车
  1068. // var nodeSet2 = datagrid2.nodeset;
  1069. // var nodeSet1 = datagrid1.nodeset;
  1070. // var rw = 0;
  1071. //
  1072. // //获取选中的行,取出相应的信息
  1073. // for(var i=0;i<datagrid2.selectedRows;i++){
  1074. // rw = datagrid2.selectedRow(i);
  1075. // //把选中行的数字正确的显示
  1076. // rw = parseInt(rw-1);
  1077. // }
  1078. //
  1079. // var chk = model.getValue(nodeSet2+"["+rw+"]/CHK");
  1080. // var DLIV_DIRNO_FROM = model.getValue(nodeSet2+"["+rw+"]/DLIV_DIRNO");
  1081. //
  1082. // if(chk == "Y"){
  1083. // //选择排车顺序号的方法
  1084. // if(bool2.value == "true" || bool2.value == "TRUE"){
  1085. // //可以选择到具体的钢卷,并且把不同发货指示号的钢卷混编
  1086. // //这里还需要判断混编后的钢卷是否超过了车载的最大重量
  1087. // //选择一次判断一次,颜色标识
  1088. // //Bool2_True();
  1089. // }else{
  1090. // //整车替换的情况,火车和汽车运输要分开了处理
  1091. // Bool2_False();
  1092. // }
  1093. // }else{
  1094. // if(rw !=0){
  1095. // for(var j=1;j<datagrid1.rows-1;j++){
  1096. // var DLIV_DIRNO_TO = model.getValue(nodeSet1+"["+j+"]/DLIV_DIRNO");
  1097. // if(DLIV_DIRNO_FROM == DLIV_DIRNO_TO){
  1098. // //取出车厢号
  1099. // var ALLOC_SEQ = model.getValue(nodeSet1+"["+j+"]/ALLOC_SEQ");
  1100. // }
  1101. // }
  1102. // alert(" 没有选中的钢卷不能进行换车操作! ");
  1103. //
  1104. // model.setValue(nodeSet2+"["+rw+"]/ALLOC_SEQ",ALLOC_SEQ);
  1105. // model.refresh();
  1106. // return;
  1107. // }
  1108. // }
  1109. ]]>
  1110. </script>
  1111. <script type="javascript" ev:event="onclick">
  1112. <![CDATA[
  1113. //这里先屏蔽掉,因为换卷后车厢号与运输号之间的对应关系被打乱了
  1114. //全部的卷要一起选择并且指定行车命令,暂时不能考虑打断流程插队的情况
  1115. //所以这里不做控制,给予行改变属性
  1116. var nodeSet1 = datagrid1.nodeset;
  1117. if(datagrid2.col == datagrid2.colRef("CHK")){
  1118. for(var i=1;i<datagrid1.rows-1;i++){
  1119. var chk = model.getValue(nodeSet1+"["+i+"]/CHK");
  1120. if(chk == "Y"){
  1121. datagrid1.rowStatus(i) = 2;
  1122. }
  1123. }
  1124. }
  1125. ]]>
  1126. </script>
  1127. <script type="javascript" ev:event="ondblclick">
  1128. <![CDATA[
  1129. //双击,可以查看下计划时的钢卷信息
  1130. model.removenode("/root/reqData");
  1131. model.makeNode("/root/reqData");
  1132. model.removenode("/root/datagrid4");
  1133. model.makeNode("/root/datagrid4");
  1134. var nodeSet2 = datagrid2.nodeset;
  1135. var row;
  1136. for(var i=0;i<datagrid2.selectedRows;i++){
  1137. row = datagrid2.selectedRow(i);
  1138. //把选中行的数字正确的显示
  1139. row = parseInt(row-1);
  1140. }
  1141. //获取运输号
  1142. var DLIV_DIRNO_JH = null;
  1143. DLIV_DIRNO_JH = model.getValue(nodeSet2+"["+row+"]/DLIV_DIRNO");
  1144. model.setValue("/root/DLIV_DIRNO_JH",DLIV_DIRNO_JH);
  1145. model.refresh();
  1146. model.duplicate("/root/reqData","/root/DLIV_DIRNO_JH");
  1147. commSubmit("UIJ010040-service","DLIV_JH","glueAction.do");
  1148. commAppendData("/root/datagrid4/DLIV_DIRNO_JH_RESULT_VO","/root/resData/DLIV_DIRNO_JH_RESULT_VO");
  1149. model.refresh();
  1150. ]]>
  1151. </script>
  1152. </datagrid>
  1153. <bool id="bool2" visibility="hidden" ref="/root/bool2" style="left:515px; top:285px; width:25px; height:20px; ">
  1154. <script type="javascript" ev:event="DOMActivate">
  1155. <![CDATA[
  1156. //这里钢卷选择的时候需要给予条件,如果是火车的情况没有问题。如是汽车的情况就不能选择
  1157. //暂时不做控制,能业务确定后再说
  1158. //现在主要考虑火车的情况,汽车的情况比较简单。用不到这些功能。
  1159. ]]>
  1160. </script>
  1161. </bool>
  1162. <caption id="caption7" visibility="hidden" style="left:540px; top:285px; width:65px; height:20px; ">已钢卷选择</caption>
  1163. <button id="button3" style="left:755px; top:285px; width:89px; height:20px; background-image:../../images/btn_save.GIF; ">
  1164. <caption>待装车</caption>
  1165. <script type="javascript" ev:event="DOMActivate">
  1166. <![CDATA[
  1167. //清空发送接点
  1168. model.removenode("/root/reqData");
  1169. model.makeNode("/root/reqData");
  1170. //清空datagrid1,datagrid2
  1171. model.removenode("/root/datagrid1");
  1172. model.makeNode("/root/datagrid1");
  1173. //清空获得排车顺序的号的节点
  1174. model.removenode("/root/init/TRAIN_STEP_NO");
  1175. model.makeNode("/root/init/TRAIN_STEP_NO");
  1176. //判断发货指示时间是否为空
  1177. var fromDate = model.getValue("/root/searchData/fromDate");
  1178. var toDate = model.getValue("/root/searchData/toDate");
  1179. // var LANE_TP = model.getValue("/root/searchData/LANE_TP");
  1180. // var ENTERANCE_SEQ = model.getValue("/root/searchData/ENTERANCE_SEQ");
  1181. if(fromDate == ""){
  1182. alert(" 发货指示的开始时间不能为空,请选择相应的发货指示开始时间! ");
  1183. return;
  1184. }
  1185. if(toDate == ""){
  1186. alert(" 发货指示的结束时间不能为空,请选择相应的发货指示结束时间! ");
  1187. return;
  1188. }
  1189. // if(LANE_TP == ""){
  1190. // alert(" 火车入库道次不能为空,请选择相应的火车入库道次! ");
  1191. // return;
  1192. // }
  1193. // if(ENTERANCE_SEQ == ""){
  1194. // alert(" 装车次数不能为空,请输入相应的装车次数信息! ");
  1195. // return;
  1196. // }
  1197. //把相应的接点放入发送对象
  1198. //初始化页面,查询的发货指示状态为03排车待机和材料进度"SFA"
  1199. model.setValue("/root/searchData/SHIP_PROG_CD","04");
  1200. model.duplicate("/root/reqData","/root/searchData/SHIP_PROG_CD");
  1201. model.duplicate("/root/reqData","/root/searchData/fromDate");
  1202. model.duplicate("/root/reqData","/root/searchData/toDate");
  1203. model.duplicate("/root/reqData","/root/searchData/SHIP_DIRNO");
  1204. //这里物料进度SFB
  1205. model.setValue("/root/searchData/CUR_PROG_CD","SFB");
  1206. //5
  1207. model.duplicate("/root/reqData","/root/searchData/CUR_PROG_CD");
  1208. model.duplicate("/root/reqData","/root/searchData/fromDate");
  1209. model.duplicate("/root/reqData","/root/searchData/toDate");
  1210. //汽运的情况直接给出汽运的标识
  1211. model.setValue("/root/searchData/DLIV_TP","C");
  1212. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  1213. //这里汽运的情况不存在入库道次和装车次数的情况
  1214. model.setValue("/root/searchData/LANE_TP","");
  1215. model.duplicate("/root/reqData","/root/searchData/LANE_TP");
  1216. model.setValue("/root/searchData/ENTERANCE_SEQ","");
  1217. model.duplicate("/root/reqData","/root/searchData/ENTERANCE_SEQ");
  1218. //11
  1219. model.duplicate("/root/reqData","/root/searchData/SHIP_COMP_NM");
  1220. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  1221. //获得需要待装车的信息,也就是同一目的地同一客户的运输指示号对应的钢卷需要列出来
  1222. commSubmit("UIJ020300-service","findDlivDir","glueAction.do");
  1223. commAppendData("/root/datagrid1/DLIVDIR_VO","/root/resData/DLIVDIR_VO");
  1224. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  1225. model.refresh();
  1226. //这里查询出来的也是同一目的地,同一客户的待发货的运输指示号
  1227. //所以必须给出相应的排车顺序和琐定相应的选项,这里排车顺序暂时从上到下给出
  1228. //只能观看,不能进行相应的操作
  1229. //这里如果同一发货指示号下面的运输指示号没有全部发完的话,发货指示号的状态是不会改变的
  1230. //因此也就无法获得车厢数目,并且对汽车而言车厢顺序位置也是没有意义的
  1231. var nodeSet1 = datagrid1.nodeset;
  1232. for(var i=1;i<datagrid1.rows-1;i++){
  1233. //这里自加一行,因为datagrid1表头如果有两行的话会认为数据行从2开始
  1234. var row = i+1;
  1235. //把选择项全部钩上,这里如果需要特殊的处理再修改
  1236. model.setValue(nodeSet1+"["+i+"]/CHK","Y");
  1237. //按从上到下的顺序给出排车顺序
  1238. //这里排车顺序可以从表里面读到
  1239. //model.setValue(nodeSet1+"["+i+"]/ALLOC_SEQ",i);
  1240. //model.refresh();
  1241. //把选中行的可输入位置改为灰色
  1242. //datagrid1.isReadOnly(row,datagrid1.colRef("TRANS_CAR_NO")) = true;
  1243. //datagrid1.isReadOnly(row,datagrid1.colRef("ALLOC_SEQ")) = true;
  1244. datagrid1.isReadOnly(row,datagrid1.colRef("CHK")) = true;
  1245. //datagrid1.isReadOnly(row,datagrid1.colRef("LANE_TP")) = true;
  1246. //datagrid1.isReadOnly(row,datagrid1.colRef("ENTERANCE_SEQ")) = true;
  1247. //根据实际的排车顺序情况,把排车顺序号带到车厢字段中
  1248. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/LABEL");
  1249. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/VALUE");
  1250. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/LABEL",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  1251. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/VALUE",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  1252. //model.refresh();
  1253. }
  1254. model.refresh();
  1255. ]]>
  1256. </script>
  1257. </button>
  1258. <caption id="caption6" class="cell" visibility="hidden" style="left:460px; top:285px; width:90px; height:20px; font-weight:bold; text-align:center; border-color:#000000; border-style:solid; ">装车次数</caption>
  1259. <select1 id="combo4" ref="/root/searchData/LANE_TP" visibility="hidden" appearance="minimal" editmode="input" style="left:485px; top:285px; width:85px; height:20px; background-color:#ffff99; border-color:#000000; ">
  1260. <choices>
  1261. <item>
  1262. <label>A</label>
  1263. <value>A</value>
  1264. </item>
  1265. <item>
  1266. <label>B</label>
  1267. <value>B</value>
  1268. </item>
  1269. </choices>
  1270. </select1>
  1271. <caption id="caption8" class="cell" visibility="hidden" style="left:460px; top:285px; width:90px; height:20px; font-weight:bold; text-align:center; border-color:#000000; border-style:solid; ">入库道次</caption>
  1272. <input id="input3" ref="/root/searchData/ENTERANCE_SEQ" visibility="hidden" style="left:485px; top:285px; width:50px; height:20px; background-color:#ffff99; "/>
  1273. <button id="button5" style="left:630px; top:285px; width:105px; height:20px; background-image:../../images/btn_save.GIF; ">
  1274. <caption>待装车取消</caption>
  1275. <script type="javascript" ev:event="DOMActivate">
  1276. <![CDATA[
  1277. //清空发送接点
  1278. model.removenode("/root/reqData");
  1279. model.makeNode("/root/reqData");
  1280. //判断发货指示时间是否为空
  1281. var fromDate = model.getValue("/root/searchData/fromDate");
  1282. var toDate = model.getValue("/root/searchData/toDate");
  1283. if(fromDate == ""){
  1284. alert(" 发货指示的开始时间不能为空,请选择相应的发货指示开始时间! ");
  1285. return;
  1286. }
  1287. if(toDate == ""){
  1288. alert(" 发货指示的结束时间不能为空,请选择相应的发货指示结束时间! ");
  1289. return;
  1290. }
  1291. //把相应的接点放入发送对象
  1292. //初始化页面,查询的发货指示状态为03排车待机和材料进度"SFA"
  1293. //这里取消待装车的操作与查询查询相同,不给出下面的钢卷明细信息
  1294. var isUse = commComfirmBox("是否确认同一运输指示号(计划号)下的钢卷全部选择上?","提示");
  1295. if(isUse == "0"){
  1296. //如果选择否的话,不进行相应操作
  1297. find();
  1298. return;
  1299. }
  1300. var nodeSet2 = datagrid2.nodeset;
  1301. for(var i=0;i<=datagrid2.rows;i++){
  1302. datagrid2.rowStatus(i) = 3;
  1303. }
  1304. commMultiUpdate(datagrid2,"/root/reqData","A",true,"rowStuts1");
  1305. //获得需要待装车的信息,也就是同一目的地同一客户的运输指示号对应的钢卷需要列出来
  1306. commSubmit("UIJ020300-service","returnSHIPDIRCAR","glueAction.do");
  1307. commAppendData("/root/datagrid1/DLIVDIR_VO","/root/resData/DLIVDIR_VO");
  1308. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  1309. model.refresh();
  1310. find();
  1311. ]]>
  1312. </script>
  1313. </button>
  1314. <bool id="bool1" visibility="hidden" ref="/root/bool" style="left:5px; top:280px; width:25px; height:20px; ">
  1315. <script type="javascript" ev:event="onclick">
  1316. <![CDATA[
  1317. if(bool1.value == "false" || bool1.value == "FALSE"){
  1318. //这里选中的话,可以进行同合同号、同订单号下的钢卷的互换。
  1319. //这里必须确定要换的钢卷只选择了一个
  1320. var nodeSet2 = datagrid2.nodeset;
  1321. var ord_no = null;
  1322. var ord_seq = null;
  1323. var coil_no = null;
  1324. var coil_thk = null;
  1325. var coil_wth = null;
  1326. //同运送指示号下的钢卷不能选出,以免造成重复选择
  1327. var dliv_dirno = null;
  1328. model.property("V_REG_ID") = "";
  1329. for(var i=0;i<datagrid2.rows;i++){
  1330. var chk = model.getValue(nodeSet2+"["+i+"]/CHK");
  1331. while(chk == "Y"){
  1332. ord_no = model.getValue(nodeSet2+"["+i+"]/ORD_NO");
  1333. ord_seq = model.getValue(nodeSet2+"["+i+"]/ORD_SEQ");
  1334. coil_no = model.getValue(nodeSet2+"["+i+"]/OLD_SAMPL_NO");
  1335. dliv_dirno = model.getValue(nodeSet2+"["+i+"]/DLIV_DIRNO");
  1336. //这里取出钢卷重量,在换卷的时候给出对比
  1337. act_wgt = model.getValue(nodeSet2+"["+i+"]/ACT_WGT");
  1338. coil_thk = model.getValue(nodeSet2+"["+i+"]/COIL_THK");
  1339. coil_wth = model.getValue(nodeSet2+"["+i+"]/COIL_WTH");
  1340. model.setValue("/root/COIL/ord_no",ord_no);
  1341. model.setValue("/root/COIL/ord_seq",ord_seq);
  1342. model.setValue("/root/COIL/coil_no",coil_no);
  1343. model.setValue("/root/dliv_dirno",dliv_dirno);
  1344. model.setValue("/root/COIL/ACT_WGT",act_wgt);
  1345. model.setValue("/root/COIL/COIL_THK",coil_thk);
  1346. model.setValue("/root/COIL/COIL_WTH",coil_wth);
  1347. //需要获取用户信息,上传
  1348. model.property("V_REG_ID") = model.getValue("/root/initData/rcvInfo/REG_ID");
  1349. var isUse = commComfirmBox("确认需要换卷的钢卷卷数唯一,并且与换上的卷具有相同的合同订单号?","提示");
  1350. if(isUse == "0"){
  1351. //如果选择否的话,不进行相应操作
  1352. find();
  1353. bool1.value = "true";
  1354. return;
  1355. }
  1356. window.load("UIJ_COIL_NO.xrw","modal","", "left:0; top:0; width:980; height:560; sysmenu:visible; min:visible; max:true; resize:true; caption:visible;");
  1357. //这里必须调一次待装车的方法
  1358. //清空发送接点
  1359. model.removenode("/root/reqData");
  1360. model.makeNode("/root/reqData");
  1361. //清空datagrid1,datagrid2
  1362. model.removenode("/root/datagrid1");
  1363. model.makeNode("/root/datagrid1");
  1364. //清空获得排车顺序的号的节点
  1365. model.removenode("/root/init/TRAIN_STEP_NO");
  1366. model.makeNode("/root/init/TRAIN_STEP_NO");
  1367. //判断发货指示时间是否为空
  1368. var fromDate = model.getValue("/root/searchData/fromDate");
  1369. var toDate = model.getValue("/root/searchData/toDate");
  1370. // var LANE_TP = model.getValue("/root/searchData/LANE_TP");
  1371. // var ENTERANCE_SEQ = model.getValue("/root/searchData/ENTERANCE_SEQ");
  1372. if(fromDate == ""){
  1373. //alert(" 发货指示的开始时间不能为空,请选择相应的发货指示开始时间! ");
  1374. return;
  1375. }
  1376. if(toDate == ""){
  1377. //alert(" 发货指示的结束时间不能为空,请选择相应的发货指示结束时间! ");
  1378. return;
  1379. }
  1380. // if(LANE_TP == ""){
  1381. // alert(" 火车入库道次不能为空,请选择相应的火车入库道次! ");
  1382. // return;
  1383. // }
  1384. // if(ENTERANCE_SEQ == ""){
  1385. // alert(" 装车次数不能为空,请输入相应的装车次数信息! ");
  1386. // return;
  1387. // }
  1388. //把相应的接点放入发送对象
  1389. //初始化页面,查询的发货指示状态为03排车待机和材料进度"SFA"
  1390. model.setValue("/root/searchData/SHIP_PROG_CD","04");
  1391. model.duplicate("/root/reqData","/root/searchData/SHIP_PROG_CD");
  1392. model.duplicate("/root/reqData","/root/searchData/fromDate");
  1393. model.duplicate("/root/reqData","/root/searchData/toDate");
  1394. model.duplicate("/root/reqData","/root/searchData/SHIP_DIRNO");
  1395. //这里物料进度SFB
  1396. model.setValue("/root/searchData/CUR_PROG_CD","SFB");
  1397. //5
  1398. model.duplicate("/root/reqData","/root/searchData/CUR_PROG_CD");
  1399. model.duplicate("/root/reqData","/root/searchData/fromDate");
  1400. model.duplicate("/root/reqData","/root/searchData/toDate");
  1401. //汽运的情况直接给出汽运的标识
  1402. model.setValue("/root/searchData/DLIV_TP","C");
  1403. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  1404. //这里汽运的情况不存在入库道次和装车次数的情况
  1405. model.setValue("/root/searchData/LANE_TP","");
  1406. model.duplicate("/root/reqData","/root/searchData/LANE_TP");
  1407. model.setValue("/root/searchData/ENTERANCE_SEQ","");
  1408. model.duplicate("/root/reqData","/root/searchData/ENTERANCE_SEQ");
  1409. //11
  1410. model.duplicate("/root/reqData","/root/searchData/SHIP_COMP_NM");
  1411. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  1412. //获得需要待装车的信息,也就是同一目的地同一客户的运输指示号对应的钢卷需要列出来
  1413. commSubmit("UIJ020300-service","findDlivDir","glueAction.do");
  1414. commAppendData("/root/datagrid1/DLIVDIR_VO","/root/resData/DLIVDIR_VO");
  1415. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  1416. model.refresh();
  1417. //这里查询出来的也是同一目的地,同一客户的待发货的运输指示号
  1418. //所以必须给出相应的排车顺序和琐定相应的选项,这里排车顺序暂时从上到下给出
  1419. //只能观看,不能进行相应的操作
  1420. //这里如果同一发货指示号下面的运输指示号没有全部发完的话,发货指示号的状态是不会改变的
  1421. //因此也就无法获得车厢数目,并且对汽车而言车厢顺序位置也是没有意义的
  1422. var nodeSet1 = datagrid1.nodeset;
  1423. for(var i=1;i<datagrid1.rows-1;i++){
  1424. //这里自加一行,因为datagrid1表头如果有两行的话会认为数据行从2开始
  1425. var row = i+1;
  1426. //把选择项全部钩上,这里如果需要特殊的处理再修改
  1427. model.setValue(nodeSet1+"["+i+"]/CHK","Y");
  1428. //按从上到下的顺序给出排车顺序
  1429. //这里排车顺序可以从表里面读到
  1430. //model.setValue(nodeSet1+"["+i+"]/ALLOC_SEQ",i);
  1431. //model.refresh();
  1432. //把选中行的可输入位置改为灰色
  1433. //datagrid1.isReadOnly(row,datagrid1.colRef("TRANS_CAR_NO")) = true;
  1434. //datagrid1.isReadOnly(row,datagrid1.colRef("ALLOC_SEQ")) = true;
  1435. datagrid1.isReadOnly(row,datagrid1.colRef("CHK")) = true;
  1436. //datagrid1.isReadOnly(row,datagrid1.colRef("LANE_TP")) = true;
  1437. //datagrid1.isReadOnly(row,datagrid1.colRef("ENTERANCE_SEQ")) = true;
  1438. //根据实际的排车顺序情况,把排车顺序号带到车厢字段中
  1439. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/LABEL");
  1440. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/VALUE");
  1441. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/LABEL",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  1442. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/VALUE",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  1443. //model.refresh();
  1444. }
  1445. model.refresh();
  1446. //存在一个就跳出循环,只允许一个选中的钢卷进行替换
  1447. bool1.value = "true";
  1448. return;
  1449. }
  1450. }
  1451. }
  1452. ]]>
  1453. </script>
  1454. </bool>
  1455. <caption id="caption3" visibility="hidden" style="left:35px; top:282px; width:125px; height:20px; ">同合同下的钢卷互换</caption>
  1456. <button id="button1" visibility="hidden" style="left:160px; top:280px; width:60px; height:25px; ">
  1457. <caption>排车计划</caption>
  1458. <script type="javascript" ev:event="onclick">
  1459. <![CDATA[
  1460. //到处于现场出库单一样的单据,便于找卷
  1461. var nodeSet2 = datagrid2.nodeset;
  1462. var ALLOC_SEQ = null;
  1463. var DEST_PCD_DESC = null;
  1464. var ORD_NM = null;
  1465. var ORD_NO = null;
  1466. var ORD_SEQ = null;
  1467. var OLD_SAMPL_NO = null;
  1468. var SPEC_STL_GRD = null;
  1469. var COIL_THK = null;
  1470. var COIL_WTH = null;
  1471. var ACT_WGT = null;
  1472. var TOT_DEC_GRD = null;
  1473. var CAR_NO = null;
  1474. var CUR_LOAD_LOC = null;
  1475. var rownum = 1;
  1476. for(var i=1;i<datagrid2.rows;i++){
  1477. var chk = model.getValue(nodeSet2+"["+i+"]/CHK");
  1478. if(chk == "Y"){
  1479. rownum = rownum +1;
  1480. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/ALLOC_SEQ");
  1481. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/DEST_PCD_DESC");
  1482. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/ORD_NM");
  1483. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/SPEC_STL_GRD");
  1484. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/OLD_SAMPL_NO");
  1485. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/T_W");
  1486. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/ACT_WGT");
  1487. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/TOT_DEC_GRD");
  1488. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/CUR_LOAD_LOC");
  1489. model.makeNode("/root/datagrid3/FHMX["+rownum+"]/CAR_NO");
  1490. ALLOC_SEQ = model.getValue(nodeSet2+"["+i+"]/ALLOC_SEQ");
  1491. DEST_PCD_DESC = model.getValue(nodeSet2+"["+i+"]/DEST_PCD_DESC");
  1492. ORD_NM = model.getValue(nodeSet2+"["+i+"]/ORD_NM");
  1493. ORD_NO = model.getValue(nodeSet2+"["+i+"]/ORD_NO");
  1494. ORD_SEQ = model.getValue(nodeSet2+"["+i+"]/ORD_SEQ");
  1495. OLD_SAMPL_NO = model.getValue(nodeSet2+"["+i+"]/OLD_SAMPL_NO");
  1496. SPEC_STL_GRD = model.getValue(nodeSet2+"["+i+"]/SPEC_STL_GRD");
  1497. COIL_THK = model.getValue(nodeSet2+"["+i+"]/COIL_THK");
  1498. COIL_WTH = model.getValue(nodeSet2+"["+i+"]/COIL_WTH");
  1499. ACT_WGT = model.getValue(nodeSet2+"["+i+"]/ACT_WGT");
  1500. TOT_DEC_GRD = model.getValue(nodeSet2+"["+i+"]/TOT_DEC_GRD");
  1501. CAR_NO = model.getValue(nodeSet2+"["+i+"]/TRANS_CAR_NO");
  1502. CUR_LOAD_LOC = model.getValue(nodeSet2+"["+i+"]/CUR_LOAD_LOC");
  1503. model.setValue("/root/datagrid3/FHMX["+rownum+"]/ALLOC_SEQ",ALLOC_SEQ);
  1504. model.setValue("/root/datagrid3/FHMX["+rownum+"]/DEST_PCD_DESC",DEST_PCD_DESC);
  1505. model.setValue("/root/datagrid3/FHMX["+rownum+"]/ORD_NM",ORD_NM);
  1506. model.setValue("/root/datagrid3/FHMX["+rownum+"]/SPEC_STL_GRD",SPEC_STL_GRD);
  1507. model.setValue("/root/datagrid3/FHMX["+rownum+"]/OLD_SAMPL_NO",OLD_SAMPL_NO);
  1508. model.setValue("/root/datagrid3/FHMX["+rownum+"]/T_W",COIL_THK+"*"+COIL_WTH);
  1509. model.setValue("/root/datagrid3/FHMX["+rownum+"]/ACT_WGT",Number(ACT_WGT/1000));
  1510. model.setValue("/root/datagrid3/FHMX["+rownum+"]/TOT_DEC_GRD",TOT_DEC_GRD);
  1511. model.setValue("/root/datagrid3/FHMX["+rownum+"]/CAR_NO",CAR_NO);
  1512. model.setValue("/root/datagrid3/FHMX["+rownum+"]/CUR_LOAD_LOC",CUR_LOAD_LOC);
  1513. model.refresh();
  1514. }
  1515. }
  1516. model.setValue("/root/datagrid3/FHMX[1]/ALLOC_SEQ","序号");
  1517. model.setValue("/root/datagrid3/FHMX[1]/DEST_PCD_DESC","到站");
  1518. model.setValue("/root/datagrid3/FHMX[1]/ORD_NM","收货单位");
  1519. model.setValue("/root/datagrid3/FHMX[1]/SPEC_STL_GRD","钢种");
  1520. model.setValue("/root/datagrid3/FHMX[1]/OLD_SAMPL_NO","钢卷号");
  1521. model.setValue("/root/datagrid3/FHMX[1]/T_W","规格(厚*宽)MM");
  1522. model.setValue("/root/datagrid3/FHMX[1]/ACT_WGT","重量(T)");
  1523. model.setValue("/root/datagrid3/FHMX[1]/TOT_DEC_GRD","等级");
  1524. model.setValue("/root/datagrid3/FHMX[1]/CUR_LOAD_LOC","堆位");
  1525. model.setValue("/root/datagrid3/FHMX[1]/CAR_NO","车号");
  1526. //导出EXCEL方法
  1527. saveExcelScript(datagrid3, "Sheet1");
  1528. ]]>
  1529. </script>
  1530. </button>
  1531. <datagrid id="datagrid3" nodeset="/root/datagrid3/FHMX" visibility="hidden" caption="序号^到站^收货单位^钢种^钢卷号^规格^重量^等级^垛位^车号" colsep="^" colwidth="50, 70, 90, 90, 90, 76, 80, 66, 60, 90" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:100px; width:760px; height:180px; ">
  1532. <col ref="ALLOC_SEQ"/>
  1533. <col ref="DEST_PCD_DESC"/>
  1534. <col ref="ORD_NM"/>
  1535. <col ref="SPEC_STL_GRD"/>
  1536. <col ref="OLD_SAMPL_NO"/>
  1537. <col ref="T_W"/>
  1538. <col ref="ACT_WGT"/>
  1539. <col ref="TOT_DEC_GRD"/>
  1540. <col ref="CUR_LOAD_LOC"/>
  1541. <col ref="CAR_NO"/>
  1542. </datagrid>
  1543. <object id="ObjTFExcel" clsid="{fe8d1001-6a9d-424d-ae2a-301493bb12da}" style="left:595px; top:0px; width:155px; height:19px; "/>
  1544. <bool id="bool3" visibility="hidden" ref="/root/bool3" style="left:240px; top:280px; width:25px; height:20px; ">
  1545. <script type="javascript" ev:event="onclick">
  1546. <![CDATA[
  1547. if(bool3.value == "false" || bool3.value == "FALSE"){
  1548. //这里选中的话,可以进行同合同号、同订单号下的钢卷的互换。
  1549. //这里必须确定要换的钢卷只选择了一个
  1550. var nodeSet2 = datagrid2.nodeset;
  1551. var coil_no = null;
  1552. var spec_stl_grd = null;
  1553. model.property("V_SPEC_STL_GRD") = "";
  1554. model.property("V_REG_ID") = "";
  1555. for(var i=0;i<datagrid2.rows;i++){
  1556. var chk = model.getValue(nodeSet2+"["+i+"]/CHK");
  1557. while(chk == "Y"){
  1558. coil_no = model.getValue(nodeSet2+"["+i+"]/OLD_SAMPL_NO");
  1559. spec_stl_grd = model.getValue(nodeSet2+"["+i+"]/SPEC_STL_GRD");
  1560. model.setValue("/root/COIL/coil_no",coil_no);
  1561. model.property("V_SPEC_STL_GRD") = spec_stl_grd;
  1562. //需要获取用户信息,上传
  1563. model.property("V_REG_ID") = model.getValue("/root/initData/rcvInfo/REG_ID");
  1564. var isUse = commComfirmBox("确认需要换卷的钢卷卷数唯一?","提示");
  1565. if(isUse == "0"){
  1566. //如果选择否的话,不进行相应操作
  1567. bool3.value = "true";
  1568. return;
  1569. }
  1570. window.load("UIJ_COIL_NO_HH.xrw","modal","", "left:0; top:0; width:650; height:500; sysmenu:visible; min:visible; max:true; resize:true; caption:visible;");
  1571. //这里必须调一次待装车的方法
  1572. //清空发送接点
  1573. model.removenode("/root/reqData");
  1574. model.makeNode("/root/reqData");
  1575. //清空datagrid1,datagrid2
  1576. model.removenode("/root/datagrid1");
  1577. model.makeNode("/root/datagrid1");
  1578. //清空获得排车顺序的号的节点
  1579. model.removenode("/root/init/TRAIN_STEP_NO");
  1580. model.makeNode("/root/init/TRAIN_STEP_NO");
  1581. //判断发货指示时间是否为空
  1582. var fromDate = model.getValue("/root/searchData/fromDate");
  1583. var toDate = model.getValue("/root/searchData/toDate");
  1584. // var LANE_TP = model.getValue("/root/searchData/LANE_TP");
  1585. // var ENTERANCE_SEQ = model.getValue("/root/searchData/ENTERANCE_SEQ");
  1586. if(fromDate == ""){
  1587. //alert(" 发货指示的开始时间不能为空,请选择相应的发货指示开始时间! ");
  1588. return;
  1589. }
  1590. if(toDate == ""){
  1591. //alert(" 发货指示的结束时间不能为空,请选择相应的发货指示结束时间! ");
  1592. return;
  1593. }
  1594. // if(LANE_TP == ""){
  1595. // alert(" 火车入库道次不能为空,请选择相应的火车入库道次! ");
  1596. // return;
  1597. // }
  1598. // if(ENTERANCE_SEQ == ""){
  1599. // alert(" 装车次数不能为空,请输入相应的装车次数信息! ");
  1600. // return;
  1601. // }
  1602. //把相应的接点放入发送对象
  1603. //初始化页面,查询的发货指示状态为03排车待机和材料进度"SFA"
  1604. model.setValue("/root/searchData/SHIP_PROG_CD","04");
  1605. model.duplicate("/root/reqData","/root/searchData/SHIP_PROG_CD");
  1606. model.duplicate("/root/reqData","/root/searchData/fromDate");
  1607. model.duplicate("/root/reqData","/root/searchData/toDate");
  1608. model.duplicate("/root/reqData","/root/searchData/SHIP_DIRNO");
  1609. //这里物料进度SFB
  1610. model.setValue("/root/searchData/CUR_PROG_CD","SFB");
  1611. //5
  1612. model.duplicate("/root/reqData","/root/searchData/CUR_PROG_CD");
  1613. model.duplicate("/root/reqData","/root/searchData/fromDate");
  1614. model.duplicate("/root/reqData","/root/searchData/toDate");
  1615. //汽运的情况直接给出汽运的标识
  1616. model.setValue("/root/searchData/DLIV_TP","C");
  1617. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  1618. //这里汽运的情况不存在入库道次和装车次数的情况
  1619. model.setValue("/root/searchData/LANE_TP","");
  1620. model.duplicate("/root/reqData","/root/searchData/LANE_TP");
  1621. model.setValue("/root/searchData/ENTERANCE_SEQ","");
  1622. model.duplicate("/root/reqData","/root/searchData/ENTERANCE_SEQ");
  1623. //11
  1624. model.duplicate("/root/reqData","/root/searchData/SHIP_COMP_NM");
  1625. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  1626. //获得需要待装车的信息,也就是同一目的地同一客户的运输指示号对应的钢卷需要列出来
  1627. commSubmit("UIJ020300-service","findDlivDir","glueAction.do");
  1628. commAppendData("/root/datagrid1/DLIVDIR_VO","/root/resData/DLIVDIR_VO");
  1629. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  1630. model.refresh();
  1631. //这里查询出来的也是同一目的地,同一客户的待发货的运输指示号
  1632. //所以必须给出相应的排车顺序和琐定相应的选项,这里排车顺序暂时从上到下给出
  1633. //只能观看,不能进行相应的操作
  1634. //这里如果同一发货指示号下面的运输指示号没有全部发完的话,发货指示号的状态是不会改变的
  1635. //因此也就无法获得车厢数目,并且对汽车而言车厢顺序位置也是没有意义的
  1636. var nodeSet1 = datagrid1.nodeset;
  1637. for(var i=1;i<datagrid1.rows-1;i++){
  1638. //这里自加一行,因为datagrid1表头如果有两行的话会认为数据行从2开始
  1639. var row = i+1;
  1640. //把选择项全部钩上,这里如果需要特殊的处理再修改
  1641. model.setValue(nodeSet1+"["+i+"]/CHK","Y");
  1642. //按从上到下的顺序给出排车顺序
  1643. //这里排车顺序可以从表里面读到
  1644. //model.setValue(nodeSet1+"["+i+"]/ALLOC_SEQ",i);
  1645. //model.refresh();
  1646. //把选中行的可输入位置改为灰色
  1647. //datagrid1.isReadOnly(row,datagrid1.colRef("TRANS_CAR_NO")) = true;
  1648. //datagrid1.isReadOnly(row,datagrid1.colRef("ALLOC_SEQ")) = true;
  1649. datagrid1.isReadOnly(row,datagrid1.colRef("CHK")) = true;
  1650. //datagrid1.isReadOnly(row,datagrid1.colRef("LANE_TP")) = true;
  1651. //datagrid1.isReadOnly(row,datagrid1.colRef("ENTERANCE_SEQ")) = true;
  1652. //根据实际的排车顺序情况,把排车顺序号带到车厢字段中
  1653. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/LABEL");
  1654. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/VALUE");
  1655. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/LABEL",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  1656. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/VALUE",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  1657. //model.refresh();
  1658. }
  1659. model.refresh();
  1660. //存在一个就跳出循环,只允许一个选中的钢卷进行替换
  1661. bool1.value = "true";
  1662. return;
  1663. }
  1664. }
  1665. }
  1666. ]]>
  1667. </script>
  1668. </bool>
  1669. <caption id="caption9" visibility="hidden" style="left:265px; top:275px; width:65px; height:32px; ">不同合同下钢卷互换</caption>
  1670. <datagrid id="datagrid4" nodeset="/root/datagrid4/DLIV_DIRNO_JH_RESULT_VO/DLIV_DIRNO_JH_RESULT_Row" caption="运输号^钢卷号^订单牌号^订单规格|运输号^钢卷号^订单牌号^订单规格" colsep="^" colwidth="51, 88, 100, 100" mergecellsfixedrows="bycolrec" rowsep="|" style="left:855px; top:305px; width:125px; height:315px; ">
  1671. <col ref="DLIV_NO"/>
  1672. <col ref="COIL_NO"/>
  1673. <col ref="COIL_STEEL"/>
  1674. <col ref="T_W"/>
  1675. <hint>
  1676. <![CDATA[这里是销售下车的原始卷信息,供排车计划员参考]]>
  1677. </hint>
  1678. </datagrid>
  1679. <caption id="caption10" class="cell" style="left:860px; top:285px; width:120px; height:20px; font-weight:bold; text-align:center; border-color:#000000; border-style:solid; ">
  1680. <![CDATA[下计划时候的钢卷]]>
  1681. <hint>
  1682. <![CDATA[通过双击钢卷信息框来获得销售下车的原始卷数据]]>
  1683. </hint>
  1684. </caption>
  1685. <button id="button2" visibility="hidden" style="left:210px; top:160px; width:105px; height:35px; ">
  1686. <caption>button2</caption>
  1687. <script type="javascript" ev:event="onclick">
  1688. <![CDATA[
  1689. find();
  1690. ]]>
  1691. </script>
  1692. </button>
  1693. <button id="button6" visibility="hidden" style="left:465px; top:175px; width:145px; height:45px; ">
  1694. <caption>button6</caption>
  1695. <script type="javascript" ev:event="onclick">
  1696. <![CDATA[
  1697. save();
  1698. ]]>
  1699. </script>
  1700. </button>
  1701. <button id="button7" visibility="hidden" style="left:125px; top:195px; width:90px; height:25px; ">
  1702. <caption>button7</caption>
  1703. <script type="javascript" ev:event="onclick">
  1704. <![CDATA[
  1705. comfirm();
  1706. ]]>
  1707. </script>
  1708. </button>
  1709. </xhtml:body>
  1710. </xhtml:html>