PsiDat 1.11 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.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. v1.06 - CHANGES SINCE 1.05 Very minor change made in restructure routine that fixes a bug when you add a new field. v1.05 - CHANGES SINCE 1.04 Added option to switch off sounds. Added DateTime field modifier . This causes the field to always reflect the datetime of the last recalculation (ie. effectively it is a 'Record Last Modified' datestamp). Fixed bug in report printing when centimetre unit was used. Fixed major bug in the reading of indices that meant they were always read in ascending order. Unfortunately the bug extended to their creation as well which means that indices meant to be ascending were descending and vice-versa. The downside of this fix is that it will be necessary to delete and remake any ascending index. The upside is that browsing tables with indexes is now much faster. Revised the 'Add Index' dialog to make it clearer where the user is in the creation process. Added option to perform a full recalculation of all records in view during a 'Show Summary Values' or while printing reports. Added Import Text option. Added ability to restructure text field type to datetime type with intelligent analysis of format. Modified the table selection process so that default tables do not affect the selection when adding/deleting indexes or deleting tables. Added option to manually resize the memo buffer. This isn't required when reading existing memo fields but can be useful when you want to paste in large amounts of text. Enabled , , , and keys to move up and down the fields. v1.04 - CHANGES SINCE 1.03 Tidied up the display when switching tables. Fixed bug in report title when loading report. Tidied up the Change Table selection dialog so that it defaults to the current table. Added field display modifiers , , , , & to the Latitude/Longitude (Double Real) fields to match the options in RealMaps Eg. for a latitude of 35.96160 degrees:- means display as 35.96160° means display as 35°57.70'N means display as 35°57.696'N means display as 35°57'41"N means display as 35°57'41.8"N v1.03 - CHANGES SINCE 1.01 Modified the way that DateTime field values are used in calculations. This allows proper calculations to one second accuracy for DateTimes within 65 years of 1/1/1970 and to 60 second accuracy for DateTimes over 65 years adrift of that date. Enhanced the restructure routine so that it can convert datetime fields to text or numeric values. Added a lottery number generator to the demo files - I never play the lottery myself but many people do and it makes a good demonstration of the new features introduced in v1.03 Added and as options for the 'Bit' field type. If the option is used, 0 or null values display as 'FALSE' and 1 displays as 'TRUE'. Similarly the option displays as 'YES' and 'NO'. Also added the feature that you can enter the Bit field value of 0 with any word beginning 'f','F','n', or 'N' and the value 1 with any word beginning 't','T','y', or 'Y'. Increased the available size of the calculation/special field again, this time up to the maximum of 255 characters. This increases flexibility, but some caution is required:- When a calculation field is processed, it creates a new string for the EVAL function to operate on containing the actual values of the fields used. If the new string length exceeds 255 characters then the calculation will not be processed. Added a RANDOMIZE statement based on the current time to the recalculate all fields function. This makes the Dice application much more useful. Added 'Latitude' and 'Longitude' options to the special use categories for floating point variables. These take their values from RealMaps external file support so they can be obtained from a GPS reading or by locating a position on a map and pressing Enter in RealMaps. Added the facility to save SQL query strings in a system table 'zPsiDatQueries' so that they can be recalled into the SQL search dialog. New queries can be saved from here as well ; if you try to save another copy of the same query then you are given the option to delete it from the pick list. Altered the logic slightly for opening and closing databases and tables. Ctrl-X closes a database and Ctrl-O can be used to change the current table within the current database. Fixed bug in the restructure routine that prevented a table being created in the same database file as the source. v1.01 - CHANGES SINCE 1.00 :- Fixed bug that caused the toolbar to be switched to the state it wasn't in last time you exited PsiDat. Fixed bug that prevented restructure when you increased the total number of fields (I had eliminated this once - don't know how it crept back in to v1.00) Added manual recalculation option to recalculate all fields. Altered the shortcut for Restructure to R so that I could use r for manual recalculation of all fields. Altered the 'New Record' routine so that it recalculates if 'auto recalc' is on. Fixed bug which caused termination when you deleted the very last available record when calculations or copy-down fields were being used. Modified the calculation/special field so it can take up to 80 characters instead of 64 and limited the equivalent field in zPsiDatFieldInfo to match. CHANGES SINCE 0.91 :- Modified datetime field so that it no longer defaults to the current date (you can restore this with the option in the field properties). Also added the option to 'blank' a datetime field. Added copy to clipboard functions Added summary operators to the available calculation items in the numeric field properties (CNT = COUNT). Added functions for reporting and printing Added 'Goto Record' function. Added 'Apply SQL as Filter' option. Added an option whether zero values should be displayed. Altered the general field edit routine so that pressing right-arrow, left-arrow, or the delete key while on a memo or datetime field gives access to the field. Added option to restructure table (note: a new table is created - it must have a different name from the source table). This allows numeric field types to be changed and fields to be added, deleted, renamed, and moved around. Completely overhauled the create table routine - you can now move fields about and it is dialog-based instead of database table based. When restructuring a table or using 'Save As' you can decide which fields to copy data over from the source or even decide to create an empty blank table. Option to edit field definitions during a dBase import removed (there's too much to go wrong there; it's safer to import and then restructure if necessary) Added a vertical bar to show the relative position in the database. You can move to a relative position in the table by tapping the bar. (Just in case you are wondering, I tried scrollbars but they were too slow for record navigation and looked as though they were a method for scrolling up and down the fields. I may add scrollbars for this later anyhow, so this seems better for record position. A horizontal scroll bar takes up too much room, especially on the Revo). Added Ctrl-X as a shortcut to close the current table instead of the escape key so that it's harder to close a table by mistake (nice to see that combination resurrected from the series 3 !) Added INI file to save settings. Improved Clock display on the Revo. Embedded required SIS files in PsiDat.SIS CHANGES SINCE 0.90 :- Help File Added Calculation Fields Added Copy Down Flags Added Create OPL Code Added User Banners Added Open Default Table Added Bug Fix for Databases that include spaces in their names. Bug Fix for Logical fields when importing from dBase CHANGES SINCE 0.89 :- Pressing the key switches to simple edit mode. Export to dBase III+ and dBase IV formats is now implemented. TIP: To convert an existing file from the built-in 'Data' application, load the file and then edit the field name aliases for each field before exporting. COMMENTS/SUGGESTIONS TO:- kevin.millican@altavista.net