Using FoxPro Text Merge Feature with Multiple Databases

Article translations Article translations
Article ID: 94349 - View products that this article applies to.
This article was previously published under Q94349
This article has been archived. It is offered "as is" and will no longer be updated.
Expand all | Collapse all

SUMMARY

Documents developed with the Text Merge feature can use fields from two or more databases. The example below uses customer names and addresses from the FoxPro 2.x CUSTOMER.DBF sample database merged with form letters contained in memo fields from a second database (INVOICE.DBF).

MORE INFORMATION

NOTE: This example only works using the FoxPro 2.x sample files.

The memo field contains all text to be merged. Page spacing (top, bottom, and side margins) is controlled within the memo field. A memo field can appear similar to the following example:
   <<DATE()>>

   <<ALLTRIM(PROPER(CONTACT))>>
   <<ALLTRIM(PROPER(COMPANY))>>
   <<ALLTRIM(PROPER(ADDRESS))>>
   <<ALLTRIM(PROPER(CITY))>>, <<ALLTRIM(STATE)>> <<ALLTRIM(ZIP)>>

   Dear <<ALLTRIM(PROPER(CONTACT))>>:

   This area includes the body of a letter to be
   sent to the contact.

   Sincerely,


   Name

   ENDTEXT
				
The following program connects the information from the two databases. Work area 1 includes the database (INVOICE) with memo fields that contain form letters. Work area 2 includes a database (CUSTOMER) that contains names and addresses that should receive the letter. The program will execute from work area 2.

This example assumes that you have a customer database (CUSTOMER) with account status information and a database (INVOICE) with multiple form letters for different account statuses.
   SELECT 1
   USE INVOICE
   SELECT 2
   USE CUSTOMER
   CLEAR                               && Clear screen.
   SET TEXTMERGE ON                    && Enable evaluation of components.
   SET TALK OFF                        && Prevent printing of commands.
   SET TEXTMERGE DELIMITERS TO         && Set default delimiters.
   SET MEMOWIDTH TO 80                 && Set memo width for 80 columns.
   SCAN                                && Force top-down processing.
     FOR J=1 TO MEMLINES(invoice.memo)
        X="\"+MLINE(invoice.memo,J)  && Process each line in memo field.
        &X                        && Macro substitution.
     ENDFOR
   ENDSCAN
				

Properties

Article ID: 94349 - Last Review: February 28, 2014 - Revision: 2.2
APPLIES TO
  • Microsoft Visual FoxPro 3.0 Standard Edition
  • Microsoft FoxPro 2.0
  • Microsoft FoxPro 2.5b for MS-DOS
  • Microsoft FoxPro 2.5a
  • Microsoft FoxPro 2.5b
  • Microsoft FoxPro 2.5a
Keywords: 
kbnosurvey kbarchive KB94349

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com