UIJ010045.xrw 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <?xml-stylesheet href="../../css/body.css" type="text/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[发货管理 > 发货处理 > 汽车排车及装车指示]]>
  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>T</DLIV_TP>
  19. <SHIP_COMP_NM>火车</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. InitParamsEE();
  92. }
  93. //调用公共的初始化方法获得登录用户名
  94. function InitParams(node) {
  95. if (typeof node == "undefined" && typeof node != "object") return;
  96. model.removenode("/root/initData/rcvInfo");
  97. model.makeNode("/root/initData/rcvInfo");
  98. var nodeList = node.childNodes;
  99. node = model.instances(0).selectSingleNode("/root/initData/rcvInfo");
  100. for (var i = 0; i < nodeList.length; i++)
  101. node.appendChild(nodeList.item(i));
  102. }
  103. function InitParamsEE(){
  104. commSubmit("UIJ010041-service","success","glueAction.do");
  105. //汽车运输直接给出汽车运输的标志,不需要进行选择
  106. //commAppendData("/root/init/DLIVTPData/DLIVTPData_VO","/root/resData/DLIVTPData_VO");
  107. commAppendData("/root/init/SHIPCOMPData/SHIPCOMPData_VO","/root/resData/SHIPCOMPData_VO");
  108. model.refresh();
  109. }
  110. //查询方法
  111. function find(){
  112. //清空发送接点
  113. model.removenode("/root/reqData");
  114. model.makeNode("/root/reqData");
  115. //清空datagrid1
  116. model.removenode("/root/datagrid1");
  117. model.makeNode("/root/datagrid1");
  118. //清空一次排车顺序接点,不然会接着上次的数字开始排
  119. model.setValue("/root/ALLOC_SEQ","");
  120. //判断发货指示时间是否为空
  121. var fromDate = model.getValue("/root/searchData/fromDate");
  122. var toDate = model.getValue("/root/searchData/toDate");
  123. if(fromDate == ""){
  124. alert(" 发货指示的开始时间不能为空,请选择相应的发货指示开始时间! ");
  125. return;
  126. }
  127. if(toDate == ""){
  128. alert(" 发货指示的结束时间不能为空,请选择相应的发货指示结束时间! ");
  129. return;
  130. }
  131. //
  132. //把相应的接点放入发送对象
  133. //初始化页面,查询的发货指示状态为03排车待机和材料进度"SFA"
  134. model.setValue("/root/searchData/SHIP_PROG_CD","03");
  135. model.duplicate("/root/reqData","/root/searchData/SHIP_PROG_CD");
  136. model.duplicate("/root/reqData","/root/searchData/fromDate");
  137. model.duplicate("/root/reqData","/root/searchData/toDate");
  138. model.duplicate("/root/reqData","/root/searchData/SHIP_DIRNO");
  139. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  140. //这里物料进度为SFA
  141. model.setValue("/root/searchData/CUR_PROG_CD","SFB");
  142. //5
  143. model.duplicate("/root/reqData","/root/searchData/CUR_PROG_CD");
  144. model.duplicate("/root/reqData","/root/searchData/fromDate");
  145. model.duplicate("/root/reqData","/root/searchData/toDate");
  146. //汽车运输直接给出汽车运输的方式
  147. //model.setValue("/root/searchData/DLIV_TP","C");
  148. //model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  149. model.setValue("/root/searchData/LANE_TP","");
  150. model.duplicate("/root/reqData","/root/searchData/LANE_TP");
  151. model.setValue("/root/searchData/ENTERANCE_SEQ","");
  152. model.duplicate("/root/reqData","/root/searchData/ENTERANCE_SEQ");
  153. //11
  154. model.duplicate("/root/reqData","/root/searchData/SHIP_COMP_NM");
  155. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  156. //
  157. commSubmit("UIJ010046-service","ffid","glueAction.do");
  158. commAppendData("/root/datagrid1/DLIVDIR_VO","/root/resData/DLIVDIR_VO");
  159. model.refresh();
  160. }
  161. //保存方法
  162. function SendPostData(){
  163. //清空发送接点
  164. model.removenode("/root/reqData");
  165. model.makeNode("/root/reqData");
  166. //清空排车顺序节点
  167. model.removenode("/root/init/TRAIN_STEP_NO");
  168. model.makeNode("/root/init/TRAIN_STEP_NO");
  169. //把整个datagrid1中的数据发送到保存类中
  170. //这里因为改变了行数据,所以不用设置行状态
  171. commMultiUpdate(datagrid1,"/root/reqData","A",true,"rowStuts1");
  172. //汽运的情况直接给出汽运的标识,不给出的话保存后无法看到钢卷信息
  173. //model.setValue("/root/searchData/DLIV_TP","C");
  174. //model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  175. commSubmit("UIJ010045-service","senddata","glueAction.do");
  176. model.refresh();
  177. }
  178. //保存方法
  179. function getcar(){
  180. //这里保存的作用是把车厢号和排车顺序号更新到钢卷公共表,
  181. //并且改变TBJ01_SHIP_DIR的状态,从03-04,物料暂时不变SFB
  182. //并且还需要改变tbh02_coil_cmm中的SHIP_PROG_CD
  183. //清空发送接点
  184. model.removenode("/root/reqData");
  185. model.makeNode("/root/reqData");
  186. //清空排车顺序节点
  187. model.removenode("/root/init/TRAIN_STEP_NO");
  188. model.makeNode("/root/init/TRAIN_STEP_NO");
  189. //把整个datagrid1中的数据发送到保存类中
  190. //这里因为改变了行数据,所以不用设置行状态
  191. commMultiUpdate(datagrid1,"/root/reqData","A",true,"rowStuts1");
  192. //汽运的情况直接给出汽运的标识,不给出的话保存后无法看到钢卷信息
  193. model.setValue("/root/searchData/DLIV_TP","C");
  194. model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  195. commSubmit("UIJ010041-service","getcar","glueAction.do");
  196. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  197. model.refresh();
  198. }
  199. function AutoGetcarNo(){
  200. getcar();
  201. var nodeSet1 = datagrid1.nodeset;
  202. for(var i=1,j=1;i<datagrid1.rows-1;i++){
  203. var chk = model.getValue(nodeSet1+"["+i+"]/CHK");
  204. if(chk == "Y"){
  205. if(model.getValue("root/resData/rs_VO/rs_Row["+j+"]")!="UNCHECK")
  206. {
  207. model.setValue(nodeSet1+"["+i+"]/TRANS_CAR_NO",model.getValue("root/resData/rs_VO/rs_Row["+j+"]"));
  208. }
  209. j++;
  210. }
  211. }
  212. }
  213. //保存方法
  214. function save(){
  215. //清空发送接点
  216. model.removenode("/root/reqData");
  217. model.makeNode("/root/reqData");
  218. //清空排车顺序节点
  219. model.removenode("/root/init/TRAIN_STEP_NO");
  220. model.makeNode("/root/init/TRAIN_STEP_NO");
  221. //循环datagrid1,给出道次和次数为1的判断
  222. // var nodeSet = datagrid1.nodeset;
  223. // for(var j=1;j<datagrid1.rows-1;j++){
  224. // var chk = model.getValue(nodeSet+"["+j+"]/CHK");
  225. //
  226. // if(chk == "Y"){
  227. //
  228. // var TRANS_CAR_NO=model.getValue(nodeSet+"["+j+"]/TRANS_CAR_NO");
  229. //
  230. // if(TRANS_CAR_NO==""){
  231. // alert("第"+j+"行的运输指示号为:"+DLIV_DIRNO+" 的没有车辆号不能点击保存按钮!!");
  232. // return;
  233. // }
  234. //
  235. // }
  236. // }
  237. //把整个datagrid1中的数据发送到保存类中
  238. //这里因为改变了行数据,所以不用设置行状态
  239. commMultiUpdate(datagrid1,"/root/reqData","A",true,"rowStuts1");
  240. model.makeValue("/root/reqData/REG_ID",model.getValue("/root/initData/rcvInfo/REG_NM"));
  241. //汽运的情况直接给出汽运的标识,不给出的话保存后无法看到钢卷信息
  242. //model.setValue("/root/searchData/DLIV_TP","C");
  243. //model.duplicate("/root/reqData","/root/searchData/DLIV_TP");
  244. commSubmit("UIJ010046-service","save","glueAction.do");
  245. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  246. model.refresh();
  247. /*
  248. //需要把datagrid1中的已经保存到表中的行改为灰色,不允许再次修改
  249. var nodeSet1 = datagrid1.nodeset;
  250. for(var i=1;i<datagrid1.rows-1;i++){
  251. var chk = model.getValue(nodeSet1+"["+i+"]/CHK");
  252. if(chk == "Y"){
  253. //这里自加一行,因为datagrid1表头如果有两行的话会认为数据行从2开始
  254. var row = i+1;
  255. //把选中行的可输入位置改为灰色
  256. //datagrid1.isReadOnly(row,datagrid1.colRef("TRANS_CAR_NO")) = true;
  257. //datagrid1.isReadOnly(row,datagrid1.colRef("ALLOC_SEQ")) = true;
  258. datagrid1.isReadOnly(row,datagrid1.colRef("CHK")) = true;
  259. //datagrid1.isReadOnly(row,datagrid1.colRef("LANE_TP")) = true;
  260. //datagrid1.isReadOnly(row,datagrid1.colRef("ENTERANCE_SEQ")) = true;
  261. //根据实际的排车顺序情况,把排车顺序号带到车厢字段中
  262. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/LABEL");
  263. model.makeNode("/root/init/TRAIN_STEP_NO["+i+"]/VALUE");
  264. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/LABEL",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  265. model.setValue("/root/init/TRAIN_STEP_NO["+i+"]/VALUE",model.getValue(nodeSet1+"["+i+"]/ALLOC_SEQ"));
  266. //model.refresh();
  267. }
  268. }*/
  269. model.refresh();
  270. find();
  271. }
  272. //确认方法
  273. function comfirm(){
  274. //这里要把已经分好车的卷保存到表中,盖掉原来默认的排车顺序
  275. //应该不存在一个车组分开多次保存的情况,所以先按整车组处理
  276. //不同车组之间不能同时出现在datagrid2中,不然还要再次进行目的地判断
  277. //暂时按照同一车组一次确定的情况处理,具体再定
  278. model.removenode("/root/reqData");
  279. model.makeNode("/root/reqData");
  280. //确认的时候给出提示,是否需要完成排车操作
  281. var isUse = commComfirmBox("是否排车完毕,确认后不能进行换卷操作?","提示");
  282. if(isUse == "0"){
  283. //如果选择否的话,不进行相应操作
  284. return;
  285. }
  286. //超重的情况下是都继续执行的标志
  287. var top_wgt = null;
  288. //超重的车辆的总数
  289. var num_car = 0;
  290. var nodeSet1 = datagrid1.nodeset;
  291. //要判断datagrid1中是否存在超重的情况,存在的话要给予提示
  292. for(var i=1;i<datagrid1.rows-1;i++){
  293. var chk = model.getValue(nodeSet1+"["+i+"]/CHK");
  294. //运输方式
  295. var DLIV_TP = model.getValue(nodeSet1+"["+i+"]/DLIV_TP");
  296. //汽车应该不存在这种情况
  297. if(DLIV_TP == "T" || DLIV_TP =="t"){
  298. //判断选择好了的车组
  299. if(chk == "Y"){
  300. var wgt = model.getValue(nodeSet1+"["+i+"]/ACT_WGT");
  301. //如果重量大于60吨
  302. if(Number(wgt) >= "60000"){
  303. alert(" 第"+i+"车的重量超过最大载重量60吨,超重"+((Number(wgt)-60000)/1000)+"吨! ");
  304. //每超重一辆车,num_car++
  305. num_car = num_car+1;
  306. var isUse = commComfirmBox("是否继续进行装车操作?","提示");
  307. if(isUse=="0"){
  308. //如果选择否的话,不进行相应操作
  309. return;
  310. }else{
  311. //这里给出的是允许超重的标志
  312. top_wgt = "Y";
  313. }
  314. }
  315. }
  316. }else if(DLIV_TP == "C" || DLIV_TP =="c"){
  317. //汽车的处理方式另行添加,以汽车的载重量为准
  318. //这里汽车不做相应的超重控制,以销售下的计划来装。不能换卷换车
  319. }
  320. }
  321. //如果不存在超重的车辆的情况下直接保存
  322. if(num_car == 0){
  323. //alert("num_car : "+num_car);
  324. var nodeSet2 = datagrid2.nodeset;
  325. //这里需要判断是否datagrid2的所有选项全部选上,没有的话给予提示不能提交
  326. for(var j=1;j<datagrid2.rows-1;j++){
  327. var chk_2 = model.getValue(nodeSet2+"["+j+"]/CHK");
  328. var TRANS_CAR_NO= model.getValue(nodeSet2+"["+j+"]/TRANS_CAR_NO");
  329. if(chk_2 != "Y"){
  330. alert(" 第"+j+"行的选择项没有选择,做为同一批次的车不能出现为空的现象! ");
  331. return;
  332. }else{
  333. //选中的行给予相关的行状态
  334. //这里需要加一后才能包括所有的选择项目
  335. if(TRANS_CAR_NO== ""){
  336. alert("第"+j+"行的车辆号为空,不能点击保存按钮!!");
  337. return;
  338. }
  339. datagrid2.rowStatus(parseInt(j+1)) = 2;
  340. }
  341. }
  342. //提交datagrid2的全部数据,可能需要改变行状态
  343. commMultiUpdate(datagrid2,"/root/reqData","A",true,"rowStuts2");
  344. //这里如果同一目的地,同一客户的钢卷进行混装的情况,要怎么记录具体哪个卷
  345. //上了哪个车,这里在表中没有相应的对应字段。是不是可以修改钢卷公共表的对应关系
  346. //但是在程序中只改变了车厢号与卷的对应,并且也不能改变运输号与卷的对应关系。
  347. //这里就是更新钢卷公共表中的对应关系
  348. //这里加入登录用户名,会不会与已有的initData冲突
  349. model.makeValue("/root/reqData/REG_ID",model.getValue("/root/initData/rcvInfo/REG_ID"));
  350. //这里只处理同一发货指示号下的钢卷,不同发货指示号下钢卷混装的情况现在还不能处理
  351. commSubmit("UIJ010041-service","comfirm","glueAction.do");
  352. //errorMessage();
  353. model.refresh();
  354. //获取品质保证书的返回标志,如果品质保证书生成不成功给予提示
  355. if(model.getValue("root/resData/rs_VO/rs_Row")=="sRETURN_CD")
  356. {
  357. window.alert(" 品质保证书生成失败,请联系管理员! ");
  358. return;
  359. }
  360. find();
  361. //这里流程走过了一遍searchSHIPDIR,希望能够清空datagrid2
  362. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  363. model.refresh();
  364. }else{
  365. //这里给出一个标志,在选择继续执行的情况下给予保存
  366. if(top_wgt == "Y" && top_wgt != null){
  367. //alert("top_wgt : "+top_wgt);
  368. //alert("num_car : "+num_car);
  369. var nodeSet2 = datagrid2.nodeset;
  370. //这里需要判断是否datagrid2的所有选项全部选上,没有的话给予提示不能提交
  371. for(var j=1;j<datagrid2.rows-1;j++){
  372. var chk_2 = model.getValue(nodeSet2+"["+j+"]/CHK");
  373. if(chk_2 != "Y"){
  374. alert(" 第"+j+"行的选择项没有选择,做为同一批次的车不能出现为空的现象! ");
  375. return;
  376. }else{
  377. //选中的行给予相关的行状态
  378. //这里需要加一后才能包括所有的选择项目
  379. datagrid2.rowStatus(parseInt(j+1)) = 2;
  380. }
  381. }
  382. //提交datagrid2的全部数据,可能需要改变行状态
  383. commMultiUpdate(datagrid2,"/root/reqData","A",true,"rowStuts2");
  384. //这里如果同一目的地,同一客户的钢卷进行混装的情况,要怎么记录具体哪个卷
  385. //上了哪个车,这里在表中没有相应的对应字段。是不是可以修改钢卷公共表的对应关系
  386. //但是在程序中只改变了车厢号与卷的对应,并且也不能改变运输号与卷的对应关系。
  387. //这里就是更新钢卷公共表中的对应关系
  388. //这里加入登录用户名,会不会与已有的initData冲突
  389. model.makeValue("/root/reqData/REG_ID",model.getValue("/root/initData/rcvInfo/REG_ID"));
  390. //这里只处理同一发货指示号下的钢卷,不同发货指示号下钢卷混装的情况现在还不能处理
  391. commSubmit("UIJ010041-service","comfirm","glueAction.do");
  392. //errorMessage();
  393. model.refresh();
  394. //获取品质保证书的返回标志,如果品质保证书生成不成功给予提示
  395. if(model.getValue("root/resData/rs_VO/rs_Row")=="sRETURN_CD")
  396. {
  397. window.alert(" 品质保证书生成失败,请联系管理员! ");
  398. return;
  399. }
  400. find();
  401. //这里流程走过了一遍searchSHIPDIR,希望能够清空datagrid2
  402. commAppendData("/root/datagrid2/SHIPDIR_VO","/root/resData/SHIPDIR_VO");
  403. model.refresh();
  404. }else{
  405. alert(" 请确定是否有需要确定的钢卷信息! ");
  406. }
  407. }
  408. }
  409. //在bool2为true的情况下,混编钢卷刷新datagrid1的情况
  410. function Bool2_True(){
  411. //这里定位到车厢的选择字段上面
  412. if(datagrid2.col == datagrid2.colRef("ALLOC_SEQ")){
  413. //这里每次改变车厢号信息,要颜色提示超重的运输号
  414. //这里只能整体刷新datagrid1,暂不考虑效率问题。不清空datagrid1
  415. //这里还必须区分,不同目的地的卷不能装到同一辆车上去
  416. var nodeSet1 = datagrid1.nodeset;
  417. var nodeSet2 = datagrid2.nodeset;
  418. //统计个车钢卷个数的变量
  419. var count1=0;
  420. var count2=0;
  421. var count3=0;
  422. var count4=0;
  423. var count5=0;
  424. var count6=0;
  425. var count7=0;
  426. var count8=0;
  427. //这里可能为加入实际车的吨位,具体的情况待定
  428. //统计钢卷重量的变量
  429. var wgt1=0;
  430. var wgt2=0;
  431. var wgt3=0;
  432. var wgt4=0;
  433. var wgt5=0;
  434. var wgt6=0;
  435. var wgt7=0;
  436. var wgt8=0;
  437. // //来源车厢号
  438. // var TRANS_CAR_NO_FROM = "";
  439. // //去向车厢号
  440. // var TRANS_CAR_NO_TO = "";
  441. // //来源运输指示号
  442. // var DLIV_DIRNO_FROM = "";
  443. // //去向运输指示号
  444. // var DLIV_DIRNO_TO = "";
  445. //这里是为了定位到选择到的行
  446. //去向排车顺序号
  447. var ALLOC_SEQ_TO_Y = 0;
  448. //钢卷重量
  449. var ACT_WGT_Y = 0;
  450. //来源目的地
  451. var DEST_PCD_FROM_Y = "";
  452. //来源运输号
  453. var DLIV_DIRNO_FROM_Y = "";
  454. //这里是为了求和运算
  455. //去向排车顺序号
  456. var ALLOC_SEQ_TO = 0;
  457. //钢卷重量
  458. var ACT_WGT = 0;
  459. //来源目的地
  460. var DEST_PCD_FROM = "";
  461. //来源运输号
  462. var DLIV_DIRNO_FROM = "";
  463. //发货指使只在页面显示,不录入数据库
  464. //这里需要定位到选择的具体哪一行,否则的话不能够获得实际的去向排车顺序号和来源运输号
  465. for(var w=0;w<datagrid2.selectedRows;w++){
  466. rw = datagrid2.selectedRow(w);
  467. //把选中行的数字正确的显示
  468. rw = parseInt(rw-1);
  469. //这里的值用于判断等否累加,并且给出提示
  470. ALLOC_SEQ_TO_Y = model.getValue(nodeSet2+"["+rw+"]/ALLOC_SEQ");
  471. ACT_WGT_Y = model.getValue(nodeSet2+"["+rw+"]/ACT_WGT");
  472. DEST_PCD_FROM_Y = model.getValue(nodeSet2+"["+rw+"]/DEST_PCD");
  473. DLIV_DIRNO_FROM_Y = model.getValue(nodeSet2+"["+rw+"]/DLIV_DIRNO");
  474. }
  475. for(var i=1;i<datagrid2.rows-1;i++){
  476. ALLOC_SEQ_TO = model.getValue(nodeSet2+"["+i+"]/ALLOC_SEQ");
  477. ACT_WGT = model.getValue(nodeSet2+"["+i+"]/ACT_WGT");
  478. DEST_PCD_FROM = model.getValue(nodeSet2+"["+i+"]/DEST_PCD");
  479. DLIV_DIRNO_FROM = model.getValue(nodeSet2+"["+i+"]/DLIV_DIRNO");
  480. //循环datagrid1,找到与去向排车顺序号对应的目的地信息。
  481. //如果两个目的地信息相等,就可以进行车内钢卷互换
  482. for(var k=1;k<datagrid1.rows-1;k++){
  483. //求出datagrid1中已有的排车顺序信息
  484. var ALLOC_SEQ_TMP = model.getValue(nodeSet1+"["+k+"]/ALLOC_SEQ");
  485. //求出datagrid1中已有运输指示号信息
  486. var DLIV_DIRNO_TMP = model.getValue(nodeSet1+"["+k+"]/DLIV_DIRNO");
  487. //如果去向排车顺序号相等,取出相对应的目的地信息,以及去向车厢号信息
  488. //这里使用的是选择特定行的数据
  489. if(ALLOC_SEQ_TMP == ALLOC_SEQ_TO_Y){
  490. var DEST_PCD_TO = model.getValue(nodeSet1+"["+k+"]/DEST_PCD");
  491. if(DEST_PCD_FROM_Y == DEST_PCD_TO){
  492. //取出去向的车厢号,并且回填到来源的位置上
  493. var TRANS_CAR_NO_TO = model.getValue(nodeSet1+"["+k+"]/TRANS_CAR_NO");
  494. //这里获取的车厢号必须回填到选择行上去
  495. model.setValue(nodeSet2+"["+rw+"]/TRANS_CAR_NO",TRANS_CAR_NO_TO);
  496. //进行相应的统计计算,并且改变颜色
  497. //判断各个车厢号的情况,把相应的数量和重量加起来
  498. //这里写死,最多也不会超过10辆车
  499. if(ALLOC_SEQ_TO == "1"){
  500. count1 = Number(++count1);
  501. wgt1 = Number(wgt1) + Number(ACT_WGT);
  502. }else if(ALLOC_SEQ_TO == "2"){
  503. count2 = Number(++count2);
  504. wgt2 = Number(wgt2) + Number(ACT_WGT);
  505. }else if(ALLOC_SEQ_TO == "3"){
  506. count3 = Number(++count3);
  507. wgt3 = Number(wgt3) + Number(ACT_WGT);
  508. }else if(ALLOC_SEQ_TO == "4"){
  509. count4 = Number(++count4);
  510. wgt4 = Number(wgt4) + Number(ACT_WGT);
  511. }else if(ALLOC_SEQ_TO == "5"){
  512. count5 = Number(++count5);
  513. wgt5 = Number(wgt5) + Number(ACT_WGT);
  514. }else if(ALLOC_SEQ_TO == "6"){
  515. count6 = Number(++count6);
  516. wgt6 = Number(wgt6) + Number(ACT_WGT);
  517. }else if(ALLOC_SEQ_TO == "7"){
  518. count7= Number(++count7);
  519. wgt7 = Number(wgt7) + Number(ACT_WGT);
  520. }else if(ALLOC_SEQ_TO == "8"){
  521. count8= Number(++count8);
  522. wgt8 = Number(wgt8) + Number(ACT_WGT);
  523. }else{
  524. //先处理7个的情况,10个的以后统一加
  525. alert("datagrid2 超过车辆的最大进库数!");
  526. }
  527. // alert("count1 : "+count1);
  528. // alert("count2 : "+count2);
  529. // alert("count3 : "+count3);
  530. // alert("count4 : "+count4);
  531. // alert("count5 : "+count5);
  532. // alert("count6 : "+count6);
  533. // alert("count7 : "+count7);
  534. //
  535. // alert("wgt1 : "+wgt1);
  536. // alert("wgt2 : "+wgt2);
  537. // alert("wgt3 : "+wgt3);
  538. // alert("wgt4 : "+wgt4);
  539. // alert("wgt5 : "+wgt5);
  540. // alert("wgt6 : "+wgt6);
  541. // alert("wgt7 : "+wgt7);
  542. //把所有的计算结果放入datagrid1中的相应位置,如果超重要用红色表示
  543. for(var j=1;j<datagrid1.rows-1;j++){
  544. var ALLOC_SEQ_1 = model.getValue(nodeSet1+"["+j+"]/ALLOC_SEQ");
  545. var chk_1 = model.getValue(nodeSet1+"["+j+"]/CHK");
  546. //求出特定字段对应的行数
  547. var col_cnt = datagrid1.colRef("CNT");
  548. var col_wgt = datagrid1.colRef("ACT_WGT");
  549. //判断车厢号,并且把相应的数据添入。给出颜色指示
  550. if(ALLOC_SEQ_1 == "1"){
  551. model.setValue(nodeSet1+"["+j+"]/CNT",count1);
  552. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt1);
  553. var row1 = parseInt(j+1);
  554. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  555. if(wgt1 >= "60000"){
  556. //超过重量的时候要变成红色
  557. datagrid1.cellStyle("background-color",Number(row1),Number(col_cnt))="#ff0000";
  558. datagrid1.cellStyle("background-color",Number(row1),Number(col_wgt))="#ff0000";
  559. }else{
  560. //还原回来后就要恢复原来的颜色
  561. datagrid1.cellStyle("background-color",Number(row1),Number(col_cnt))="#ffffff";
  562. datagrid1.cellStyle("background-color",Number(row1),Number(col_wgt))="#ffffff";
  563. }
  564. }else if(ALLOC_SEQ_1 == "2"){
  565. model.setValue(nodeSet1+"["+j+"]/CNT",count2);
  566. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt2);
  567. var row2 = parseInt(j+1);
  568. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  569. if(wgt2 >= "60000"){
  570. //超重改变颜色
  571. datagrid1.cellStyle("background-color",Number(row2),Number(col_cnt))="#ff0000";
  572. datagrid1.cellStyle("background-color",Number(row2),Number(col_wgt))="#ff0000";
  573. }else{
  574. //不超重就还原
  575. datagrid1.cellStyle("background-color",Number(row2),Number(col_cnt))="#ffffff";
  576. datagrid1.cellStyle("background-color",Number(row2),Number(col_wgt))="#ffffff";
  577. }
  578. }else if(ALLOC_SEQ_1 == "3"){
  579. model.setValue(nodeSet1+"["+j+"]/CNT",count3);
  580. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt3);
  581. var row3 = parseInt(j+1);
  582. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  583. if(wgt3 >= "60000"){
  584. //超重
  585. datagrid1.cellStyle("background-color",Number(row3),Number(col_cnt))="#ff0000";
  586. datagrid1.cellStyle("background-color",Number(row3),Number(col_wgt))="#ff0000";
  587. }else{
  588. datagrid1.cellStyle("background-color",Number(row3),Number(col_cnt))="#ffffff";
  589. datagrid1.cellStyle("background-color",Number(row3),Number(col_wgt))="#ffffff";
  590. }
  591. }else if(ALLOC_SEQ_1 == "4"){
  592. model.setValue(nodeSet1+"["+j+"]/CNT",count4);
  593. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt4);
  594. var row4 = parseInt(j+1);
  595. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  596. if(wgt4 >= "60000"){
  597. //超重
  598. datagrid1.cellStyle("background-color",Number(row4),Number(col_cnt))="#ff0000";
  599. datagrid1.cellStyle("background-color",Number(row4),Number(col_wgt))="#ff0000";
  600. }else{
  601. datagrid1.cellStyle("background-color",Number(row4),Number(col_cnt))="#ffffff";
  602. datagrid1.cellStyle("background-color",Number(row4),Number(col_wgt))="#ffffff";
  603. }
  604. }else if(ALLOC_SEQ_1 == "5"){
  605. model.setValue(nodeSet1+"["+j+"]/CNT",count5);
  606. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt5);
  607. var row5 = parseInt(j+1);
  608. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  609. if(wgt5 >= "60000"){
  610. //超重
  611. datagrid1.cellStyle("background-color",Number(row5),Number(col_cnt))="#ff0000";
  612. datagrid1.cellStyle("background-color",Number(row5),Number(col_wgt))="#ff0000";
  613. }else{
  614. datagrid1.cellStyle("background-color",Number(row5),Number(col_cnt))="#ffffff";
  615. datagrid1.cellStyle("background-color",Number(row5),Number(col_wgt))="#ffffff";
  616. }
  617. }else if(ALLOC_SEQ_1 == "6"){
  618. model.setValue(nodeSet1+"["+j+"]/CNT",count6);
  619. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt6);
  620. var row6 = parseInt(j+1);
  621. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  622. if(wgt6 >= "60000"){
  623. //超重
  624. datagrid1.cellStyle("background-color",Number(row6),Number(col_cnt))="#ff0000";
  625. datagrid1.cellStyle("background-color",Number(row6),Number(col_wgt))="#ff0000";
  626. }else{
  627. datagrid1.cellStyle("background-color",Number(row6),Number(col_cnt))="#ffffff";
  628. datagrid1.cellStyle("background-color",Number(row6),Number(col_wgt))="#ffffff";
  629. }
  630. }else if(ALLOC_SEQ_1 == "7"){
  631. model.setValue(nodeSet1+"["+j+"]/CNT",count7);
  632. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt7);
  633. var row7 = parseInt(j+1);
  634. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  635. if(wgt7 >= "60000"){
  636. //超重
  637. datagrid1.cellStyle("background-color",Number(row7),Number(col_cnt))="#ff0000";
  638. datagrid1.cellStyle("background-color",Number(row7),Number(col_wgt))="#ff0000";
  639. }else{
  640. datagrid1.cellStyle("background-color",Number(row7),Number(col_cnt))="#ffffff";
  641. datagrid1.cellStyle("background-color",Number(row7),Number(col_wgt))="#ffffff";
  642. }
  643. }else if(ALLOC_SEQ_1 == "8"){
  644. model.setValue(nodeSet1+"["+j+"]/CNT",count8);
  645. model.setValue(nodeSet1+"["+j+"]/ACT_WGT",wgt8);
  646. var row8 = parseInt(j+1);
  647. //这里还需要判断是否超过允许装载的最大重量,超过的话要改变颜色
  648. if(wgt8 >= "60000"){
  649. //超重
  650. datagrid1.cellStyle("background-color",Number(row8),Number(col_cnt))="#ff0000";
  651. datagrid1.cellStyle("background-color",Number(row8),Number(col_wgt))="#ff0000";
  652. }else{
  653. datagrid1.cellStyle("background-color",Number(row8),Number(col_cnt))="#ffffff";
  654. datagrid1.cellStyle("background-color",Number(row8),Number(col_wgt))="#ffffff";
  655. }
  656. }else{
  657. //提示错误信息
  658. //alert(" datagrid1 超过最大车辆数!");
  659. }
  660. }
  661. }else{
  662. //这里需要把车厢号还原到改变以前
  663. //如果出现两个或者两个以上的相同目的地信息,回填就会出错.使用运输号
  664. for(var a=1;a<datagrid1.rows-1;a++){
  665. var DLIV_DIRNO_TO = model.getValue(nodeSet1+"["+a+"]/DLIV_DIRNO");
  666. //通过原来的运输号信息获得原来的车辆顺序号
  667. if(DLIV_DIRNO_TO == DLIV_DIRNO_FROM_Y){
  668. var ALLOC_SEQ_FROM = model.getValue(nodeSet1+"["+a+"]/ALLOC_SEQ");
  669. //把车辆顺序号还原
  670. model.setValue(nodeSet2+"["+rw+"]/ALLOC_SEQ",ALLOC_SEQ_FROM);
  671. }
  672. }
  673. alert(" 目的地不相同,不能进行钢卷混编车操作! ");
  674. //这里需不需要重新查询一次,把默认值出去
  675. return;
  676. }
  677. }
  678. }
  679. }
  680. }
  681. }
  682. //datagrid2 选择车厢的时候整车替换的情况
  683. function Bool2_False(){
  684. //不能选择到具体的钢卷,只能整运输号之间调整
  685. //只在选择车辆号时触发事件
  686. if(datagrid2.col == datagrid2.colRef("ALLOC_SEQ")){
  687. var nodeSet2 = datagrid2.nodeset;
  688. var nodeSet1 = datagrid1.nodeset;
  689. var rw;
  690. //获取选择位置的去向的车厢号
  691. var ALLOC_SEQ_TO = null;
  692. //获取选择位置的来源的运输指示号
  693. var DLIV_DIRNO_FROM = null;
  694. //获得去向车厢号对应的运输指示号
  695. var DLIV_DIRNO_TO = null;
  696. //获取来源运输指示号对应的车厢号
  697. var ALLOC_SEQ_FROM = null;
  698. for(var i=0;i<datagrid2.selectedRows;i++){
  699. rw = datagrid2.selectedRow(i);
  700. //把选中行的数字正确的显示
  701. rw = parseInt(rw-1);
  702. ALLOC_SEQ_TO = model.getValue(nodeSet2+"["+rw+"]/ALLOC_SEQ");
  703. DLIV_DIRNO_FROM = model.getValue(nodeSet2+"["+rw+"]/DLIV_DIRNO");
  704. }
  705. //alert("ALLOC_SEQ_TO : "+ALLOC_SEQ_TO);
  706. //alert("DLIV_DIRNO_FROM : "+DLIV_DIRNO_FROM);
  707. //发货指示号
  708. var SHIP_DIRNO_FROM;
  709. //装车地点
  710. var GET_NO_PCD_FROM;
  711. //专用线
  712. var EXLV_LINE_CD_FROM;
  713. //卸车地点
  714. var GET_OFF_PCD_FROM;
  715. //运输方式
  716. var DLIV_TP_NM_FROM;
  717. //运输单位
  718. var SM_CFNM_FROM;
  719. //铁路运输号
  720. var TRAIN_DLIVNO_FROM;
  721. //数量
  722. var CNT_FROM;
  723. //重量
  724. var ACT_WGT_FROM;
  725. //目的地
  726. var DEST_PCD_FROM;
  727. //新增加车厢号
  728. var TRANS_CAR_NO_FROM;
  729. //发货指示号
  730. var SHIP_DIRNO_TO;
  731. //装车地点
  732. var GET_NO_PCD_TO;
  733. //专用线
  734. var EXLV_LINE_CD_TO;
  735. //卸车地点
  736. var GET_OFF_PCD_TO;
  737. //运输方式
  738. var DLIV_TP_NM_TO;
  739. //运输单位
  740. var SM_CFNM_TO;
  741. //铁路运输号
  742. var TRAIN_DLIVNO_TO;
  743. //数量
  744. var CNT_TO;
  745. //重量
  746. var ACT_WGT_TO;
  747. //目的地
  748. var DEST_PCD_TO;
  749. //新增加车厢号
  750. var TRANS_CAR_NO_TO;
  751. //通过选择位置的去向车厢号和来源运输号找到相应的
  752. //这里需要改变datagrid1中的运输号与排车顺序号的对应,否则再第二次选择的时候就对应不上了
  753. for(var k=1;k<datagrid1.rows-1;k++){
  754. var DLIV_DIRNO_TMP = model.getValue(nodeSet1+"["+k+"]/DLIV_DIRNO");
  755. var ALLOC_SEQ_TMP = model.getValue(nodeSet1+"["+k+"]/ALLOC_SEQ");
  756. //获得去向运输号
  757. if(ALLOC_SEQ_TO == ALLOC_SEQ_TMP){
  758. DLIV_DIRNO_TO = model.getValue(nodeSet1+"["+k+"]/DLIV_DIRNO");
  759. //alert("DLIV_DIRNO_TO : "+DLIV_DIRNO_TO);
  760. //把已经改变了车厢号的运输号对应到具体的车厢上去
  761. SHIP_DIRNO_TO = model.getValue(nodeSet1+"["+k+"]/SHIP_DIRNO");
  762. GET_NO_PCD_TO = model.getValue(nodeSet1+"["+k+"]/GET_NO_PCD");
  763. EXLV_LINE_CD_TO = model.getValue(nodeSet1+"["+k+"]/EXLV_LINE_CD");
  764. GET_OFF_PCD_TO = model.getValue(nodeSet1+"["+k+"]/GET_OFF_PCD");
  765. DLIV_TP_NM_TO = model.getValue(nodeSet1+"["+k+"]/DLIV_TP_NM");
  766. SM_CFNM_TO = model.getValue(nodeSet1+"["+k+"]/SM_CFNM");
  767. TRAIN_DLIVNO_TO = model.getValue(nodeSet1+"["+k+"]/TRAIN_DLIVNO");
  768. CNT_TO = model.getValue(nodeSet1+"["+k+"]/CNT");
  769. ACT_WGT_TO = model.getValue(nodeSet1+"["+k+"]/ACT_WGT");
  770. DEST_PCD_TO = model.getValue(nodeSet1+"["+k+"]/DEST_PCD");
  771. TRANS_CAR_NO_TO = model.getValue(nodeSet1+"["+k+"]/TRANS_CAR_NO");
  772. model.refresh();
  773. }
  774. //获得来源排车顺序号
  775. if(DLIV_DIRNO_FROM == DLIV_DIRNO_TMP){
  776. ALLOC_SEQ_FROM = model.getValue(nodeSet1+"["+k+"]/ALLOC_SEQ");
  777. //alert("ALLOC_SEQ_FROM : "+ALLOC_SEQ_FROM);
  778. //把已经改变了车厢号的运输号对应到具体的车厢上去
  779. SHIP_DIRNO_FROM = model.getValue(nodeSet1+"["+k+"]/SHIP_DIRNO");
  780. GET_NO_PCD_FROM = model.getValue(nodeSet1+"["+k+"]/GET_NO_PCD");
  781. EXLV_LINE_CD_FROM = model.getValue(nodeSet1+"["+k+"]/EXLV_LINE_CD");
  782. GET_OFF_PCD_FROM = model.getValue(nodeSet1+"["+k+"]/GET_OFF_PCD");
  783. DLIV_TP_NM_FROM = model.getValue(nodeSet1+"["+k+"]/DLIV_TP_NM");
  784. SM_CFNM_FROM = model.getValue(nodeSet1+"["+k+"]/SM_CFNM");
  785. TRAIN_DLIVNO_FROM = model.getValue(nodeSet1+"["+k+"]/TRAIN_DLIVNO");
  786. CNT_FROM = model.getValue(nodeSet1+"["+k+"]/CNT");
  787. ACT_WGT_FROM = model.getValue(nodeSet1+"["+k+"]/ACT_WGT");
  788. DEST_PCD_FROM = model.getValue(nodeSet1+"["+k+"]/DEST_PCD");
  789. TRANS_CAR_NO_FROM = model.getValue(nodeSet1+"["+k+"]/TRANS_CAR_NO");
  790. model.refresh();
  791. }
  792. }
  793. //这里需要再循环一次datagrid1才可以把值都赋予上去
  794. //因为不知道到底哪一行是取出的哪一行是赋予的
  795. for(var m=1;m<=datagrid1.rows-1;m++){
  796. var DLIV_DIRNO_M = model.getValue(nodeSet1+"["+m+"]/DLIV_DIRNO");
  797. var ALLOC_SEQ_M = model.getValue(nodeSet1+"["+m+"]/ALLOC_SEQ");
  798. if(ALLOC_SEQ_TO == ALLOC_SEQ_M){
  799. //alert("ALLOC_SEQ_M : "+ALLOC_SEQ_M+" MMMMMMMMMMMM "+m);
  800. //alert("SHIP_DIRNO_FROM : "+SHIP_DIRNO_FROM);
  801. //把来源的值换过来
  802. datagrid1.valueMatrix(m+1,datagrid1.colRef("SHIP_DIRNO")) = SHIP_DIRNO_FROM;
  803. datagrid1.valueMatrix(m+1,datagrid1.colRef("GET_NO_PCD")) = GET_NO_PCD_FROM;
  804. datagrid1.valueMatrix(m+1,datagrid1.colRef("EXLV_LINE_CD")) = EXLV_LINE_CD_FROM;
  805. datagrid1.valueMatrix(m+1,datagrid1.colRef("GET_OFF_PCD")) = GET_OFF_PCD_FROM;
  806. datagrid1.valueMatrix(m+1,datagrid1.colRef("DLIV_TP_NM")) = DLIV_TP_NM_FROM;
  807. datagrid1.valueMatrix(m+1,datagrid1.colRef("SM_CFNM")) = SM_CFNM_FROM;
  808. datagrid1.valueMatrix(m+1,datagrid1.colRef("TRAIN_DLIVNO")) = TRAIN_DLIVNO_FROM;
  809. datagrid1.valueMatrix(m+1,datagrid1.colRef("CNT")) = CNT_FROM;
  810. datagrid1.valueMatrix(m+1,datagrid1.colRef("ACT_WGT")) = ACT_WGT_FROM;
  811. datagrid1.valueMatrix(m+1,datagrid1.colRef("DLIV_DIRNO")) = DLIV_DIRNO_FROM;
  812. datagrid1.valueMatrix(m+1,datagrid1.colRef("DEST_PCD")) = DEST_PCD_FROM;
  813. model.refresh();
  814. }
  815. //获得来源排车顺序号
  816. if(DLIV_DIRNO_FROM == DLIV_DIRNO_M){
  817. //alert("DLIV_DIRNO_M : "+DLIV_DIRNO_M+" AAAAAAAAAAA "+m);
  818. //调试代码
  819. // alert("SHIP_DIRNO_TO : "+SHIP_DIRNO_TO);
  820. // alert("GET_NO_PCD_TO : "+GET_NO_PCD_TO);
  821. // alert("EXLV_LINE_CD_TO : "+EXLV_LINE_CD_TO);
  822. // alert("GET_OFF_PCD_TO : "+GET_OFF_PCD_TO);
  823. // alert("DLIV_TP_NM_TO : "+DLIV_TP_NM_TO);
  824. // alert("SM_CFNM_TO : "+SM_CFNM_TO);
  825. // alert("TRAIN_DLIVNO_TO : "+TRAIN_DLIVNO_TO);
  826. // alert("CNT_TO : "+CNT_TO);
  827. // alert("ACT_WGT_TO : "+ACT_WGT_TO);
  828. // alert("DLIV_DIRNO_TO : "+DLIV_DIRNO_TO);
  829. // alert("DEST_PCD_TO : "+DEST_PCD_TO);
  830. //把去向的值换过来
  831. datagrid1.valueMatrix(m+1,datagrid1.colRef("SHIP_DIRNO")) = SHIP_DIRNO_TO;
  832. datagrid1.valueMatrix(m+1,datagrid1.colRef("GET_NO_PCD")) = GET_NO_PCD_TO;
  833. datagrid1.valueMatrix(m+1,datagrid1.colRef("EXLV_LINE_CD")) = EXLV_LINE_CD_TO;
  834. datagrid1.valueMatrix(m+1,datagrid1.colRef("GET_OFF_PCD")) = GET_OFF_PCD_TO;
  835. datagrid1.valueMatrix(m+1,datagrid1.colRef("DLIV_TP_NM")) = DLIV_TP_NM_TO;
  836. datagrid1.valueMatrix(m+1,datagrid1.colRef("SM_CFNM")) = SM_CFNM_TO;
  837. datagrid1.valueMatrix(m+1,datagrid1.colRef("TRAIN_DLIVNO")) = TRAIN_DLIVNO_TO;
  838. datagrid1.valueMatrix(m+1,datagrid1.colRef("CNT")) = CNT_TO;
  839. datagrid1.valueMatrix(m+1,datagrid1.colRef("ACT_WGT")) = ACT_WGT_TO;
  840. datagrid1.valueMatrix(m+1,datagrid1.colRef("DLIV_DIRNO")) = DLIV_DIRNO_TO;
  841. datagrid1.valueMatrix(m+1,datagrid1.colRef("DEST_PCD")) = DEST_PCD_TO;
  842. model.refresh();
  843. }
  844. }
  845. //把相应的车厢号对调,不能改变运输号对应的卷。
  846. for(var j=1;j<datagrid2.rows-1;j++){
  847. var DLIV_DIRNO1 = model.getValue(nodeSet2+"["+j+"]/DLIV_DIRNO");
  848. //alert("DLIV_DIRNO1 : "+DLIV_DIRNO1+" JJJJJJJJJJJJ "+j);
  849. //同一运输指示号下面的钢卷要一起变化,不能改变运输号
  850. if(DLIV_DIRNO_FROM == DLIV_DIRNO1){
  851. //改变运输号中来源的数据,车厢序号以及车厢号TRANS_CAR_NO_FROM
  852. model.setValue(nodeSet2+"["+j+"]/ALLOC_SEQ",ALLOC_SEQ_TO);
  853. model.setValue(nodeSet2+"["+j+"]/TRANS_CAR_NO",TRANS_CAR_NO_TO);
  854. }else if(DLIV_DIRNO_TO == DLIV_DIRNO1){
  855. //改变运输号中去向的数据,车厢序号以及车厢号
  856. model.setValue(nodeSet2+"["+j+"]/ALLOC_SEQ",ALLOC_SEQ_FROM);
  857. model.setValue(nodeSet2+"["+j+"]/TRANS_CAR_NO",TRANS_CAR_NO_FROM);
  858. }
  859. }
  860. }
  861. }
  862. //导出EXCEL方法
  863. function saveExcelScript(sDGridName, sExcelSheetName, saveType) {
  864. var sExcelName = window.fileDialog( "save", "", false, "SaveFileName", "xls", "Excel Files(*.xls)|*.xls" );
  865. if ( sExcelName == "" ) {
  866. return;
  867. }
  868. //var sCSVName = "C:\\TFSmartUpdater\\" + sExcelName.lastIndexOf(".") +".csv";
  869. var sCSVName = sExcelName +".csv";
  870. //alert("sExcelName = ["+ sExcelName +"]\nsCSVName = ["+ sCSVName + "]");
  871. eval(sDGridName).saveText(sCSVName, "\n", ",", '\:', true); //DataGrid? ??? CSV??? ??
  872. ObjTFExcel.launchNewInstance(0); //Execute EXCEL
  873. ObjTFExcel.createWorkbook(); //Create new Workbook(for example:Sheet1,Sheet2,Sheet3) -- createWorkBook(Excel-TemplateFile)
  874. ObjTFExcel.loadCSV(sCSVName); //Loading Contents, from CSV to Excel
  875. //Setting up EXCEL Layout.
  876. var nRows = sDGridName.rows - sDGridName.fixedRows + 1; //Keep Careful !!!
  877. var nCols = sDGridName.cols;
  878. //Header
  879. //Line 1 : Sheet Title
  880. //行高的设置
  881. //All of the range
  882. ObjTFExcel.fontcolor ( 01, 01, nRows, nCols ) = "#000000" ;
  883. ObjTFExcel.font ( 01, 01, nRows, nCols ) = "SimSun" ;
  884. //取消边框
  885. ObjTFExcel.setBorderColor( 01, 01, nRows, nCols, "#000000") ;
  886. ObjTFExcel.bold ( 01, 01, nRows, nCols ) = true ;
  887. //改变字体大小
  888. ObjTFExcel.fontsize ( 01, 01, nRows, nCols ) = 12 ;
  889. ObjTFExcel.underline ( 01, 01, nRows, nCols ) = 0 ;
  890. ObjTFExcel.valign ( 01, 01, nRows, nCols ) ="middle" ;
  891. //字体居中
  892. ObjTFExcel.halign ( 01, 01, nRows, nCols ) ="center" ;
  893. //Query-Results Data
  894. var iRow = 1; // iRow = HeaderLine + 1;
  895. //这里设置字体的行宽
  896. // for(var i = iRow; i <= nRows; i++ ) {
  897. // if( (i%5) == 1 ) {
  898. // ObjTFExcel.rowHeight( i ) = 60;
  899. // ObjTFExcel.mergeCell( i, 01, i, nCols );
  900. // } else if( (i%5) == 0 ) {
  901. // ObjTFExcel.rowHeight( i ) = 45;
  902. // ObjTFExcel.mergeCell( i, 01, i, nCols );
  903. // } else {
  904. // ObjTFExcel.rowHeight( i ) = 40;
  905. // }
  906. // }
  907. //改变文本格式的方法,未知
  908. //ObjTFExcel.setformat(02,02,02,03,'@');
  909. //设置列的宽度
  910. ObjTFExcel.colwidth ( 01 ) = 5 ;
  911. ObjTFExcel.colwidth ( 02 ) = 10 ;
  912. ObjTFExcel.colwidth ( 03 ) = 20 ;
  913. ObjTFExcel.colwidth ( 04 ) = 10 ;
  914. ObjTFExcel.colwidth ( 05 ) = 15 ;
  915. ObjTFExcel.colwidth ( 06 ) = 10 ;
  916. ObjTFExcel.colwidth ( 07 ) = 10 ;
  917. ObjTFExcel.colwidth ( 08 ) = 5 ;
  918. ObjTFExcel.colwidth ( 09 ) = 5 ;
  919. ObjTFExcel.colwidth ( 10 ) = 10 ;
  920. // ObjTFExcel.setFormat(iRow, 14, nRows, 14, "yyyy\"-\"mm\"-\"dd\"\" hh\":\"mm\":\"ss\"\";@");
  921. ObjTFExcel.sheetName(1) = sExcelSheetName;
  922. ObjTFExcel.save(sExcelName); //Saving EXCEL
  923. ObjTFExcel.close(); //Closing EXCEL. (You must be closed EXCEL !!!)
  924. window.exec("EXCEL.EXE", sExcelName); //Openning EXCEL
  925. }
  926. ]]>
  927. </script>
  928. </xhtml:head>
  929. <xhtml:body>
  930. <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>
  931. <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; "/>
  932. <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; "/>
  933. <caption id="caption1" style="left:205px; top:0px; width:30px; height:20px; text-align:center; vertical-align:middle; ">--</caption>
  934. <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>
  935. <input id="input6" ref="/root/searchData/SHIP_DIRNO" style="left:455px; top:0px; width:95px; height:20px; background-color:#ffff99; "/>
  936. <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>
  937. <datagrid id="datagrid1" nodeset="/root/datagrid1/DLIVDIR_VO/DLIVDIR_Row" caption="选择^发货指示号^产线^钢种^客户名称^收货单位^规格^发货数量^发货重量^扣重^车号^备注^车辆顺序号^计划拖车时间^实际拖车时间^过磅重量^过磅时间^是否超差^同一批车次^录入人^发送时间^^^^^|选择^发货指示号^产线^钢种^客户名称^收货单位^规格^发货数量^发货重量^扣重^车号^备注^车辆顺序号^计划拖车时间^实际拖车时间^过磅重量^过磅时间^是否超差^同一批车次^录入人^发送时间^^^^^" colsep="^" colwidth="21, 88, 70, 70, 100, 100, 80, 71, 62, 69, 68, 73, 82, 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:600px; ">
  938. <col checkvalue="Y,N" ref="CHK" type="checkbox"/>
  939. <col ref="DLIV_DIRNO"/>
  940. <col ref="PL"/>
  941. <col ref="SPEC_STL_GRD"/>
  942. <col ref="BUYERCODE"/>
  943. <col ref="INCEPTCORPCODE"/>
  944. <col ref="ORDSIZE"/>
  945. <col ref="CNT"/>
  946. <col ref="ACT_WGT"/>
  947. <col ref="KZ" type="input" style="background-color:#ffff99; "/>
  948. <col ref="TRANS_CAR_NO" type="input" style="background-color:#ffff99; "/>
  949. <col ref="REMK" type="combo" style="background-color:#ffff99; ">
  950. <choices>
  951. <item>
  952. <label/>
  953. <value/>
  954. </item>
  955. <item>
  956. <label>等性能</label>
  957. <value>等性能</value>
  958. </item>
  959. <item>
  960. <label>预装</label>
  961. <value>预装</value>
  962. </item>
  963. </choices>
  964. </col>
  965. <col ref="CARSEQ" type="input" format="999999-9999999" maxlength="2" style="background-color:#ffff99; "/>
  966. <col ref="PLANTIME" type="input" maxlength="20" style="background-color:#ffff99; "/>
  967. <col ref="ACTTIME"/>
  968. <col ref="GBZL"/>
  969. <col ref="GBSJ"/>
  970. <col ref="SFCC"/>
  971. <col ref="LANE_TP" type="combo" visibility="visible" style="background-color:#ffff99; ">
  972. <choices>
  973. <item>
  974. <label/>
  975. <value/>
  976. </item>
  977. <item>
  978. <label>A</label>
  979. <value>A</value>
  980. </item>
  981. <item>
  982. <label>B</label>
  983. <value>B</value>
  984. </item>
  985. </choices>
  986. </col>
  987. <col ref="REGID" type="input" visibility="visible" style="background-color:#ffff99; "/>
  988. <col ref="REGTIME" visibility="visible"/>
  989. <col ref="DLIV_TP_NM" visibility="hidden"/>
  990. <col ref="GET_NO_PCD" visibility="hidden"/>
  991. <col ref="DEST_PCD" visibility="hidden"/>
  992. <col ref="EXLV_LINE_CD" visibility="hidden"/>
  993. <col ref="GET_OFF_PCD" visibility="hidden"/>
  994. <script type="javascript" ev:event="xforms-value-changed">
  995. <![CDATA[
  996. //把事件定位在车辆号输入处,这里通过CHK为Y的情况增加排车顺序。
  997. //只要是CHK为Y的情况让排车序号依次增加,只能整发货指示进行暂时不考虑分装的情况
  998. //这里暂时不处理车辆道次和装车次数的自动处理情况,由业务确定后再增加
  999. if(datagrid1.col == datagrid1.colRef("TRANS_CAR_NO")){
  1000. var nodeSet1 = datagrid1.nodeset;
  1001. var rw = 0;
  1002. var ALLOC_SEQ = model.getValue("/root/ALLOC_SEQ");
  1003. //获取选中的行,取出相应的信息
  1004. for(var i=0;i<datagrid1.selectedRows;i++){
  1005. rw = datagrid1.selectedRow(i);
  1006. //把选中行的数字正确的显示
  1007. rw = parseInt(rw-1);
  1008. }
  1009. //这里是否需要先选择再输入车厢号,具体的控制由客户定。暂时不控制
  1010. var chk = model.getValue(nodeSet1+"["+rw+"]/CHK");
  1011. var TRANS_CAR_NO = model.getValue(nodeSet1+"["+rw+"]/TRANS_CAR_NO");
  1012. //datagrid1中选中行所在的排车顺序
  1013. var ALLOC_SEQ1 = model.getValue(nodeSet1+"["+rw+"]/ALLOC_SEQ");
  1014. //运输方式
  1015. var DLIV_TP = model.getValue(nodeSet1+"["+rw+"]/DLIV_TP");
  1016. //汽运的时候,不对铁路运输做出处理
  1017. if(DLIV_TP == "T" || DLIV_TP == "t"){
  1018. //这里需要通过车辆号和选择项来增加排车顺序
  1019. //并且只有铁路运输的方式才能生成排车需要,汽车运输是一辆一辆进厂的所以不用考虑
  1020. if(ALLOC_SEQ1 == ""){
  1021. if(chk == "Y"){
  1022. if(TRANS_CAR_NO != ""){
  1023. //这里排车顺序号需要做相应的处理,具体的样子如A01,A02.....A12,B01
  1024. // ALLOC_SEQ = ++ALLOC_SEQ;
  1025. // model.setValue(nodeSet1+"["+rw+"]/ALLOC_SEQ",ALLOC_SEQ);
  1026. // model.setValue("/root/ALLOC_SEQ",ALLOC_SEQ);
  1027. // model.refresh();
  1028. }
  1029. }else{
  1030. //如果是没有选中的情况,给出提示并且不能输入
  1031. // alert(" 请先选择要发货的发货指示号,再输入相应的车厢号! ");
  1032. // model.setValue(nodeSet1+"["+rw+"]/TRANS_CAR_NO","");
  1033. // return;
  1034. }
  1035. }
  1036. }else if(DLIV_TP == "C" || DLIV_TP == "c"){
  1037. if(chk == "Y"){
  1038. //汽车运输的情况只能选一个,不使用ALLOC_SEQ接点数据信息
  1039. //model.setValue(nodeSet1+"["+rw+"]/ALLOC_SEQ","1");
  1040. }else{
  1041. //如果是没有选中的情况,给出提示并且不能输入
  1042. //alert(" 请先选择要发货的发货指示号,再输入相应的车厢号! ");
  1043. //model.setValue(nodeSet1+"["+rw+"]/TRANS_CAR_NO","");
  1044. //return;
  1045. }
  1046. }
  1047. }
  1048. ]]>
  1049. </script>
  1050. <script type="javascript" ev:event="onclick">
  1051. <![CDATA[
  1052. //这里需要实现根据运输指示号查询具体钢卷信息的功能,并且在datagrid2中显示
  1053. if(datagrid1.col == datagrid1.colRef("CHK")){
  1054. var nodeSet1 = datagrid1.nodeset;
  1055. //这里暂时不处理点击一个发货号,选中相同的发货指示号的情况 参见JS
  1056. var rw = 0;
  1057. for(var i=0;i<datagrid1.selectedRows;i++){
  1058. rw = datagrid1.selectedRow(i);
  1059. //把选中行的数字正确的显示
  1060. rw = parseInt(rw-1);
  1061. }
  1062. //运输方式代码
  1063. var DLIV_TP = model.getValue(nodeSet1+"["+rw+"]/DLIV_TP");
  1064. //求出选中行的发货指示号
  1065. var SHIP_DIRNO = model.getValue(nodeSet1+"["+rw+"]/SHIP_DIRNO");
  1066. //运输指示号
  1067. var DLIV_DIRNO = model.getValue(nodeSet1+"["+rw+"]/DLIV_DIRNO");
  1068. //车辆号
  1069. var TRANS_CAR_NO = model.getValue(nodeSet1+"["+rw+"]/TRANS_CAR_NO");
  1070. //选择
  1071. var chk = model.getValue(nodeSet1+"["+rw+"]/CHK");
  1072. //如果是火车运输的情况,不做处理
  1073. if(DLIV_TP == "T" || DLIV_TP == "t"){
  1074. //if(chk == "Y"){
  1075. //for(var j=1;j<=datagrid1.rows-2;j++){
  1076. //var SHIP_DIRNO_j = model.getValue(nodeSet1+"["+j+"]/SHIP_DIRNO");
  1077. //找到选中的哪一行,并且根据选中的发货指示号匹配datagrid1中的存在的发货指示号
  1078. //if(SHIP_DIRNO == SHIP_DIRNO_j){
  1079. //model.setValue(nodeSet1+"["+j+"]/CHK","Y");
  1080. //model.refresh();
  1081. //}
  1082. //}
  1083. //}
  1084. }else if(DLIV_TP == "C" || DLIV_TP == "c"){
  1085. //如果是公路运输的情况,只允许选择一个
  1086. //这里不做限制,想一次选择多个都可以
  1087. // for(var j=1;j<=datagrid1.rows-2;j++){
  1088. // //把不是选中行全部改为非选择
  1089. // if(rw != j){
  1090. // model.setValue(nodeSet1+"["+j+"]/CHK","N");
  1091. // model.refresh();
  1092. // }
  1093. // }
  1094. }
  1095. }
  1096. ]]>
  1097. </script>
  1098. </datagrid>
  1099. <object id="ObjTFExcel" clsid="{fe8d1001-6a9d-424d-ae2a-301493bb12da}" style="left:655px; top:0px; width:120px; height:19px; "/>
  1100. <button id="button2" visibility="hidden" style="left:560px; top:0px; width:25px; height:20px; ">
  1101. <caption>find</caption>
  1102. <script type="javascript" ev:event="onclick">
  1103. <![CDATA[
  1104. find();
  1105. ]]>
  1106. </script>
  1107. </button>
  1108. <button id="button6" visibility="visible" style="left:585px; top:0px; width:65px; height:20px; font-weight:bold; text-align:center; background-color:#33cccc; border-color:#000000; border-style:solid; ">
  1109. <caption>保存</caption>
  1110. <script type="javascript" ev:event="onclick">
  1111. <![CDATA[
  1112. save();
  1113. ]]>
  1114. </script>
  1115. </button>
  1116. <button id="button1" visibility="hidden" style="left:350px; top:0px; width:25px; height:20px; ">
  1117. <caption>save</caption>
  1118. <script type="javascript" ev:event="onclick">
  1119. <![CDATA[
  1120. save();
  1121. //SendPostData();
  1122. ]]>
  1123. </script>
  1124. </button>
  1125. <select1 id="combo5" ref="/root/searchData/DLIV_TP" appearance="minimal" style="left:870px; top:0px; width:100px; height:20px; background-color:#ffff00; ">
  1126. <choices>
  1127. <item>
  1128. <label>火车</label>
  1129. <value>T</value>
  1130. </item>
  1131. <item>
  1132. <label>汽车</label>
  1133. <value>C</value>
  1134. </item>
  1135. </choices>
  1136. </select1>
  1137. </xhtml:body>
  1138. </xhtml:html>