#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 )