COMPILE SUBROUTINE Print_Cass_Out( WMOutKeys, PrintOnly, PrintPath, PDFFileName, PrinterInitialized, HideUI) $insert LOGICAL $INSERT MSG_EQUATES $INSERT RDS_EQU $INSERT RDS_LAYER_INFO_EQU $INSERT PROD_SPEC_EQU $INSERT OIPRINT_EQUATES $INSERT NCR_EQU $INSERT POPUP_EQUATES $INSERT COA $INSERT RDS_TEST_EQUATES $INSERT RDS_LAYER_EQUATES $INSERT WO_LOG_EQUATES $INSERT WO_STEP_EQU $INSERT WO_MAT_EQUATES $INSERT WM_OUT_EQUATES $INSERT SURFACE_SCAN_EQUATES $INSERT CUST_EPI_PART_EQUATES 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 EQU LTGREY$ TO 229 + (229*256) + (229*65536) DECLARE FUNCTION FieldCount, Msg, Set_Printer, Get_Printer, obj_RDS_Test DECLARE FUNCTION Printer_Select, obj_Install, obj_RDS DECLARE SUBROUTINE extract_si_keys, record_lock, Btree.Extract IF NOT(ASSIGNED(PrintPath)) THEN PrintPath = '' IF NOT(ASSIGNED(PDFFileName)) THEN PDFFileName = '' IF NOT(ASSIGNED(PrinterInitialized)) THEN PrinterInitialized = 0 If Assigned(HideUI) else HideUI = False$ If HideUI NE True$ then HideUI = False$ CassCnt = COUNT(WMOutKeys,@FM) + (WMOutKeys NE '') WOStepKey = FIELD(WMOutKeys<1,1>,'*',1,2) WONo = WOStepKey[1,'*'] WORec = XLATE('WO_LOG',WONo,'','X') CustNo = WORec CustName = XLATE('COMPANY',CustNo,4,'X') EpiPartNo = WORec CleanRoomPaper = XLATE('CUST_EPI_PART',CustNo:'*':EpiPartNo,CUST_EPI_PART_CUST_RDS_CLEANROOM_PAPER$,'X') PSNo = XLATE('WO_STEP',WOStepKey,WO_STEP_PROD_SPEC_ID$,'X') IF CleanRoomPaper THEN MsgInfo = '' Mtext = "This customer's specification requires cleanroom paper RDSs":CrLf$:'Please place ':CassCnt:' piece(s) of cleanroom paper in the printer and then click OK' MsgInfo = Mtext MsgInfo = '!' If HideUI EQ False$ then Void = msg( '', MsgInfo ) END * * * PRINT SETUP * * * FileName = 'Print Cassette Data Sheet' Title = 'Print Cassette Data Sheet' PageInfo = '' ; * Default is .5 inch margins and 8.5 x 11 paper PageInfo = 0.5 PageInfo = 1.5 PageInfo = 0.5 PageInfo = 0.5 PageInfo = LETTER MaxPrintLength = 11 - PageInfo - PageInfo PageSetup = 0 ;* 1 = Landscape mode PrintSetup = 0 ;* 0 = No Preview, 2 = Preview FOR BoxNo = 1 TO CassCnt WMOutKey = WMOutKeys WMOutRec = XLATE('WM_OUT',WMOutKey,'','X') IF WMOutRec NE '' THEN IF NOT(PrinterInitialized) THEN 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:'':@FM: '' stat = Set_Printer( 'INIT', PDFParms, 'Run Data Sheet',PageInfo,PageSetup , PrintSetup) END ELSE stat = Set_Printer('PAGEBREAK') END GOSUB PrintSheet IF NOT(PrinterInitialized) THEN stat = Set_Printer( 'TERM' ) END END NEXT BoxNo RETURN * * * * * * PrintSheet: * * * * * * font = 'Arial' ;* Font basics font<2> = 10 font<4> = 0 stat = Set_Printer('FONTHEADFOOT', font) font = 'Arial' font<2> = '18' ;* Big type font<4> = 1 ;* Bold on font<5> = 1 ;* Italics stat = Set_Printer('TEXTXY','Cassette Data Sheet',2.20:@FM:-0.80,font,0) font<2> = 12 ;* Drop the font size font<5> = 0 ;* Italics off IF NOT(PrinterInitialized) THEN 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 = -0.15:@fm:-1.150:@fm:1.57:@fm:1 stat = Set_Printer('BMP',obj_Install('Get_Prop','ColorBMP'),location, 0,1) * * * * Added 10/8/2015 JCH - Updated 'CONFIG','COMPANY' * * * * InstDat = obj_Install('Get_Prop','Company':@FM:'Division') Company = InstDat<1> Division = InstDat<2> font = 'Arial' font<2> = '12' ;* Big type font<4> = 1 ;* Bold on font<5> = 0 ;* Italics stat = Set_Printer('TEXTXY',Company,5.7:@FM:-1.15,font,1) stat = Set_Printer('TEXTXY',Division,5.7:@FM:-0.970,font,1) font<2> = 10 ;* 10 point font font<4> = 0 ;* Bold off font<5> = 0 ;* Italics Off stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','Address'), 5.7:@fm:-0.775, font,1) stat = Set_Printer('TEXTXY',obj_Install('Get_Prop','CSZC'), 5.7:@fm:-0.625, font,1) stat = Set_Printer('TEXTXY','Tel: ':obj_Install('Get_Prop','Phone'), 5.7:@fm:-0.475, font, 1) stat = Set_Printer('TEXTXY','FAX: ':obj_Install('Get_Prop','FAX'), 5.7:@fm:-0.325, font, 1) * * * * End of changes 10/8/2015 JCH * * * * stat = Set_Printer('TEXT') END colHeader = 'Cassette ID' ; colFormat = '^1440' colHeader<1,2> = 'WO No' ; colFormat<1,2> = '^1440' colHeader<1,3> = 'WO Step' ; colFormat<1,3> = '^1440' colHeader<1,4> = 'Cass No' ; colFormat<1,4> = '^1440' colHeader<1,5> = 'Customer' ; colFormat<1,5> = '<5040' CassID = WMOutKey CONVERT '*' TO '.' IN CassID WONo = WMOutKey[1,'*'] WOStep = WMOutKey[COL2()+1,'*'] CassNo = WMOutKey[COL2()+1,'*'] colData = CassID colData<1,2> = WONo colData<1,3> = WOStep colData<1,4> = CassNo colData<1,5> = CustName font<2> = 10 font<4> = 1 ;* Bold on stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,colHeader,'',LTGREY$,'',0,TB_ALL) font<2> = 10 font<4> = 0 stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,TB_ALL) stat = Set_Printer('TEXT') colHeader = '' ; colFormat = '^720' colHeader<1,2> = 'Reactor' ; colFormat<1,2> = '^3240' colHeader<1,3> = '' ; colFormat<1,3> = '^2700' colHeader<1,4> = '' ; colFormat<1,4> = '^2700' colHeader<1,5> = 'Material In' ; colFormat<1,5> = '^1440' font<2> = 8 font<4> = 1 ;* Bold on stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,colHeader,'',LTGREY$,'',0,TB_ALL) colHeader = 'Slot' ; colFormat = '^720' colHeader<1,2> = 'RDS' ; colFormat<1,2> = '^1080' colHeader<1,3> = 'Pocket' ; colFormat<1,3> = '^1080' colHeader<1,4> = 'Zone' ; colFormat<1,4> = '^1080' colHeader<1,5> = 'Lot No' ; colFormat<1,5> = '^2700' colHeader<1,6> = 'Part No' ; colFormat<1,6> = '^2700' colHeader<1,7> = 'Cass' ; colFormat<1,7> = '^720' colHeader<1,8> = 'Slot' ; colFormat<1,8> = '^720' WORec = XLATE('WO_LOG',WONo,'','X') CassLoadQty = WORec IF CassLoadQty = '' THEN CassLoadQty = 25 RDSNos = WMOutRec ReactPockets = WMOutRec ReactZones = WMOutRec InCassNos = WMOutRec InSlotNos = WMOutRec OutSlotNos = WMOutRec LineCnt = 1 colData = '' FOR I = 1 TO CassLoadQty InCassNo = InCassNos<1,I> WOMatRec = XLATE('WO_MAT',WONo:'*':InCassNo,'','X') ;* Changed from WO_Rec to WO_MAT 1/16/2008 JCH colData = OutSlotNos<1,I> colData = RDSNos<1,I> colData = ReactPockets<1,I> colData = ReactZones<1,I> colData = WOMatRec colData = WOMatRec colData = InCassNo colData = InSlotNos<1,I> NEXT I stat = Set_Printer('ADDTABLE',colFormat,colHeader,'',LTGREY$,'',0,TB_ALL) font<2> = 8 font<4> = 0 ;* Bold off stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,TB_ALL) MakeupWaferFlag = 0 /* *IF XLATE('RDS',RdsId,'MU_WFRS_ADDED','X') > 0 THEN IF 1 = 0 THEN colData<3,4> = 0 ;* Makeup wafers added MakeupWaferFlag = 1 END ELSE colData<3,4> = xlate( 'RDS', RdsId, 'TOT_REJ', 'X' ) MakeupWaferFlag = 0 END */ stat = Set_Printer('TEXT') SSTablesPos = Get_Printer('POS') SSTablesY = SSTablesPos<2> colHeader = 'Post Clean':CRLF$:'Light Point Defects' colFormat = '^2160' colData = WMOutRec font<2> = 10 font<4> = 1 ;* Bold on stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,colHeader,'',LTGREY$,'',0,TB_ALL) font<4> = 0 ;* Bold Off stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,TB_ALL) font<1> = 'Arial' ;* Reset font to normal stat = Set_Printer('FONT',font) * Check for Surfscan results SurfScanKey = WMOutKey:'*PC' ;* Only Post Clean Surface scans on WM_OUT cassettes SurfScanRec = XLATE('SURFACE_SCAN',SurfScanKey,'','X') IF SurfScanRec NE '' THEN stat = Set_Printer('POS',SSTablesPos) PSRec = XLATE('PROD_SPEC',PSNo,'','X') HazeSpec = PSRec<105> DefectSpec = PSRec<104> Stage = 'PC' PopupData = XLATE('SYSREPOSPOPUPS','LSL2**STAGE',8,'X') StageDesc = '' FOR I = 1 TO COUNT(PopupData,@VM) + (PopupData NE '') PopCode = PopupData<1,I,1> IF PopCode = Stage THEN StageDesc = PopupData<1,I,2> UNTIL PopupData<1,I,1> = Stage NEXT I Tool = SurfScanRec colHeader = StageDesc:' - ':Tool:CRLF$:'Surface Scan Results' ; colFormat = '<2880' colHeader<1,2> = 'Spec' ; colFormat<1,2> = '>900' colHeader<1,3> = 'Min' ; colFormat<1,3> = '>900' colHeader<1,4> = 'Max' ; colFormat<1,4> = '>900' colHeader<1,5> = 'Avg' ; colFormat<1,5> = '>900' colData = '' IF CustNo = '6872' THEN colData<1,1> = 'Sum of Defects > .02':CHAR(230):'m' END ELSE colData<1,1> = 'Sum of Defects' END colData<1,2> = DefectSpec colData<1,3> = SurfScanRec colData<1,4> = SurfScanRec colData<1,5> = OCONV(SurfScanRec,'MD3') colData<2,1> = 'Surface Haze Avg (ppm)' colData<2,2> = HazeSpec colData<2,3> = SurfScanRec colData<2,4> = SurfScanRec colData<2,5> = OCONV(SurfScanRec,'MD3') font<2> = 10 font<4> = 1 ;* Bold on stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,colHeader,'',LTGREY$,'',0,TB_ALL:@FM:3.0) font<1> = 'MS LineDraw' ;* This font contains the omega symbol font<4> = 0 ;* Bold off stat = Set_Printer('FONT',font) stat = Set_Printer('ADDTABLE',colFormat,'',colData,LTGREY$,'',1,TB_ALL:@FM:3.0) font<1> = 'Arial' ;* Reset font to normal stat = Set_Printer('FONT',font) END RETURN