Alpha Video Training
Results 1 to 4 of 4

Thread: WinFax 9.02 DDE

  1. #1
    Jim Rowlen
    Guest

    Default WinFax 9.02 DDE

    Since Alpha added this nice little section, and since people keep asking for this, I've decided to be the first to post part of a script here. This sends a report to WinFax using DDE. There are a couple lines refencing a v5 command [ last_printer = report.printer_override("WinFax") ] so don't use it yet. It's just a little enhancement you can add in a few months.

    Jim

    'Found the original, added a few comments, and show which
    'section refers to v5 enhancements that you should only add
    'later.

    It's a bit lng, but here it is.
    '
    IDLE_MODE: ' INITIALIZE GENERIC WINFAX STUFF
    DDE_TERMINATE_ALL() ' CLOSE ALL EXISTING DDE CONNECTIONS
    ON ERROR GOTO DDE_ERROR ' SET ERROR TRAP
    ' WHILE WINFAX SAYS TO USE THE FOLLOWING 4 LINES WE'VE HAD EFFICIENCY PROBLEMS WITH THEM AND DROPPED ALL "CHANNEL1"
    CHANNEL1 = DDE_INITIATE("FAXMNG32", "CONTROL") ' SPECIFY WHICH PROGRAM
    ON ERROR GOTO 0
    DDE_EXECUTE(CHANNEL1, "GoIdle") ' TELL WINFAX NOT TO DO ANYTHING
    DDE_TERMINATE(CHANNEL1) ' CLEAR THE CHANNEL
    '
    '****************************** FOLLOWING SECTION IS ONLY FOR FUTURE REFERENCE FOR ENHANCING IN v5 ****************
    ' CAN DO A UI_RADIO HERE TO DETERMINE HOW IT GOES OUT (FAX, PRINT, PREVIEW, EMAIL, ETC) SEEN BELOW IN REMmed LINES REFERENCING
    ' PrintOrFax. PUT HERE FOR v5 USE.
    ' I DIDN'T CHECK THE UI_ LINES FOR SYNTAX - JUST RUFFED IT IN FOR THIS TEXT COPY
    ' PrintOrFax = UI_RADIO_GET("FAX OPTIONS", 1, "FAX", "PRINT", "PREVIEW", "E-MAIL", 48)
    ' Uses a v5 command which lets you change to output to report's printer. Added here for your future use in a more powerful output controller.
    ' Actually would use it in a SELECT and use report.print, report.preview, etc. Just added it here as a tease.
    'SELECT
    ' CASE RIGHT (PrintOrFax, 3) = "FAX"; last_printer = report.printer_override("WinFax")
    ' CASE RIGHT (PrintOrFax, 3) = "EMAIL";
    ' CASE RIGHT (PrintOrFax, 5) = "PRINT"; last_printer = report.printer_override("HP 970")
    ' CASE RIGHT (PrintOrFax, 3) = "PREVIEW"; last_printer = report.printer_override("HP 970")
    'END SELECT
    ' YOU COULD COMBINE THESE OPTIONS IN TO THE ABOVE FOR v5
    '****************************** END OF SECTION FOR FUTURE REFERENCE FOR ENHANCING IN v5 ****************
    PrintOrFax = UI_RADIO_GET("FAX OPTIONS", 1, "FAX NOW WITHOUT COVER", "FAX NOW WITH COVER", "FAX NOW WITHOUT COVER",
    "FAX LATER WITH COVER", 48)
    '
    SEND_FAX:
    FaxNbr = trim(YOUR_TABLE->FAX)
    ' WE DIDN'T SAVE THE FORMATTING CHARS IN OUR v1 DATA (ANOTHER THING TO FIX ON MOVING DATA).
    ' IF YOU ARE SMARTER THAN US AND DID YOU'LL HAVE TO MODIFY LEFT(FaxNbr, 3) and RIGHT(FaxNbr,7)
    IF LEFT(FaxNbr, 3) = "703" THEN ' OUR AREA CODE IS 703. IF FAXING TO SAME, DROP THE AREA CODE
    FaxNbr = RIGHT(FaxNbr, 7)
    ELSE
    FaxNbr = "1" + FaxNbr ' OTHERWISE ADD A "1" FOR LONG DISTANCE ACCESS
    END IF
    '
    FaxNm = LEFT(TRIM(YOUR_TABLE->FULL_NAME), 30) ' RECEIVER'S NAME (most will be using trim(FirstName) + " " + trim(LastName)
    '
    BillingCode = TRIM(ANOTHER_TABLE->LOAN_NBR) ' CAN SET THIS AND NEXT IN A SELECT OR WHATEVER.
    KeyWord = "LATE_NOTICE"
    FaxRes = "LOW" ' WILL DISPLAY AS "STANDARD" IN WinFax. OTHER OPTION IS "HIGH"
    '
    if left(PrintOrFax, 7) = "FAX NOW" then
    SendTime = TIME() ' IF YOU'RE SEND A LOT OF FAXES (AS IN A LOOP), ADD 5 OR 10 MINUTES SO YOU DON'T SLOW DOWN THE LOOP
    else
    SendTime = "19:30:00"
    end if
    '
    SendDate = DTOC(DATE()); SendDate = left(SendDate, 6) + right(SendDate, 2) ' EXPECTED FORMAT IS MM/DD/YY
    '
    CHANNEL2 = DDE_INITIATE("FAXMNG", "TRANSMIT") ' SEND RECIPIENT INFO AND PRINT TO FAX
    '
    ' (WinFax's format is "sendfax", "recipient("FaxNbr","SendTime","SendDate ","FaxNm","FaxToCompanyName","FaxSubject","KeyWord","BillingCode")") and MUST
    ' have the transferred fields surruonded by double quotes. Forgetting or messing them up is where most syntax erros occur.
    '
    DDE_POKE (CHANNEL2, "sendfax", "recipient("" + FaxNbr + "","" + SendTime + "","" + SendDate + "","" +FaxNm + "",,,"" + KEYWORD + "","" + BillingCode + "")")
    '
    SELECT ' SET ATTACHMENT BASED ON SOME SIMPLE LOGIC
    CASE YOUR_TABLE->FIELD_NAME = REPORT_NAME_TRIGGER_VALUE_1; Report_To_Fax = "A5 Reprot Name You Want To Fax"
    CASE YOUR_TABLE->FIELD_NAME = REPORT_NAME_TRIGGER_VALUE_N; Report_To_Fax = "A5 Report Name You Want To Fax"
    CASE ELSE; ' YOU SHOULDN'T GET HERE
    END SELECT
    '
    SELECT ' ALL SORTS OF ATTACHMENT TYPES. SEE WinFax HELP UNDER DDE
    CASE YOUR_TABLE->FIELD_NAME = WHATEVER_TRIGGER_VALUE_1; AttachDoc = "C:Attachment_Doc_PathDesired_Doc.txt"
    CASE YOUR_TABLE->FIELD_NAME = WHATEVER_TRIGGER_VALUE_N; AttachDoc = "C:Attachment_Doc_PathDesired_Doc.txt"
    CASE ELSE; AttachDoc = ""
    END SELECT
    '
    if AttachDoc > "" then
    DDE_POKE (CHANNEL2, "sendfax", "attach("" + AttachDoc + "")")
    end if
    '
    DDE_POKE (CHANNEL2, "sendfax", "resolution("" + FaxRes + "")")
    '
    'if right(PrintOrFax, 10) = "WITH COVER" then ' kept getting errors on this one, various rejected lines shown here
    ' CoverPg = "C:Program FilesSymanticWinFaxCoverSREPLY.CVP"
    ' DDE_POKE (CHANNEL2, "sendfax", "setcoverpage("" + CoverPg + "")")
    ' DDE_POKE (CHANNEL2, "sendfax", "setcoverpage("" + "C:Program FilesSymanticWinFaxCoverSREPLY.CVP" + "")")
    ' DDE_POKE (CHANNEL2, "sendfax", "setcoverpage(" + "Quick Cover Page" + ")")
    'end if

    ' next DDE not as useful as DDE in next IF. All info is lost except for the FAX image
    ' DDE_POKE (CHANNEL2, "sendfax", "SendfaxUI")
    '
    ' next check decides if to bring up the WinFax screen that lets you add and fill a cover page, set send time, select from phonebook, etc.
    IF RIGHT (PrintOrFax, 10) = "WITH COVER" then
    DDE_POKE (CHANNEL2, "sendfax", "ShowSendScreen("" + "1" + "")")
    end if
    '
    RecToPrt = TableName->Unique_Key_Field
    REPORT.PRINT(Report_To_Fax, "BETWEEN(TableName->Unique_Key_Field, RecToPrt, RecToPrt)")
    '
    CleanUp: ' RESET FAX STUFF
    dde_terminate(CHANNEL2) ' CLEAR THE CHANNEL
    '
    ACTIVE_MODE:
    CHANNEL4 = DDE_INITIATE("FAXMNG32", "CONTROL") ' SPECIFY WHICH PROGRAM
    DDE_EXECUTE(CHANNEL4, "GoActive") ' TELL WINFAX IT'S OK TO GO BACK TO NORMAL
    DDE_TERMINATE(CHANNEL4) ' CLEAR THE CHANNEL
    '
    goto Fin
    '
    '*****
    '
    DDE_ERROR: ' IF WINFAX IS LOADED THIS ISN'T NEEDED
    SYS_SHELL("C:Program FilesSymanticWinFaxFAXMNG32.EXE") ' LOADS WINFAX IF IT'S NEEDED BUT NOT LOADED
    ON ERROR GOTO 0
    RESUME 0
    '
    '*****
    Fin:
    end

  2. #2
    Jim Rowlen
    Guest

    Default RE: WinFax 9.02 DDE

    Will not run as shown here. For some reason all of the backslashes don't show up in the script, which was copied and pasted here.

  3. #3
    Jose de Leon
    Guest

    Default RE: WinFax 9.02 DDE

    It is best to zip your file or files and attach to the message. In the body of the message and subject, you should provide keywords to help in searching.

  4. #4
    Jim Rowlen
    Guest

    Default RE: WinFax 9.02 DDE

    Attached is a WinZip of the DDE script

Similar Threads

  1. Winfax ole help
    By russ Boehle in forum Alpha Five Version 5
    Replies: 15
    Last Post: 12-03-2010, 09:59 AM
  2. Winfax OLE
    By russ Boehle in forum Alpha Five Version 6
    Replies: 4
    Last Post: 11-02-2004, 09:15 AM
  3. Winfax scripts not working in Win XP Pro
    By Rick Valenzuela in forum Alpha Five Version 5
    Replies: 3
    Last Post: 02-09-2004, 06:01 PM
  4. problems between winfax and a5
    By Kevin Morken in forum Alpha Five Version 5
    Replies: 3
    Last Post: 01-30-2003, 02:15 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •