!----------------------------------------------------------------------! ! Author : Jean-Baptiste Heren ! ! Procedure print-zebra-tag ! !----------------------------------------------------------------------! ! Description: Print Tags on a Zebra Printer ! !----------------------------------------------------------------------! begin-procedure print-zebra-tag ! Set Filename let $filepath = RTRIM($filepath,' ') if substr($filepath,length($filepath),1) <> '\' let $filepath = $filepath || '\' end-if let $filename = $barcode_value || '.txt' let $filename = $filepath || $filename ! Open File open $filename as 1 for-writing record=1000:vary status=#filestat if #filestat <> 0 SHOW 'Could not Open File ' $filename else ! Get Positions in Pixels do cm-to-pixels(5 ,#YLABEL) do cm-to-pixels(18 ,#XLABEL) ! cols do cm-to-pixels(0.5,#XCOL0) do cm-to-pixels(3 ,#XCOL1) do cm-to-pixels(6 ,#XCOL2) do cm-to-pixels(12 ,#XCOL3) ! Lines do cm-to-pixels(1.5,#YGZONE) do cm-to-pixels(0.1,#YLINE6) do cm-to-pixels(0.3,#YLINE5) do cm-to-pixels(1 ,#YLINE4) do cm-to-pixels(1.8,#YLINE3) do cm-to-pixels(2.6,#YLINE2) do cm-to-pixels(3.4,#YLINE1) do cm-to-pixels(4.3,#YLINE0) let $label_format = '^XA^LRN^FWR^CF0,52,39^LH20,20^PON' let $heading = '^FO'|| TO_CHAR(#YLINE0) ||','|| TO_CHAR(#XCOL0) || '^CF0,52,39^FD' || 'Address : ' || $LOCAL_ADDRESS || ' Tel: '|| $LOCAL_PHONE || ' Fax: ' || $LOCAL_FAX ||'^FS' let $line1_1 = '^FO'|| TO_CHAR(#YLINE1) ||','|| TO_CHAR(#XCOL1) || '^CF0,65,52^FD' || 'Ref :' || '^FS' let $line1_2 = '^FO'|| TO_CHAR(#YLINE1) ||','|| TO_CHAR(#XCOL2) || '^CF0,65,52^FD' || $inv_item_id || ', Rev ' || $revision || '^FS' let $line1_3 = '^FO'|| TO_CHAR(#YLINE1) ||','|| TO_CHAR(#XCOL3) || '^B3,,110,Y^FD' || $inv_item_id || '^FS' let $line2_1 = '^FO'|| TO_CHAR(#YLINE2) ||','|| TO_CHAR(#XCOL1) || '^CF0,52,39^FD' || 'Designation :' || '^FS' let $line2_2 = '^FO'|| TO_CHAR(#YLINE2) ||','|| TO_CHAR(#XCOL2) || '^CF0,52,39^FD' || $ITEM_DESCR || '^FS' let $line3_1 = '^FO'|| TO_CHAR(#YLINE3) ||','|| TO_CHAR(#XCOL1) || '^CF0,52,39^FD' || 'Quantite :' || '^FS' let $line3_2 = '^FO'|| TO_CHAR(#YLINE3) ||','|| TO_CHAR(#XCOL2) || '^CF0,52,39^FD' || To_CHAR(#QtyOnTag) || '^FS' let $line4_1 = '^FO'|| TO_CHAR(#YLINE4) ||','|| TO_CHAR(#XCOL1) || '^CF0,52,39^FD' || 'N. Lot :' || '^FS' let $line4_2 = '^FO'|| TO_CHAR(#YLINE4) ||','|| TO_CHAR(#XCOL2) || '^CF0,52,39^FD' || $barcode_value || '^FS' let $line4_3 = '^FO'|| TO_CHAR(#YLINE4) ||','|| TO_CHAR(#XCOL3) || '^B3,,110,Y^FD' || $barcode_value || '^FS' let $line5_1 = '^FO'|| TO_CHAR(#YLINE5) ||','|| TO_CHAR(#XCOL1) || '^CF0,52,39^FD' || 'Date :' || '^FS' let $line5_2 = '^FO'|| TO_CHAR(#YLINE5) ||','|| TO_CHAR(#XCOL2) || '^CF0,52,39^FD' || $SysDateTime || '^FS' ! Graphics let $graphic_box = '^FO0,0^GB' || TO_CHAR(#YLABEL) || ','|| TO_CHAR(#XLABEL) || ',5^FS' let $graphic_line = '^FO0,0^GB0,' || TO_CHAR(#YLABEL) || ',5^FS' let $label_end = '^XZ' let $LINE = $label_format || $heading || $line1_1 || $line1_2 || $line1_3 || $line2_1 || $line2_2 || $line3_1 || $line3_2 || $line4_1 || $line4_2 || $line4_3 || $line5_1 || $line5_2 || $graphic_box || $graphic_line || $label_end ! Write File #DEBUG SHOW 'Zebra data : ' $LINE write 1 from $LINE end-if CLOSE 1 end-if end-procedure !----------------------------------------------------------------------! ! Author : Jean-Baptiste Heren ! ! Procedure To convert cm to pixels using a DPI fixed parameter ! ! Cette procédure convertit des cm en Pixels suivant un dpi paramétré ! !----------------------------------------------------------------------! begin-procedure cm-to-pixels(#cm, :#pixels) ! This Could be also a parameter let #dpi = 300 ! Conversion let #inches = #cm *0.39 ! Rounding let #pixels = round(#dpi * #inches,0) ! Integer divide end-procedure