HtmlDict version info

  htmldict.w - DataBase Dictionary Web page Generator.
  -------------------------------------------------------------------------------------------------------------------------------------
 
  HtmlDict is a v8/9/10 compatible metaschema web page creator. These programs allow you to map some or all connected databases into a 
  series of web pages. The top page shows all processed databases, the next level shows all tables within a database, and the last level 
  shows all fields within a table. All table pages are linked to the Next and Previous page, and back to the level above. Additionally, 
  a field cross index, a sequence list and an area overview is generated and linked in to the database and table pages. 
 
  This set of pages is an easy way to see all the fields, tables, and databases with all relevant details for coding, without 
  switching to the data dictionary.
 
  HtmlDict is based on the updated version from 3 oct 2002 from Jeff Pilant, which, in turn, was based on the original version from 
  Tom Bascom, dated 11 jan 1996. Many thanks go to these guys for the basic idea.
 
 
 -[ General ]--------------------------------------------------------------------------------------------------------------------------
 
  Each database processed will generate a subdirectory inside the basedir with web pages, each corresponding to one of the tables 
  within the dataBase. Additionally, some extra 00-*.* files will be created:
 
    00-area.html      : overview of the areas of the database
    00-cross.html     : cross-index of the fieldnames in the db. For each fieldname the files are listed in which they occur
    00-index.html     : frameset
    00-list.html      : list of file names (left frame)
    00-main.html      : main page with a list of the files in the db and their description (right frame)
    00-crc.txt        : list of crc's for all the files in the database to determine whether the schema should be regenerated or not.
    00-primeindex.txt : list with all single-field primary indexes. These are used to provide a link to the 'master table' of a given 
                        field when it is a field that occurs as the only field in the primary index of a table
 
  In the main directory the following files are created:
 
    00-index.html     : the main entry point for the list of db's. The tool generates a subdirectory for each database it processes 
                        and at the end of a generation process a new main page is generated, holding links to all direcotories.
    HtmlDict.html     : Page with version info. Generated from htmldict.txt (this page)
    HtmlDict.ico      : Icon file for the webpages
    styles.css        : Cascaded style sheet for the database. All elements in the stylesheets that already exist will 
                        not be touched. If elements are missing, they are added. This allows users to modify the stylesheet
                        once without the need to re-modify it after each run. 
 
 
 -[ Files ]---------------------------------------------------------------------------------------------------------------------------
 
    HtmlDict consists of the following files:
 
    - HtmlDict.w   : the main program (front end)
    - HtmlDict2.p  : the program that generates the files for a single database 
    - HtmlDict.txt : this file. it will be transformed to an html page
    - HtmlDict.ico : an icon for the generated pages
    - HtmlDict.gif : a small image to be placed on the pro*tools palette
    - src2html.p   : utility to add syntax hilighting to an html file
 
 
 
 -[ How to run ]----------------------------------------------------------------------------------------------------------------------
 
    Place all files in one directory and run the main program htmldict.w. Run it either with a full path, or make sure that
    the htmldict directory is in the propath. Otherwise, the main program cannot find the actual generator.
 
 
 
 -[ Autostart ]-----------------------------------------------------------------------------------------------------------------------
 
    Starting with build 009 it is possible to let htmldict run automatically. For this, you need to create a shortcut to 
    HtmlDict.w and provide the options you want in the -param string. Possible options are:
 
      Option              Description                                                 Values
      -----------------   ---------------------------------------------------------   ------------------------
      x                 : x-position of the window                                  : valid position
      y                 : y-position of the window                                  : valid position
      FieldOrder        : sort order for the fields                                 : '_order' | '_field-name'
      SkipIfUnchanged   : do not generate the HTML pages is the schema is unchanged : TRUE|FALSE
      ShowHtml          : show the startpage after the generating process           : TRUE|FALSE 
      SaveSettings      : save the settings in the registry                         : TRUE|FALSE 
      OutputDirectory   : directory where the HTML pages will be saved.             : valid directory
      TriggerPath       : directory where the trigger code can be found             : list of valid directories
      AutoRun           : automatic run and quit                                    : TRUE|FALSE 
 
 
    The settings can be specified inside the -param string, separated with spaces. A valid startup string would be: 
      -param "SaveSettings=false x=10 y=10 SkipIfUnchanged=true AutoRun=true"
 
 
    Command line settings overrule the settings from the registry. Unless you specify 'SaveSettings=false', the 
    settings you specify on the commandline might be saved to the registry (depending on your last run). You cannot 
    specify the databases to be processed. By default, all connected databases and the metaschema will be processed, so 
    connect your databases using -db on the command line. If you use the autorun feature, you might want to add -rr to 
    the startup parameters to make Progress think it is running in a run-time environment. 
 
 
 
 -[ Contributors ]--------------------------------------------------------------------------------------------------------------------
 
  HtmlDict is maintained by Patrick Tingen and Gerben Wieringa. If you have suggestions, feel free to contact one of us:
 
    pt : Patrick Tingen         patrick at tingen dot net
    gw : Gerben Wieringa        g.wieringa at vcd dot nl
 
 
 
 -[ History ]-------------------------------------------------------------------------------------------------------------------------
 
 Build       date  by   description
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  012        2006  pt   - Added button for ad-hoc database (dis)connects
                        - Added possibility to view version info in main window
                        - Clean message when started from appBuilder
                        - CrossIndex page showed fields from all processed db's instead of 1 db
                        - Further separation of UI and logic
                   gw   - Finding table relations rewritten  
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  011  28/04/2006  pt   - Finding the common start string failed when db contained 1 file (thanks to Peter Kiss)
                        - Link on main page sometimes failed on lower/upper case
                        - Convert triggerpath to lowercase
                        - Removed 'smart' css fiddling
                   gw   - Show index objects on _area page (thanks to Mike Derrick)
                        - Show code of triggers with syntax hilighting (thanks to Jurjen Dijkstra)
                        - Added table relations (thanks to Wim van der Ham)
                        - Added support for alternate stylesheets
                   pt   - Added stylesheet combobox
                        - Show _area elements (files/indexes) in 4 cols
                        - Replaced custom classes in stylesheets with more standard names
                        - Possibility to sort the HTML files either on fieldname or number
                        - Added database combobox
                        - Cleaned up and renamed css files. 
 
  to do:
  - wanneer een veld verwijst naar een tabel in een andere db, gaat de link niet goed. Verwijzing op crossindex
    pagina houdt hier geen rekening mee en verwijst naar mastertable.html ipv ../masterdb/mastertable.html
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  010  07/12/2005  gw   - Added triggers and reference to code
                   gw   - Cosmetic: Table names in X-idx are now sorted by name
                   pt   - Cosmetic: Table names on area page are now sorted by name
                   pt   - Changes in stylesheet by user will be preserved on generating.  
                   gw   - Find common startstring for all table names.
                   gw   - mandatory property added
                   pt   - Small changes in the .css
                   pt   - If no database is connected, the 'Generate' button is disabled.
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  009  11/11/2005  pt   - Version info file could not be found via propath.
                   pt   - Added whitespace between indexes for readability (Gerben Wieringa)
                   pt   - Added title to index page of each database
                   pt   - Frontend: Restore position on startup
                   pt   - Frontend: Replaced 'Cancel' button with 'Done' button.
                   pt   - Turned actual generate program into structured procedure.
                   pt   - Minor html improvements.
                   pt   - More frequent updates of the statusbar during generation. 
                   pt   - Added HtmlDict.ico to generated pages
                   pt   - Added image HtmlDict.gif to be used in PRO*Tools palette
                   pt   - When started from shortcut, quit the session on completion. 
                   pt   - Changed some names of registry settings
                   pt   - Added autorun possibility through -param string
                   pt   - Fixed bug in false reporting of word indexes (Frans Verhulst)
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  008  07/09/2005  pt   - No use of dynamic query to make it runnable under v8
                   pt   - Clean up generated HTML code for main page.
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  007  09/07/2005  pt   - Split the cross index page to one page per letter. on large databases, a single page can easily
                          grow to over 2 Mb, which takes a long time to load. 
                        - save user settings in the registry.
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  006  20/06/2005  pt   - Removed redundant HTML attributes from generated pages
                        - Use relative fontsizes in CSS instead of fixed ones
                        - More compact style for navigation panel
                        - Include 'current' page on navigation panel as plain text so all elements of the navigation
                          panel stay on the same place if you click a link in the navigation panel.
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  005  16/06/2005  pt   - Moved functions to main program for re-use
                        - Fixed bug with '<' signs in field format
                        - new style for navigation bar
                        - navigation bar is in its own table so links stay on the same position on the screen. 
                        - Create link to version info
                        - Fixed bug with area list. Areas were not reported on versions < 10. Should be < 9. 
                        - Removed link to itself on sequence page. 
                        - Show sequences in odd/even rowstyle, like tables.
                        - Added link to version info on all pages
                        - New layout for main database page, including link to version info.
                        - Re-introduced extents. Not in their own column, but within square brackets after 
                          the datatype, so a char with extent 10 will look like "char[10]".
                        - Show number of decimals on decimal datatypes. A decimal with 5 positions will 
                          look like "decimal-5". If it also has an extent of 3 it will look like "decimal-5 [3]"
                        - Possibility to indicate sort order for fields.
                        - Included version number on starting window.
                        - Extra space on starting window for more than 5 databases. 
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  004  25/05/2005  pt   - Changed runtime arguments to parameters
                        - Create an area page
                        - Show table details (like area, dumpname etc)
                        - Cleaned up code
                        - Use multiple html frames
                        - Show list of files in the database
                        - Possibility to generate report of the metaschema
                        - Use 2 different styles for odd and even lines for readability
                        - Include version info in generated pages.
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  003  12/04/2005  pt   - Show sequences
                        - Show areas
                        - Renamed all variables to apply to the same standard
                        - Show progress status
                        - Added shortcuts to fields on cross index page
                        - Added link on each field to the field on the cross index page.
                        - Removed extents from report
                        - Create a link back to a table when a field appears to be the only
                          field in the prime-index of that table. Fields like 'cust-id-bill-to' also 
                          point back to 'customer' when 'cust-id' is the sole field in customer's prime index.
                        - Show tables in two different styles, for odd/even rows
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  002  08/03/2003  pt   - Changed runtime arguments to parameters
                        - moved frequently used lines to internal functions
                        - Cleaned up code
                        - Make use of a CSS file
                        - Added shortcuts to files on main table page
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  001  04/03/2003  pt   - rewrite of front-end       
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------
 
  000  01/11/1996  tom  created (thanks to Gerry Duprey for the idea) 
       04/03/1996  mjb  changed lots of stuff to automate this.
       04/17/1996  mjb  put an html link back to the dict.html page at the bottom of every table listing.
       08/30/1996  bmy  protect against hashes in URL names via encoding
       09/24/1996  dmk  changed links to use _dump-name.html instead of _file-name.html to match with actual names of link files
       02/06/1998  tom  adapted to genericize
       02/06/2001  jtp  fixed *.htm -> *.html, added Next/Prev buttons
       03/12/2001  jtp  converted to two *.w files from htmldict.p html-db.w & html-one.w HTML dictionary report
       03/14/2001  jtp  chaned absolute file references in the pages to relative refrences.
       03/19/2001  jtp  fixed problem with "?" appearing over table
       12/03/2001  jtp  Added 'view-as' info from database
       12/06/2001  jtp  Added 'Field Cross Reference' code
 
 ----- ----------  ---  ------------------------------------------------------------------------------------------------------------