Home
Personal Info and Holiday Snaps How to contact Kevin Millican Java Chatroom Software for Nokia 9200 Series and other Symbian OS6 Programming Articles Pocket Computer & PDA Links Software for Psion Series 5 / 5mx / Revo(+) / Series 7 / netBook / Osaris / Geofox / Ericsson MC218 and other ER3-ER5 devices PDA Articles General Computing Links Psion Series 3a/c/mx Software PC Articles Christian Links PC Software Technical Articles Metallurgy & Welding Links Software for Other Platforms & Web Development Miscellaneous Articles General Links Main Menu

PsiDat Revision History

Revision Details
v1.25 Changed the button for the zPsiDatHTML button in the 'Default Table' dialog so that the delete key works properly again.

Improved the SQL search dialog so that it now uses a multiline edit box.

Added an option to create a shortname for each saved query.
NB: this option is deactivated for databases that already have a 'zPsiDatQueries' table. To enable it either :
1. Delete the 'zPsiDatQueries' table (obviously not recommended if you have many existing queries)
2. Copy the 'zPsiDatQueries' table to a temporary name and then restructure the copy table as 'zPsiDatQueries' with an additional 40 character text field called ''Shortcut"

Embedded the toolbar button icons in their own mbm file instead of pulling them in from ROM icon files.

Added duplicate record functionality. Pressing Ctrl-N will create a new record with duplicate text, numeric, & datetime fields (NB: this will not copy memo fields. To workaround, filter the desired record(s), save-as to a temporary table, and then merge-in the temporary table).

Added a <ICN> field modifier for memo fields. When outputting HTML, this will insert an image link in the top left of the memo text. The modifier should be followed by the number of the field containing the image filename, eg.
<ICN>3
would use the contents of field 3 as the image source.

Added <NCB#> 'No Column Break' field modifier - prevents this field from causing an HTML column break. The value of # affects how this field is separated from the following one :-

<NCB1> insert a line break (<BR>)
<NCB2> insert a space character
<NCB3> no separation

Added a user-defined escape character (escchar&) to the memo text. Everything between two escape characters in a memo field gets sent to a custom OPL routine userHTMLesc:(v$,id%) when exporting HTML. If the routine doesn't exist, then it is output as raw text instead (providing a simple way of embedding the odd HTML command, for example)

Modified the HTML tabular export slightly so that turning off the field labels will turn off the table headings.

Improved the editing of bit fields when tapped.

Enabled keyboard selection within the character map selector (Shift-Ctrl-C when editing non-memo fields).
v1.24 Added a feature to the HTML export dialog. If you put a '<' character as the link back address, PsiDat will insert:-

javascript:history.back()

as the address when outputting the page. On most browsers this will take you back to the previous page without having to specify the address. This allows your page to return you to wherever you came from instead of a set page.

Fixed a bug in the machine colour detection routine (or to be more exact, the position it runs within the program). I'm not quite sure when this bug was introduced because there was an interaction with the background routine which meant it would not affect all colour users (including the author !).
v1.23 Added toolbar icons for devices with screensize 640x240 or above.

Modified the Index selector so that it doesn't appear when switching to a different table (but reselecting the same table will offer the index selection)

Added 'Save Def' button to the 'Show OPL Code' dialog. This saves a new database file to c:\PsiDatTableDef containing details of the tables fields and modifiers. This can be useful for documenting table designs - eg. by creating an HTML page.

Added an option to show or hide the fieldnames/aliases. This uses the global variable showlabels%. To avoid confusion, this variable is always switched to true when switching tables or on startup (otherwise the user might not notice that they had switched to a subtable). This option also affects the appearance of single record HTML output.

The underscore character "_" can now be used within table and field names (but must not be the first character)

Modified the HTML export dialog so that the path defaults to that containing the current database.

Added a keyboard shortcut for 'Show Summary Values'

New PsiDat icon - reflecting the program's relational capabilities instead of the 'flat-file' rolodex-style.

Improved the options dialogs so that they are more consistent and easier to add additional variables.

Added option to include the current datetime at the foot of HTML exports.

Added <CUR> currency field modifier for doublefloat fields. The output style can be controlled from the General Options dialog.

Improved layout on Osaris

Added userhelp$ variable for the user-defined helpfile. It still defaults to myfile$+".hlp" but can be altered by the userauto: routine if desired.

Added custom header, footer, and meta tag options for the HTML exports.

The 'Default Table' dialog can create a special table zPsiDatHTML. This table has three default entries; 'header', 'footer', and 'meta'. If the Used field is non-zero, then the raw contents of the HTML field will be inserted in all HTML exports in the appropriate place.

It's also possible to create special entries for particular tables, eg.

Suppose that we have a table called 'Index' that needs different headers, footers, and meta entries to the other tables in the database. three entries would be added to the zPsiDatHTML table called :-
Index-header
Index-meta
Index-footer

When PsiDat exports HTML it checks for page-specific headers first, and if none exists, reverts to the default ones. It is therefore easy to change just the meta entries or change/remove headers or footers separately.

This can be used to standardise the output with navigation menus, copyright notices, CSS files etc.
v1.22 Working version used to try out some new features in v1.23 (v1.22 was not publically released)
v1.21 Added some basic field colour-coding, eg red for negative values.

Added a unique decimal number generator function urn:

Added a unique text key generator function ui:([#]). The current value of the field must be passed as #, eg. if used as a calculation for the first field, the field modifier function would read :-
ui:([1])

It should be noted that the text field should be a minimum of 14 characters long (ideally 15 characters) and that there are a maximum of 100,000,000 unique numbers available per day. Both urn: and ui:(#) use the same counter and the integer portion represents the number of days since 1/1/1900. The decimal portion is incremented from zero each day.

The numbers generated are unique (on the machine that created them) across all databases and tables, even if PsiDat is removed and reinstalled at a later date.

If a database containing these numbers is copied to another machine, the numbers may not be unique, although they are within databases (unless other tables are copied/merged in).

The purpose of these functions is to provide a unique key field for certain types of lookup table. ui:([#]) provides the unique key and urn: indicates a modification (which can be useful for synchronisation purposes).

Added an option to specify whether <P> or <BR> is used in the HTML output for a carriage return character. This means that memos can be formatted more naturally if desired.

Added a <LIN> field modifier. This causes a line separator to appear above the field name and enables jumping to a particular separator using the '.' key. When '.' is pressed, the nearest line separator is displayed and the user can select one using the arrow keys and the Enter key.

Improved the restructure routine so that LongText8 (Memo) fields can convert to Text and vice versa within the limits of the text field size.

Improved the dBASE imports so that badly structured headers are treated in a more robust manner.

Added a standalone CSV-import option that can cope with CSV files created by applications that don't enclose all fields in quotes. This routine can also import memo fields.

NB: There is some overlap in functionality between the text and CSV import routines. In general the text import is much quicker, but the CSV import can cope better with problematic files and can also handle memo fields.

Modified the 'Merge In' option so that it can use CSV files as well as PsiDat/OPL tables.

Added facility to explore a help/lookup file from within the popup table. Pressing the Tab key will allow the lookup table to be browsed. Pressing Ctrl-D (or tapping the "«" toolbar button) will switch back to the calling table. This feature can use up to 10 nested levels. The <NDR> field modifier can be used to switch off this ability.

Added a facility to handle nested levels of sub-records. The <SUB> field modifier should be followed by the name of the sub-table. Anything after the sub-table name should be preceded by a space. The fieldnames in both parent and sub-table must match. Pressing Shift-O (or tapping the "»" toolbar button) will jump into the sub-table (child records) and Ctrl-D (or tapping the "«" toolbar button) will switch back to the parent table.

The 'CustomerOrders' example demonstrates both features.

Added a <LCK> field modifier to prevent numerical, datetime, and text fields being modified. This is especially useful with sub-table key fields but can also be useful to prevent tampering with <NOW> datestamps.

Modified the <L2F>, <L3F>, and <L4F> modifiers so that they are no longer restricted to text fields.

Fixed a minor error in the Show OPL Code routine.

Altered the field properties dialog so that it uses multiline editing for the field modifiers. The label for this field is now standardised as 'Modifiers' regardless of the field type. The field properties dialog has been enhanced so that it remembers its position between calls and a linebreak now has similar functionality to a tab character.

Added a flag file option for emulating smaller screen sizes.

Added the <CIZ> field modifier for numeric fields. This instructs PsiDat to calculate the field only if it is empty or equal to zero.
v1.20 Modified the HTML option dialogs and added a simple preview option (the '?' button). This allows the colour scheme to be seen but will not show special fonts and features such as background images.

Added <FONT> tag option to HTML options so that user can specify the font size and other attributes.

Added extra HTML colour options. (Note for translators: there are significant changes to the category 20 resources in this version)

Modified the HTML defaults so that they use the websafe 216 palette.

Produced a standalone tool 'WebCol' for colour users to assist with defining HTML colours.

Added two more default colour schemes and changed the call method so that it uses a choice field plus one button instead of a button for each scheme. Also added an option to copy the OPL code to generate the current scheme to the clipboard.
Modified HTML export so that soft line breaks are handled correctly in normal text fields.

Added <DT1>, <DT2>, & <DT3> field modifiers for doublefloat fields. These display a value in seconds as a datetime, date, or time component string respectively.

Added <HNM> field modifier. This is used to seed the filename dialog for HTML single record output based on the value of this field. Also made it easier to select single or multiple (tabular) HTML output by adding a separate menu cascade item and keyboard shortcuts.

Enabled a user-routine to alter the default HTML export filename just before calling the dialog. A user-defined procedure is called as follows:-
userhtmlname$:(<filename>)
<filename> is the PsiDat-generated default. If this procedure exists in a user's custom OPL routine then it should return an alternative filename or the <filename> parameter originally passed. This allows more sophisticated naming rules to be generated and always runs after the routine used by the <HNM> field modifier.

Improved the HTML export dialog so that the linkback text and URL are retained by default until the current table is changed.
Improved the quality and compatibility of the HTML output - especially with Mozilla and other compliant browsers.

Added some auto-recovery to cope with database files that have corrupt indexes.

(1 of 5) ... 2 ... 5

<< Back