Files
CGW/CGWPDEF.PRG
Jason Soltys 7905c43278 first commit
2026-07-14 00:41:31 -05:00

1231 lines
38 KiB
Plaintext

#Include "MyStd.ch"
#INCLUDE "INKEY.CH"
#INCLUDE "FIVEWIN.CH"
#INCLUDE "DBINFO.CH"
#INCLUDE "COMMON.CH"
**********
// THIS PRG IS A print port manager for lib programs
// needing multiple output routings.
// will be called IF FILE('PRINTERS.DBF')
FUNCTION CUSTOMPRINT_WINDOWS( )
LOCAL CLOSE_ARR := {}, PRN_LIST := {}
LOCAL RETVAL := .T., oDIALOG
LOCAL OSAY101A, OSAY101B
LOCAL OSAY102A, OSAY102B
LOCAL OSAY103A, OSAY103B
LOCAL OSAY104A, OSAY104B
LOCAL OSAY105A, OSAY105B
LOCAL OSAY106A, OSAY106B
LOCAL OSAY107A, OSAY107B
LOCAL OSAY108A, OSAY108B
LOCAL OSAY109A, OSAY109B
LOCAL OSAY110A, OSAY110B
LOCAL OSAY111A, OSAY111B
LOCAL OSAY112A, OSAY112B
LOCAL MRPTPRTR := GETPRINTER('ReportPrinter')
LOCAL MRPTPORT := GETPRINTER('ReportPort')
LOCAL MRPTDEV := GETPRINTER('ReportDevice')
LOCAL MPRODPRTR := GETPRINTER('ProdPrinter')
LOCAL MPRODPORT := GETPRINTER('ProdPort')
LOCAL MPRODDEV := GETPRINTER('ProdDevice')
LOCAL MORDPRTR := GETPRINTER('OrdDeskPrinter')
LOCAL MORDPORT := GETPRINTER('OrdDeskPort')
LOCAL MORDDEV := GETPRINTER('OrdDeskDevice')
LOCAL MINVPRTR := GETPRINTER('InvPrinter')
LOCAL MINVPORT := GETPRINTER('InvPort')
LOCAL MINVDEV := GETPRINTER('InvDevice')
LOCAL MDELPRTR := GETPRINTER('DelPrinter')
LOCAL MDELPORT := GETPRINTER('DelPort')
LOCAL MDELDEV := GETPRINTER('DelDevice')
LOCAL MGOLDPRTR := GETPRINTER('GoldenPrinter')
LOCAL MGOLDPORT := GETPRINTER('GoldenPort')
LOCAL MGOLDDEV := GETPRINTER('GoldenDevice' )
LOCAL MMAILPRTR := GETPRINTER('MailLblPrinter')
LOCAL MMAILPORT := GETPRINTER('MailLblPort')
LOCAL MMAILDEV := GETPRINTER('MailLblDevice')
LOCAL MICOMPPRTR := GETPRINTER('InterCompPrinter')
LOCAL MICOMPPORT := GETPRINTER('InterCompPort')
LOCAL MICOMPDEV := GETPRINTER('InterCompDevice')
LOCAL MBACKOPRTR := GETPRINTER('BackOrdPrinter')
LOCAL MBACKOPORT := GETPRINTER('BackOrdPort')
LOCAL MBACKODEV := GETPRINTER('BackOrdDevice')
LOCAL MQUOTEPRTR := GETPRINTER('QuotePrinter')
LOCAL MQUOTEPORT := GETPRINTER('QuotePort')
LOCAL MQUOTEDEV := GETPRINTER('QuoteDevice')
LOCAL MPREBPRTR := GETPRINTER('PreBillPrinter')
LOCAL MPREBPORT := GETPRINTER('PreBillPort')
LOCAL MPREBDEV := GETPRINTER('PreBillDevice')
LOCAL MPRECPRTR := GETPRINTER('PreCostPrinter')
LOCAL MPRECPORT := GETPRINTER('PreCostPort')
LOCAL MPRECDEV := GETPRINTER('PreCostDevice')
SET RESOURCES TO //** GET RESOURCES FROM THE ".EXE"
DEFINE DIALOG oDIALOG RESOURCE "DLG_PRNTR9" //** P3N - 09/13/04 NEW PRINTER DIALOG - HARBOUR/FWH UPGRADE
REDEFINE SAY oSAY101A VAR MRPTPRTR ID 101 OF oDIALOG
REDEFINE SAY oSAY101B VAR MRPTPORT ID 102 OF oDIALOG
REDEFINE SAY oSAY102A VAR MPRODPRTR ID 103 OF oDIALOG
REDEFINE SAY oSAY102B VAR MPRODPORT ID 104 OF oDIALOG
REDEFINE SAY oSAY103A VAR MORDPRTR ID 105 OF oDIALOG
REDEFINE SAY oSAY103B VAR MORDPORT ID 106 OF oDIALOG
REDEFINE SAY oSAY104A VAR MINVPRTR ID 107 OF oDIALOG
REDEFINE SAY oSAY104B VAR MINVPORT ID 108 OF oDIALOG
REDEFINE SAY oSAY105A VAR MDELPRTR ID 109 OF oDIALOG
REDEFINE SAY oSAY105B VAR MDELPORT ID 110 OF oDIALOG
REDEFINE SAY oSAY106A VAR MGOLDPRTR ID 111 OF oDIALOG
REDEFINE SAY oSAY106B VAR MGOLDPORT ID 112 OF oDIALOG
REDEFINE SAY oSAY107A VAR MMAILPRTR ID 113 OF oDIALOG
REDEFINE SAY oSAY107B VAR MMAILPORT ID 114 OF oDIALOG
REDEFINE SAY oSAY108A VAR MICOMPPRTR ID 115 OF oDIALOG
REDEFINE SAY oSAY108B VAR MICOMPPORT ID 116 OF oDIALOG
REDEFINE SAY oSAY109A VAR MBACKOPRTR ID 117 OF oDIALOG
REDEFINE SAY oSAY109B VAR MBACKOPORT ID 118 OF oDIALOG
REDEFINE SAY oSAY110A VAR MQUOTEPRTR ID 119 OF oDIALOG
REDEFINE SAY oSAY110B VAR MQUOTEPORT ID 120 OF oDIALOG
REDEFINE SAY oSAY111A VAR MPREBPRTR ID 121 OF oDIALOG
REDEFINE SAY oSAY111B VAR MPREBPORT ID 122 OF oDIALOG
REDEFINE SAY oSAY112A VAR MPRECPRTR ID 123 OF oDIALOG
REDEFINE SAY oSAY112B VAR MPRECPORT ID 124 OF oDIALOG
REDEFINE BUTTON ID 9901 OF oDIALOG ;
ACTION ( SETPRNTR('Report'), ;
MRPTPRTR := GETPRINTER('ReportPrinter'), ;
MRPTPORT := GETPRINTER('ReportPort'), ;
oSAY101a:REFRESH(), ;
oSAY101b:REFRESH() )
REDEFINE BUTTON ID 9902 OF oDIALOG ;
ACTION ( SETPRNTR('Prod'), ;
MPRODPRTR := GETPRINTER('ProdPrinter'),;
MPRODPORT := GETPRINTER('ProdPort'), ;
oSAY102a:REFRESH(), ;
oSAY102b:REFRESH() )
REDEFINE BUTTON ID 9903 OF oDIALOG ;
ACTION ( SETPRNTR('OrdDesk'), ;
MORDPRTR := GETPRINTER('OrdDeskPrinter'),;
MORDPORT := GETPRINTER('OrdDeskPort'), ;
oSAY103A:REFRESH(), ;
oSAY103B:REFRESH() )
REDEFINE BUTTON ID 9904 OF oDIALOG ;
ACTION ( SETPRNTR('Inv'), ;
MINVPRTR := GETPRINTER('InvPrinter'), ;
MINVPORT := GETPRINTER('InvPort'), ;
oSAY104A:REFRESH(), ;
oSAY104B:REFRESH() )
REDEFINE BUTTON ID 9905 OF oDIALOG ;
ACTION ( SETPRNTR('Del'), ;
MDELPRTR := GETPRINTER('DelPrinter'),;
MDELPORT := GETPRINTER('DelPort'), ;
oSAY105A:REFRESH(), ;
oSAY105B:REFRESH() )
REDEFINE BUTTON ID 9906 OF oDIALOG ;
ACTION ( SETPRNTR('Golden'), ;
MPRODPRTR := GETPRINTER('GoldenPrinter'),;
MPRODPORT := GETPRINTER('GoldenPort'), ;
oSAY106A:REFRESH(), ;
oSAY106B:REFRESH() )
REDEFINE BUTTON ID 9907 OF oDIALOG ;
ACTION ( SETPRNTR('MailLbl'), ;
MMAILPRTR := GETPRINTER('MailLblPrinter'),;
MMAILPORT := GETPRINTER('MailLblPort'), ;
oSAY107A:REFRESH(), ;
oSAY107B:REFRESH() )
REDEFINE BUTTON ID 9908 OF oDIALOG ;
ACTION ( SETPRNTR('InterComp'), ;
MICOMPPRTR := GETPRINTER('InterCompPrinter'), ;
MICOMPPORT := GETPRINTER('InterCompPort'), ;
oSAY108A:REFRESH(), ;
oSAY108B:REFRESH() )
REDEFINE BUTTON ID 9909 OF oDIALOG ;
ACTION ( SETPRNTR('BackOrd'), ;
MBACKOPRTR := GETPRINTER('BackOrdPrinter'),;
MBACKOPORT := GETPRINTER('BackOrdPort'), ;
oSAY109A:REFRESH(), ;
oSAY109B:REFRESH() )
REDEFINE BUTTON ID 9910 OF oDIALOG ;
ACTION ( SETPRNTR('Quote'), ;
MQUOTEPRTR := GETPRINTER('QuotePrinter'),;
MQUOTEPORT := GETPRINTER('QuotePort'), ;
oSAY110A:REFRESH(), ;
oSAY110B:REFRESH() )
REDEFINE BUTTON ID 9911 OF oDIALOG ;
ACTION ( SETPRNTR('PreBill'), ;
MPREBPRTR := GETPRINTER('PreBillPrinter'), ;
MPREBPORT := GETPRINTER('PreBillPort'), ;
oSAY111A:REFRESH(), ;
oSAY111B:REFRESH() )
REDEFINE BUTTON ID 9912 OF oDIALOG ;
ACTION ( SETPRNTR('PreCost'), ;
MPRECPRTR := GETPRINTER('PreCostPrinter'), ;
MPRECPORT := GETPRINTER('PreCostPort'), ;
oSAY112A:REFRESH(), ;
oSAY112B:REFRESH() )
REDEFINE BUTTON ID 9999 OF oDIALOG ;
CANCEL ;
ACTION odialog:end()
ACTIVATE DIALOG oDIALOG CENTERED ;
VALID(MRPTPRTR := GETPRINTER('ReportPrinter'), ;
MPRODPRTR := GETPRINTER('ProdPrinter'), ;
MORDPRTR := GETPRINTER('OrdDeskPrinter'),;
MINVPRTR := GETPRINTER('InvPrinter'), ;
MDELPRTR := GETPRINTER('DelPrinter'), ;
MGOLDPRTR := GETPRINTER('GoldenPrinter'), ;
MMAILPRTR := GETPRINTER('MailLblPrinter'), ;
MICOMPPRTR := GETPRINTER('InterCompPrinter'), ;
MBACKOPRTR := GETPRINTER('BackOrdPrinter'), ;
MQUOTEPRTR := GETPRINTER('QuotePrinter'), ;
MPREBPRTR := GETPRINTER('PreBillPrinter'), ;
MPRECPRTR := GETPRINTER('PreCostPrinter'), ;
RETVAL := VALIDPRTRS( MRPTPRTR, MPRODPRTR, MORDPRTR, MINVPRTR, ;
MDELPRTR, MGOLDPRTR, MMAILPRTR, MICOMPPRTR, ;
MBACKOPRTR, MQUOTEPRTR, MPREBPRTR, MPRECPRTR ) )
RETURN RETVAL
*********************************************************
/*
//* - SELECT A PRINTER FROM THE TABLE BELOW
//*
//* draw input screen
//*
/*
AADD(PRN_LIST , 'OKI')
AADD(PRN_LIST , 'EPS')
AADD(PRN_LIST , 'PRW')
AADD(PRN_LIST , 'PRN')
AADD(PRN_LIST , 'P90')
AADD(PRN_LIST , 'HPJ')
AADD(PRN_LIST , 'HPD')
AADD(PRN_LIST , 'HP4')
_REPTPRNT := STR(ASCAN(PRN_LIST, {|X| X = REPT_PRN}),1)
_BOPRNT := STR(ASCAN(PRN_LIST, {|X| X = BO_PRN}),1) //** P3N - 4/30/98
_PRODPRNT := STR(ASCAN(PRN_LIST, {|X| X = PROD_PRN}),1)
_ODPRNT := STR(ASCAN(PRN_LIST, {|X| X = OD_PRN}),1)
_INVPRNT := STR(ASCAN(PRN_LIST, {|X| X = INV_PRN}),1)
_DELPRNT := STR(ASCAN(PRN_LIST, {|X| X = DEL_PRN}),1)
_GRPRNT := STR(ASCAN(PRN_LIST, {|X| X = GR_PRN}),1)
_ICPRNT := STR(ASCAN(PRN_LIST, {|X| X = IC_PRN}),1)
_LBLPRNT := STR(ASCAN(PRN_LIST, {|X| X = LBL_PRN}),1)
_QTEPRNT := STR(ASCAN(PRN_LIST, {|X| X = INV_PRN}),1)
_PREPRNT := STR(ASCAN(PRN_LIST, {|X| X = INV_PRN}),1)
IF FIELDPOS('QTE_PRN') > 0 //** P3N - 4/13/98
_QTEPRNT := STR(ASCAN(PRN_LIST, {|X| X = QTE_PRN}),1)
ENDIF
IF FIELDPOS('PRE_PRN') > 0 //** P3N - 4/13/98
_PREPRNT := STR(ASCAN(PRN_LIST, {|X| X = PRE_PRN}),1)
ENDIF
M_LPTR := REPT_PORT
M_LPTP := PROD_PORT
M_LPTO := OD_PORT
M_LPTI := INV_PORT
M_LPTD := DEL_PORT
M_LPTG := GR_PORT
M_LPTL := LBL_PORT
M_LPTIC := IC_PORT
M_LPTBO := BO_PORT //** P3N - 4/30/98
M_LPTQ := INV_PORT //** P3N - 4/13/98
M_LPTPRE := INV_PORT //** P3N - 4/13/98
IF FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
M_LPTQ := QTE_PORT //** P3N - 4/13/98
ENDIF
IF FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
M_LPTPRE := PRE_PORT //** P3N - 4/13/98
ENDIF
SELECT WORKSTAT
DO WHILE .T.
CLEAR
TITLE = 'SELECT PRINTER'
H = ((80 - LEN(TITLE)) / 2)
@ 0,H SAY TITLE
@ 0,74 SAY 'PDEF'
@ 1,0 SAY DOUBLE
@ 3,72 SAY DTOC(DATE())
@ 5,28 SAY " AVAILABLE PRINTERS "
@ 6,28 SAY " ================== "
@ 7,26 SAY "1. Okidata Microline 84"
@ 8,26 SAY "2. Epson (All Models)"
@ 9,26 SAY "3. HP LaserJet "
**@ 9,26 SAY "3. IBM Proprinter - Wide Carriage"
**@ 10,26 SAY "4. IBM Proprinter - Narrow Carriage"
**@ 11,26 SAY "5. IBM Proprinter - Model 2390 Narrow"
**@ 13,26 SAY "7. HP LaserJet IIID (Duplex printer)"
**@ 14,26 SAY "8. HP LaserJet 4SI (Duplex printer)"
**@ 10,26 SAY "X. RETURN "
LOOP4100 := .T.
DO WHILE LOOP4100
SET CONFIRM OFF
@ 4,72 SAY TIME()
@ 12,10 SAY " Select REPORTS Printer : : LPT Port : :"
@ 13,10 SAY " Select PRODUCTION Printer : : LPT Port : :"
@ 14,10 SAY " Select ORDER DESK Printer : : LPT Port : :"
@ 15,10 SAY " Select INVOICE Printer : : LPT Port : :"
@ 16,10 SAY " Select DELIVERY Printer : : LPT Port : :"
@ 17,10 SAY " Select GOLDEN ROD Printer : : LPT Port : :"
@ 18,10 SAY "Select MAILING LABEL Printer : : LPT Port : :"
@ 19,10 SAY " Select INTERCOMPANY Printer : : LPT Port : :"
@ 20,10 SAY " Select BACKORDER Printer : : LPT Port : :" //** P3N 4/30/98
IF FIELDPOS('QTE_PRN') > 0 .AND. FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
@ 21,10 SAY " Select QUOTE Printer : : LPT Port : :"
ENDIF
IF FIELDPOS('PRE_PRN') > 0 .AND. FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
@ 22,10 SAY " Select PREBILL Printer : : LPT Port : :"
ENDIF
DO WHILE .T.
//** P3N 4/16/99 ADDED LPT4 OPTION
@ 12,39 GET _REPTPRNT PICTURE '9' VALID CHK_PRN(_REPTPRNT)
//** @ 12,54 GET M_LPTR PICTURE '9' VALID M_LPTR$'123'
@ 12,54 GET M_LPTR PICTURE '9' VALID M_LPTR$'1234'
@ 13,39 GET _PRODPRNT PICTURE '9' VALID CHK_PRN(_PRODPRNT)
//** @ 13,54 GET M_LPTP PICTURE '9' VALID M_LPTP$'123'
@ 13,54 GET M_LPTP PICTURE '9' VALID M_LPTP$'1234'
@ 14,39 GET _ODPRNT PICTURE '9' VALID CHK_PRN(_ODPRNT)
//** @ 14,54 GET M_LPTO PICTURE '9' VALID M_LPTO$'123'
@ 14,54 GET M_LPTO PICTURE '9' VALID M_LPTO$'1234'
@ 15,39 GET _INVPRNT PICTURE '9' VALID CHK_PRN(_INVPRNT)
//** @ 15,54 GET M_LPTI PICTURE '9' VALID M_LPTI$'123'
@ 15,54 GET M_LPTI PICTURE '9' VALID M_LPTI$'1234'
@ 16,39 GET _DELPRNT PICTURE '9' VALID CHK_PRN(_DELPRNT)
//** @ 16,54 GET M_LPTD PICTURE '9' VALID M_LPTD$'123'
@ 16,54 GET M_LPTD PICTURE '9' VALID M_LPTD$'1234'
@ 17,39 GET _GRPRNT PICTURE '9' VALID CHK_PRN(_GRPRNT)
//** @ 17,54 GET M_LPTG PICTURE '9' VALID M_LPTG$'123'
@ 17,54 GET M_LPTG PICTURE '9' VALID M_LPTG$'1234'
@ 18,39 GET _LBLPRNT PICTURE '9' VALID CHK_PRN(_LBLPRNT)
//** @ 18,54 GET M_LPTL PICTURE '9' VALID M_LPTL$'123'
@ 18,54 GET M_LPTL PICTURE '9' VALID M_LPTL$'1234'
@ 19,39 GET _ICPRNT PICTURE '9' VALID CHK_PRN(_ICPRNT)
//** @ 19,54 GET M_LPTIC PICTURE '9' VALID M_LPTIC$'123'
@ 19,54 GET M_LPTIC PICTURE '9' VALID M_LPTIC$'1234'
@ 20,39 GET _BOPRNT PICTURE '9' VALID CHK_PRN(_BOPRNT) //** P3N - 4/30/98
//** @ 20,54 GET M_LPTBO PICTURE '9' VALID M_LPTBO$'123'
@ 20,54 GET M_LPTBO PICTURE '9' VALID M_LPTBO$'1234'
IF FIELDPOS('QTE_PRN') > 0 .AND. FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
@ 21,39 GET _QTEPRNT PICTURE '9' VALID CHK_PRN(_QTEPRNT)
//** @ 21,54 GET M_LPTQ PICTURE '9' VALID M_LPTQ$'123'
@ 21,54 GET M_LPTQ PICTURE '9' VALID M_LPTQ$'1234'
ENDIF
IF FIELDPOS('PRE_PRN') > 0 .AND. FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
@ 22,39 GET _PREPRNT PICTURE '9' VALID CHK_PRN(_PREPRNT)
//** @ 22,54 GET M_LPTPRE PICTURE '9' VALID M_LPTPRE$'123'
@ 22,54 GET M_LPTPRE PICTURE '9' VALID M_LPTPRE$'1234'
ENDIF
READ
IF LASTKEY() == 27 .AND. PROCNAME(1) <> 'SET_PRNT_P'
CLS
FOR L = 1 TO LEN(CLOSE_ARR)
MFILE = CLOSE_ARR[L]
SELECT(MFILE)
USE
NEXT
RETURN
ENDIF
IF EMPTY(M_LPTR) .OR. EMPTY(M_LPTP) .OR. EMPTY(M_LPTO);
.OR. EMPTY(M_LPTI) .OR. EMPTY(M_LPTD) .OR. EMPTY(M_LPTG)
LOOP
ENDIF
CORR = CORRCHEK()
IF CORR = 'Y'
LOOP4100 := .F.
EXIT
ENDIF
IF LASTKEY() == 27 .AND. PROCNAME(1) <> 'SET_PRNT_P'
CLEAR
FOR L = 1 TO LEN(CLOSE_ARR)
MFILE = CLOSE_ARR[L]
SELECT(MFILE)
USE
NEXT
RETURN
ENDIF
ENDDO
ENDDO
SETCOLOR(LNOR)
SELECT WORKSTAT
REC_LOCK(1)
REPLACE REPT_PRN WITH PRN_LIST[VAL(_REPTPRNT)]
REPLACE PROD_PRN WITH PRN_LIST[VAL(_PRODPRNT)]
REPLACE OD_PRN WITH PRN_LIST[VAL(_ODPRNT)]
REPLACE INV_PRN WITH PRN_LIST[VAL(_INVPRNT)]
REPLACE DEL_PRN WITH PRN_LIST[VAL(_DELPRNT)]
REPLACE GR_PRN WITH PRN_LIST[VAL(_GRPRNT)]
REPLACE LBL_PRN WITH PRN_LIST[VAL(_LBLPRNT)]
REPLACE IC_PRN WITH PRN_LIST[VAL(_ICPRNT)]
REPLACE BO_PRN WITH PRN_LIST[VAL(_BOPRNT)] //** P3N - 4/30/98
IF FIELDPOS('QTE_PRN') > 0 //** P3N - 4/13/98
REPLACE QTE_PRN WITH PRN_LIST[VAL(_QTEPRNT)] //** P3N - 4/13/98
ENDIF
IF FIELDPOS('PRE_PRN') > 0 //** P3N - 4/13/98
REPLACE PRE_PRN WITH PRN_LIST[VAL(_PREPRNT)] //** P3N - 4/13/98
ENDIF
REPLACE REPT_PORT WITH M_LPTR
REPLACE PROD_PORT WITH M_LPTP
REPLACE OD_PORT WITH M_LPTO
REPLACE INV_PORT WITH M_LPTI
REPLACE DEL_PORT WITH M_LPTD
REPLACE GR_PORT WITH M_LPTG
REPLACE LBL_PORT WITH M_LPTL
REPLACE IC_PORT WITH M_LPTIC
REPLACE BO_PORT WITH M_LPTBO //** P3N - 4/30/98
IF FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
REPLACE QTE_PORT WITH M_LPTQ //** P3N - 4/13/98
ENDIF
IF FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
REPLACE PRE_PORT WITH M_LPTPRE //** P3N - 4/13/98
ENDIF
// RESET THE SYSTEM VARIABLES TOO!!!
**SET_PRNT_PARMS(.F.) //p3n - 2-6-98
FOR L = 1 TO LEN(CLOSE_ARR)
MFILE = CLOSE_ARR[L]
SELECT(MFILE)
USE
NEXT
CLEAR SCREEN
RETURN
ENDDO WHILE .T.
*/
* * * * * * * * * * * * * * * * *
PROCEDURE SET_PRNT_PARMS(NO_SET_PORT)
// THIS WILL SET UP THE PRINTER VARIABLES
// FOR FORMS, REPORTS, AND ANY LOCAL PRINTING
LOCAL SEEKKEY, CLOSE_IT, SAVESEL := SELECT(), SVREC
IF NO_SET_PORT = NIL
NO_SET_PORT := .T.
ENDIF
TOFILE := SYSCODE + '1WS'
IF SELECT('WORKSTAT') = 0
NET_USE('&WORKSTAT', .F., 5, 'WORKSTAT')
CLOSE_IT = .T.
ELSE
SELECT WORKSTAT
CLOSE_IT = .F.
ENDIF
*****SEEKKEY = NETNAME()
SEEKKEY := WSID
IF LEN(TRIM(SEEKKEY)) = 0
SEEKKEY = 'SINGLE'
ENDIF
LOCATE FOR ALLTRIM( WS_ID ) == ALLTRIM ( SEEKKEY )
IF !FOUND()
**ADD_REC(3)
**REPLACE WS_ID WITH NETNAME()
SVREC := RECNO()
INITWS() // NEW WORKSTATION REC - SET DEFAULTS -
INDEX_WS()
**SELECT WORKSTAT
GOTO SVREC
REC_LOCK(1)
REPLACE LNOR_VAR WITH LNOR
REPLACE HNOR_VAR WITH HNOR
REPLACE UNDR_VAR WITH UNDR
REPLACE HREV_VAR WITH HREV
REPLACE BLOW_VAR WITH BLOW
REPLACE BREV_VAR WITH BREV
SELPRINT() // GO GET PRINTER SELECTION INFO
ELSE
_REPORT := WORKSTAT->REPT_PRN
_PRODUCTION := WORKSTAT->PROD_PRN
_ORDERDESK := WORKSTAT->OD_PRN
_INVOICE := WORKSTAT->INV_PRN
_BOPRN := WORKSTAT->BO_PRN //** P3N - 4/30/98
_QUOTE := WORKSTAT->INV_PRN //** P3N - 4/13/98
IF FIELDPOS('QTE_PRN') > 0 //** P3N - 4/13/98
_QUOTE := WORKSTAT->QTE_PRN //** P3N - 4/13/98
ENDIF
_PREBILL := WORKSTAT->INV_PRN //** P3N - 4/13/98
IF FIELDPOS('PRE_PRN') > 0 //** P3N - 4/13/98
_PREBILL := WORKSTAT->PRE_PRN //** P3N - 4/13/98
ENDIF
_DELIVERY := WORKSTAT->DEL_PRN
_GOLDEN := WORKSTAT->GR_PRN
_LBLPRN := WORKSTAT->LBL_PRN
_ICPRN := WORKSTAT->IC_PRN
_PRECOST := WORKSTAT->INV_PRN //** P3N - 4/13/98
IF !EMPTY(REPT_PORT)
_RPTPORT = 'LPT' + REPT_PORT
ELSE
_RPTPORT = 'LPT1'
ENDIF
IF !EMPTY(PROD_PORT)
_PORT_PROD = 'LPT' + PROD_PORT
ELSE
_PORT_PROD = 'LPT1'
ENDIF
IF !EMPTY(OD_PORT)
_PORT_ORDER = 'LPT' + OD_PORT
ELSE
_PORT_ORDER = 'LPT1'
ENDIF
IF !EMPTY(INV_PORT)
_PORT_INVOICE = 'LPT' + INV_PORT
ELSE
_PORT_INVOICE = 'LPT1'
ENDIF
IF !EMPTY(BO_PORT) //** P3N - 4/30/98
_PORT_BO := 'LPT' + BO_PORT //** P3N - 4/30/98
ELSE //** P3N - 4/30/98
_PORT_BO := 'LPT1' //** P3N - 4/30/98
ENDIF //** P3N - 4/30/98
_PORT_QUOTE := 'LPT1' //** P3N - 4/13/98
IF FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
IF !EMPTY(QTE_PORT) //** P3N - 4/13/98
_PORT_QUOTE := 'LPT' + QTE_PORT //** P3N - 4/13/98
ENDIF
ENDIF
_PORT_PREBILL := 'LPT1' //** P3N - 4/13/98
IF FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
IF !EMPTY(PRE_PORT) //** P3N - 4/13/98
_PORT_PREBILL := 'LPT' + PRE_PORT //** P3N - 4/13/98
ENDIF
ENDIF
IF !EMPTY(DEL_PORT)
_PORT_DELIVERY = 'LPT' + DEL_PORT
ELSE
_PORT_DELIVERY = 'LPT1'
ENDIF
IF !EMPTY(GR_PORT)
_PORT_GOLDEN = 'LPT' + GR_PORT
ELSE
_PORT_GOLDEN = 'LPT1'
ENDIF
IF !EMPTY(IC_PORT)
_PORT_IC = 'LPT' + IC_PORT
ELSE
_PORT_IC = 'LPT1'
ENDIF
IF !EMPTY(LBL_PORT)
_PORT_LABEL = 'LPT' + LBL_PORT
ELSE
_PORT_LABEL = 'LPT1'
ENDIF
ENDIF
IF NO_SET_PORT
// CALLED FROM SET_PORT() AVOID RECURSIVE CALL - ENDLESS LOOP!
ELSE
SET_PORT('_RPTPORT', .F.)
ENDIF
IF CLOSE_IT
USE
ENDIF
SELECT(SAVESEL)
RETURN
*************************************
* INDEX WORKSTAT FILE
*************************************
FUNCTION INDEX_WS()
USE
DBOPEN('WORKSTAT', .T.) // DOESN'T EXIST MEANS 1ST TIME IN APP
IF __DBDRIVER = 'NTX' // SHOULDN'T BE ANYBODY USING WS FILE!
INDEX ON WS_ID TO &TOFILE
ELSE
INDEX ON WS_ID TAG '1' TO &TOFILE
ENDIF
USE
NET_USE('&WORKSTAT', .F., 5, 'WORKSTAT')
RETURN
************************************************************
FUNCTION SET_PORT(MPORT_NAME, SET_THE_PRINT, OUTFILE)
// SET THE PRINTER PORT AND LOOKS UP THE PRINTER NAME TO GET
// THE COMPRESS & WIDTH VALUES
LOCAL SAVESEL := SELECT(), CLOSE_ARR := {}, MPRINTER, L, MPORT, SEEKKEY
LOCAL SAVESCR
IF EMPTY(OUTFILE)
OUTFILE := ' '
ENDIF
IF SET_THE_PRINT = NIL
SET_THE_PRINT := .T.
ENDIF
// LOOKUP THE PRINTER
IF SELECT('PRINTERS') = 0
NET_USE('&PRINTERS', .F., 5, 'PRINTERS')
AADD(CLOSE_ARR, 'PRINTERS')
ENDIF
IF SELECT('WORKSTAT') = 0
NET_USE('&WORKSTAT', .F., 5, 'WORKSTAT')
AADD(CLOSE_ARR, 'WORKSTAT')
ELSE
SELECT WORKSTAT
ENDIF
SEEKKEY := WSID
IF LEN(TRIM(SEEKKEY)) = 0
SEEKKEY = 'SINGLE'
ENDIF
DO WHILE .T.
LOCATE FOR ALLTRIM (WS_ID ) == ALLTRIM ( SEEKKEY ) // FIND WORK STATION RECORD
IF !FOUND() .OR. EMPTY(REPT_PRN) .OR. EMPTY(PROD_PRN) .OR. EMPTY(OD_PRN) ;
.OR. EMPTY(INV_PRN) .OR. EMPTY(DEL_PRN)
SET_P_OFF()
?? CHR(7)
?? CHR(7)
SAVESCR = SAVESCREEN()
SET_PRNT_PARMS(.T.) // GO SET UP PRINTER INFO
RESTSCREEN(,,,,SAVESCR)
SET_P_ON()
IF SET_THE_PRINT
// OUTPUT TO THE PRINTER
ELSE
// OUTPUT TO A TEXT FILE
IF FILE(OUTFILE)
//PROG := 'DEL ' + OUTFILE
//CALL_OLAY(,,PROG, 0, '', '')
FERASE( OUTFILE )
ENDIF
SET PRINTER TO (OUTFILE)
ENDIF
ELSE
EXIT
ENDIF
ENDDO
/*
MRPTPRTR := GETPRINTER('ReportPrinter')
MRPTPORT := GETPRINTER('ReportPort')
MRPTDEV := GETPRINTER('ReportDevice')
MPRODPRTR := GETPRINTER('ProdPrinter')
MPRODPORT := GETPRINTER('ProdPort')
MPRODDEV := GETPRINTER('ProdDevice')
MORDPRTR := GETPRINTER('OrdDeskPrinter')
MORDPORT := GETPRINTER('OrdDeskPort')
MORDDEV := GETPRINTER('OrdDeskDevice')
MINVPRTR := GETPRINTER('InvPrinter')
MINVPORT := GETPRINTER('InvPort')
MINVDEV := GETPRINTER('InvDevice')
MDELPRTR := GETPRINTER('DelPrinter')
MDELPORT := GETPRINTER('DelPort')
MDELDEV := GETPRINTER('DelDevice')
MGOLDPRTR := GETPRINTER('GoldenPrinter')
MGOLDPORT := GETPRINTER('GoldenPort')
MGOLDDEV := GETPRINTER('GoldenDevice' )
MMAILPRTR := GETPRINTER('MailLblPrinter')
MMAILPORT := GETPRINTER('MailLblPort')
MMAILDEV := GETPRINTER('MailLblDevice')
MICOMPPRTR := GETPRINTER('InterCompPrinter')
MICOMPPORT := GETPRINTER('InterCompPort')
MICOMPDEV := GETPRINTER('InterCompDevice')
MBACKOPRTR := GETPRINTER('BackOrdPrinter')
MBACKOPORT := GETPRINTER('BackOrdPort')
MBACKODEV := GETPRINTER('BackOrdDevice')
MQUOTEPRTR := GETPRINTER('QuotePrinter')
MQUOTEPORT := GETPRINTER('QuotePort')
MQUOTEDEV := GETPRINTER('QuoteDevice')
MPREBPRTR := GETPRINTER('PreBillPrinter')
MPREBPORT := GETPRINTER('PreBillPort')
MPREBDEV := GETPRINTER('PreBillDevice')
MPRECPRTR := GETPRINTER('PreCostPrinter')
MPRECPORT := GETPRINTER('PreCostPort')
MPRECDEV := GETPRINTER('PreCostDevice')
*/
DO CASE
CASE MPORT_NAME = '_RPTPORT'
MPRINTER = REPT_PRN
MPORT := 'LPT' + REPT_PORT
MPORT := GETPRINTER('ReportPrinter')
CASE MPORT_NAME = '_PORT_PROD'
MPRINTER = PROD_PRN
MPORT := 'LPT' + PROD_PORT
MPORT := GETPRINTER('ProdPrinter')
//** P3N - 04/08/03 CHANGED TO ALLOW THE ORDER DESK & LABEL PRINTERS TO BE DIFFERENT
//** CASE MPORT_NAME = '_PORT_ORDER' .OR. MPORT_NAME = '_PORT_LABEL'
CASE MPORT_NAME = '_PORT_ORDER'
MPRINTER = OD_PRN
MPORT := 'LPT' + OD_PORT
MPORT := GETPRINTER('OrdDeskPrinter')
CASE MPORT_NAME = '_PORT_LABEL' //** P3N - 04/08/03
MPRINTER = LBL_PRN //** P3N - 04/08/03
MPORT := 'LPT' + LBL_PORT //** P3N - 04/08/03
CASE MPORT_NAME = '_PORT_INVOICE'
MPRINTER = INV_PRN
MPORT := 'LPT' + INV_PORT
CASE MPORT_NAME = '_PORT_QUOTE' //** P3N - 4/13/98
MPRINTER := INV_PRN //** P3N - 4/13/98
MPORT := 'LPT' + INV_PORT //** P3N - 4/13/98
IF FIELDPOS('QTE_PRN') > 0 //** P3N - 4/13/98
MPRINTER = QTE_PRN //** P3N - 4/13/98
ENDIF //** P3N - 4/13/98
IF FIELDPOS('QTE_PORT') > 0 //** P3N - 4/13/98
MPORT := 'LPT' + QTE_PORT //** P3N - 4/13/98
ENDIF
CASE MPORT_NAME = '_PORT_PREBILL' //** P3N - 4/13/98
MPRINTER := INV_PRN //** P3N - 4/13/98
MPORT := 'LPT' + INV_PORT //** P3N - 4/13/98
IF FIELDPOS('PRE_PRN') > 0 //** P3N - 4/13/98
MPRINTER = PRE_PRN //** P3N - 4/13/98
ENDIF //** P3N - 4/13/98
IF FIELDPOS('PRE_PORT') > 0 //** P3N - 4/13/98
MPORT := 'LPT' + PRE_PORT //** P3N - 4/13/98
ENDIF
CASE MPORT_NAME = '_PORT_DELIVERY'
MPRINTER = DEL_PRN
MPORT := 'LPT' + DEL_PORT
CASE MPORT_NAME = '_PORT_GOLDEN'
MPRINTER = GR_PRN
MPORT := 'LPT' + GR_PORT
CASE MPORT_NAME = '_PORT_LABEL'
MPRINTER = LBL_PRN
MPORT := 'LPT' + LBL_PORT
CASE MPORT_NAME = '_PORT_IC'
MPRINTER = IC_PRN
MPORT := 'LPT' + IC_PORT
CASE MPORT_NAME = '_PORT_BO' //** P3N - 4/30/98
MPRINTER = BO_PRN //** P3N - 4/30/98
MPORT := 'LPT' + BO_PORT //** P3N - 4/30/98
END CASE
SELECT PRINTERS
LOCATE FOR PRINTER == MPRINTER
/*
NARROW = "''"
COMPRESS := "''"
WIDE = "''"
NORMAL := "''"
COMPRESSL = "''"
LMAR15 = "''"
LMAR18 = "''"
TMAR = "''"
WIDEON = "''"
WIDEOFF = "''"
SP4 := "''"
SP6 := "''"
SP10 := "''"
SP12 := "''"
SP16 := "''"
LF := "''"
FL7 := "''"
FL11 := "''"
FL14 := "''"
FEED := "''"
FEED2 := "''"
PICA := "''"
ELITE := "''"
SEN_ON = "''"
SEN_OFF = "''"
*/
NARROW = PCOMPRESS
COMPRESS := NARROW
WIDE = PNORMAL
NORMAL := WIDE
COMPRESSL = PCOMPRESSL
LMAR15 = LEFT_MAR15
LMAR18 = LEFT_MAR18
TMAR = TOP_MAR
WIDEON = PWIDEON
WIDEOFF = PWIDEOFF
SP4 := SP_4
SP6 := SP_6
SP10 := SP_10
SP12 := SP_12
SP16 := SP_16
LF := ILF
FL7 := FL_7
FL11 := FL_11
FL14 := FL_14
FEED := SMALL_FEED
FEED2 := TINY_FEED
PICA := P_PICA
ELITE := P_ELITE
SEN_ON = SENSOR_ON
SEN_OFF = SENSOR_OFF
// SET THE PORT
//*MPORT = &MPORT_NAME
//*SET PRINT TO (MPORT)
IF SET_THE_PRINT
IF USER = '_FMAINT'
BLD_GDG('ORDER.TXT', 8) //CREATE GDG(limit of 8) OF ORDERS PRINTED!
SET PRINTER TO ORDER.TXT
ELSE
// SET PRINTER TO (MPORT)
//Set( 24, M->_THISUSER_TEMP, .F. )
SET PRINTER TO ( M->_THISUSER_TEMP ) // APPDATA FOLDER
ENDIF
ENDIF
// CLOSE FILES
FOR L = 1 TO LEN(CLOSE_ARR)
MALIAS = CLOSE_ARR[L]
SELECT(MALIAS)
USE
NEXT
SELECT(SAVESEL)
RETURN MPORT
********************************************
FUNCTION CHK_PRN(MVAR)
// CHECK FOR CORRECT PRINTER SELECTION
*** *IF MVAR$'12345678'
IF MVAR$'123'
RETURN .T.
ELSE
RETURN .F.
ENDIF
*****************************
//*****************************************************************
//*****************************************************************
//** P3N 11/20/02 SET THE PRINTERS SECTION IN THE INI FILE ***
//*****************************************************************
//*****************************************************************
FUNCTION SETPRNTR(PCMD)
LOCAL SYSCODE := M->SYSCODE, lEXIT := .F.
LOCAL MHDC
LOCAL SYSINI
LOCAL CMD
LOCAL PRPORT
LOCAL PRNAME
LOCAL PRDEV
LOCAL INIPORT
LOCAL ININAME
LOCAL INIDEV
local cPrinter
SYSINI := GETSYSINI(SYSCODE)
CMD := UPPER(PCMD)
PRPORT := PCMD+'Port'
PRNAME := PCMD+'Printer'
PRDEV := PCMD+'Device'
INIPORT := ALLTRIM(GETPVPROFSTR('PRINTERS', PRPORT, '', SYSINI)) // ** P3N - 3/14/00
ININAME := ALLTRIM(GETPVPROFSTR('PRINTERS', PRNAME, '', SYSINI)) // ** P3N - 3/14/00
INIDEV := ALLTRIM(GETPVPROFSTR('PRINTERS', PRDEV, '', SYSINI)) // ** P3N - 10/16/03
cPrinter := GetProfString( "windows", "device" , "" ) //** WINDOWS DEFAULT PRINTER
//**DO WHILE .T.
//IF GET_PERDATA()[3] = '_FMAINT' .OR. GET_PERDATA()[3] = 'MASTER'
// MSGINFO('Windows DEFAULT printer device is "' +cPrinter+'"', 'Default printer')
//ENDIF
CKSYSPRTR(ININAME, PCMD, 'NOCALL')
PRINTERSETUP()
//** IS THE WINDOWS DEFAULT PRINTER AVAILABLE?
//** WriteProfString( "windows", "device", cPrinter )
//** SysRefresh()
//** PrinterInit()
MhDC := GetPrintDefault( GetActiveWindow() )
SysRefresh()
//** WriteProfString( "windows", "device", cPrinter )
//** CHECK FOR THE WINDOWS DEFAULT PRINTER
IF MhDC = 0 .OR. EMPTY(cPrinter)
MSGSTOP('Windows Default Printer "' + cPrinter +'"' + CR_LF(2) + ;
'NOT Found or is NOT Available', 'Printer NOT Available' )
ELSE
ININAME := PRNGETNAME()
//** P3N - 10/06/09 ADDRESS THE "NO PRINTERS INSTALLED!" message(from fwhx v2.6 Sept-2005) in vista
SETINIVALS(@ININAME, @INIPORT, @INIDEV) //** P3N - 10/06/09 - Address Vista issue
INIPORT := STRTRAN(PRNGETPORT(),':','')
INIDEV := PRNGETDRIVE()
IF EMPTY(ININAME) .OR. EMPTY(INIPORT)
MSGSTOP( 'Invalid or Incomplete Printer Information:' + CR_LF(2) + ;
'Printer Name - ' + ININAME + CR_LF() + ;
'Printer Port - ' + INIPORT,'Incomplete Printer Stetup' )
ELSE
WRITEPPROS('PRINTERS', PRNAME, ININAME, SYSINI )
WRITEPPROS('PRINTERS', PRPORT, INIPORT, SYSINI )
WRITEPPROS('PRINTERS', PRDEV, INIDEV, SYSINI )
ENDIF
ENDIF
//**ENDDO
RETURN .T.
*********************************************
FUNCTION GETPRINTER(CMD) //** P3N - 12/31/02
** THIS WILL AVOID A CONFLICT WITH THE FIVEWIN GETPRINTER() FUNCTION
**FUNCTION INIPRINTER(CMD) //** P3N - 12/31/02
LOCAL WININI := GETWINDIR() + '\WIN.INI'
LOCAL PRINTDEV := GETPVPROFSTRING( 'WINDOWS', 'DEVICE', 'NODEFAULT ', WININI )
LOCAL SYSINI := GETSYSINI( M->SYSCODE )
IF EMPTY(CMD) //** P3N - 11/12/02
//** RETURN THE DEFAULT WINDOWS SYSTEM PRINTER //** P3N - 11/12/02
ELSE
//** RETURN THE XXX.INI SECTION [PRINTERS] INFO BASED ON CMD PASSED
//** cmd = 'ReportPrinter' //** P3N - 12/30/02
//** cmd = 'ReportPort' //** P3N - 12/30/02
//** cmd = 'CheckPrinter' //** P3N - 12/30/02
//** cmd = 'CheckPort' //** P3N - 12/30/02
//** cmd = 'FormPrinter' //** P3N - 12/30/02
//** cmd = 'FormPort' //** P3N - 12/30/02
PRINTDEV := GETPVPROFSTRING( 'PRINTERS', CMD, ' ', SYSINI )
ENDIF //** P3N - 11/12/02
RETURN PRINTDEV
**********************************
//*****************************************************************
//*****************************************************************
//** P3N 11/20/02 SET THE PRINTERS SECTION IN THE INI FILE ***
//*****************************************************************
//*****************************************************************
//**FUNCTION VALIDPRTRS( MRPTPRTR, MPRODPRTR, MORDPRTR, MINVPRTR, MDELPRTR, MGOLDPRTR, MMAILPRTR, MICOMPPRTR, MBACKOPRTR, MQUOTEPRTR, MPREBPRTR )
FUNCTION VALIDPRTRS(MRPTPRTR, MCHECKPRTR)
LOCAL RETVAL := .F.
RETVAL := CKSYSPRTR( MRPTPRTR, 'Report' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'Prod' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'OrdDesk' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'Inv' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'Del' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'Golden' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'MailLbl' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'InterComp' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'BackOrd' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'Quote' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'PreBill' )
RETVAL := CKSYSPRTR( MRPTPRTR, 'PreCost' )
//IF RETVAL
// IF RETVAL
// RETVAL := CKSYSPRTR(MRPTPRTR, 'REPORT', 'NOCALL')
// ENDIF
//ENDIF
//**IF RETVAL
//**ELSE
//** IF ISWINNT()
//** IF MSGYESNO('Printer Information is Incomplete'+CR_LF()+;
//** 'Do you want to continue with incomplete printer information?')
//** RETVAL := .T.
//** ENDIF
//** ENDIF
//**ENDIF
RETURN RETVAL
//*********************************************************
//** P3N - 03/07/03
//** IS THE PRINTER NAME A VALID PRINTER NAME?
//*********************************************************
FUNCTION CKSYSPRTR( PRTRNAME, WHATPRTR )
LOCAL SYSINI := GETSYSINI(M->SYSCODE)
LOCAL PRPORT := WHATPRTR + 'Port', PRDEV := WHATPRTR + 'Device', PRNAME := WHATPRTR + 'Printer'
LOCAL INIPORT := ALLTRIM(GETPVPROFSTR('PRINTERS', PRPORT, '', SYSINI))
LOCAL ININAME := ALLTRIM(GETPVPROFSTR('PRINTERS', PRNAME, '', SYSINI))
LOCAL INIDEV := ALLTRIM(GETPVPROFSTR('PRINTERS', PRDEV, '', SYSINI))
local MhDC := 0, RETVAL := .T.
local cPrinter := GetProfString( "windows", "device" , "" )
LOCAL cWinName := WINDFLT(cPrinter,'NAME'), cWinPort := WINDFLT(cPrinter, 'PORT')
local cWindev := WINDFLT(cPrinter, 'DEVICE')
WriteProfString( "windows", "device", PRTRNAME )
SysRefresh()
PrinterInit()
MhDC := GetPrintDefault( GetActiveWindow() )
SysRefresh()
WriteProfString( "windows", "device", cPrinter )
/*
commented out on 10/02/09
address vista issues
IF MhDC = 0 .OR. EMPTY(PRTRNAME)
MSGINFO('Invalid "' +WHATPRTR+ '" Printer Name - ' + PRTRNAME + CR_LF(2) + ;
'Windows default printer used - ' + cWinName )
WRITEPPROS('PRINTERS', PRNAME, cWinName, SYSINI )
WRITEPPROS('PRINTERS', PRPORT, cWinPort, SYSINI )
IF EMPTY(CMD)
SYSPRNTRS(, 'INIT')
ENDIF
RETVAL := .T.
ENDIF
*/
RETURN RETVAL
//********************************************************************************
//** P3N - 10/06/09
//** ADDRESS THE "NO PRINTERS INSTALLED!" message(from fwhx v2.6 Sept-2005) in vista
//********************************************************************************
FUNCTION SETINIVALS(ININAME,INIPORT,INIDEV)
//** EXAMPLE OF ALLPRNTRS ARRAY VALUES:
//** ALLPRNTRS[1] "Xerox DocuPrint N2125 PS (by server 138),winspool,Ne00:"
//** ALLPRNTRS[2] "Xerox DocuPrint N2125 PS,winspool,Ne01:"
//** ALLPRNTRS[3] "pdfFactory Pro,winspool,FPP3:"
//** ALLPRNTRS[4] "Microsoft XPS Document Writer,winspool,Ne02:"
//** ALLPRNTRS[5] "\\LAAPCSV1\HP LaserJet 2420 PCL 6,winspool,Ne03:"
//** ALLPRNTRS[6] "WebEx Document Loader,winspool,Ne04:"
LOCAL ALLPRNTRS := GETALLPRNTRS(), I := 0
LOCAL CKNAME := ''
FOR I := 1 TO LEN(ALLPRNTRS)
CKNAME := SUBST(ALLPRNTRS[I], 1, AT(',',ALLPRNTRS[I]) -1 )
IF CKNAME == ININAME
//**IF ALLPRNTRS[I] = ININAME
ININAME := ALLPRNTRS[I]
EXIT
ENDIF
NEXT
RETURN .T.
//*********************************************************
//** P3N - 10/06/09
//** GET ALL PRINTERS FOR THIS WINDOWS SESSION
//*********************************************************
FUNCTION GETALLPRNTRS()
LOCAl cEntry := '', I := 0, cName := '', cPrn := '', cPort := '', J := 0
LOCAL aDevices := {}
//** EXAMPLE OF aDevices ARRAY VALUES returned:
//** ALLPRNTRS[1] "Xerox DocuPrint N2125 PS (by server 138),winspool,Ne00:"
//** ALLPRNTRS[2] "Xerox DocuPrint N2125 PS,winspool,Ne01:"
//** ALLPRNTRS[3] "pdfFactory Pro,winspool,FPP3:"
//** ALLPRNTRS[4] "Microsoft XPS Document Writer,winspool,Ne02:"
//** ALLPRNTRS[5] "\\LAAPCSV1\HP LaserJet 2420 PCL 6,winspool,Ne03:"
//** ALLPRNTRS[6] "WebEx Document Loader,winspool,Ne04:"
LOCAL cAllEntries := STRTRAN( GetProfString( "Devices" ), Chr( 0 ), CRLF )
FOR I:= 1 TO MlCount( cAllEntries )
cName := MemoLine( cAllEntries,,I)
cEntry := GetProfString( "Devices",cName,"")
J := 2
DO WHILE ! EMPTY(cPort := StrToken(cEntry,J++,","))
AADD(aDevices,TRIM(cName) + "," + CENTRY)
ENDDO
NEXT
RETURN aDevices
****************************************************
FUNCTION WINDFLT(cPrinter, CMD)
LOCAL SPLITNAME := AT(',', cPrinter), RETVAL := ''
LOCAL SPLITPORT := RAT(',', cPrinter)
LOCAL RETNAME := SUBST(cPrinter,1, SPLITNAME-1)
LOCAL RETPORT := SUBST(cPrinter, SPLITPORT+1,LEN(cPrinter) )
IF ISWINNT()
//**MSGINFO('THIS IS THE WINNT DEFAULT PRINTER - '+CPRINTER)
RETPORT := RETNAME
ENDIF
IF CMD = 'NAME'
RETVAL := RETNAME
ELSEIF CMD = 'PORT'
RETVAL := STRTRAN(RETPORT, ':', '')
ENDIF
RETURN RETVAL
***************************************************
FUNCTION WRITEPPROS( P1, P2, P3, P4 )
RETURN WRITEPPROSTRING( P1, P2, P3, P4 )
**********************************************
// FUNCTION GETPVPROFSTR( P1, P2, P3, P4 )
// RETURN GETPVPROFSTRING( P1, P2, P3, P4 )
********************************************************
FUNCTION GETPVPROFI( P1, P2, P3, P4 )
RETURN GETPVPROFINT( P1, P2, P3, P4 )
****************************************************************
************************************************
FUNCTION DON_REPDATE(VAR2)
LOCAL WORKDATE
// DATE - SQL LIMITATION - DON 4-27-9
//IF M->SQLDRIVER = 'MEDNTX' // DONE ONLY IF MS/SQL DataBase
// MYEAR := YEAR( VAR2 )
// IF MYEAR > 0 .AND. MYEAR < 1800 // 01/23/1754
//
// WORKDATE := DTOC( VAR2 )
// WORKDATE := SUBS( WORKDATE, 1 , 6 ) ; // 01/23/1854 - MAKE 1800 CENTURY
// + '18' + SUBS( WORKDATE, 9 )
// VAR2 := CTOD( WORKDATE )
// ENDIF
//ENDIF
RETURN VAR2
*****************************
FUNCTION GETPVPROFSTR( P1, P2, P3, P4 )
RETURN GETPVPROFSTRING( P1, P2, P3, P4 )
********************************
function ReadVar()
LOCAL NWND
// MODIFIED IN CASE NO CONTROLS ALIVE. 6-3-2020
nWnd := AScan( GetAllWin(),;
{ | oWnd | IF ( VALTYPE(OWND)$'N', .F., oWnd:lFocused .and. oWnd:ClassName() == "TGET" )} )
return If( nWnd != 0, GetAllWin()[ nWnd ], nil )