Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
WINFAX - Print from Report Writer to FAX
Message
General information
Forum:
Visual FoxPro
Category:
Third party products
Title:
WINFAX - Print from Report Writer to FAX
Miscellaneous
Thread ID:
00746033
Message ID:
00746033
Views:
70
I am using Symantec's WinFax to transmit faxed report documents (Visual FoxPro's Report Form). The following code is how we have been doing this, however, it is no longer working properly. We have version 10.0 of WinFax. Is anyone else using this version of WInFax from within VFP?

CASE CAPTION_LC == 'FAX'
SET PRINTER TO NAME "WINFAX"
NOW_HEADER_MODE_PC = 'FAX'

* Copy current PO header and detail to report files.
SELECT POHEADER
NOW_PO_PC = POHEADER.PO_MAIN
lcPurchaseOrderType = "PURCHASE ORDER"
SELECT ;
POHeader.PO_Main,;
PoHeader.Buyer,;
PoHeader.PO_nStatus,;
POHeader.PO_Date,;
POHeader.PO_Suffix,;
POHeader.Job,;
POHeader.Job_Name,;
PoHeader.Account_No,;
PoHeader.Shp_Name,;
PoHeader.Ven_Name,;
PoHeader.Ven_Ad1,;
PoHeader.Ven_Ad2,;
PoHeader.Ven_City,;
PoHeader.Ven_State,;
PoHeader.Ven_Zip,;
PoHeader.Ven_Cont,;
PoHeader.Ven_Phone,;
PoHeader.Ven_Fax,;
PoHeader.Shp_Ad1,;
PoHeader.Shp_Ad2,;
PoHeader.Shp_City,;
PoHeader.Shp_State,;
PoHeader.Shp_Zip,;
PoHeader.Req_Date,;
PoHeader.Via,;
PoHeader.Terms,;
PoHeader.RequestBy,;
PoHeader.Sub_Total,;
PoHeader.Sales_Tax,;
PoHeader.PO_Total,;
PoHeader.Comments,;
PoHeader.OriginCmts,;
PoHeader.FOB,;
PODetail.Line,;
PODetail.Descript_L,;
PODetail.Quantity,;
PODetail.Unit,;
PODetail.Taxable,;
PODetail.Unit_Price,;
PODetail.Disc_Pc,;
PODetail.Net_Price,;
PODetail.Ext_Price,;
PODetail.Qty_Recvd;
FROM ;
POHeader, PODetail ;
WHERE ;
POHeader.PO_Main = NOW_PO_PC AND ;
PODetail.PO_Main = NOW_PO_PC ;
ORDER BY POHeader.PO_Main ;
INTO CURSOR tmpPOReport


* Setup fax process
LOCAL PASS_FAX_LL, ;
MAIN_FAX_LL, ;
LOCAL_AREA_CODE_LC, ;
DIAL_NUMBER_LC, ;
SEND_TIME_LC, ;
SEND_DATE_LC, ;
FAX_NAME_LC, ;
COMPANY_LC, ;
SUBJECT_LC, ;
KEYWORD_LC, ;
BILLING_CODE_LC, ;
MODE_LC, ;
COVER_PAGE_LC, ;
COVER_TEXT_LC, ;
ATTACHMENT_LC, ;
FAX_CHANNEL_LN, ;
RECIPIENT_LC, ;
FAX_STATUS_LC, ;
FAX_RETURN_LC, ;
RESOLUTION_LC

