GenoPro Developer Home
GenoPro Home  |  SDK Home  |  Report Generator  |  Support  |  Search  |  Help  |  Site Map

Skip Navigation Links.

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.

 

Copyright ┬ę 1998-2014. All rights reserved. GenoPro┬« and the GenoPro logo are registered trademarks.