LZZ001.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540
  1. /*
  2. ===============================================================================
  3. File Name : LZZ001.js
  4. File Explanation : 바코드출력 Common js (for Zebra ZPL )
  5. File Author : Jin Hwa Ji. 2007-05-08
  6. Revision Details :
  7. ===============================================================================
  8. */
  9. /**
  10. * @group : commonweb
  11. * @ver : 2007.05.08 (CMCDEV-0001)
  12. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  13. * @---------------------------------------------------
  14. * @type : function
  15. * @access : public
  16. * <pre>
  17. * 바코드 Format 시작
  18. *
  19. * </pre>
  20. * @param : pX = 시작 가로위치 (in dots)
  21. * @param : pY = 시작 세로위치 (in dots)
  22. * @return :
  23. * @---------------------------------------------------
  24. */
  25. function lzzfBP_StartFormat(pX, pY) {
  26. return "^XA" + "^LH" + pX + "," + pY;
  27. }
  28. /**
  29. * @group : commonweb
  30. * @ver : 2007.05.08 (CMCDEV-0001)
  31. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  32. * @---------------------------------------------------
  33. * @type : function
  34. * @access : public
  35. * <pre>
  36. * 바코드 Format 종료
  37. *
  38. * </pre>
  39. * @param : pCnt = 출력매수
  40. * @return :
  41. * @---------------------------------------------------
  42. */
  43. function lzzfBP_EndFormat(pCnt) {
  44. var vCnt = 1;
  45. if (isNull(pCnt)) {
  46. vCnt = 1;
  47. } else {
  48. vCnt = pCnt
  49. }
  50. return "^PQ" + vCnt + "^XZ";
  51. }
  52. /**
  53. * @group : commonweb
  54. * @ver : 2007.05.08 (CMCDEV-0001)
  55. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  56. * @---------------------------------------------------
  57. * @type : function
  58. * @access : public
  59. * <pre>
  60. * 바코드 Format 종료
  61. *
  62. * </pre>
  63. * @param : pX = 시작 가로위치 (in dots)
  64. * @param : pY = 시작 세로위치 (in dots)
  65. * @return :
  66. * @---------------------------------------------------
  67. */
  68. function lzzfBP_FiendOrigin(pX, pY) {
  69. return "^FO" + pX + "," + pY;
  70. }
  71. /**
  72. * @group : commonweb
  73. * @ver : 2007.05.08 (CMCDEV-0001)
  74. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  75. * @---------------------------------------------------
  76. * @type : function
  77. * @access : public
  78. * <pre>
  79. * 기본 Font 설정
  80. *
  81. * </pre>
  82. * @param : pF = Default Font
  83. * @param : pH = Height(in dots) - Default 9
  84. * @param : pW = Width(in dots) - Default 5
  85. * @return :
  86. * @---------------------------------------------------
  87. */
  88. function lzzfBP_ChangeFont(pF, pH, pW) {
  89. var sBuf = "";
  90. sBuf = "^CF" + pF;
  91. sBuf += "," + pH;
  92. sBuf += "," + pW;
  93. return sBuf;
  94. }
  95. /**
  96. * @group : commonweb
  97. * @ver : 2007.05.08 (CMCDEV-0001)
  98. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  99. * @---------------------------------------------------
  100. * @type : function
  101. * @access : public
  102. * <pre>
  103. * 박스 출력
  104. *
  105. * </pre>
  106. * @param : pX = 시작 가로위치 (in dots)
  107. * @param : pY = 시작 세로위치 (in dots)
  108. * @param : pW = 박스 폭 (in dots)
  109. * @param : pH = 박스 높이 (in dots)
  110. * @param : pBF = 보더 굵이 (박스를 채우려면 값을 크게 준다. 1 ~ 3200)
  111. * @return :
  112. * @---------------------------------------------------
  113. */
  114. function lzzfBP_GraphicBox(pX, pY, pW, pH, pBF) {
  115. var sBuf = "";
  116. sBuf = lzzfBP_FiendOrigin(pX, pY);
  117. sBuf += "^GB" + pW + "," + pH + "," + pBF + "^FS";
  118. return sBuf;
  119. }
  120. /**
  121. * @group : commonweb
  122. * @ver : 2007.05.08 (CMCDEV-0001)
  123. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  124. * @---------------------------------------------------
  125. * @type : function
  126. * @access : public
  127. * <pre>
  128. * 알파벳, 숫자 Field정의
  129. *
  130. * </pre>
  131. * @param : pX = 시작 가로위치 (in dots)
  132. * @param : pY = 시작 세로위치 (in dots)
  133. * @param : pData = Field Data
  134. * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 )
  135. * @return :
  136. * @---------------------------------------------------
  137. */
  138. function lzzfBP_FieldDataA(pX, pY, pData, pReverse) {
  139. var sBuf = "";
  140. sBuf = lzzfBP_FiendOrigin(pX, pY);
  141. if (!isNull(pReverse)) {
  142. if (pReverse.getTrim() == "Y") {
  143. sBuf += "^FR";
  144. }
  145. }
  146. sBuf += "^FD" + pData + "^FS";
  147. return sBuf;
  148. }
  149. /**
  150. * @group : commonweb
  151. * @ver : 2007.05.08 (CMCDEV-0001)
  152. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  153. * @---------------------------------------------------
  154. * @type : function
  155. * @access : public
  156. * <pre>
  157. * 한글 및 특수문자 Field정의
  158. *
  159. * </pre>
  160. * @param : pX = 시작 가로위치 (in dots)
  161. * @param : pY = 시작 세로위치 (in dots)
  162. * @param : pW = 폰트 Width
  163. * @param : pH = 폰트 Height
  164. * @param : pData = Field Data
  165. * @return :
  166. * @---------------------------------------------------
  167. */
  168. function lzzfBP_FieldDataH(pX, pY, pW, pH, pData) {
  169. var sBuf = "";
  170. sBuf = "^CI26";
  171. sBuf += lzzfBP_FiendOrigin(pX, pY);
  172. sBuf += "^AQN" + "," + pW + "," + pH;
  173. sBuf += "^FD" + pData + "^FS";
  174. return sBuf;
  175. }
  176. /**
  177. * @group : commonweb
  178. * @ver : 2007.05.08 (CMCDEV-0001)
  179. * @by : Jin Hwa Ji [ACK Co., Ltd.]
  180. * @---------------------------------------------------
  181. * @type : function
  182. * @access : public
  183. * <pre>
  184. * 바코드 정의(Code 39)
  185. *
  186. * </pre>
  187. * @param : pX = 시작 가로위치
  188. * @param : pY = 시작 세로위치
  189. * @param : pO = 방향
  190. * @param : pH = 바코드 Height
  191. * @param : pData = 바코드정보
  192. * @return :
  193. * @---------------------------------------------------
  194. */
  195. function lzzfBP_BarCode_Code39(pX, pY, pO, pH, pData) {
  196. var sBuf = "";
  197. sBuf = lzzfBP_FiendOrigin(pX, pY);
  198. sBuf += "^BY2,2.0";
  199. sBuf += "^B3" + pO + ",N," + pH + ",N,N^FD" + pData + "^FS";
  200. return sBuf;
  201. }
  202. /**
  203. * @group : commonweb
  204. * @ver : 2010.10.12
  205. * @by : Yo Sep Song [ACK Co., Ltd.]
  206. * @---------------------------------------------------
  207. * @type : function
  208. * @access : public
  209. * <pre>
  210. * 바코드 정의(Code 39)300dpi
  211. *
  212. * </pre>
  213. * @param : pX = 시작 가로위치
  214. * @param : pY = 시작 세로위치
  215. * @param : pO = 방향
  216. * @param : pH = 바코드 Height
  217. * @param : pData = 바코드정보
  218. * @return :
  219. * @---------------------------------------------------
  220. */
  221. function lzzfBP_BarCode_Code39_300dpi(pX, pY, pO, pH, pData) {
  222. var sBuf = "";
  223. sBuf = lzzfBP_FiendOrigin(pX, pY);
  224. sBuf += "^BY3,2.4,130";
  225. sBuf += "^B3" + pO + ",N," + pH + ",N,N^FD" + pData + "^FS";
  226. return sBuf;
  227. }
  228. /* 바코드 프린터 설정 초기정보 가져오기
  229. *
  230. * 바코드 프린터 설정 instance 설명
  231. * <prntkind> : 프린터 종류 ( 0 : 없음, 1 : Zebra, 2 : SATO, 3 : Auto labeler)
  232. * <commkind> : 통신유형 (01 : PRT, 02 : COM, 03 : TCP/IP)
  233. * <comm01> <setupval> : PRT의 설정정보
  234. * <comm02> <comm> : COM의 COM Port (1 : COM1, 2 : COM2)
  235. * <comm02> <databit> : COM의 Data bit (7 : 7 bit, 8 : 8 bit)
  236. * <comm02> <stopbit> : COM의 Stop Bit (1 : 1 bit, 2 : 2 bit)
  237. * <comm02> <baudrate> : COM의 Baud Rate (기본 : 9600)
  238. * <comm02> <parity> : COM의 Parity (n : None, e : Even, o : Odd)
  239. * <comm03> <setupval> : COM의 IP Address
  240. *
  241. */
  242. function fGetBrcdPrntInfo() {
  243. model.makeNode("/root/main/barcdprntsetup");
  244. model.makeNode("/root/send/scrnid");
  245. model.setValue("/root/send/scrnid", getScreenID());
  246. submit("TRLLC90101");
  247. }
  248. // 바코드 프린터 설정 팝업 창 띄우기
  249. function fOpenBrcdPrnt() {
  250. var count = getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  251. if(count == 0) {
  252. model.makeNode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  253. }
  254. open("SPLLC90100_바코드프린터설정.xrw","","","","", "/root/main/barcdprntsetup/prntsetupinfo/setupinfo", "/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  255. }
  256. //바코드 object생성 - 2008-07-16 삭제, 사용안함
  257. /*function lzzfMakeBrcdPrntObj(objNm){
  258. // 추가 2008-03-20 Jin Hwa Ji
  259. body.removeChild(objNm);
  260. // 추가 2008-03-20 Jin Hwa Ji
  261. body.createChild("xforms:object", "id:"+objNm+"; clsid:{08e57c89-8bf3-4a8c-a34f-84735f870449}; visibility:hidden; left:0px; top:0px; width:0px; height:0px; ");
  262. }*/
  263. //바코드 object생성 - 한도미디어작성, 버전 1.0.0.33
  264. function lzzfMakeBrcdPrntObjHanDo(objNm, pSetRef, pIsNew){
  265. if(pSetRef != null){
  266. var prtkind = model.getvalue(pSetRef + "/prntkind");
  267. var portnm = model.getvalue(pSetRef + "/commkind");
  268. var prtnm = model.getvalue(pSetRef + "/comm01/setupval");
  269. var comnum = model.getvalue(pSetRef + "/comm02/comm");
  270. var comset = model.getvalue(pSetRef + "/comm02/baudrate");
  271. comset = comset + "," + model.getvalue(pSetRef + "/comm02/parity");
  272. comset = comset + "," + model.getvalue(pSetRef + "/comm02/databit");
  273. comset = comset + "," + model.getvalue(pSetRef + "/comm02/stopbit");
  274. }else{
  275. var prtkind = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/prntkind");
  276. var portnm = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/commkind");
  277. var prtnm = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm01/setupval");
  278. var comnum = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/comm");
  279. var comset = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/baudrate");
  280. comset = comset + "," + model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/parity");
  281. comset = comset + "," + model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/databit");
  282. comset = comset + "," + model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/comm02/stopbit");
  283. }
  284. body.removeChild(objNm);
  285. if( (prtkind == "9" && portnm == "01") || (prtkind == "11" && portnm == "01") || prtkind == "10" || prtkind == "2" || prtkind == "6" || prtkind == "7" || pIsNew == "NEW"){
  286. body.createChild("xforms:object", "id:"+objNm+"; clsid:{b721f534-d025-466b-8a28-7cf40e700acd}; visibility:hidden; left:100px; top:100px; width:100px; height:100px; ");
  287. if(prtkind == "1") prtkind = 0;
  288. else if(prtkind == "5") prtkind = 1;
  289. else if(prtkind == "2") prtkind = 2;
  290. else if(prtkind == "6") prtkind = 3;
  291. else if(prtkind == "7") prtkind = 4;
  292. else if(prtkind == "9") prtkind = 4;
  293. else if(prtkind == "10") prtkind = 4;
  294. else if(prtkind == "11") prtkind = 4;
  295. else prtkind = 9;
  296. if(portnm == "02") portnm = "1";
  297. else portnm = "2";
  298. eval(objNm + ".setPrt(prtkind, portnm, prtnm, comnum, comset);");
  299. //objNm.setPrt(prtkind, portnm, prtnm, comnum, comset);
  300. //PORT.setPrt(3, "LPT");
  301. }
  302. else{
  303. //1.0.0.26
  304. //{5fe8e390-d882-4ca4-9798-01b1eb10e0f3}
  305. body.createChild("xforms:object", "id:"+objNm+"; clsid:{5fe8e390-d882-4ca4-9798-01b1eb10e0f3}; visibility:hidden; left:100px; top:100px; width:100px; height:100px; ");
  306. }
  307. }
  308. //오토바코드 object생성
  309. function lzzfMakeAutoBrcdPrntObj(objNm){
  310. body.removeChild(objNm);
  311. //1.0.0.26
  312. //{5fe8e390-d882-4ca4-9798-01b1eb10e0f3}
  313. body.createChild("xforms:object", "id:"+objNm+"; clsid:{AE459DE6-EC02-46A5-AD0D-4F028359CC8D}; visibility:hidden; left:100px; top:100px; width:100px; height:100px; ");
  314. }
  315. /**
  316. * @group : commonweb
  317. * @ver : 2010.01.11 (CMCDEV-0001)
  318. * @by : 박정은 [ACK Co., Ltd.]
  319. * @---------------------------------------------------
  320. * @type : function
  321. * @access : public
  322. * <pre>
  323. * 알파벳, 숫자 Field정의
  324. *
  325. * </pre>
  326. * @param : pX = 시작 가로위치 (in 0.1 mm)
  327. * @param : pY = 시작 세로위치 (in 0.1 mm)
  328. * @param : pWs = 가로사이즈 0020 to 0850 (in 0.1 mm)
  329. * @param : pHs = 세로사이즈 0020 to 0850 (in 0.1 mm)
  330. * @param : pData = Field Data
  331. * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 )
  332. * @return :
  333. * @---------------------------------------------------
  334. */
  335. function lzzfBP_FieldDataA_B472(pX, pY, pWs, pHs, pData, pReverse) {
  336. var sBuf = "";
  337. var sReverse="";
  338. // sSndMsg += "{PV" + "01" + ";" + "0120" + "," + "0020" + "," + "0020" + "," + "0020" + ",B,+000,00,B|}" ;
  339. // sSndMsg += "{RV" + "01" + ";*"+ bcno +"*|}";
  340. var ppX = pX.toString().getLeftPad(4, "0");
  341. var ppY = pY.toString().getLeftPad(4, "0");
  342. var ppWs = pWs.toString().getLeftPad(4, "0");
  343. var ppHs = pHs.toString().getLeftPad(4, "0");
  344. if (!isNull(pReverse)) { // 역상
  345. if (pReverse.getTrim() == "Y") {
  346. sReverse = "W";
  347. }else{
  348. sReverse = "B";
  349. }
  350. }else{
  351. sReverse = "B";
  352. }
  353. sBuf = "{PV" + "01" + ";" + ppX + "," + ppY + "," + ppWs + "," + ppHs + ",B,+000,00,"+ sReverse +"|}{RV" + "01" + ";"+ pData +"|}" ;
  354. // sBuf += "^FD" + pData + "^FS";
  355. return sBuf;
  356. }
  357. /**
  358. * @group : commonweb
  359. * @ver : 2010.01.11 (CMCDEV-0001)
  360. * @by : 박정은 [ACK Co., Ltd.]
  361. * @---------------------------------------------------
  362. * @type : function
  363. * @access : public
  364. * <pre>
  365. * 알파벳, 숫자 Field정의
  366. *
  367. * </pre>
  368. * @param : pX = 시작 가로위치 (in 0.1 mm)
  369. * @param : pY = 시작 세로위치 (in 0.1 mm)
  370. * @param : pWs = 가로사이즈 0020 to 0850 (in 0.1 mm)
  371. * @param : pHs = 세로사이즈 0020 to 0850 (in 0.1 mm)
  372. * @param : pData = Field Data
  373. * @param : pReverse = 배경 기준으로 역상으로표시 ( Y:역상으로 )
  374. * @return :
  375. * @---------------------------------------------------
  376. */
  377. function lzzfBP_FieldDataG_B472(pX, pY, pData, pReverse) {
  378. var sBuf = "";
  379. var sReverse="";
  380. // sSndMsg += "{PV" + "01" + ";" + "0120" + "," + "0020" + "," + "0020" + "," + "0020" + ",B,+000,00,B|}" ;
  381. // sSndMsg += "{RV" + "01" + ";*"+ bcno +"*|}";
  382. var ppX = pX.toString().getLeftPad(4, "0");
  383. var ppY = pY.toString().getLeftPad(4, "0");
  384. //var ppWs = pWs.toString().getLeftPad(4, "0");
  385. //var ppHs = pHs.toString().getLeftPad(4, "0");
  386. if (!isNull(pReverse)) { // 역상
  387. if (pReverse.getTrim() == "Y") {
  388. sReverse = "W";
  389. }else{
  390. sReverse = "B";
  391. }
  392. }else{
  393. sReverse = "B";
  394. }
  395. sBuf = "{PC" + "001" + ";" + ppX + "," + ppY + ",1,1,G,-02,00,"+ sReverse +"|}{RC" + "01" + ";"+ pData +"|}" ;
  396. // sBuf += "^FD" + pData + "^FS";
  397. return sBuf;
  398. }
  399. /**
  400. * @group : commonweb
  401. * @ver : 2010.01.11 (CMCDEV-0001)
  402. * @by : 박정은 [ACK Co., Ltd.]
  403. * @---------------------------------------------------
  404. * @type : function
  405. * @access : public
  406. * <pre>
  407. * 바코드 정의(Code 39)
  408. *
  409. * </pre>
  410. * @param : pX = 시작 가로위치
  411. * @param : pY = 시작 세로위치
  412. * @param : pBW = Wide bar width 01~99
  413. * @param : pSW = Wide space width 01~99
  414. * @param : pData = 바코드정보
  415. * @return :
  416. * @---------------------------------------------------
  417. */
  418. function lzzfBP_BarCode_Code39_B472(pX, pY, pBW, pSW, pData, pH) {
  419. var sBuf = "";
  420. var ppX = pX.toString().getLeftPad(4, "0");
  421. var ppY = pY.toString().getLeftPad(4, "0");
  422. var ppBW = pBW.toString().getLeftPad(2, "0");
  423. var ppSW = pSW.toString().getLeftPad(2, "0");
  424. var ppHT = pH.toString().getLeftPad(4, "0");
  425. //sSndMsg += "{XB01;0030,0030,3,1,02,02,04,04,02,0,0120,+0000000000,0,00|}"
  426. //sSndMsg += "{RB01;"+ sBcno +"|}"
  427. sBuf = "{XB01;"+ ppX + "," + ppY +",3,1,02,02,"+ppBW+","+ppSW+",02,0,"+ ppHT +",+0000000000,0,00|}{RB01;" + pData +"|}";
  428. return sBuf;
  429. }
  430. /**
  431. * @group : commonweb
  432. * @ver : 2010.01.12 (CMCDEV-0001)
  433. * @by : 박정은 [ACK Co., Ltd.]
  434. * @---------------------------------------------------
  435. * @type : function
  436. * @access : public
  437. * <pre>
  438. * 바코드 Format 종료
  439. *
  440. * </pre>
  441. * @param : pCnt = 출력매수
  442. * @return :
  443. * @---------------------------------------------------
  444. */
  445. function lzzfBP_EndFormat_B472(pCnt) {
  446. // sSndMsg += "{XS;I,0001,0002C5101|}";
  447. var vCnt = 1;
  448. if (isNull(pCnt)) {
  449. vCnt = "0001";
  450. } else {
  451. vCnt = pCnt.toString().getLeftPad(4, "0");
  452. }
  453. return "{XS;I," + vCnt + ",0002C5101|}";
  454. }