Hi Everyone,

 

It has been a long time since I have just posted something general here.
Today I answered a query from one of our fellow DP mailing list users, and
in doing so, I got to play around with VDos a little more. It is certainly a
lot easier using VDos for running DP than how I have been doing it with
VMWare, and once I started playing I got hooked and kept doing so for a
while, which led me to wanting to share information about another product I
have been using

 

Much of my non-web DP work over the years, has been creating systems where
the final documents are vitally important. My first DP system was in 1991
for a university's careers department, where they did psychometric testing
of students, and using WordPerfect 5.1 for DOS to create the complex output
reports (DP was dropped from that system in 1999 when it was replaced with
Microsoft Access and has been running ever since with a multitude of
expansions over the years, and using WordPerfect for Windows for the
document creation). My next big DP system was one that many who went to the
DP Developer's conference in 2004 would have seen, which was used to create
legal documents for the creation of company registration and incorporation
documents, and trust deeds. 

 

Both of these systems were very complex in their output requirements, and
both used many many tables (panels) of relational data. Generally mail merge
with WordPerfect Word etc require fixed length flat data records, using
named (Word or WordPerfect) or ordinal position numbered fields
(WordPerfect) in the merge template ( ie Primary file). In the case of
WordPerfect's ordinal field numbering e.g., ~Field{71} you could use up to
9999 fields in the data source (Secondary File).  From DataPerfect I create
reports which had variable number of fields. In DP pseudocode they looked
like this

=== Report Body===

Field{1} {EndField}

Field{2} {EndField}

Field{3} {EndField}

Field{4} {EndField}

Field{5}  {EndField}

Etc

Field{x} {EndField}  = First subpanel field number

Field{x+1} {EndField} = number of records in subreport1

Field{x+2} {EndField} = number of Fields in subreport1

Field{x+3} {EndField} = number of records in subreport2

Field{x=4} {EndField} = number of fields in subreport2

Etc etc  {EndField}

===Subreport 1 on a different panel ===

Field{y}  {EndField}  which might evaluate to an array of field numbers
depending on how many records,

Field{y+1} {EndField} etc

===End Subreport1 ====

===Sub Report 2 ===

Fields .  {EndFields}

Etc etc

====    Sub SubReport 3 ===

Fields .  {EndFields}

Etc etc 

==== End SubReport 3 ===

==== End SubReport 2 ===

