open-insight/LSL2/STPROC/PRINT_BARCODE_LABEL.txt
Infineon\StieberD b8a10dfcc8 more bug fixes
2024-09-17 15:59:06 -07:00

172 lines
4.5 KiB
Plaintext

COMPILE SUBROUTINE PRINT_BARCODE_LABEL( Method, Parms )
#pragma precomp SRP_PreCompiler
$INSERT LSL_USERS_EQUATES
Declare function Set_Printer, Printer_Select , Direct_Print
Declare function Environment_Services, SRP_Math
Declare subroutine Msg
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
FileName = "Printing Label"
Title = "Printing Label"
PageInfo = ''
PageInfo<PI$LEFT> = 0.1
PageInfo<PI$TOP> = 0.1
PageInfo<PI$RIGHT> = 0.1
PageInfo<PI$BOTTOM> = 0.1
PageSetup = '1' ;* Landscape
PrintSetup = '' ;* Preview
PrinterID = 'MESZBRPRT008'
PrintPath = Printer_Select(PrinterID) ;* Popup is skipped IF Printer ID is passed
If PrintPath NE '' then
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
stat = Set_Printer("INIT",FileName,Title,PageInfo,PageSetup,PrintSetup,PrintPath)
end else
stat = Direct_Print('START', PrintPath<1>, '', '')
end
IF stat < 0 THEN GOTO OIPrint_Error
EQU DosPath$ TO 'C:\WINDOWS\OIZPL.TXT' ;* remove jch
CLOrientation = '' ;* used for printing on cleanroom labels
BEGIN CASE
CASE Method = 'EmployeeBadge' ; Gosub Print2DEmployeeBadgeLabel
CASE Method = '2DEmployeeBadge' ; Gosub Print2DEmployeeBadgeLabel
CASE 1
NULL
END CASE
* * * * * *
OIPrint_Error:
* * * * * *
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
stat = Set_Printer("TERM")
end else
stat = Direct_Print('STOP')
end
end
PrintEmployeeBadgeLabel:
EmpRec = XLATE('LSL_USERS', Parms, '', 'X')
*debug
For Each User in Parms using @VM
*User = Parms
Pwd = EmpRec<LSL_USERS_PASSWORD$>
UserPrefix = '1H'
PwdPrefix = 'PWD'
FName = EmpRec<1>
LName = EmpRec<2>
Name = FName:' ':LName[1,1]
UserLen = Len(UserPrefix) + Len(User)
UserLen1 = 150 - SRP_MATH('ROUND', UserLen * 10, '', 0)
PwdLen = Len(PwdPrefix) + Len(Pwd)
PwdLen1 = 150 - SRP_MATH('ROUND', PwdLen * 10, '', 0)
Header = ''
Body1 = ''
Body2 = ''
Footer = ''
Header = '^XA'
Header := '^LH10,10'
Header := '^PR1' ;* Print speed 2 inches per second
Header := '^LL203' ;* Label length @203 dpi
Header := '^PW406' ;* Print Width @203 dpi
Header := '^MD2' ;* Media darkness
Header := '^MMT' ;* Media mode t=tear off mode
Header := '^PQ2' ;* Print 2 labels for each pass through here
Body1 := '^FO0,30^BCN,100,N^FD':UserPrefix:User:'^FS'
Body1 := '^FO20,140^A0,30^FB400,1,0,C^FD':Name:'^FS'
Body2 := '^FO0,30^BCN,100,N^FD':PwdPrefix:Pwd:'^FS'
Body2 := '^FO20,140^A0,30^FB400,1,0,C^FDPASSWORD^FS'
Footer := '^XZ'
labelString = Header : Body1 : Footer : Header : Body2 : Footer
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
stat = Set_Printer('TEXT',labelString)
end else
stat = Direct_Print('PRINT', labelString)
end
Next User
return
Print2DEmployeeBadgeLabel:
EmpRec = XLATE('LSL_USERS', Parms, '', 'X')
For Each User in Parms using @VM
*User = Parms
Pwd = EmpRec<LSL_USERS_PASSWORD$>
UserPrefix = '1H'
PwdPrefix = 'PWD'
FName = EmpRec<1>
LName = EmpRec<2>
Name = FName:' ':LName[1,1]
Header = ''
Body1 = ''
Body2 = ''
Footer = ''
Header = '^XA'
Header := '^LH10,10'
Header := '^PR1' ;* Print speed 2 inches per second
Header := '^LL203' ;* Label length @203 dpi
Header := '^PW406' ;* Print Width @203 dpi
Header := '^MD2' ;* Media darkness
Header := '^MMT' ;* Media mode t=tear off mode
Header := '^PQ2' ;* Print 2 labels for each pass through here
Body1 := '^FO30,50^BXN,3,200,N^FD':UserPrefix:User:'^FS'
Body1 := '^FO130,50^BXN,3,200,N^FD':UserPrefix:User:'^FS'
Body1 := '^FO230,50^BXN,3,200,N^FD':UserPrefix:User:'^FS'
Body1 := '^FO330,50^BXN,3,200,N^FD':UserPrefix:User:'^FS'
Body1 := '^FO20,140^A0,30^FB400,1,0,C^FD':Name:'^FS'
Body2 := '^FO30,50^BXN,3,200,N^FD':PwdPrefix:Pwd:'^FS'
Body2 := '^FO130,50^BXN,3,200,N^FD':PwdPrefix:Pwd:'^FS'
Body2 := '^FO230,50^BXN,3,200,N^FD':PwdPrefix:Pwd:'^FS'
Body2 := '^FO330,50^BXN,3,200,N^FD':PwdPrefix:Pwd:'^FS'
Body2 := '^FO20,140^A0,30^FB400,1,0,C^FDPASSWORD^FS'
Footer := '^XZ'
labelString = Header : Body1 : Footer : Header : Body2 : Footer
If Environment_Services('GetLabelPrintMethod') _EQC 'OIPI' then
stat = Set_Printer('TEXT',labelString)
end else
stat = Direct_Print('PRINT', labelString)
end
Next User
return