COMPILE SUBROUTINE Print_Packing_Slip( CocIds, PrintPath, PDFileName ,PrinterInitialized) DECLARE FUNCTION set_printer, get_printer, msg, fieldcount, Printer_Select, obj_Install DECLARE SUBROUTINE security_err_msg $INSERT SECURITY_RIGHTS_EQU $INSERT OIPRINT_EQUATES $INSERT MSG_EQUATES $INSERT QUOTE_EQU $INSERT QUOTE_SPEC_EQU $INSERT PROD_SPEC_EQU $INSERT ORDER_EQU $INSERT COC_EQU $INSERT APPCOLORS EQU PI$LEFT TO 1 EQU PI$TOP TO 2 EQU PI$RIGHT TO 3 EQU PI$BOTTOM TO 4 EQU PI$WIDTH TO 5 EQU PI$HEIGHT TO 6 EQU PI$SIZE TO 7 IF NOT(ASSIGNED(PrintPath)) THEN PrintPath = '' IF NOT(ASSIGNED(PDFFileName)) THEN PDFFileName = '' IF NOT(ASSIGNED(PrinterInitialized)) THEN PrinterInitialized = 0 IF NOT(PrinterInitialized) THEN * * * PRINT SETUP * * * PageInfo = '' PageInfo = '0.5' PageInfo = '1.35' PageInfo = '0.5' PageInfo = '0.25' PageSetup = 0 ;* 0 = Portrait, 1 = Landscape mode PrintSetup = '' PrintSetup<1,1> = '2' ;* Specific Location PrintSetup<1,2> = '5' ;* Show Print and PDF, hide Print Setup PrintSetup<1,3> = '0' ;* Show the printing window PDFParms = 'Printing PDF Document':@FM: '' :@FM: 6 :@FM: '' stat = Set_Printer( 'INIT', PDFParms, 'Packing Slip',PageInfo,PageSetup , PrintSetup) END ELSE stat = Set_Printer('PAGEBREAK') END IF NOT(PrinterInitialized) THEN font = 'Arial' ;* Font basics font<2> = 10 font<4> = 0 stat = Set_Printer('FONTHEADFOOT', font) *stat = Set_Printer('FOOTER',"Page 'P'":@VM:@VM:"'T' 'D'") stat = Set_Printer('LINESTYLE', PS_SOLID:@FM:2) stat = Set_Printer('LINE', -0.1:@FM:-1.2:@FM:7.5:@FM:-1.2, 1) stat = Set_Printer('LINE', -0.1:@FM:-0.1:@FM:7.5:@FM:-0.1, 1) location = -.15:@fm:-1.150:@fm:1.57:@fm:1 stat = Set_Printer('BMP',obj_Install('Get_Prop','ColorBMP'),location, 0,1) font<2> = 12 ;* Drop the font size font<4> = 1 ;* Bold on font<5> = 0 ;* Italics off stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','Company'),5.5:@FM:-1.15,font,1) font<2> = 10 ;* 12 point font font<4> = 0 ;* Bold off font<5> = 0 ;* Italics Off stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','Address'),5.5:@fm:-0.925,font,1) stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','CSZC'),5.5:@fm:-0.775,font,1) stat = Set_Printer('TEXTXY','Phone: ':obj_Install('Get_Prop','Phone'),5.5:@fm:-0.625,font,1) stat = Set_Printer('TEXTXY','FAX: ':obj_Install('Get_Prop','FAX'),5.5:@fm:-0.475,font,1) stat = Set_Printer('TEXTXY','Web: ':obj_Install('Get_Prop','WebSite'),5.5:@fm:-0.325,font,1) END CCnt = fieldcount( CocIds, @fm ) FOR I = 1 TO CCnt ThisCOC = CocIds ThisCOCRec = xlate( 'COC', ThisCOC, '', 'X' ) ThisOrder = ThisCOCRec ThisOrderRec = xlate( 'ORDER', ThisOrder, '', 'X' ) QuoteIDs = ThisOrderRec PSNIDs = ThisOrderRec BillToAttn = ThisOrderRec BillToAddr = ThisOrderRec BillToCity = ThisOrderRec BillToState = ThisOrderRec BillToZip = ThisOrderRec BillToCo = ThisOrderRec ShipToAttn = ThisOrderRec ShipToAddr = ThisOrderRec ShipToCity = ThisOrderRec ShipToState = ThisOrderRec ShipToZip = ThisOrderRec ShipToCo = ThisOrderRec BillToData = BillToAttn:CRLF$ BillToData := BillToCo:CRLF$ SWAP @VM WITH CRLF$ IN BillToAddr BillToData := BillToAddr :CRLF$ BillToData := BillToCity:', ':BillToState:' ':OCONV(BillToZip,'[ZIP_FORMAT]') ShipToData = ShipToAttn:CRLF$ ShipToData := ShiptoCo:CRLF$ SWAP @VM WITH CRLF$ IN ShipToAddr ShipToData := ShipToAddr:CRLF$ ShipToData := ShipToCity:', ':ShipToState:' ':OCONV(ShipToZip,'[ZIP_FORMAT]') stat = set_printer( 'TEXTXY', Today, 6.38:@fm:.7, Hf, 0 ) Today = oconv( date(), 'D2/' ) ShipVia = ThisOrderRec Terms = ThisOrderRec PO = ThisOrderRec WaferQtys = ThisCOCRec TotalShipQty = sum( WaferQtys ) CustNo = ThisCOCRec OrderLines = ThisCOCRec WO = ThisCOCRec PartNumbers = ThisCOCRec LotNumbers = ThisCOCRec OrderNumbers = ThisCOCRec OLCnt = fieldcount( OrderLines, @vm ) QuoteIDsToUse = '' for j = 1 to OLCnt QuoteIDsToUse<1,-1> = QuoteIDs<1,OrderLines<1,j>> next j PSNToUse = PSNIDs<1,OrderLines<1,1>> ;* TAKE THE FIRST PSN TSub = xlate( 'PROD_SPEC', PSNToUse, prod_spec_spec_substrate$, 'X' ) WSize = TSub<1,QSSubWafersize$> * Print the title line font = 'Arial' font<2> = '18' ;* Big type font<4> = 1 ;* Bold on font<5> = 1 ;* Italics stat = Set_Printer('TEXTXY','Packing Slip',2.9:@FM:-0.80,font,0) font<2> = 12 font<4> = 0 ;* Bold off font<5> = 0 ;* Italics off stat = set_printer( 'FONT', font ) stat = Set_Printer('TEXTXY','Ship Date: ':OCONV(Date(),'D4/'),0.0:@FM:0.4,0,0) bcFont = '' bcFont<1> = '3 of 9 Barcode' bcFont<2> = '24' bcFont<3> = 'R' bcFont<4> = '0' stat = Set_Printer('TEXTXY','*':'2S':'V':ThisCOC:'*',4.00:@FM:.10,bcFont,0) ;* Added JCH font<2> = 12 ;* 12 points font<4> = 1 ;* Bold On stat = Set_Printer('TEXTXY', 'Packing List - V':ThisCOC, 4.0:@fm:-.1, font, 0 ) stat = Set_Printer('TEXTXY','SID (2S) V':ThisCOC,4:@FM:.35,font,0) stat = Set_Printer("POS", 0:@FM:.60) * Bill to and Ship to information colFormat = '>1080' colFormat<1,2> = '<4700' colFormat<1,3> = '>1080' colFormat<1,4> = '<3620' colData = 'Bill To:' colData<1,2> = BillToData colData<1,3> = 'Ship To:' colData<1,4> = ShipToData font<2> = 10 font<4> = 0 stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,3) stat = Set_Printer('TEXT') * Shipment Information colHeader = 'Customer No' ; colFormat = '^1440' colHeader<1,2> = 'Ship Date' ; colFormat<1,2> = '^1440' colHeader<1,3> = 'Ship Via' ; colFormat<1,3> = '^2880' colHeader<1,4> = 'Terms' ; colFormat<1,4> = '^2160' colHeader<1,5> = 'PO Number' ; colFormat<1,5> = '^2880' colData = CustNo colData<1,2> = OCONV(Date(),'D4/') colData<1,3> = ShipVia colData<1,4> = Terms colData<1,5> = PO font<2> = 10 font<4> = 1 ;* Bold stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE', colFormat,colHeader,'',LTGREY$,'',0,6) font<2> = 10 font<4> = 0 stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,6) stat = Set_Printer('TEXT') * Order detail colHeader = 'Quantity' ; colFormat = '^1440' colHeader<1,2> = 'Item' ; colFormat<1,2> = '^1440' colHeader<1,3> = 'WO No' ; colFormat<1,3> = '^1440' colHeader<1,4> = 'Part No' ; colFormat<1,4> = '^2160' colHeader<1,5> = 'Lot No':CRLF$:WSize ; colFormat<1,5> = '^2880' colHeader<1,6> = 'Quote No' ; colFormat<1,6> = '^1440' ShipDetail = '' FOR D = 1 TO COUNT(WaferQtys,@VM) + (WaferQtys NE '') ShipDetail = WaferQtys<1,D> ShipDetail = OrderLines<1,D> ShipDetail = WO<1,1> ShipDetail = PartNumbers<1,D> ShipDetail = LotNumbers<1,D> ShipDetail = QuoteIDSToUse<1,D> NEXT D font<2> = 10 font<4> = 1 ;* Bold stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE', colFormat,colHeader,'',LTGREY$,'',0,6) font<2> = 10 font<4> = 0 ;* Bold stat = Set_Printer('FONT',font) FOR J = 1 TO COUNT(WaferQtys,@VM) + (WaferQtys NE '') stat = Set_Printer('CALCTABLE',colFormat:@FM:ShipDetail) TableSize = Get_Printer('CALCTABLE') TableHeight = TableSize<2> IF Get_Printer('POS')<2> + TableHeight > 6.75 THEN stat = Set_Printer('PAGEBREAK') font = 'Arial' font<2> = '18' ;* Big type font<4> = 1 ;* Bold on font<5> = 1 ;* Italics stat = Set_Printer('TEXTXY','Packing Slip',2.3:@FM:-0.80,font,0) stat = Set_Printer('ADDTABLE',colFormat,colHeader,ShipDetail,LTGREY$,'',0,7) END ELSE stat = Set_Printer('ADDTABLE',colFormat,'',ShipDetail,LTGREY$,'',1,7) END NEXT J stat = Set_Printer('TEXT') stat = Set_Printer('TEXT') * Notes colHeader = 'Notes:' ; colFormat = '<10840' colData = xlate( 'ORDER', OrderNumbers<1,1>, order_invoice_notes$, 'X' ) SWAP @TM WITH CRLF$ IN colData IF colData NE '' THEN stat = Set_Printer('CALCTABLE',colFormat:@FM:ShipDetail) TableSize = Get_Printer('CALCTABLE') TableHeight = TableSize<2> IF Get_Printer('POS')<2> + TableHeight > 6.75 THEN stat = Set_Printer('PAGEBREAK') font = 'Arial' font<2> = '18' ;* Big type font<4> = 1 ;* Bold on font<5> = 1 ;* Italics stat = Set_Printer('TEXTXY','Packing Slip',2.3:@FM:-0.80,font,0) END font<2> = 10 font<4> = 1 ;* Bold stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE', colFormat,colHeader,'',LTGREY$,'',0,6) font<2> = 10 font<4> = 0 stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,6) END ;* End of check for notes * Check boxes at bottom of the sheet colFormat = '<+2160' colFormat<1,2> = '<+2160' colFormat<1,3> = '<+2160' colFormat<1,4> = '<+2160' colFormat<1,5> = '<+2160' colData<1> = 'Date Shipped:':@VM:'Checked By:':@VM:'Packed By:':@VM:'Total Pieces:':@VM:'Total Weight':CRLF$ colData<2> = 'Box 1:':@VM:'Box 2':@VM:'Box 3':@VM:'Box 4':@VM:'Box 5':CRLF$ colData<3> = 'Box 6:':@VM:'Box 7':@VM:'Box 8':@VM:'Box 9':@VM:'Box 10':CRLF$ SWAP @VM WITH CRLF$:@VM IN colData stat = Set_Printer('POS',0:@FM:'8.1') font<2> = 8 stat = Set_Printer('FONT',font) stat = Set_Printer("ADDTABLE", colFormat, '', colData, '', '', 1, TB_ALL) * Order totals at bottom of the page font<2> = 10 stat = Set_Printer('FONT',font) stat = set_printer('TEXTXY', 'Total Qty Shipped:':fmt( TotalShipQty, 'R#7' ), 0:@fm:9.63, font, 0 ) stat = set_Printer('TEXTXY','Manufacturing DUNs Number: 121457774',2.5:@FM:9.63,font,0) IF NOT(PrinterInitialized) THEN stat = set_printer( 'TERM' ) END NEXT I RETURN