compile function print_car( CarId ) begin condition pre: post: end condition $insert company_equ $insert car_equ $insert logical $insert msg_equates $insert popup_equates $insert oiprint_equates declare function fieldcount, msg, key_sort, set_printer, dialog_box, entid declare function repository, next_key declare subroutine extract_si_keys, record_lock * THIS PROGRAM WAS NEVER FINISHED OR USED * OK Void = set_printer( 'INIT', '', '', '', 0 ) Font = "Courier New,9,L,1" convert ',' to @fm in Font Tfont = Font Stat = set_printer( 'FONT', Font ) CarRec = xlate( 'CAR', CarId, '', 'X' ) Tfont<3> = 'C' Tfont<2> = 12 Void = set_printer( 'FONT', Tfont ) Void = set_printer( 'TEXT', 'EPITRONICS SILICON DIVISION' ) Void = set_printer( 'TEXT', '' ) Void = set_printer( 'TEXT', 'RUN DATA SHEET' ) for j = 1 to 4 Void = set_printer( 'TEXT', '' ) next j stat = set_printer( 'LINESTYLE', ps_solid:@fm:1 ) stat = set_printer( 'LINE', 0:@fm:1:@fm:7.5:@fm:1, 0 ) stat = set_printer( 'LINESTYLE', ps_solid:@fm:0 ) Tfont<2> = 10 Tfont<3> = 'L' Void = set_printer( 'FONT', Tfont ) Lout = fmt( 'RUN#: ':ThisRdsRec:'-':ThisRdsId, 'L#35' ) Lout:= fmt( 'KEY#: ':ThisRdsId, 'L#35' ) Lout:= 'DATE: ':oconv( ThisRdsRec, 'D2/' ) Void = set_printer( 'TEXT', Lout ) Void = set_printer( 'TEXT', '' ) Lout = fmt( 'CUSTOMER: ':oconv( ThisRdsRec, '[XLATE_CONV,COMPANY*CO_NAME]' ), 'L#63' ) Lout:= fmt( 'PO#:', 'L#6' ):ThisRdsRec Void = set_printer( 'TEXT', Lout ) Lout = fmt( '', 'L#63' ):fmt( 'WO#:', 'L#6' ):ThisRdsRec Void = set_printer( 'TEXT', Lout ) Lout = fmt( 'RECIPE: ':oconv( ThisRdsRec, '[XLATE_CONV,RECIPE*RECIPE_NAME]' ), 'L#32' ) Lout:= fmt( 'REACTOR: ':xlate( 'RDS', ThisRdsId, 'REACTOR', 'X' ), 'L#31' ) Lout:= fmt( 'PART#:', 'L#6' ):ThisRdsRec Void = set_printer( 'TEXT', Lout ) Lout = fmt( '', 'L#63' ):fmt( 'LOT#:', 'L#6' ):ThisRdsRec Void = set_printer( 'TEXT', Lout ) Void = set_printer( 'TEXT', '' ) Tfont<1> = 'MS LineDraw' Tfont<2> = 9 Tfont<4> = 200 Void = set_printer( 'FONT', Tfont ) Table = '' Tline = ',Minimum,Target,Maximum' Table<-1> = TLine Tline = 'Thickness,':oconv( ThisRdsRec, 'MD2' ):' ':ThisRdsRec:',' Tline:= oconv( ThisRdsRec, 'MD2' ):' ':ThisRdsRec:',' Tline:= oconv( ThisRdsRec, 'MD2' ):' ':ThisRdsRec Table<-1> = Tline Tline = 'Resistivity,':oconv( ThisRdsRec, 'MD2' ):' ':ThisRdsRec:',' Tline:= oconv( ThisRdsRec, 'MD2' ):' ':ThisRdsRec:',' Tline:= oconv( ThisRdsRec, 'MD2' ):' ':ThisRdsRec Table<-1> = Tline Tline = 'Concentration,':oconv( ThisRdsRec, 'MS21' ):' ':ThisRdsRec:',' Tline:= oconv( ThisRdsRec, 'MS21' ):' ':ThisRdsRec:',' Tline:= oconv( ThisRdsRec, 'MS21' ):' ':ThisRdsRec Table<-1> = TLine Tline = ',':oconv( ThisRdsRec, 'MS21' ):' ':ThisRdsRec:',' Tline:= oconv( ThisRdsRec, 'MS21' ):' ':ThisRdsRec:',' Tline:= oconv( ThisRdsRec, 'MS21' ):' ':ThisRdsRec Table<-1> = TLine convert ',' to @vm in Table x = Set_Printer("TABLE", Table, '', 3:@fm:1.38:@fm:1.38:@fm:1.38, 'L':@fm:'C':@fm:'C':@fm:'C', TB_ALL) Tfont<1> = 'Courier New' Tfont<2> = 10 Tfont<3> = 'L' Tfont<4> = 1 Void = set_printer( 'FONT', Tfont ) Void = set_printer( 'TEXT', '' ) Lout = fmt( 'TIME IN:', 'L#10' ):fmt( oconv( ThisRdsRec, 'MTH' ), 'L#15' ):' ' Lout:= fmt( 'OPERATOR IN:', 'L#14' ):fmt( oconv( ThisRdsRec, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' ), 'L#20' ):' ' Lout:= fmt( 'WAFERS IN:', 'L#17' ):fmt( ThisRdsRec, 'R#2' ) Void = set_printer( 'TEXT', Lout ) Lout = fmt( 'TIME OUT:', 'L#10' ):fmt( oconv( ThisRdsRec, 'MTH' ), 'L#15' ):' ' Lout:= fmt( 'OPERATOR OUT:', 'L#14' ):fmt( oconv( ThisRdsRec, '[XLATE_CONV,LSL_USERS*FIRST_LAST]' ), 'L#20' ):' ' Lout:= fmt( 'WAFERS OUT:', 'L#17' ):fmt( ThisRdsRec, 'R#2' ) Void = set_printer( 'TEXT', Lout ) Tvar = 'WAFERS REJECTED: ':fmt( xlate( 'RDS', ThisRdsId, 'TOT_REJ', 'X' ), 'R#2' ) Lout = fmt( '', 'L#61' ):Tvar Void = set_printer( 'TEXT', Lout ) Void = set_printer( 'TEXT', '' ) Lout = 'INSPECTION( Light Point Defects ) BEFORE:':fmt( oconv( ThisRdsRec, 'MD1' ), 'R#6' ) QxjPost = ThisRdsRec QxjPre = ThisRdsRec if ( QxjPost <> '' ) or ( QxjPre <> '' ) then Lout := fmt( '', 'L#2' ):'QXJ Pre: ':fmt( oconv(QxjPre,'MD2'), 'R#5' ):fmt( '', 'L#2' ):'QXJ Post: ':fmt( oconv(QxjPost,'MD2'), 'R#5' ) end Void = set_printer( 'TEXT', Lout ) Lout = fmt( '', 'L#35' ):'AFTER:':fmt( oconv( ThisRdsRec, 'MD1' ), 'R#6' ) Void = set_printer( 'TEXT', Lout ) Void = set_printer( 'TEXT', '' ) Lout = fmt( '', 'L#11' ):'THICKNESS':fmt( '', 'L#3'):'SHEET RHO':fmt( '', 'L#2'):'RESISTIVITY' Lout:= fmt( '', 'L#13' ):'STATISTICAL INFORMATION' Void = set_printer( 'TEXT', Lout ) Tfont<1> = 'MS LineDraw' Tfont<2> = 9 Tfont<4> = 0 Void = set_printer( 'FONT', Tfont ) ReadingText = '80MM/70MM/60MM/50MM/40MM/30MM/20MM/10MM/CENTER/10MM/' ReadingText := '20MM/30MM/40MM/50MM/60MM/70MM/80MM' convert '/' to @vm in ReadingText ThickReadings = ThisRdsRec SheetRhoReadings = ThisRdsRec ResReadings = xlate( 'RDS', ThisRdsId, 'RES_READ', 'X' ) CustTots = '' CustTotsDesc = 'THICK AVG:/THICK STDEV:/THICK MAX:/THICK MIN:/THICK UNIF:/' CustTotsDesc := '/THICK Cp:/THICK Cpk://RES AVG:/RES STDEV:/RES MAX:/' CustTotsDesc := 'RES MIN:/RES UNIF://RES Cp:/RES Cpk:' convert '/' to @vm in CustTotsDesc CustTots<1,1> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,2> = oconv( ThisRdsRec, 'MD3' ):' ' CustTots<1,3> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,4> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,5> = oconv( ThisRdsRec, 'MD2' ):'%' CustTots<1,6> = '' CustTots<1,7> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,8> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,9> = '' CustTots<1,10> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,11> = oconv( ThisRdsRec, 'MD3' ):' ' CustTots<1,12> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,13> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,14> = oconv( ThisRdsRec, 'MD2' ):'%' CustTots<1,15> = '' CustTots<1,16> = oconv( ThisRdsRec, 'MD2' ):' ' CustTots<1,17> = oconv( ThisRdsRec, 'MD2' ):' ' Table = '' for j = 1 to 17 Tvar = ReadingText<1,j>:',':oconv( ThickReadings<1,j>, 'MD2' ):',':SheetRhoReadings<1,j>:',' Tvar:= oconv( ResReadings<1,j>, 'MD2' ):',,' Tvar:= fmt( CustTotsDesc<1,j>, 'L#16'):' ':fmt( CustTots<1,j>, 'R#8' ) if i = 5 or i = 14 then Tvar:= '%' end Table = Tvar next j convert ',' to @vm in Table x = Set_Printer("TABLE", Table, '', .75:@fm:1:@fm:1:@fm:1:@fm:1:@fm:2, 'R':@fm:'R':@fm:'R':@fm:'R':@fm:'R':@fm:'L', TB_ALL) Void = set_printer( 'TEXT', '' ) Tfont<1> = 'Courier New' Tfont<2> = 10 Tfont<3> = 'C' Tfont<4> = 1 Tfont<6> = 1 Void = set_printer( 'FONT', Tfont ) Void = set_printer( 'TEXT', 'COMMENTS' ) Tfont<3> = 'L' Tfont<6> = 0 Void = set_printer( 'FONT', Tfont ) *Comments = ThisRdsRec *convert @tm to ' ' in Comments *Comments = fmt( Comments, 'T#85' ) *convert @tm to @fm in Comments *Ccnt = fieldcount( Comments, @fm ) *for j = 1 to Ccnt * Void = set_printer( 'TEXT', Comments ) *next j * removed comments cause below it will print the actual loss codes and * quantities and the operator will type this into the comments section * which would be duplicate information for the customer. RejString = '' * LSL Pre Epi LPreRej = xlate( 'RDS', ThisRdsId, 'L_PRE_REJ_CNT', 'X' ) LPreRejLoss = xlate( 'RDS', ThisRdsId, 'L_PRE_REJ_LOSS_DESC', 'X' ) Tcnt = fieldcount( LPreRej, @vm ) for j = 1 to Tcnt RejString := LPreRej<1,j>:' LSL Pre Epi Reject(s) for ':LPreRejLoss<1,j>:';' next j * LSL Post Epi LPostRej = xlate( 'RDS', ThisRdsId, 'L_POST_REJ_CNT', 'X' ) LPostRejLoss = xlate( 'RDS', ThisRdsId, 'L_POST_REJ_LOSS_DESC', 'X' ) Tcnt = fieldcount( LPostRej, @vm ) for j = 1 to Tcnt RejString := ' ':LPostRej<1,j>:' LSL Post Epi Reject(s) for ':LPostRejLoss<1,j>:';' next j * Cust Pre Epi CPreRej = xlate( 'RDS', ThisRdsId, 'C_PRE_REJ_CNT', 'X' ) CPreRejLoss = xlate( 'RDS', ThisRdsId, 'C_PRE_REJ_LOSS_DESC', 'X' ) Tcnt = fieldcount( CPreRej, @vm ) for j = 1 to Tcnt RejString := ' ':CPreRej<1,j>:' Customer Pre Epi Reject(s) for ':CPreRejLoss<1,j>:';' next j * Cust Post Epi CPostRej = xlate( 'RDS', ThisRdsId, 'C_POST_REJ_CNT', 'X' ) CPostRejLoss = xlate( 'RDS', ThisRdsId, 'C_POST_REJ_LOSS_DESC', 'X' ) Tcnt = fieldcount( CPostRej, @vm ) for j = 1 to Tcnt RejString := ' ':CPostRej<1,j>:' Customer Post Epi Reject(s) for ':CPostRejLoss<1,j>:';' next j RejString[-1,1] = '' RejString = fmt( RejString, 'T#85' ) convert @tm to @fm in RejString Tcnt = fieldcount( RejString, @fm ) for j = 1 to Tcnt Void = set_printer( 'TEXT', RejString ) next j if i = Rcnt else Void = set_printer( 'PAGEBREAK' ) end Void = set_printer( 'TERM' ) return 0