PsiDat 1.14 Install PsiDat.SIS before installing any PsiDat-.SIS files. +------------------------------------------------+ | THIS VERSION IS FOR REAL EPOC DEVICES ONLY | | ie. Series 5, 5mx, 7, Netbook, Revo, RevoPlus, | | Mako, Geofox, & Osaris | | DO NOT INSTALL ON THE WINS EMULATOR | +------------------------------------------------+ *** If you wish to install PsiDat on WINS you should download PsiDatW.SIS *** v1.14 - CHANGES SINCE 1.13 Improved the 'Save As' and 'Restructure' routines so that field properties are copied over and adjusted to suit modified/moved fields. Improved the 'Delete Table' routine so that associated field properties stored in zPsiDatFieldInfo are deleted along with the table. Added an error trap to the DoPrint: procedure. Added field modifier to force lookup/help popup width to maximum. Added ,, field modifiers to force custom lookup/help popups to display 2,3,& 4 text fields instead of only one in each line. Added confirmation dialog to confirm use of aliases as fieldnames in 'Save As', 'Restructure' and 'Export... dBase' routines. This helps to avoid common errors that occur when trying to create tables with invalid fieldnames. The extra dialog box only appears when aliases are already switched on. This hasn't been added to the text export routines because use of the aliases will tend to be desirable or easy to spot in the output file anyway. Changed the default title for HTML export files so that the application name is used where specified. v1.13 - CHANGES SINCE 1.12 Fixed a few bugs and inconsistencies in the filtered lookup routines. These mainly affected filtered lookups using real number criteria when the decimal separator was set to a comma instead of a decimal point.However, the text field lookup was also affected.All of these are issues are fixed in this release. This has also highlighted an international issue with regard to calculations that include constants. For example, the calculation:-[1]*17.5/117.5 will work on machines with the decimal separator set to a decimal point but not if it is set to a comma. One workaround is to specify the same constant without a decimal separator, eg:-[1]*35/235 will work regardless of the decimal separator. An alternative, where real constants have to be used, is to make use of the built-in real global variables provided, ie. u(1) to u(100) and set these via a custom OPL routine containing a userauto: procedure:- PROC userauto: u(1)=17.5 REM UK VAT rate ENDP The calculation string could then be changed to:-[1]/( u(1) / (100+u(1)) ) Another alternative is to put all the required constants in a separate table and refer to them using xref:() (In this example this might be the best choice anyway since a VAT rate will vary between countries and would be better as a user-defined value). XRef has been modified so that it can also obtain datetime variables. The syntax for the access string with a datetime lookup against a text variable would be "$D" (ie. 'D' represents a datetime). The numeric equivalent of the date is returned for numeric fields and a full datetime string for a text field. A feature has been added to the field properties procedure to make debugging of lookup tables and calculations easier. Immediately after changing a field's properties (or at least pressing 'Enter' to confirm them), single tap calculations/lookups are debugged. This mode is aborted as soon as a full record recalculation is carried out or a new table selected. The XRef function and lookups/helps have been modified so that embedded quotes can be accepted. Added (Male/Female) modifier for bit fields. Added , , , , modifiers for field using helps - these cause the help result to be appended to the current field instead of replacing its contents. Improved pasting text into a field. Added XML export to the HTML export options. v1.12 - CHANGES SINCE 1.11 'XREF' and 'PsionModels' files provided to illustrate new xref: function and filtered lookups. Fixed bug in text import routine that made negative numbers import as text rather than numbers. Added 'Delete all records in view option' Fixed bug that prevented last record being shown in list view and added horizontal scrolling via the keyboard and left column fieldname info. Modified general-purpose file dialog so that files in the system folder can be accessed for embedding objects. Modified DayNm$:(n$) function so that it can process DateTime fields directly as well as numeric fields. The function will also work with text fields containing dates provided that the date layout matches that set in the general properties. Improved the speed and overall range of the date functions and added the missing one - IsToday:([1]) Added text functions Date:([1]), Time:([1]) to extract the relevant portion from a datetime field. Added Mid:([1]|n1|n2), Left:([1]|n), Right:([1]|n) text functions. Example; if field 1 contains numeric value 12, then Right:(00000[1]|5) returns 00012 Added function Month:([1]) and text function MonthNm:([1]) Added 'Rich Text' as a special use for LongBinary fields. This is a bit of a cheat really, although quite effective; a Jotter template ('PsiJot' - stored in the PsiDat application directory) is used to create a single-tap entry into an embedded jotter file 'edit-view' without toolbar. As soon as the field is tapped, the jotter file is launched (after creating a blank one if the field is empty). If the Jotter file has changed then closing it will bring up the normal 'File has changed. Update ... ?' dialog with an extra (delete) option. A table lookup cross-reference function xRef: has been added for calculated fields. Lookup definition for separate lookup tables has been enhanced. The lookup can be filtered according to criteria entered after the table name, eg. for a lookup table called 'mylook' being called from field 2, you can now enter, eg. :- mylook WHERE price > 0.1 AND price < 0.3 or mylook WHERE price > [1] to only list lookups with a value greater than that in field 1. Sort order can also be appended, eg. mylook WHERE price > [1] ORDER BY price Minor revision to the HTML export routine to deal with non-breaking spaces and single newlines in memo fields. Fixed bug in the dBase export that occurred when a PsiDat table contains field types other than 0-11 or 14 (ie. fields that cannot be converted to valid dBase types) v1.11 - CHANGES SINCE 1.10 Added field modifier which makes cursor start at the beginning of the text instead of the end when editing. Added field modifier which prevents text being auto-added to helps. Changed the way that user-defined OPL routines are used. USER.OPO is no longer supported. To use an OPO file it must be embedded in the 2nd record of the zPsiDatDefaults table. This means that user-defined functions and menu can be included in a single PsiDat database. If more than one PsiDat session is open they can all use separate user OPO files provided that they do not have the same filename. The OPO file is created in the PsiDat application directory and named .OPO where '' is the name of the database that the file is embedded in. Added the facility to prevent the user from changing the table to any of those beginning 'zPsiDat...' This is done by entering a password in the first field of the 2nd record in zPsiDatDefaults so it is particularly effective when combined with a user menu. To unlock a locked database, type '~' to access a password dialog. Improved the field editing so that the pen may be used to position the cursor within a field as it is being edited. Swapped the shortcut key from 'Restructure' to 'Show Record Info' so that programmers defining their own menu can prevent any structural changes to their database if desired. Added hidden keyboard shortcut to switch to RealMaps if it is running (shift-K). The same function to return has been added to RealMaps v5.09 so shift-K alternates between the two programs if they are both running. Fixed bug that prevented number formats being shown correctly in reports (though summary values are still unaffected by these). Added WeekDay:(n) function to return the day number (1-7) from a datetime field or its numeric equivalent. Added Day:(n) function to return the number of days since 1/1/1970 from a datetime field or its numeric equivalent. Added DayNm$:(n$) text function to return a three character day-of-the-week name from a number ("1"-"7") Modified the Text and HTML export so that the user can select which fields to export. The field modifier causes the field to be switched off by default. Added Ctrl-B and shift-Ctrl-B options to toggle field and label text attributes (bold & italics on/off). Improved dBase export routine so that fieldnames that are truncated to ten characters are always unique. Added field modifier. If this flag is used then no text-to-HTML conversion is used on the field when exporting HTML Added the tab key character to those that can be used to separate modifiers from calculation strings and lookup table names. For new applications it is recommended that this character is used in preference to the space or comma (the advantage of the tab character is that it can be used in text calculations/concatenations - everything from the tab onwards is ignored when performing calculations/lookups). Enabled 'Paste' (Ctrl-V) function during field editing. List View - By tapping the far left of the screen or typing shift-V a list view is shown. Use the scroll bar or up/down keys to navigate and then tap on the desired record. Pressing Esc or tapping the toolbar will abort maintaining the original record position. Pressing Enter will move to the top record in the view. Changed the default export filename for TXT, HTM, and DBF files to the current tablename plus the '.TXT', 'HTM', or 'DBF' extension. Provided predefined global variables for user's custom routines :- GLOBAL u(100),u%(100),u&(100),u$(20,255) Modified the 'Show Summary' output so that if an SQL filter is applied, the SQL string is shown under the database and table information. Added character map feature (shift-Ctrl-C) to the field edit routine. This is slightly different to the built-in EPOC function because the entire character set can be used. Invisible or awkward characters to the left of the cursor are reported as 'CHR$(...)' after a keypress. v1.10 - CHANGES SINCE 1.09 Modified PsiDat's Icon (again) so that it looks better and is in colour under WINS and on the Series 7/Netbook Added option to change the background and label colours. Altered language selector so that toolbar buttons are immediately updated when changing language. Fixed k$(116) bug in dBase import dialog and a few missing text strings. Modified 'Save As' and 'Restructure' routines so that if the view is filtered with an SQL query, only the matching records are copied over to the new table. Changed the PsiDat temporary field definition filename from PsiDat.DAT to PsiDatTempData to avoid OPL dialog extension bug. Added some additional international text strings to the resource file. Modified the record positioning system. The record position bar is now displayed for filtered views and can position anywhere in a view. In filter view the colour is changed from white to grey so that the user is still aware that the view has an SQL filter applied. When the total records in the view exceeds 65535 (an OPL limit), the absolute record number is indeterminate and the bar is shown black. However, tapping on the bar will still move to the required position in the file. The 'Goto' option will also function correctly for any number of records, but will take an increasingly long time to get there when the number of records exceeds 32767. NB: If a field is edited in a sorted table, the record position will be inaccurate until a Goto, Search, First Record, or Last Record position change. There is no way around this without losing the current record. Improved use of transactions to speed up a number of table-writing routines and reduce the size of the open database while it is being processed. Database compaction has been modified so that it is controlled by PsiDat instead of activated by the system everytime a file is closed. This will ensure that all files are still compacted on exit or when a table is switched, but should speed up the manipulation of very large tables since they will not be compacted when PsiDat has to close them temporarily. Added new field modifier . This causes the field contents to be displayed along with the record number when the 'Show Record Info' option is enabled. Up to three fields can be flagged in this way. It is important to note that adding/deleting this feature on a field is only activated when the table is opened in order to keep the speed up. Fixed minor bug in the import text dialog. Added 'Merge In' facility. Added date convenience functions for use in field calculations, eg. you could calculate the following for a datetime in field 1:- Before:(2001,4,5,[1]) ie. is the date before 5th April 2001 ? After:(2000,4,4,[1]) ie. is the date after 4th April 2000 ? ThisYear:([1]) ie. is the date in the current year ? ThisMonth:([1]) ie. is the date in the current month ? ThisWeek:([1]) ie. is the date in the current week ? All of the above return 1 for true or 0 for false WeekNo:([1]) - returns the week number based on the EPOC machine settings for the first day of the week. DateTime:(2001,4,5,15,30,0) - returns the equivalent numerical value of 5th April 2001 3:30pm Now: - returns the equivalent numerical value of the current system time Added field modifier which causes a default value to be entered when adding a new record. The value to be entered must follow the modifier and be the last item in the field modifiers. Added field modifiers and to display text in upper and lower case respectively. Modified the text calculation routine so that it can call a procedure with a single string variable. The routine must return a string variable and is called without the '$' in the procedure name. Eg. to call a routine PROC mymod$:(var$) and insert the value of field number 2, you would use :- mymod:([2]) This allows any number of user routines to be called by putting an OPL executable file called USER.OPO in the PsiDat application directory. Example databases removed from installer. WINS version now includes required OPX SIS files in installer. Modified the 'Save As' and 'Restructure' file save dialog so that if the selector is seeded with a filename containing an extension, the user is asked to confirm whether the new filename should include this or not. (A 'feature' in the EPOC file selector means that if the dialog is initially seeded with the filename 'OldFile.DAT' and the user inputs a new filename 'NewFile', the selector actually returns the input filename as 'NewFile.DAT' - when this happens the user is now asked to confirm whether they mean 'NewFile' or 'NewFile.DAT') v1.09 Build 2 Added a GIF file to the ObjectExamples file instead of the blank last entry. v1.09 - CHANGES SINCE 1.08 Fixed display error when stopwatch is used with scrollbars. Tidied up icon a bit Fixed error in displaying language variants for toolbar button text. Made menu texts more consistent with design guide. v1.08 - CHANGES SINCE 1.07 Completely redesigned Lookup and Help text dialogs. The text size now matches that in the current view and the texts will now tolerate empty string values. This means that empty strings can be used to blank Lookup fields. DateTime field entry dialog now defaults to the value in the field rather than the current time. A new button ('Now') has been added to update the value to the current Date/Time. Next/Previous repeat bug on faster EPOC devices has been fixed. Scrollbar support has been added. Fixed bug that prevented a database being loaded when 'Use MBM Banner' was ticked in the default table dialog but no picture was present. Fixed exit bug in 'Save As' dialog. Added international support. New language versions can be created by making a copy of PsiDatRSC.English, renaming it to PsiDatRSC., loading the new copy into PsiDat, and translating the text strings into . It's also possible to create new language versions of this helpfile and rename them to PsiDat-.HLP v1.07 - CHANGES SINCE 1.06 Added option to the preferences dialog to allow partial memo text to be displayed instead of - this is also useful when printing reports. Lookup/Help table names can be left blank instead of specifying another table (also a comma may be used instead of a space before field modifiers/copy-down flags). When the table name for the lookup is left blank, a new table 'zPsiDatLookup' is created to hold the information. It's also possible to add new items to this table by typing new text in the calling table (though to do this with Lookups it is necessary to enter the field in edit mode using the cursor keys from an adjacent field). This facility should only be used for small numbers of lookup/help entries - especially if there are many fields in the database that make use of it. Added Export to Idealist Natural Format Added Export to Lotus Notes Structured Text. Added Export to HTML Improved fieldname and tablename error handling. Modified the manual editing of Lat/Long modified real numbers so that you can enter eg. 51°30'35.6" as :- 51 30 35.6 or 51°30.5' as:- 51 30.5 To enter West or South coordinates you must add a '-' sign before the first figure. Added 'Use Special Formats' to the options menu. This defines whether the , , and Lat/Long modifiers are used in the display and during text exports. The feature can be temporarily switched on and off in the export dialogs. Added the last filename to the INI file so that PsiDat defaults to this in the 'Open Database' file selector. Improved DBase import and Export routines. Support for 850-1252 and 1252-850 codepage conversion is now included. Added check on whether user has tried to export a dBase IV table without any memo fields so that option to use dBase III is given before proceeding (many PC databases fail to load these otherwise correctly-specified files). Added support for LongBinary fields. These can store entire files and are handled as follows:- EPOC picture files (MBMs) have their own built-in viewer which switches to the correct screen mode. This is pen- and cursor-enabled. The Esc key exits. It is also possible to Launch these files if another application has a file recogniser for them. Word, Sheet, Data, and OPL .OPO files are recognised and launched quickly. Record files are similar but also have an option just to play the sound. This enables the sounds to be played quicker and also allows the Revo to play sound files even though it doesn't have the Record program. Other files can be launched by the system if they have recognisable UIDs or file recognisers. Any type of file can be stored and restored. Added Calculation option to the Text field properties although this is currently limited to concatenation. Added a demonstration database (ObjectExamples) to illustrate the use of LongBinary fields. COMMENTS/SUGGESTIONS TO:- kevin.millican@altavista.net