"Mail Merge" System for XML and Microsoft Word

This project is a sample of how you can merge XML-files with a MS Word template. This makes it easy to create a mailmerge-system. I've created a ActiveX DLL to perform the mailmerge. This makes it very easy to reuse this code in other applications.

An example

When you have a customer-database and you want to write a letter to each of your customers, the only thing you have to do is to create a Word-template and a XML-file with the data of the customers.

This is an example of a XML-file with customer-data:

<?xml version = "1.0" ?>
<!DOCTYPE DOCUMENT [
  <!ELEMENT DOCUMENT (CUSTOMER)*>
  <!ELEMENT CUSTOMER (NAME, ADDRESS, ORDERS)>
  <!ELEMENT NAME (LASTNAME, FIRSTNAME)>
  <!ELEMENT LASTNAME (#PCDATA)>
  <!ELEMENT FIRSTNAME (#PCDATA)>
  <!ELEMENT ADDRESS (STREET, POSTAL, LOCATION)>
  <!ELEMENT STREET (#PCDATA)>
  <!ELEMENT POSTAL (#PCDATA)>
  <!ELEMENT LOCATION (#PCDATA)>
  <!ELEMENT ORDERS (ITEM)*>
  <!ELEMENT ITEM (PRODUCT, PRICE)>
  <!ELEMENT PRODUCT (#PCDATA)>
  <!ELEMENT PRICE (#PCDATA)>
]>

<DOCUMENT>
  <CUSTOMER>
    <NAME>
      <LASTNAME>Braem</LASTNAME>
      <FIRSTNAME>Franky</FIRSTNAME>
    </NAME>
    <ADDRESS>
      <STREET>Jan Van Rijswijcklaan</STREET>
      <POSTAL>2000</POSTAL>
      <LOCATION>Antwerp</LOCATION>
    </ADDRESS>
    <ORDERS>
      <ITEM>
        <PRODUCT>Computer</PRODUCT>
        <PRICE>54.995</PRICE>
      </ITEM>
      <ITEM>
        <PRODUCT>Printer</PRODUCT>
        <PRICE>12.990</PRICE>
      </ITEM>
    </ORDERS>
  </CUSTOMER>

  <CUSTOMER>
      <NAME>
      <LASTNAME>De Smet</LASTNAME>
      <FIRSTNAME>Nathalie</FIRSTNAME>
    </NAME>
    <ADDRESS>
      <STREET>Kruidtuinlaan</STREET>
      <POSTAL>1000</POSTAL>
      <LOCATION>Brussel</LOCATION>
    </ADDRESS>
    <ORDERS>
      <ITEM>
        <PRODUCT>GSM</PRODUCT>
        <PRICE>9.895</PRICE>
      </ITEM>
    </ORDERS>
  </CUSTOMER>
</DOCUMENT>



Click here for larger image

This is an example of a Word-template:

Properties

Property Type Description
DocumentPrefix String The name of each new document is a number. With this property you can specify a prefix to use in the name of document.
Path String The path where the Word documents should be stored
WordTemplate String The name of the Word-template.
XMLFile String The name of the XMLFile.
XMLString String A string with the XML-data.

Methodes

Methode Returns Parameters Description
Execute Boolean / Performs the mailmerge. Returns False when an error occurred.

Downloads

Download demo project - 10 Kb
Download source - 14Kb


Comments

  • web enable

    Posted by Legacy on 09/23/2003 12:00am

    Originally posted by: ali

    hi, cool stuff. can it be use with web based system?
    

    Reply
  • cool tool

    Posted by Legacy on 08/20/2003 12:00am

    Originally posted by: devashi

    this is an awsome tool... quite a novel and nice way of getting around the variable length mail merging difficulties.
    Thanks heaps.

    Reply
  • Run-time Error 429

    Posted by Legacy on 04/29/2003 12:00am

    Originally posted by: Sharon

    I find this tool very useful but for a serious bug in it which has not enabled me to make use of it. I am getting Run time error 429 "ActiveX Component cannot create object". Is there any other dll which I have missed out in the download??. Can you tell me what to do next.

    Reply
  • bug or "how to improve"?

    Posted by Legacy on 07/09/2002 12:00am

    Originally posted by: ribbera

    Otherwise very useful, but with bug. When you try to use <middlename /> or <middlename></middlename> or <middlename> </middlename> (because someone's middle name can be empty) execution ugly breaks.
    Try to fix this.

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • U.S. companies are desperately trying to recruit and hire skilled software engineers and developers, but there is simply not enough quality talent to go around. Tiempo Development is a nearshore software development company. Our headquarters are in AZ, but we are a pioneer and leader in outsourcing to Mexico, based on our three software development centers there. We have a proven process and we are experts at providing our customers with powerful solutions. We transform ideas into reality.

  • Live Event Date: September 23, 2015 @ 1:00 p.m. ET / 10:00 a.m. PT The cloud is not just about a runtime platform for your projects – now, you can do your development in the cloud, too. Check out this upcoming eseminar to learn how the cloud improves your development experience and team collaboration. Join Dana Singleterry, Principal Product Manager for Oracle Dev Tools, as he discusses how to simplify every aspect of the development lifecycle, including requirements gathering, version management, code …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date