PASS_FAX_LL = .T.
MAIN_FAX_LL = .T.
DO WHILE PASS_FAX_LL AND MAIN_FAX_LL
* Check for vendor fax number in POHEAER, if not also look in POVENDOR.
* Remove any punctuation from vendor telephone number.
REPLACE POHEADER.VEN_FAX WITH ;
SUBSTR(ALLTRIM(STRTRAN(STRTRAN(STRTRAN(STRTRAN(POHEADER.VEN_FAX,'-',''),'(',''),')',''),' ','')),1,10)
* Is there a valid length vendor fax number in POHEADER.
IF LEN(ALLTRIM(POHEADER.VEN_FAX)) <> 10
* Can we find a vendor record in POVENDOR
IF SEEK(POHEADER.VENDOR,'POVENDOR','VENDOR') AND ;
POHEADER.VENDOR == POVENDOR.VENDOR_NO
* Remove any punctuation from vendor telephone number
REPLACE POVENDOR.FAX_NO WITH ;
SUBSTR(ALLTRIM(STRTRAN(STRTRAN(STRTRAN(STRTRAN(POVENDOR.FAX_NO,'-',''),'(',''),')',''),' ','')),1,10)
IF LEN(ALLTRIM(POVENDOR.FAX_NO)) = 10
REPLACE POHEADER.VEN_FAX WITH POVENDOR.FAX_NO
ELSE
WAIT 'You must have a valid Vendor Fax No. to fax!' WINDOW TIMEOUT TIMEOUT_PN
PASS_FAX_LL = .F.
LOOP
ENDIF
ELSE
WAIT 'You must have a valid Vendor Fax No. to fax!' WINDOW TIMEOUT TIMEOUT_PN
PASS_FAX_LL = .F.
LOOP
ENDIF
ENDIF
MAIN_FAX_LL = .F.
ENDDO
IF PASS_FAX_LL
* Get local area code from default company phone. ³
LOCAL_AREA_CODE_LC = LEFT(DEFAULTS.CMP_PHONE,3)
DIAL_NUMBER_LC = POHEADER.VEN_FAX
IF LEFT(DIAL_NUMBER_LC,3) == LOCAL_AREA_CODE_LC
DIAL_NUMBER_LC = SUBSTR(DIAL_NUMBER_LC,4)
ELSE
DIAL_NUMBER_LC = '1'+DIAL_NUMBER_LC
ENDIF
* Initialize parameters.
SEND_TIME_LC = TIME()
* Fax anticipates date in the MM/DD/YY format.
SET CENTURY OFF
SEND_DATE_LC = DTOC(DATE())
SET CENTURY ON
FAX_NAME_LC = ALLTRIM(POHEADER.VEN_CONT)
* Company name may only be 42 characters.
COMPANY_LC = LEFT(ALLTRIM(POHEADER.VEN_NAME),42)
SUBJECT_LC = 'PURCHASE ORDER'
KEYWORD_LC = 'FAX, PURCHASE ORDER'
BILLING_CODE_LC = ''
MODE_LC = 'FAX'
COVER_PAGE_LC = ''
COVER_TEXT_LC = ''
ATTACHMENT_LC = ''
FAX_CHANNEL_LN = 9
RESOLUTION_LC = ''
FAX_CHANNEL_LN = DDEInitiate("WFXSVC","TRANSMIT")
* Check channel status.
FAX_STATUS_LC = DDERequest(FAX_CHANNEL_LN,"status")
* Set fax resolution to high.
RESOLUTION_LC = "resolution(" + ;
CHR(34) + "HIGH" + CHR(34) + ")"
FAX_RETURN_LC = DDEPoke(FAX_CHANNEL_LN,"Sendfax",RESOLUTION_LC)
* Set up recipent informmation.
RECIPIENT_LC = "recipient(" + ;
CHR(34) + DIAL_NUMBER_LC + CHR(34) + "," + ;
CHR(34) + SEND_TIME_LC + CHR(34) + "," + ;
CHR(34) + SEND_DATE_LC + CHR(34) + "," + ;
CHR(34) + FAX_NAME_LC + CHR(34) + "," + ;
CHR(34) + COMPANY_LC + CHR(34) + "," + ;
CHR(34) + SUBJECT_LC + CHR(34) + "," + ;
CHR(34) + KEYWORD_LC + CHR(34) + "," + ;
CHR(34) + BILLING_CODE_LC + CHR(34) + "," + ;
CHR(34) + MODE_LC + CHR(34) + ")"

FAX_RETURN_LC = DDEPoke(FAX_CHANNEL_LN,"sendfax",RECIPIENT_LC)
* Set the fax modem on
FAX_RETURN_LC = DDEExecute(FAX_CHANNEL_LN,"GoActive")
lcBuyer = SPACE(0)
lcTempFileNameForJPEGSignature = ""
IF FILE(ALLTRIM(tmpPOReport.Buyer)+'.JPG')
lcBuyer = ALLTRIM(tmpPOReport.Buyer)
lcTempFileNameForJPEGSignature = SUBSTR(SYS(2015), 3, 10) + ".JPG"
oApp.PathToSignatureFile = lcTempFileNameForJPEGSignature
COPY FILE ("C:\PONEW\"+lcBuyer+'.JPG') TO (lcTempFileNameForJPEGSignature)
ELSE
lcTempFileNameForJPEGSignature = SUBSTR(SYS(2015), 3, 10) + ".JPG"
oApp.PathToSignatureFile = lcTempFileNameForJPEGSignature
COPY FILE ("BLANK.JPG") TO (lcTempFileNameForJPEGSignature)
ENDIF
IF NOT EMPTY(lcBuyer)
SELECT Byr_Name, Byr_Email, Byr_Signat ;
FROM POBYRFIL ;
WHERE Byr_Code = lcBuyer ;
INTO CURSOR tmpBuyer
oApp.Buyer_Name = ALLTRIM(tmpBuyer.Byr_Name)
oApp.Buyer_Email = ALLTRIM(tmpBuyer.Byr_Email)
ELSE
oApp.Buyer_Name = SPACE(0)
oApp.Buyer_Email = SPACE(0)
ENDIF
SELECT tmpPOReport && Get back to the Report's source file work area.
DEFINE WINDOW wPO ;
FROM 0, 0 SIZE 40,100 ;
TITLE "PO Report" CLOSE NOZOOM system
ZOOM WINDOW wPO MAX
CLEAR RESOURCES (oApp.PathToSignatureFile)
IF oApp.Buyer_Signature && This LOGICAL value is set in PO.prg.
REPORT FORM PO PREVIEW WINDOW wPO
ELSE
REPORT FORM PO_NO_SIG PREVIEW WINDOW wPO
ENDIF
IF FILE(lcTempFileNameForJPEGSignature)
ERASE (lcTempFileNameForJPEGSignature)
ENDIF

IF USED("tmpBuyer")
SELECT tmpBuyer
USE
ENDIF
IF USED("POBYRFIL")
SELECT POBYRFIL
USE
ENDIF
IF USED('DEFAULTS')
USE IN DEFAULTS
ENDIF
IF FILE((DATA_DIR_PC+'DEFAULTS.DBF'))
SELECT 0
USE (DATA_DIR_PC+'DEFAULTS') SHARE
ENDIF
* Close the DDE channel.
=DDETerminate(FAX_CHANNEL_LN)
ENDIF
WAIT CLEAR
NOW_HEADER_MODE_PC = ''
SET PRINTER TO DEFAULT
THISFORM.REFRESH()
Next
Reply
Map
View

Click here to load this message in the networking platform