|
HTML Report Generator SDK
This section contains the technical documentation to customize your HTML
reports. GenoPro's report generator uses a scripting language allowing you
to create any type of HTML report. With the scripting language, you can use
third party components to perform additional data processing with external
databases, include charts, and even generate scripts for other scripting
languages. Your imagination is the limit of the complexity of the report you
can create. If you need a complex component, you can write your own and
include it to the report generator.
Report Configuration File
- Defines the behavior and the files used by the report engine to produce
the final report.
Language Dictionary - To
translate a report into a foreign language.
Before delving into complex reports, let's start with the built-in features
of GenoPro's report generator. GenoPro offers a wealth of classes and
methods available to create fancy reports. The
Report class writes information into the output HTML stream
which is later written to a file on disk. The
Report class offers several methods to format text and to control
the course of the report generator. The
Util class is very handy for string manipulation such as removing
punctuation, accents, formatting hyperlinks, HTML and URL encoding, and
instantiating objects such as collections, dictionaries and repertories.
Before reading any technical documentation, you should glance at the
Coding Style used by GenoPro and refer to this page when you see a
cryptic name.
To Get Started
The best way to get started is to open the folder named "Skins", typically
located at "C:\Program Files\GenoPro\Skins\" and open one of the HTML
template for editing. My recommendation is to open the file individual.htm
to modify the report for each individual. If you have no experience in
programming, you can try altering the code inside the HTML templates. The
VBScript language is rather simple, so it will be easy for you to do minor
modifications. If you want to change something major, or create a completely
different type of report, you will need some programming skills as well as
knowledge of VBScript. GenoPro does not offer any tutorial on programming
nor on the VBScript language. There are several free online resources
available as well as thousand of books on the subject. Learning your first
programming language will be a challenge, so I recommend asking a friend for
a 2-hour introduction, or take a course with a good teacher.
Report Generator Core Classes
ReportGenerator -
Root object of the report engine.
Report - Output stream/file for
the report.
Util - Utility functions for the
report generator.
Document - Content of the
genealogy tree.
LanguageDictionary -
Method to get the translation from the language dictionary file.
Session - Repertory for storing
and retrieving objects. The Session object is essential for
sharing data between report pages.
Primitive Classes
The primitive classes are objects used everywhere by the report generator.
For instance, the
GenoCollection class is useful for manipulating a list of
items, such as pictures or individuals. With a collection, you can sort a
list of children by age, name or any other sort key you want. Similarly, the GenoDate class is useful to get
properties such as year, month, day or anniversary.
GenoDate - Properties about
a date, such as year, month, day, anniversary, decade and century.
GenoCollection -
Collection of GenoPro objects such as pictures, individuals, families.
GenoObject - Misc
properties and methods about a GenoPro object such as a picture, individual,
family.
StringDictionary -
Object to count and sort a collection of unique strings.
ObjectRepertory -
Associate a unique key to one or more objects. The repertory maintains a
collection of objects for each key.
DataSorter - Object
specialized to sort data using one or multiple sort keys.
Active Server Pages (ASP)
For those familiar with ASP, the following table displays the similarity
between ASP and GenoPro's Report Generator
Topic |
Active Server Pages (ASP) |
GenoPro Report Generator |
Method used to append content to the output stream/file |
Response.Write()
|
Report.Write()
|
Method to encode a string into HTML |
Server.HtmlEncode()
Server.UrlEncode()
|
Util.HtmlEncode()
Util.UrlEncode()
|
Create a COM object |
Server.CreateObject(object_name)
|
CreateObject(object_name)
|
Script delimiter |
<% ... %>
|
<%[ ... ]%> or @[ ... ]@
|
Session storage |
Session(key)
Application(key)
|
Session(key)
GenoObject.Session(key)
|
Input Parameters |
Request.QueryString(key)
Request.Form(key)
|
Report.Parameters(key)
|
Script Termination |
Response.End
|
Report.AbortPage
|
Outstanding Issues Related to the Report Generator
- Revise the pedigree link for new lineage relationships, such as
"possible child" and a child of "one parent".
- Sort family by date and position (x-coordinates). At the moment, the
families are sorted by marriage date. If there are no marriage dates, the
sorting should use the x-coordinate of the family and other clues depending
on which parent will be used to enumerate the families.
- More sorting option for the
SortBy method on the collection. At the moment, only first level
tags are allowed in the sorting parameters. In the meantime, use the
DataSorter to sort objects.
- More options to the DataSorter. At the moment, the DataSorter can only
sort text, so if you have to sort non-textual values such as numbers or
dates, format them into a way they can be sorted as text. For instance, a
date can be formatted as "20050430" so it can be sorted as text. You cannot
sort dates having values such as "30-Apr-2005".
Features to be Added to the Report Generator
- Binary file I/O. The ability to write additional files other than the
files specified in the
Configuration File. In the meantime, use
CreateObject("Scripting.FileSystemObject") to write additional files.
|