{

=== End Report Body ===

{EndRecord}

=== Footers etc ===

 

In WordPerfect using the Merge Language I was able to create For Loops to
drill down into the subpanels

 

In WP pseudocode for the first subpanel data 

For LoopVar = 0 to (Field{x+1} -1)

FirstNameFieldNumber = Field{x} + (LoopVar x Field{x+2})

LastNameFieldNumber = Field{x} + (LoopVar x Field{x+2}) + 1

TitleFieldNumber = Field{x} + (LoopVar x Field{x+2}) + 2

etc

Dear  {MergeOutput Field{TitleFieldNumber}} {MergeOutput Field{
FirstNameFieldNumber }} {MergeOutput Field{ LastNameFieldNumber }}

 

Next

 

It was complicated, but worked well, and this system earned my clients lots
of money, being extremely fast and reliable, with all the quality that a
WordPerfect document could create

 

You might notice that there is a vague similarity to the nested structure of
XML, which I took to like a duck to water when writing the dynamic DP web
applications. Other than for personal stuff I have not written commercial DP
desktop apps since these first few major applications, I have only created
web apps.

 

 

So for XML, in pseudocode the DP output from the previous example looks like
this

<root>

<panelmain>

                <namedfield1>data etc </ namedfield1>

                <namedfield1>data etc </ namedfield1>

                Etc

                <namedsubpanel1>

                                <namedfieldx>data etc </namedfieldx>

                                Etc

                </namedsubpanel1>

                <namedsubpanel2>

                                <namedfieldy>data etc </namedfieldy>

                                Etc

                <namedsubpanel3>

                                <namedfieldz>data etc </namedfieldz>

                                Etc

                </namedsubpanel3>

                </namedsubpanel2>

</panelmain>

<root>



This is remarkably similar to a DP report, which makes DP a wonderful tool
for creating XML, especially since you can use XML attributes, unlike many
XML outputs from other database products.  The problem with WordPerfect,
Open Office, Word etc, is that they cannot easily use XML as complex as
this, let alone my systems where documents were created from more than 50
tables (panels)

 

My client with the company registration and incorporation documents was sold
to another company in late 2004 and by 2007 they had dropped the DP system,
replacing it was a far more expensive and less reliable modern day system.
(I am told from a reliable source the originally planned $400k project to
replace DP and WordPerfect eventually ran to close to $1.5 million

 

My other major client was continued working with this, and late model
version of WordPerfect has fallen down in the merging department so they
have been hanging-in using WordPerfect 12 (now a 10 year old product), so I
have been warning them for some time that we will need to move away from
this, as good old Microsoft will eventually do something which will stop it
dead in its tracks (it still has been working in Win 7 64-bit which has
amazed me).

 

I tried writing an XSLT system using WordXML documents, (I created a Word
Add-in add-in which populated the fields, and used all sorts of Microsoft
tools for making it work) It use Word's Custom XML Markup feature from
Office 2003/2007, however in 2009 Microsoft lost a court battle with I4W
over Microsoft's infringement of their patent) and were required to push out
a compulsory Office update, which stripped the XML content from documents,
so all my templates broke when they were edited. I was particularly annoyed
as the system worked well, although it took a lot of effort to create the
finally useable templates. As much if not more than the previous WordPerfect
merge loops and variables etc, so it was back to the drawing board.

 

A few years one of our other DP mailing list members asked about merging
XML, and after looking at a product called Windward Reports, I concluded
that it probably could handle to complexity of XML documents that I would
like to throw at it, and so I suggested it to my WP client, but they were
too nervous to change.

 

About the middle of last year, my client got an opportunity of hooking up
with a group of Chinese educational psychologist to provide similar
psychometric tests, with my client producing the output reports. WordPerfect
doesn't support Unicode character sets, so this spelt the end of
WordPerfect, so my client invested in Windward Reports. I did some major
upgrades to my Access application, adding loads of new functionality,
including Chinese translation of report data coming from the database, going
into the XML. The results for both English and Chinese merging have been
spectacular, and my client is so over the moon about it. Their documents
have vastly improved and it is easy for them to create her own templates,
without the copying and pasting complexities of getting my WordPerfect
merges to work in new templates. 

 

The Windward product http://www.windward.net/ has two major components, the
designer called AutoTag, and either a Java or .NET Engine. The AutoTag
designer installs a couple of tabs on the Word ribbon, it can be used as a
standalone product (at a cost of about USD1100), and is very easy to use,
you create a DataSources element (or multiple DataSources) by loading an
example XML file (or better still, if you have one, an XSD Schema), and then
it creates a Data Tree. You drag and drop elements into a Word document, it
has Wizards for creating tables, and other common structures, or you can use
XPath statements to produce more complex queries etc. It does not support
the full XPath vocabulary but enough of it to do virtually any merging task.
You can create graphs as well, some of the documents I have created which
have aggregation of test results have more than 1000 graphs, and 300 to 400
pages of content, but the template is only two pages long.   

 

The templates can be created in Word, Excel and PowerPoint. 

 

The data can come from XML, JSON, Excel, oData, Excel or SQL datasources.
E.g., XML files, REST, Sharepoint, Access IBM DB2, SQl Server, MySQL,
Postgress, Oracle. These resources can be local or remote sources, and you
can add multiple datasources to a template, without or without
authentication. So for example you could have a DP output file, and then
scrape a webpage using XPath to say locate the latest currency exchange
rates, to do produce a pricelist or invoice in a foreign curreny, etc etc.
actually I just found a Wikipedia article
http://en.wikipedia.org/wiki/Windward_Reports 

 

The output can be in the form of a Word, Excel, Powerpoint, PDF, or HTML
document or directly to a printer.

 

If the standalone version does not cover all your needs then there is a Java
or .Net Engine which can produce high volume, multiuser reports, even can be
used in conjunction with a web server, not requiring Word to be used at all
in performing the merge, except for template creation.  Operation of the
.Net Engine and management of templates etc is from my Access application.

 

So if like me you have been struggling for a modern day replacement for
WordPerfect as an output vehicle for DataPerfect (or most other data
sources) then I can heartily recommend it.

 

Bye

Brian

 

 

 

 

 

                                

_______________________________________________
Dataperf mailing list
[email protected]
http://lists.dataperfect.nl/cgi-bin/mailman/listinfo/dataperf

Reply via email to