Thursday, May 1, 2008

Software Project: Mona VDP

VDP stands for Variable Data Printing. VDP is at it's simplest a form of 'mail merge' which is typically used to allow a printed piece to be personalized. The client needed to allow personalized thank you letters / receipts to be printed.

There were a handful of applications out there for this purpose but very few of them extract the data for you. This non-profit needed not only to extract information from their donor database but also to update the original records to indicate that an acknowledgement had been printed.


Mona VDP was designed to allow jobs to obtain data as well as update data from any Odbc datasource using SQL. In addition, the select datasource does not even have to be the same as the update datasource. Distributed transactions are used to ensure atomicity.


Another design goal was to allow receipts to contain variable rich text letters. Crystal Reports was chosen because of its support for rich text database fields. A letters module was designed for Mona VDP to allow custom letters with merge fields to be created.

The letters also needed to have a personal signature block which could vary for each letter. These are stored in the VDP database and eventually make their way into a dataset to be displayed in Crystal Reports.


Crystal Reports also has a great .NET API which allows ADO.NET datasets to be passed to the report runtime for previewing or printing the report. Crystal Reports Designer is needed to create the layout for the new print job.