DataEase for DOS 5.x Documentation
DataEase for DOS 5.x Documentation
Where can I get documentation about DE 5.53 over 4.53? Since you have provided LegEasy, I would like to upgrade from version 4.53 to 5.53 and take advantage of the new features available. thanks
Re:DataEase for DOS 5.x Documentation
We are sorry but we dont have any electronic documentation on DataEase 5.x.
The idea behind LegEasy4DOS is not really to get people to use DFD from scratch but rather to allow existing users to keep on using it for longer.
We have put at a feeler in the extended network if anyone has DFD 5.x documentation.
We include here what we have which we suspect is the total of the difference between DFD 4.53 and 5.53
DFD 5.16 README
This file documents changes in DataEase since DFD 5.0. 5.16 changes are given first, followed by new features and manual notes. Then there is list of
bug fixes up to 5.15, and finally some general advice. SPR (Software Problem Report) numbers are given where relevant for reference. Some bugs were given a different number in the UK. Not all SPR's
turn out to be bugs! Problems labelled 4.53 and SPR's prior to 3018 were first reported in DFD 4.53 or earlier.
************IMPORTANT!!!
Only DFD 5.15 and later are certified y2k compliant by us!
Do NOT use the system locations feature!
************************
For your own protection you should endevour where possible (after your own acceptance testing!) to be on the latest shipping version of product.
This is now a very long document. But, please take the trouble to read it - you will save time in the long run!
Changes in DFD 5.16 and yet more date info.
-------------------------------------------
The date range in DataEase products MUST be set so the current date is in the valid range! Even if you use only extended (four digit year) dates, the date range is used for determining the century for generating current
'extended date'.
Extended dates have been revised to save 'blank' properly. Please check!
The memory manager in this version is the latest available, and certifed y2k compliant. The memory strategy has been slightly altered to free as much of 640k as possible for CDF's. Performance improvements have been
reported in testing as a result of this change.
STACK SIZE
If after upgrading from 4.53 or earlier you find certain large reports won't run or large forms won't load, you have quite likely run out of DataEase Internal Stack. Increase this using the command line paraneter '=' (documented in the manual). A batch file (DE16L.BAT) is included as a sample. The default stack has in any case been increased to 50000 from 30000.
RELATIONSHIPS
A new error message has been introduced which will hopefully prevent DataEase GPF'ing when too many relationships are attempted to be opened. This message is 'Memory error opening relationship nnn". If a user receives this message when F10'ing, he should escape back to a menu.
The normal message is "System Error:Relationship limt nnn exceeded" In both cases the nnn will display the relevant number of open rels.
The new message should only be encountered when the relationships limit in Ztermdef.dbz has been increased to a high value - over 240. Please report any instances of it appearing 'earlier'. If you still experience any cases of GPf's or other unrecoverable errors which you believe are due to running out of relationships and were NOT preceded by either of the above messages, please double check your FILES= allocation. If that is satisfactory, then please report the problem - we shouldn't accept this as just being normal DataEase behaviour!
NEW FEATURE
Partially typed extended dates now default. Any part-field left blank or zero will default to the 'current' value, and part typed years will default the century. So, for example, typing 01/01/11 this year will give 01/01/1911 and next year 01/01/2011. A special case has been made for any number of zeroes in the year field. This will always give 2000, so 01/01/00 will give 01/01/2000 and not 01/01/1999 as it should (for a current date in 1999 anyway). Similarly, to help us for the next 10 years, a single digit date is assumed to be preceded by a zero, so typing 01/01/1 next year gives 01/01/2001 and will for the whole of the next century. Since the purpose is to help the typist, it is assumed that the normal requirement is to type a two digit date, so in fact typing 01, 11 etc. for year is natural.
Note that searching with wildcards still needs to have a full specification - see below under 5.13.
NEW FEATURE
DataEase now provides control over interoperability. By default, forms can be used by DFW (subject to the already existing limits) but ownership cannot be transferred. There is a new option on Page 1 of Form Properties called 'Owned'. If this is set to yes then the form cannot be acquired by DFW. Forms so acquired cannot (yet) be reliably read by DFD, so if continued inter-operability is desired, the form should be owned and maintained by DFD.
Views may be built over such forms in DFW ('form not owning table') if a GUI appearance is desired. Note that DFD 'views' do not transfer to DFW, and that new tables/forms/views created in DFD 5 are set to 'OWNED' by default.
DQL scripts can of course be transferred by existing methods, but as this is a non-destructive process the above mechanism was not thought necessary.
NEW FEATURE
If you are displaying a message in a window, you can now turn off the 'press any key to continue' message, or optionally display your own in its stead. To do this, placa a (alt-127 on the numeric keypad) at the start of the message string. This will suppress the message. If you want to do a message of your own, then do "Your replacement key messageYour Message" You may still insert the window size parameters between the last delimiter and the start of the message - dont leave a gap between the delimiter and the first number. The maximum size of the replacement 'key' message is 40 characters.
FIXES
The 'Les Cardwell' bug, I'm afraid, still does not have a fix.
Replacing a view now does work, but:
NOTE: If you replace a form that has views based on it, for safety's sake you should replace all its views also. At the very least any such views will demand a resync, and at worst they may be 'orphaned'.
Matches between standard and extended dates work even when the extended date is indexed. SPR#4164
Metric extended dates now format correctly. SPR#4161
Mean statistic for dates no longer produce garbage (they shouldn't work - see manual)! I might be persuaded to introduce a mean calculation of some type for dates if we can all agree on what it 'means'. SPR#4166
The Date() function now handles negative months correctly. SPR#4162
Spellweekday() no longer returns 'x' if date blank. SPR#4163
Spurious zeros in display of blank/invalid extended date fields eliminated.
Failure to delete TDF/CFM's when replacing a form is cured. SPR#4165
Misdisplay in tableview when conditional colors are used has been fixed (again!).
Failure of data entry forms to recognise conditional colors cured.
Failure of data entry forms to redisplay extended dates after defaulting
century cured.
Spurious extended dates in blank fields eliminated. SPR#4189
Dates in imports can no longer become 'invalid' . The rules are that dates or times with delimiters (typically slashes or colons) may have zeroes optionally omitted in any subfield, but that dates or times with no delimiters must be fully 'zeroed'. e.g. 9/9/99 or 9/9/09 is acceptable but 9999 is not. Three digit years are never acceptable. Unacceptable input to dates will now result in a blank date, not an invalid date. Dates that are'properly formed' according to the above rules but invalid - e.g. 30/30/99 - will still be handled as at present. SPR#4201
Numeric strings are no longer truncated if the 'on file' length is shorter than the display length (in formatted strings, for example). This was also the root cause of the date to numeric string problem. SPR#4175
DFD 5.14. New features and clarifications.
-------------------------------------------
FORMAT SYNCHRONISATION.
This new facility was introduced in DFD5.13 and refined in 5.14. It enables report and procedure formats to (semi)automatically pick up changes in field formatting that have been made on forms.
The area it adresses is where field details are changed but no change is made to field type or field name. Hitherto such changes could result in garbage being displayed by a report, but the only way to reflect the changes was to delete the field from the report format, save the report, reload the report and replace the field. Tedious if it affects dozens of reports, almost impossible if it affects dozens of fields.
This facility was made semi automatic (you have to actually load and save the report/procedure with a trivial change such as typing a space somewhere) so you can choose when to change a specific report rather than have change arbitrarily thrust upon you! Also, wherever possible, the actual format you have designed is left undisturbed. For example, it was decided not to change formats for strings (text etc.) to match the form as this could change a format out of recognition!
WHAT GETS CHANGED:
Changing field type or name will result in the field being deleted from the format. This is as it has always been. Other changes have the following results:
Text and Unformatted Numeric String:
Length:
< format length - will be space filled (as opposed to garbage filled!).
> format length - will be truncated to fit format.
In this case if you wish the new length to be reflected you can simply edit it on the format - dont't remove and replace.
Formatted Numeric String, Date, Time, Yes/No, Choice:
Any change:
Field on format will be changed to match.
Number, Currency:
Number Type:
Will result in translation between number type specified on format and number type specified inform (again, instead of garbage). Minor changesin field length may result.
Max Digits:
As for string length.
Pos'n of Decimal Point:
Not changed - can be edited on format.
PgUp/PgDn
For clarity, the design behaviour of form pages is
If the page contains text only, it displays.
If the page contains only PDE and virtual fields, it does not display, regardless of whether it contains text. Conditional PDE is evaluated before display. (Complicated interdependencies on conditionals may break/fool this - make sure what you want to do actually can be handled by the program - we cannot cover EVERY possible combination!)
All other pages display.
Apart from the all text pages and the evaluating of conditionals, this is mostly as for 4.53. A couple of 4.53 bugs that sometimes caused partial pages at the end of forms to not display, and to push fields into undisplayable hyperspace when the end key was hit in a subform were cured before release of 5.0.
5.13 - Y2000, Extended dates. NEW FEATURES, tips and definitions
----------------------------------------------------------------
Many Y2k issues were first addressed in this release, but note that the first version of DataEase to be fully Y2k compatible is 5.15. See below in this section for new features, tips etc. on many date issues.
DataEase two digit dates ('standard' dates) dohandle the year 2000. They must be configured correctly in your system configuration form. This permits any 100 year span from 1901-2000 up to 1999-2098. I recommend using something between 1925-2024 and 1975-2074. Be aware that if you change this range you may 'move' dates from one century to another!
DataEase correctly handles Feb 29th in 2000. It IS a leap year!
NEW IN THIS VERSION - Wild cards searching and selection is now implemented for extended dates (and has been made Y2000 compatible for standard dates).
You may use the ? character as a wild card anywhere in a search on a date field. The date must be fully specified, e.g. you must enter 01/01/???? not 01/01/?. If you enter ?? in the year part of an extended date field the century part will be lost - i.e. the search will work as if you had copied the dates to a standard date field first.
Asterisks can no longer be entered as criteria in wild card searches on date fields (they didn't do anything anyway). If you use wild cards in a DQL or QBE the only valid tests are = or not =. Testing for > or < or indeed anything else is unspecified and you should not rely on the results.
SPR#3173, UK SPR#1330
NEW IN THIS VERSION - 'current extended date'. It is the last field in the 'current' pseudo form so you need to get the F1 list up to see it in interactive DQL. If you use it in a derivation it needs "extended date" in quotes just like other current field names with a space in them. You can also create a field on a report format called current extended date - there it doesn't have quotes - but it will correctly be created as an extended date field. (There is no option when creating a date field on a report format to select type of date field - DataEase will try to determine what kind is needed by what sort of dates it is created over).
The ability to use ??/??/?? as a synonym for current date in a standard date field definition remains - however, it ONLY applies to standard date and ONLY in a derivation - in DQL or QBE it is treated as a wild card - as it has been for many years. This feature has been declared obsolete since
2.53!
It has been made much simpler to convert an application to use extended date format. All that is now required is to change the date fields on forms - data will be translated automatically - and then resave all the reports. (You'll need to make a trivial change such as typing a space in the DQL or the format). All changes to date formats will then be picked up automatically by the system. BUT! - it will NOT automatically notice that a number field that is calculated as a year() of an extended date now needs to be four digits rather than two, even though the function does correctly return four digits.
Date Range. Extended dates start from 01/01/1776. This is not unconnected with the employment of programmers from a certain large ex-colony on the project. But also bear in mind that due to changes in calendar at differenttimes in different countries dates much earlier than this are unreliable. If there is demand I could make dates back to approx. 963 B.C. valid, but you'd have to work out the difference between dates figured back retrospectively from today and 'contempory' dates yourself.
Country independance. Extended dates are stored in a common internal representation for all date formats. Standard dates have always been stored in the format they were typed in as. This makes it much easier to transfer data from say UK systems to US systems.
Imports. Four digit year dates in ASCII imports may be separated by slashes (or any other non-digit), or just be YYMMDDDD (or whatever the local representation is). Four digit dates may also be imported to standard date fields (with replacement of century by the DataEase calculated one, of course) EXCEPT for metric format extended dates, when extended date fields are obligatory - they couldn't be imported into a date field at all in previous versions.
UNIQUENESS AND IMPORTS. Since the introduction of DFD5.0 imported records did not update if they 'matched' on a compound index. They now do. The matching rules for imports which use either of the 'update' options are implemented as follows:
All compound indexes that are unique are cumulative.
All form fields that are unique are cumulative.
Compound index uniqueness and form field uniqueness are not cumulative - this provides for the rare case when two (cumulative if necessary) values are required to be independantly unique: this normally occurs only when a dataless key (e.g. a sequenced field) is used.
On an import, the incoming values are evaluated against the values already in the form in two separate operations, one for 'form unique' and one for 'index unique'. If there is no match the record is added (or discarded if 'add or update' was not selected) If there is a matching value on either type of unique but not the other the record containing that value is updated. If there is a matching value on both types of unique and the matching values are contained in the same record then that record is updated. If there is a matching value on both types of unique and the matching values are contained in different records then the incoming record is discarded. This rule is because we do not know which record to update, and in any case updating either record or adding it as a new record will all adding it will violate uniqueness. Hope that's clear! As at present discarded records will update the error log. The 'on screen' counts and add/update messages also now work correctly.
NEW FEATURE - OS/2 version now runs in a window. It is recommended that DataEase's mouse support is turned off in this configuration. To do this edit ZTERMDEF.DBZ with a hex editor - set offset 587 to 1. (Remember - if you use debug the offset is increased by a 100) SPR #2787
NEW FEATURE - System Masks now acessible from main menus - option 8 on the admin menu 'Define Custom Table Views'. This enables the maunual editing of saved custom table views as well as creation of new ones. This is the method by which 'prevent-data-entry' fields can be axed from table view. See also System Masks below - Custom Table View is now fully implemented.
DataEase now installs a utility called HANDLES.EXE. You may use this to check that you have enough file handles available to run DataEase. The number of file handles required is application dependant but should be at least 60. Classic signs of insufficient file handles are the failure of derivations to derive when they should or files failing to be found when known to be present. The utility tells you not the total number of handles available, but the number of handles on the drive from which it is executed in the session in which it is executed - this is important as frequently separate pools of handles are established for network and local drives and for different sessions under a multi-tasking system. To be sure it is best to copy HANDLES into the data directory of your application and run it from there in the environment in which you normally execute DataEase. If you have insufficient handles consult your operating system or network documentation to find out how to increase the value.
BUFSIZE is no longer included with DataEase. This utility has no function with DFD5 and indeed is dangerous to use. You must turn page buffering off before you upgrade any pre DFD5 application to DFD5.
Tip - you probably all know this but I didn't, so I'm passing it on in case you find it useful. You may comment out field derivations by inserting the name of the field in brackets () at the start of the derivation - useful if you've got a derivation you can't make work and want to go home!
NEW FEATURES ADDED in 5.12
--------------------------
INSTALL A VIEW. Install/Replace a View implented, both from menu options and from a .din file. SPR#3616
The syntax for install.din files is
INSTALL/REPLACE FORM formname1 FROM: cfmname VIEW_OF: formname2
DATAREF:
Notice that in the remote maintenance option above you supply the
formname of the view, not the DOS filename. This protects you from the
vagaries of DataEase filenames.
Installing from a menu is exactly the same as for a form, except there
is a new option 3 when asked what type of form you wish to install -
this says 'create a view of an existing form?' You need to give the name
of the view you wish to create as the formname, the DOS filename of the form
the view is over as the TDF name, and the view's CFMname.
A CFM may be installed over any form. If the CFM fields match the TDF
it will be installed as a view. If they partially match it will be installed as
a view needing resyncronisation, if they have no obvious match the view will
not be installed.
IMPORTS - There is now an option available for DO NOT MATCH imports that
gives a choice between building indicies on the fly (good when importing only
a few records) and building them at the end (good when importing lots
of records). This is toggled using the 'use batch facility' flag - yes
means build indices at the end. Note that all other non-SQL import types
must build their indices on the fly so that matching works even against
records added or modified earlier in the same run.
NEW FEATURES ADDED by 5.11
--------------------------
VIRTUAL MEMORY - In DE4.53, when using DE16M.EXE and its Virtual Memory
feature (VMM) you had to create a VMC file to control the location, size and
name of your virtual memory swap file. In addition, other memory parameters
could be set in the SET DOS16M environment string.
DataEase 5 uses a later version of the DOS extended-mode memory
manager, which eliminates the need for these VMC files (which should be
deleted) and greatly reduces the need for the DOS16M parameter.
Virtual memory parameters are now set, like the DOS16M extender
parameters, via an environment setting (i.e. the DOS SET command). The
environment handle is called 'VMM_DE16M'; the syntax for setting it is:
Set VMM_DE16M= <parameter> <value>
where parameter and value may be:
SWAPSZ n sets swapfile size to n kbytes
SWAPNM <filename> sets the name (and path) of swapfile
KEEP keeps the swapfile after exiting
NOKEEP deletes the swapfile after exiting
(default)
XSWAP n swapfile limit - leave n kb of disk
space unallocated
XLOWM n leave n kb of DOS low memory unallocated
XEXTM n leave n kb extended memory unallocated
The parameters you wish to set must be set in a single command.
e.g., to create a 4M swap file named SWAP.DAT in your DE50 directory,
and keep it after you exit, type the following:
Set VMM_DE16M= SWAPSZ 4096 SWAPNM c:\de50\swap.dat KEEP
When creating a new application, do not set your VMM_DE16M
parameter to KEEP; doing so will result in an incorrect User Name and
Application Name. We recommend you set it to NOKEEP when creating a new
database.
The SET DOS16M string is now only observed on non-AT compatible
machines - for details of supported non-AT compatibles please see the
main manual. All AT compatible and PS/2 machines may have this string
removed.
NEW INSTALL.DIN COMMANDS. The syntax for creating .DIN files has changed
due to the new file formats and naming conventions (.DBAs are now split
into .TDF and .CFM formats).
The new syntax is as follows:
install form <formname> from:<cfmname> table:<tdfname> data:<data>
replace form <formname> from:<cfmname> table:<tdfname> data:<data>
NEW PARAMETERS FOR Call Program COMMANDS. The following parameters have been
added to the Call Program command:
%n is the full database name
%p is the DataEase program directory
%c is the control (DEPATH) directory
%s is the default data directory
%s[n] is the system location directory for the
key value n
%s'alias' is the system location directory for the
alias 'alias'
CUSTOM QUERY EDITOR/Save Incomplete Queries - This feature has been enhanced
to create security backups and now gives informative messages about its actions.
SPR#s 3080, 3687, UK SPR#1139
THE ENHANCED DATAEASE exec SQL STATEMENT.
Syntax: exec SQL ENGINENAME { "SERVERNAME", "DATABASENAME", Destination }
`SQL STATEMENT`:VARIABLE|FIELDNAME ;
Explanation: Prepares and submits an SQL statement. The SQL STATEMENT will be
executed in Dynamic SQL mode. Some statements on some servers have
alternate syntax for use in Dynamic SQL mode; also some statements
are not legal in Dynamic mode. The SQL documentation for the server
should be consulted for further details. The special Dynamic SQL
commands for statement preparation and execution are automatically
generated by DataEase and should not be entered by the user - they
will produce SQL server errors if submitted. Some SQL statements are
effectively obsolete in DQL - e.g. exec SQL "BEGIN TRANSACTION" is
functionally identical to the straight DQL Begin Transaction.
There is no syntax checking in the SQL statement, which must
be coded by the user to be syntactically correct for the target
server.
Parameter substitution is carried out for embedded DataEase
variables or field names (indicated by a preceding colon), which are
replaces with their current values before the statement is passed to
the server.
ENGINENAME is the DataEase name for the engine. SERVERNAME and
DATABASENAME are as expected by the target engine. "*" will at
runtime use the current logon value for the starred field. Different
values will direct the statement as appropriate. DataEase fields or
variables may also be used.
A DataEase form defined over an SQL table can be selected as a
destination. This allows (among other things) for the transfer of data
from one server to another using a different engine, server, database.
The results table should match the select statement column for column.
The loop that handles this regards each record as complete if it runs
out of target form fields or result row columns. So you can run a
select which returns two rows into a Dataease forms with numerous
fields as long as the first two rows and fields mach - or vice versa.
There are 2 special destinations which are not form or table
names:
ResultsToScreen:
will display the results to the screen as returned. (This was
the only option pre 5.0)
NoResults:
will not update any DataEase tables and will display nothing
to the screen. It is intended for use with SQL statements which do not
produce results tables like drop table, create index etc..
N.B. It may be useful in some systems to have a scratch table
called, say, SQLresult to handle SQL statements that have a single
return value.
Return: The SQL command's return code is returned in current
SQLCODE, and the number of rows processed is returned in current
SQLCOUNT
The CONNECT and DISCONNECT statements can be used to change the
target server. These are also not documented in the manual, but are in
the product (and have been since 5.0). Their syntax is:
connect ENGINENAME {"SERVERNAME", "DATABASENAME", "USERNAME",
"PASSWORD" , CONNECTION RETRIES } .
disconnect ENGINENAME {"SERVERNAME", "DATABASENAME"}.
If CONNECTION RETRIES is set to > 0 a username/password dialog
will be popped up the specified number of times.
Entering "*" in USERNAME or PASSWORD in connect will default to the
values used to sign on to DataEase, NOT the value used in the previous logon.
The above description is taken from the definitive SQL syntax guide
currently in preparation by Wolf Data Ltd. It will eventually be published
as part of a comprehensive DataEase Technical Reference Manual.
FIXES. in DFD 5.15
------------------
Invalid extended dates are now redisplayed for editing instead of being lost.
SPR#4160
Processing fixed to stop transitory 'invalid' dates being rejected in DQL's
etc. SPR#4159
Fixed GPF when doing CTRL-F10 when a taborder exists and the form has
multiple pages. SPR#4158
List fields that are expressions which happen to have a field from the form
as the left part of the expression are now handled correctly. SPR#4157
Numeric strings now permit the * wild card (as they always should have done)
SPR#4156
Virtual fields, groups totals etc. are now behaving properly - in 5.14 they
did not get automatically included in report formats. This fix also seems
to resolve the problem experienced in 5.14 with jointext fields. SPR#4155
exec SQL returning into formname no longer corrupts report output or GPF's
SPR#4158.
FIXES in 5.14.
--------------
Current time not displaying first digit. SPR#4151
Comparisons to 'BLANK' were not working correctly, causing virtual field
derivations to sometimes not fire off. SPR#4154
Forms with the same first four letters as system forms could not be saved.
The last fix (in response to a break in 5.13) reintroduces the
possibility of getting a cross-linked RDRR form if a .DBM file is missing -
although now this can only occur if the missing DBM belongs to a system form,
instead of any form as in all previous versions. If you are worried about
this run DataBase Status regularly - it will replace any missing .DBM's. DBM's
usually go missing because if they are of length 0 (no records in the form)
they are not copied by DOS Copy and some backup routines. Always use Xcopy.
To cure a crosslinked DBM, install the conflicting form under a new
name, and then delete the conflicting version of the form - not the system
form! You will not lose any data if you do this straight away. SPR#4142
FIXES in 5.13
-------------
Correctly handles backtab or up arrow through PDE field.
No longer corrupts filenames when replacing a procedure or report. SPR#4147
Closes files properly when processing a remote maintenance script (i.e.
install an application). This avoids running out of file handles on a big one.
(4.53)
Deletes DOS files for data-entry forms when they are deleted from the report
(4.53)
Error traps both DOS error messages meaning 'no more handles' (4.53)
PRINT STYLE SCREENS - now respects new path length, as do saved reports.
Old style reports are translated automatically, whether last saved in 5.x,
4.x or 2.5. Reports are saved in new format if amended. SPR#4148
Note that any reports saved in 5.13 betas prior to build 51307 may now
have corrupt print styles.
Imported blank extended dates no longer produce a corrupt value. SPR#4149
TABORDER - You can no longer include virtual or Prevent Data Entry fields in
a taborder. (You shouldn't have been able to anyway, as the cursor won't
physically go there). If you have any forms on which you have created a
taborder which do include the above field types (note that Calculator
fields are allowable) you must remove them from the taborder. For this
purpose taborder mode in form design still allows you to move the cursor
to such fields. You can then delete them with f6. SPR#3244, UK SPR#1165
Forms which did have such fields 'tabordered' will often exhibit
unusual cursor movement when using pgup/pgdn, the arrow keys and the F10
combinations.
Taborder is permitted on conditional prevent data-entry fields,
but should be tested for acceptable behaviour with the above keys - it is not
feasible to cater programatically for all combinations that might be created
thereby.
F10 or Ctrl-F10 on form with taborder set returns cursor in same way as
non-taborder form when returning data or escaping back. SPR#4145, UK SPR#2116
PgUp on form with virtual or Prevent Data Entry fields on as first field on
page no longer skips page. SPR#4144, UK SPR#2002
Install no longer loses taborder information. SPR#4142, UK SPR#2090
Install of views has been revised to better cope with error conditions.
Auto-update of system forms can now cope with system forms that get smaller.
(4.53)
Install now deletes the old CFE/TDE when replacing a procedure with a data-entry
form with one without. SPR#4140
Curruption of end of files when doing a copy (e.g. when using install to replace
something) when the new file is smaller has been cured. (4.53), US SPR# 4139
Missing .DBM's (usually caused by copying an application with DOS copy rather
than XCOPY - this loses zero length files) no longer cause crosslinked RDRR's.
(4.53)
Extended dates derived from standard date fields now correctly interpret
changes made in record entry. SPR#4134
Derivations involving comparisons between standard and extended date fields
now work correctly SPR#4137
Import bug introduced in beta 2 fixed.
Pre 4.0 import definitions can now be accessed in upgraded systems. SPR#s
2663, 4135
Incorrect calculation of century in imported 'four digit year' dates
when target field is extended date resolved. SPR#4136, UK SPR#2110
Importing four digit date fields that are blank no longer results in
'invalid date' message and production of error file. UK SPR#1731
Resaving of pre-5.0 imports no longer causes corruption.
Imports now support 127 char path/filenames. The on-screen handling is a little
untidy but functional.
The modified DataEase filenames - the AAEA format - have now been completely
removed and filenames will revert to the AAA-AAB-AAC.... format used in 4.53.
This means that there is no problem with upgrading databases that have large
numbers of forms or reports starting with the sane four letters. SPR#s
3995, 4138
A long standing (since 4.24 at least) error in file handling has
been uncovered and resolved. The net effect of the bug was that DE would
sometimes copy a file not where intended, but to the immediatly previous
file that had been opened. This was especially likely to occur if any
disk error (error reading drive F. can't open file, etc.) had occurred,
but could also occur when, for example, copying files about in the course of a
reorg if the new name that DataEase invented clashed with an existing name on
disk. This is the cause of several reported instances of data files ending up
with the wrong form. SPR# 2952 for example)
The above problem has been encountered more frequently in 5 than
previous versions - this is because 5 has more file handling (split TDF's
and CFM's, more index types, more system files, etc.) AND more complex file
name construction (system locations, the AAEA stuff, etc.), thus more
opportunities to trigger this bug. This does NOT mean it doesn't happen in
older versions - it was just sufficiently infrequent to be passed off as a
'glitch'
For the fix above, paths have had to be addressed. All internal
paths in DataEase are now set to at least 127 long. Because the code is
confused between 'path' (127 characters) and 'fully extended filename' (144
characters) - too confused for me to sort out in any reasonable timespan -
the limit is 127 characters _including_ drive letter and filename.
Furthermore, the command line limit is 100 characters, and some 'on screen'
limits are even shorter - mainly 'cos I don't want to redesign all the forms!
Metric extended dates now work as well as other kinds.
Remote Maintenance (install.din) - failure to replace forms/reports
and occasional updating of the wrong form on a network fixed (along with
other occasional file copy errors - see above). UK SPR#s 441, 2092, 2093
SYSTEM MASKS (Custom Table Views). There was a pathological link between the
system masks form and path length(!). The system mask form would lose all its
records if DataEase path length was changed. This is fixed (and this version
includes a new System Masks form.)
The system mask form caused an abrupt exit if you attempted to switch
to table view while in record entry on it.
The absence of the system mask form no longer causes an abrupt exit
from table view - it is treated as a 'soft' error unless you attempt to save
or delete a custom table view.
The inability to delete PDE/Virtual fields from a table view, reported
as an error - SPR#3187, UK SPR#1285 is PAD - you're not allowed to put
the cursor there because you could enter data! But you can save your custom
table view in System Masks and edit it there to exclude such fields.
CDF's. The apparently permanaent disappearance of CDF's on certain machines
when certain actions were taken has been fixed. This was a memory alignment
bug, so it is very difficult to describe what would trigger it, but those that
have it know what it looks like! SPR#4133
Slow loading of CDF's has been speeded up by about 30%. SPR#4124
The limit of CDF's loaded at one time is now 1024. It was 255 by
accident - there was supposed to be no limit in DFD5 - this is a compromise
as fully implementing the 'unlimited' strategy had unacceptable performace
limitations
Build up of memory under DPMI and 'dirty' exit addressed by
loading/unloading CDF's as for other environments.. (4.53)
HOW CDF's WORK NOW - CDF files and libraries are loaded as required by forms or
reports when the form or report is first loaded into memory. If the CDF is part
of a library the whole library is loaded. When DataEase returns to a menu (an
actual displayed one, not a 'chain') the CDF's are unloaded. This means the 1024
limit is unlikely to be an issue, but remember that it is the total number of
functions in libraries referenced by the form/proc that get loaded, so if you
use one function from each of the Handtool libraries, for example, you
actually load 100+ CDF's. An application can of course use thousands of
CDF's as long as not more than 1024 are loaded at once. If you DO manage to
exceed this limit (and I don't think you'll manage it!) you'll get a 'can't
find CDF' message.
WHY CDF LOAD IS SOMETIMES SLOW - In an attempt to optimally implement CDF
libraries and to remove the risk of loading libraries multiple times a
predecessor of mine took the decision to load a whole CDF library if any one
CDF in it was called. So when getting a single library CDF this meant searching
the CDF form to identify the other CDF's in that library. This seemed a
potential bottleneck to the programmer at the time.
So, to speed this up it seemed like a good idea to use indices.
Also, to allow an unlimited number of CDF's, the internal structures
holding the CDF details were dynamically allocated (although one structure
was overlooked, which caused the unwanted effective limit of 255 CDF's )
Unfortunatly, DataEase system forms can't have indices. So the CDF
form was, internally, made a 'normal' form. But 'normal' forms aren't
cached in memory like system forms. Also, they get full network processing.
So, the system form has to be loaded and reinterpreted every time we load a
set of CDF's. This plus the fact that indices actually slow searches down
when getting a large percentage of a small numbers of records (especially
on a network with locking considerations) caused the 'improvement' to have
the opposite of the desired effect. Single CDF's - not in libraries - are
scarcely affected by this. The smaller the library the less the effect.
CDF MEMORY OVERHEAD - I have EXTENSIVELY tested DataEase and can now detect no
memory build up from repeatedly loading/unloading CDF's. If you experience it
you should suspect the CDFs or your installation, especially if the buildup
occurs in Windows but not outside. My testing has mainly been with Handtools
and I can guarantee they are clean!
Changes in field definitions in forms are now automatically picked up by
reports when resaved after a change. (Previously, fields which were changed
in detail were not updated, fields with major changes were deleted. The
latter is still true, but fields with minor changes such as length are now
updated the next time the report is changed and saved.)
This helps prevent corrupt print out on reports where the length of a
field or type of a field has changed and removes the necessity to manually
delete a field that has changed in such a way from all reports in which it is
referenced - you then had to save the report, reload it, reinsert the field,
and save a second time. This was an old, old problem - probably back to 2.x!
Extended dates are now validated when entered. Previously, they were
translated to a valid date representing the same number of days -
e.g. 30/2/1997 would become 2/3/1997. UK SPR# 2017
Date data is now automatically translated when a field is changed
from extended to standard and vice versa. On translation fron standard to
extended, the century is assumed based on the current settings in the
configuration form. On translation from extended to standard, the century
is lost.
Date comparisons between different date types now work, as do lookups.
Century is assumed for standard dates as above. Comparisons are always
four digit date - e.g 01/01/2000 and 01/01/1900 are not equal even
if the result field is a standard date.
Extended dates now appear as correct length on reports.
Reports installed or replaced on a network do not lose their data entry
forms. SPR#441
FIXES in 5.12
-------------
The following problems have been resolved:
Fasttext indices occasionally caused mismatches in certain DQL's.(ones that
had an 'any' clause). SPR#4132
Fields that do not appear on a view are not saved when a record is
modified (i.e existing data entered by users with full access was deleted).
SPR#4126
Slow imports. SPR#4127
Extraneous display when entering first/new record in multiform that contains
conditional colors. SPR#4128
Install a procedure failed to copy the procedure's DOS file when on a network
SPR#4129
Fix to restore - now capable of restoring greater than 192 files!!
SPR#4130
Running a DQL on a view with a filter would GPF when run (not loaded) from
the DQL menu. SPR#4122 , UK SPR#1821.
When using system relationships or menus with more than 255 forms choices
would overwrite. SPR#4123 , UK SPR#1971.
Slow CDF loading SPR#4124.
Lookups on certain dates would appear , then the field would clear
SPR#3455, UK SPR#1953.
Certain dates get wrongly translated every 256. SPR#3455, UK SPR#1977.
Changes to form properties are lost (453), SPR#3381, UK SPR#1209.
Tab Order ignores the first field in a subform SPR#4125, UK SPR#1982
(Note : you must resave your tab order in this version to fix this problem).
Compound Indices not recognized by views if the index was created after the
view SPR#4077 , UK SPR#1791.
Create Index in a DQL will update all of the indexes SPR#4121.
Fixes in 5.11
-------------
Views - Crosslinking of RDRR cured. (5.10 only)
GPF switching to table view cured. SPR#4115, UK SPR#1937
Non-use of indices cured. SPR#4103
Corruption on resync cured.
Can no longer save invalid fields. SPR#4095
Can now clear a record! SPR#4049
Taborder - GPF in form design fixed. SPR#4114
Memory Footprint (16M) - Now meets minimum memory requirements without
performance penalty, and clears more memory for CDF's. SPR#s
4107, 4092. Now uses UMB's if available.
Color field attribute - No longer needs quotes unless part of a conditional
expression. No longer reverts to 'regular' when a field elsewhere on
the form is modified. US SPR#s 3663, 4090, UK SPR#1376
Conditional Color Attributes - Fixes to Table view, ctrl-F10, field entry,
color bleed and display corruptuion in DQL and record entry. Pre-
viously unreli1able in multiforms (Forms which have subforms, or
are used as subforms) SPR's 3228, 4018, 4050/1, 4116-9, 4210
Conditional Required Attributes - Previously unreliable in multiforms. 4051
Some valid derivations previously ignored now processed correctly.
Conditional DataEntry Attributes - Previously unreliable on multiforms. 4051
Default Records - Erroneous write-back of form definition when deleting
default record fixed. SPR#4087
Standard/Extended Dates - can no longer save invalid format. SPR#3449
Alt-T Enhanced Searching - no longer corrupts screen in record entry SPR#
4112, UK SPR#1748 or input using SPR#4113, UK SPR#1811.
Create/Delete Index - GPF's cured.
Ripple Choice - GPF's on encountering unexpected situations fixed. SPR#3595
GENERAL ISSUES
--------------
View Resync.
Resychronising a view has been the subject of several bug fixes,
but is still somewhat unreliable on large forms. It also has a design flaw
in that it is TOO thorough - it resynchronizes EVERYTHING in a view (except
field derivation). Our recommendation is to to avoid resynchronisation of
views - if the underlying form is changed, you should create a new view
and delete the old one. This area is a priority for future attention.
Other View information.
1. If you have a View that does not include all the fields on the
underlying form, pressing F5 in the view will clear both the fields
in the view and the (hidden) fields in the underlying form. However,
if you access existing records through the view (by pressing F3, for
instance), then change the data on the screen and enter the record, any
data in the hidden fields (on the underlying form) are also copied into the
new record. But if you modify a record, the 'hidden' data is not changed.
This behaviour IS Performs As Designed!
2. If you create a View over a Multiform, the Subforms are not
carried over. They must be recreated and redesigned for that View. You
may add other subform definitions not extant in the underlying form.
3. If you modify a View and want to save the results under a new
name, an additional View will be created over the existing Form.
4. When you create a View, all the relationships possessed by the
underlying Form are replicated for the View. The new relationships will
retain the original optional relationship names of the owning Form; they
must be manually altered for the newly created relationships.
5. It is possible to change the field derivation of a field
in a View so that they are different from those of the Form. It is
recommended to be cautious when modifying these field attributes as in
certain circumstances the data entered from a View could override the
restrictions placed in these fields in the underlying Form.
6. Fields that are part of a compound index can be removed from a
view once the view is initially saved. Even though this is allowed, we do
not advise removing these fields.
N.B. for SQL aware users: DataEase Views should not be confused
with SQL views. Although DataEase Views perform the same logical function
as an SQL view (e.g. a virtual data structure built on underlying real
structure(s)), the fundamental structure in DataEase is the form, which
includes not just a table definition, but screen layout and methods for
data validation, display and lookup, and embedded relations. Therefore
DataEase Views cope additionally with these aspects of data representation.
General Upgrade Issues
1. The RESTORE function of DataEase 5 for DOS and OS/2 is designed
to allow you to restore DataEase Backups that were made with DataEase 4.x
software versions into the 4.53r1 format. When you then sign on to
the database using DataEase 5.1 for DOS and OS/2, you will be prompted to
convert the application to a DataEase 5 application.
2. You cannot restore a DE2.53 database to DataEase 5. You must
obtain a copy of DataEase 4x (any version) from your dealer. Special
upgrade packs are available in some markets that include a copy of
DataEase 4.53.
3. If you have a 15-character User Name, and sign on using the name
and password as parameters from the DOS prompt, then your password will be
visibly appended to the username on the sign on screen. If you wish to
prevent this display, either use a 14-character User Name, or do not
include the password in your sign-on command string.
Virtual Memory Usage under DPMI.
When running the 16M product under a DPMI host such as OS/2 or
Citrix, Virtual Memory handling (and real memory allocation) is carried
out by the host rather than by DataEase. This seems to require more
allocated DPMI memory (which is real plus virtual memory - the operating
system decides the proportion) than one would expect from usage in other
environments. We recommend a minumum of 4MB DPMI allocated to the DataEase
DOS session, and this may need to be increased considerably for a large
application. The native OS/2 version of the product does not experience
this problem.
The above is not necessary for Windows, Windows for Workgroups, or
Win 95, as DPMI memory allocation on those hosts is not under user control.
However, running a large DataEase application in a Windows session on a
machine with limited real memory may result in disk thrashing - increasing
real memory or reducing the memory overhead of other active programs is
then necessary to restore performance.
Tutorial.
The TUTORIAL disk must be installed from the DataEase Install
program (as documented). After installing it, you must sign on using
DataEase 5 and convert the application.
The User Name is 'NEWUSER'; the Password is 'TUTOR'.
Create Form.
1. If you create a new DQL procedure which uses the command
'Create Form', you will be able to parse and save it, but you will not be
able to run it unless you first exit to the Main Menu, then return
to the DQL Menu to run it.
2. Problems may be experienced defining and running procedures
which create a form, enter records into it, and then delete the form. We
recommend you perform these operations in separate procedures, and call
them from a Control procedure. We further recommend that, before running
them, you save the procedures after creating them, exit the application,
and sign back in to run them.
Application Name.
It is no longer possible to give a Form the same name as the
Application name (this is an interoperability issue).
Custom Editor.
It is not possible to use a Custom Editor to edit a DQL report
which has field formats embedded in an "output" statement. Nor should such
a report be saved 'incomplete'.
DBASE AND PARADOX CONNECTIVITY
The following issues occur when using the dBase and Paradox drivers.
Form Definition.
When you define a DataEase numeric string field over a dBase text
field, DataEase does not display padded zeros regardless of whether you
selected this option in the DataEase Application Configuration.
DataEase allows for a time field to be defined over a dBase
or Paradox character field. This is not recommended.
A DataEase numeric string field over a Paradox date field will
cause a "type mismatch" error if you add a record and then switch to table
view in record entry. Use DataEase date fields over Paradox date fields.
Record Entry.
It is recommended that all remote tables have a unique key field.
This is because access is via an SQL interface, and SQL posesses the
following limitations when no unique field is provided:
1. Searches will retrieve multiple matches in a random order.
2. If you have duplicate records, all of them will be deleted if
you delete one.
Peter J. Tabord
298
#1 s 1:1-8 - 10
Type the Database Name and press RETURN.
#2 1:1-8
Type your User Name and press RETURN.
#3 1:1-8
Type your Password and press RETURN. The Password remains invisible.
#4 s 1:1-9 - 10
A new database will be created on your data drive.
#6 s 1:1-15 - 20
<Help>
ALT-F1 HELP Display help on current topic
<Selecting menu items>
F1 MORE Scroll menus
ESC EXIT Exit menu
\U UP Previous menu item
\D DOWN Next menu item
Home HOME First menu item
End END Last menu item
PgUp PREV PAGE Previous menu page
PgDn NEXT PAGE Next menu page
\N RETURN Select highlighted item
<Entering data in a field>
F6 CLEAR FIELD Clear the current field
\L LEFT Delete previous character
\R RIGHT Next character in field
\S BACKSPACE Delete previous character
\N RETURN Next field
Ins INSERT Insert mode on/off
Del DELETE Delete current character
#10 2:2-13
Select {1} To define a new form.
{2} To view or modify a form or print a form definition.
{3} To define, view, modify, or delete relationships.
{4} To delete a form.
{5} To recreate the form's data and index files.
#11 2:2-14
Type the new Form Name and press RETURN.
Do not start the name with a number.
#12 s 2:2-93 - 94
Select the form to view or modify and press RETURN.
After viewing the form, press ESC EXIT.
After modifying the form, press F2 SAVE.
#13 2:2-131
Select the form that you want to delete, and press RETURN.
All the records in the form will also be deleted.
#14 2:2-105
Select {No} to save under the same name.
Select {Yes} to save under another name. Specify the new name
and press RETURN.
#16 2:2-106
Select {Yes} to transfer records from the current form to the new form.
#17 s 2:2-101 - 104
Select {Yes} if you have reorganized the choices. Select {No} if you
have only added choices, or changed choice descriptions.
#18 s 2:2-132 - 133
Select the form that you want to reorganize, then press RETURN.
#19 s 2:2-17 - 34
F2 Save the form.
ESC Exit the form without saving.
F4 Display the pull-down Command menus.
<To move the cursor>
\L \R \U \D One space in the indicated direction.
Ctrl \L Ctrl \R First or last position in line.
Home or End First column in first or last line.
\T \B Next or previous tab position.
\R First column in next line.
PgUp or PgDn Previous or next page.
<To Edit Text>
Ins Turn Insert mode on or off.
Del Delete a character.
F3 Cut a block of text.
F5 Copy a block of text.
F6 Paste the copied or cut block.
F7 F8 Delete a line. Insert a line.
Alt-F10 Draw borders and use the Extended Character set.
<To define a field> Type the Field label, then press F10.
#50 1:2-11
Select a form in which to enter, modify, view, or delete records.
From this form, you can access related forms, and define
QBE - Quick Reports based on this form.
#51 s 2:2-15 - 34
<To move the cursor>
\L \R One space left or right. \U \D Field above or below.
Home End First or last field. \T \B Next or previous field.
\R Next Field. PgUp PgDn Previous or next page.
<To edit text>
Ins Turn Insert mode on/off. Del Delete current character.
<Record processing>
SH-F1 Display Table View. F6 Clear field.
F2 Save a record. SH-F6 Default for field.
SH-F2 Save Default record. F7 Delete current record.
F3 View next/selected record. F8 Modify current record.
SH-F3 View previous record. F9 Quick Reports menu.
ALT-F3 Continue selected view. SH-F9 Print current record.
CTRL-F3 View by record number. ALT-F9 Auto Derivation off/on.
F4 Display Command menus. CTRL-F9 Rederive all fields.
F5 Clear all fields. F10 Go to a related form.
SH-F5 Read Default record. ALT-F10 Ad-hoc Multiform.
ALT-F5 Enter SEARCH mode. CTRL-F10 Lookup related form.
CTRL-F5 Undo record changes. ESC Exit.
#52 s 1:3-2 - 6
<Purpose> <Step> <Comments>
{Define Report} 2. Start New Report Required if a report is in memory.
3. Select Records Optional, Default: All records.
4. Select Fields Optional, Default: All fields.
5. Define Format Optional, Default: Columnar.
6. Define Print Style Optional, Default: Screen.
10. Print Report Defin. As desired.
1. Run a Report As desired.
7. Save a Report As desired.
{Modify Report} 8. Load a Report Select an existing report.
3, 4, 5, 6, or 10 Select desired steps in any order.
1. Run report As desired.
7. Save Report As desired.
May save under a new name.
{Run a Report} 2. Start New Report Required if a report is in memory.
1. Run Report Select the report to run.
#53 s 1:2-42 - 44
Select a relationship to view.
DataEase displays the first related record.
If no related record is found, DataEase copies the related fields.
Press ALT-F3 to see other related records.
Enter, modify, delete, view or print records.
View forms related to this form.
#54 s 1:3-17, 1:3-22
Select a relationship to include in the report.
#55 s 1:3-11 - 1:3-18
Move the cursor to each field to be used for record selection.
Type the record selection criteria:
{ConstantValue} James* James Ivory "James*" 23 Male
{Multiple Values} "James*" or "Bill*" Male or Female
{Ranges} =^> 23 ^>= 23 and ^<= 100 between 23 to 100
{Comprehensive} (^> Rate * Hours or ^< 20000) and ^< lookup DEPT Salary
#56 s 1:3-19 - 1:3-23
{Move the cursor} to each field to be listed in the order you specify.
{Press the Spacebar} to mark the field with its relative order in the list.
You may also type the relative order. Then specify the list options:
{To sort or group on a field}, specify one of:
Order - Sort in order
Reverse - Sort in reverse
Group - Group by field
{To obtain field statistics}, specify one or more of:
Count - Count of records processed
Sum - Total
Mean - Average
Min - Lowest
Max - Highest
Std.Dev. - Standard Deviation
Std.Err. - Standard Error
Variance - Variance
#60 s 3:2-3 - 28
<Purpose> <Step> <Comments>
{Define Procedure} 2. Start New Procedure Required if procedure in memory.
3. Data-entry Form Optional, run-time variables.
Transaction input.
4. Define Query Required.
5. Define Format Optional, Default: Columnar.
6. Define Print Style Optional, Default: Screen.
10. Print Procedure Print Procedure Definition.
1. Run Procedure As desired.
7. Save Procedure As desired.
{Modify Procedure} 8. Load Procedure Select an existing procedure.
3, 4, 5, 6, or 10 Select desired steps in any order.
1. Run Procedure As desired.
7. Save Procedure As desired.
May save under new name.
{Run Procedure} 2. Start New Procedure Required if procedure in memory.
1. Run Procedure Select the procedure to run.
#62 s 3:2-7 - 13
The Data-entry form is used to enter information for the procedure at
the time the procedure is run. The information entered may be used
anywhere in the query: for record selection criteria, in calculations, or
for listing in the report output.
#63 3:2-8
Answer {Yes} if you want to run the procedure repeatedly without
returning to the menu. This option lets you:
{Use the procedure for transaction processing.}
The Data-entry form becomes the transaction input form. The data entered
in the transaction can be posted to any number of files via DQL.
{Create alternate views of the data}.
The Data-entry form becomes a subset of information in one form
or a superset of information in multiple forms.
#64 3:2-13
Answer {Yes} if you want to delete the Data-entry form currently defined
for the procedure.
#65 3:2-23
Answer {Yes} if you want to create another procedure without overwriting
the current procedure.
#66 3:2-23
Enter the name of the procedure and press RETURN.
Do not start the name with a number.
#67 3:2-24
Select the procedure to load and press RETURN.
#68 3:2-26
Select the procedure to delete and press RETURN.
#69 3:2-5
Select the procedure to run and press RETURN.
#70 3:5-4
Select {Yes} to keep the format you have already designed.
Select {No} for a new predefined format, or to design a new custom format.
#71 s 3:5-5, 3:5-8 - 26
<Report Formats>
Select {Columnar} to get a tabular report with one line per record.
{Field per Line} to place every field on a new line.
{Record Entry} to use the record entry form.
{Template} to use a predefined template form.
{GrafTalk} to use the report data to create a GrafTalk chart.
{Custom} to design your own format.
{Export} to export to other programs.
{Mailing Labels} to print on "multi-across" labels.
#72 s 3:5-27 - 39
<Export Formats>
Select the format that is accepted by the destination program.
{Mail-merge} exports data to Wordstar and other programs.
{MultiMate} exports data to MultiMate.
{WordPerfect} exports data to WordPerfect.
{GrafTalk} exports data to DataEase GrafTalk.
{Lotus 1-2-3} exports data to Lotus 1-2-3/Symphony.
{Variable Length} exports data to Mainframes and custom programs.
{Fixed Length} exports data to Mainframes and custom programs.
{DIF} exports data to various spreadsheet and graphics programs.
#73 s 3:5-27, 3:5-39
Select {Yes} to export the Field Names.
#74 s 3:5-12 - 13
Select {Yes} to create a Group Header and Trailer for each level
of grouping specified in the query.
#75 3:6-47
Select {1: copy all from} to copy all fields with matching names from a
database form or the Data-entry form.
#76 s 3:5-42 - 57, 3:5-65 - 68
<Report Format Command Lines>
{REQUIRED}
.items Items area repeated for each record.
.end Report End Area printed at the end of a report.
{PAGE CONTROL}
.page Forces a new page.
.header (N) Header at the top of each page (starting at [N]).
.footer (N) Footer at the bottom of each page (starting at [N]).
{GROUP FORMATS}
.group header At the start of each group.
.group trailer At the end of each group. Place group totals here.
{OTHER}
.items nosplit Output from each record will appear on the same page.
across M wide N The following values will be printed [M] times across,
and each will be [N] spaces wide.
printer control [@c1] to [@c4] select CPI 1 to 4 from print definition
[@l1] to [@l4] select LPI 1 to 4 from print definition
special effects [@b,@nb; @i,@ni; @u,@nu; @s1,@ns1; @s2,@ns2]
bold 4italic u'line special1 - special9
Alt-F10 Extended ASCII output characters, including highlights.
#77 s 3:5-40 - 57
Select the list field to be placed here.
#78 s 3:5-40 - 57
Select the list item or statistic to be placed here.
Statistics may not be placed in Group Header or Report Header.
Statistics (sum, max, min, count) may be placed in the Items Area, and in
Page Headers and Footers.
Group Statistics may only be placed in Group Trailers.
#79 3:5-62
For Fixed point or Integer fields, select {Yes} to suppress commas.
#80 3:5-62
For Fixed point fields, select {Yes} to suppress the decimal.
#81 3:5-63
Select {Yes} to remove space at the start or end of field, to combine
the field with the adjoining text.
#85 s 3:2-15 - 21
<QUERY PROCEDURES>
{INTERACTIVE MODE} [(Starting mode when you define a query)]
Multiple Choice Questions
Select or Type Type Choice Number or the Entire Phrase.
Skip Question Press TAB, or 0.
Type Out Questions
Type Type the answer and press Spacebar. Press TAB to skip.
Typing Ahead Type ahead symbols and punctuation, not numbers.
Making changes Move the cursor and edit.
Go into Edit Mode Move the cursor up or to the left.
{QUERY LEVELS}: [LOW] Level should generally be used to save time.
Change to [HIGH] Level by pressing [F9 LEVEL] when you need to enter,
modify, or delete records, or access a DQL Procedural command,
Control command, or data manipulation function.
{EDIT MODE} [(Starting mode when you modify a query)]
Editing Type and use all cursor and editing functions.
End the query Press F2 SAVE.
Go to Interactive Position cursor, and press F1 INTERACTIVE.
#86 s 3:6-73 - 75, 3:6-148
Select the name of the Primary form.
#87 s 3:6-165, 3:6-196
Select {1: with} to select records from the form. To report on all
records, press TAB.
#88 s 3:4-1, 3:6-46, 3:6-150
DQL Advanced Processing is performed by two types of procedures.
A {PROCESSING PROCEDURE} lets you list, enter, delete, or modify records,
and create screen, disk, or printed output. A Processing procedure may
include Processing commands and/or Procedural commands, but may not
include Control commands. A Low Level Processing procedure can only
list records. A High Level Processing procedure can also enter, modify,
and/or delete records.
A {CONTROL PROCEDURE} lets you link procedures together with or without
conditional processing actions specified by Procedural commands.
A Control procedure may include Procedural commands and/or Control commands,
but may not include Processing commands. A Control procedure can only be
defined in High Level.
#89 s 3:6-91 - 94
Select {in order} to sort records in ascending order by this item.
{in reverse} to sort records in descending order by this item.
{in groups} to process records with same value together.
{in groups with group-totals} to process records in groups and
generate group statistics.
Advantages of {in groups}:
The item value is listed only once per group.
Each group can be formatted using group headers and trailers.
#90 s 3:6-101, 3:6-119 - 120, 3:6-126, 3:6-174 - 176, 3:6-189
Select one or more Statistical Operators:
Select {item} to list the item itself in the report output.
{sum} for the total of the values in the specified field.
{mean} for the average value.
{max} for the highest value.
{min} for the lowest value.
{variance} for the Variance among the values.
{std.dev.} for the Standard Deviation.
{std.err.} for the Standard Error.
#91 s 3:6-101, 3:6-119 - 120, 3:6-126
Select one or more Statistical Operators:
Select {item} to list the item itself in the report output.
{mean} for the average value.
{max} for the highest value.
{min} for the lowest value.
#92 s 3:6-101, 3:6-119 - 3:6-120, 3:6-126
Select {item} to list the item itself in the report output.
{max} for the highest value.
{min} for the lowest value.
#93 s 3:6-43, 3:6-50, 3:6-102, 3:6-142
Select one or more Condition Statistical Operators:
{item} returns "YES" if condition is true; "NO" if false.
{count} counts the records that satisfy the condition.
{percent} calculates percent of records that satisfy the condition.
#94 s 3:6-43 - 44, 3:6-176
Select {1} if you want to include statistics for this item.
#95 s 3:6-158
Select {1} to specify a relationship (list records in a related form).
#96 s 3:6-132 - 133
Select {0} to modify records in the Primary form; {1} to modify records
in another form.
#97 3:6-61
Select {0} to delete records in the Primary form; {1} to delete records
in another form.
#98 3:6-66
Select the form into which records will be entered.
#99 3:6-110
{list records in} FORMNAME ^| RELATIONSHIP ^[{named} "UNIQUE RELATIONSHIP
NAME"^] ^[{with}(selection criteria)^]
List fields in selected records in the Primary form or a related form.
Separate each list item with a semi-colon (;).
After the last item type a period.
A list item may be any type of value: a field name, a field in a related
form, a constant value, a variable, or a formula. For each list item,
optionally specify ordering or grouping, and statistics.
#100 s 3:6-132 - 133
{modify records in} FORMNAME ^| RELATIONSHIP ^[{named} "UNIQUE RELATIONSHIP
NAME"^] ^[{with}(selection criteria)^]
FIELDNAME := MODIFIED VALUE
Modify fields in selected records in the Primary form or a related form.
Select the field(s) to be modified.
Specify the modified value to be given to each field.
#101 3:6-61
{delete records in} FORMNAME ^| RELATIONSHIP ^[{named} "UNIQUE RELATIONSHIP
NAME"^] ^[{with}(selection criteria)^]
Delete selected records in the Primary form or a related form.
#102 3:6-66
{enter a record in} FORMNAME
Enter a record in the specified form.
Specify the target form.
Specify all the fields in the record to be entered.
Specify the value to be given to each field.
#103 s 3:6-85 - 86
{if} CONDITION {then} ACTIONS1 ^[{else} ACTIONS2 ^] {end}
If condition is true, perform actions1, else perform optional actions2.
Specify the condition for the {if} statement.
Specify the actions to be performed if the condition is true.
Insert an optional {else} clause, and specify the actions to be executed
if the condition is false.
Use an {end} command to terminate the {if} statement.
#104 s 3:6-194 - 195
{while} CONDITION {do} ACTIONS {end}
While condition is true, perform all specified actions.
Specify the condition for the {while} statement.
Specify the actions to be executed while the condition is true.
Use an {end} command to terminate the {while} statement.
#105 s 3:6-73 - 76
{for} FORMNAME ^| RELATIONSHIP ^[{named} "UNIQUE RELATIONSHIP NAME"^]
^[{with}(selection criteria)^] ACTIONS {end}
Perform all the specified actions for each selected record.
Specify the form or relationship that contains the records to be processed.
Specify the record selection criteria.
Specify all the actions to be performed for each selected record.
Use an {end} command to terminate the {for} statement.
#106 s 3:6-59 - 60
{define} {global} ^| {temp} "VARIABLE NAME" TYPE ^[LENGTH^] .
Define a variable with the specified name, status, type, and length.
Select the status of the variable: global or temporary.
Type the name of the variable enclosed in quotes.
Specify the variable's type.
Optionally, specify the variable's length.
Use a period to end the {define} statement.
#107 3:6-192
Select {1) to use a global variable.
Select {2) to use a temporary variable.
#108 3:6-28
{assign} {global} ^| {temp} VARIABLE NAME := ASSIGNED VALUE .
Assign a value to the specified variable.
Select the variable to the assigned.
Type the value to be assigned to the variable.
Use a period to end the {assign} statement.
#109 s 3:6-45, 3:6-77, 3:6-105, 3:6-136, 3:6-192
A value can be any of the following:
Field Name (field from the Primary form or a related form)
Constant (text constants are enclosed in quotes)
Formula (see operations, below)
Function
Variable
Operations allowed are:
Arithmetic: + - * /
Logical and or
Comparison = ^> ^< ^>= ^<= between not
#110 s 3:6-25, 3:6-137, 3:6-165
Select {0: NONE} to end selection criteria.
{1: and} if both conditions must be true.
{2: or} if either condition may be true.
#111 s 3:6-25, 3:6-137, 3:6-165
Select {0: NONE} if no more conditions are to be defined.
{1: and} to define one more condition that must be true.
{(} to define a set of conditions containing {or}.
#112 s 3:6-25, 3:6-137, 3:6-165
Select {0: NONE} if no more conditions are to be defined.
{1: or} to define one more condition that may be true.
{(} to define a set of conditions containing {and}.
#113 s 3:6-15 - 17, 3:6-42
Select {1: =} for equal to
{2: ^>} for greater than
{3: ^<} for less than
{4: ^>=} for greater than or equal to
{5: ^<=} for less than or equal to
{6: between} for a range
{7: not} to reverse the meaning of the following operator
#114 s 3:6-4 - 5
The following arithmetic operators are provided:
{+} Plus
{-} Minus
{*} Multiply
{/} Divide
#115 3:6-10
{(} (parentheses) lets you specify the order of evaluation, as well as
combine {and} and {or} in selection criteria or conditions.
#117 3:6-108
Select a Field Name. To skip press {0} or {TAB}.
#118 3:6-33
An unspecified field value is represented by the keyword {blank}. It is
used to assign an unspecified value to a field, to check if a field value
has been specified, and/or to output a {blank} field.
#119 3:6-45
Specify a Constant value typed as follows:
{FIELD TYPE} {COMMENTS} {EXAMPLES}
Text Enclose text in double quotes "James"
Num. String Do not type the format characters 42035551212
Number Do not type commas 10012.15 or -2456
Date Use slashes in a Date value 12/31/99 or 12/31/1999
Time Use colons in a Time value 23:59:59
Yes or No Select value from the menu Yes or No
Choice Select value from the menu Male or Female
The keyword {blank} can be used as an unspecified value for any Field Type.
#120 3:6-158
A relationship lets you select records in a related form based on a
specified field value as summarized below:
{Operator} {Returns}
all Specified field value from {each} related record.
(This operator can only be used as a list item).
any Specified field value from the {first} related record.
count of Count of records in set of related records.
highest of Highest specified value from set of related records.
lowest of Lowest specified value from set of related records.
sum of Sum of specified value from set of related records.
mean of Avg. of specified value from set of related records.
#121 s 3:6-20 - 21, 3:6-158
Once a relationship has been defined in the query, you need not specify
it again. Select one of the relationships that you have already defined
in the query. Press TAB to define a new relationship.
#122 s 3:6-20 - 21, 3:6-158
These forms have a predefined relationship to the last form specified
in the query. The criteria for these relationships have already been
defined, but you may add to the criteria by creating an ad-hoc relationship.
Select a form or press TAB to define an ad-hoc relationship.
#123 s 3:6-20 - 21, 3:6-158
Select a form to define a new relationship with. You may then optionally
specify record selection criteria for the relationship.
#124 s 3:6-20 - 21, 3:6-132 - 133, 3:6-158
If you define more than one relationship with the same form using different
record selection criteria, you must provide a unique name for each
relationship. To provide a unique name, select {1: named}, then type the
name in quotes.
#125 s 3:6-20 - 21, 3:6-132 - 133, 3:6-158
You may optionally define criteria for the relationship. If the
relationship is predefined, these criteria will be added to those
already defined.
#126 3:6-77
[IF FUNCTION]
{if}(CONDITION, TRUE VALUE, FALSE VALUE)
[DATE FUNCTIONS]
{month}(DATE) {day}(DATE) {year}(DATE)
{weekday}(DATE) {yearday}(DATE) {yearweek}(DATE)
{date}(MONTH,DAY,YEAR) {julian}(DATE)
[SPELL FUNCTIONS]
{spellmonth}(MONTH) {spellweekday}(DAY OF THE WEEK)
{spelldate}(DATE) {spellnumber}(NUMBER) {spellcurrency}(NUMBER)
[TIME FUNCTIONS]
{hour}(TIME) {minutes}(TIME)
{seconds}(TIME) {timeampm}(TIME) {ampm}(TIME)
[TEXT FUNCTIONS]
{firstc}(TEXT, # Chars) {firstw}(TEXT, # Words)
{lastc}(TEXT, # Chars) {lastw}(TEXT, # Words)
{midc}(TEXT, StartChar, # Chars) {midw}(TEXT, StartWord, # Words)
{jointext}(TEXT1, TEXT2) {length}(TEXT)
{lastfirst}(NAME) {firstlast}(NAME)
{upper}(TEXT) {proper} (TEXT) {lower}(TEXT) {textpos} (TEXT1,TEXT2)
#127 s 3:6-77 - 78, 3:6-100, 3:6-141, 3:6-143, 3:6-151
[FINANCIAL FUNCTIONS]
{presentvalue}(futurevalue, installment, rate, periods)
{futurevalue}(presentvalue, installment, rate, periods)
{installment}(presentvalue, futurevalue, rate, periods)
{rate}(presentvalue, futurevalue, installment, periods)
{periods}(presentvalue, futurevalue, installment, rate)
[MATH/SCIENTIFIC FUNCTIONS]
{exp}(NUMBER) {log}(NUMBER) {log10}(NUMBER) {power}(NUMBER) {sqrt}(NUMBER)
{abs}(NUMBER) {ceil}(NUMBER) {floor}(NUMBER) {mod}(NUMBER,BASE NUMBER)
{random}()
[TRIGONOMETRIC FUNCTIONS]
{sin}(ANGLE IN RADIANS) {cos}(ANGLE IN RADIANS) {tan}(ANGLE IN RADIANS)
{asin}(SINE VALUE) {acos}(COSINE VALUE) {atan}(TANGENT VALUE)
{sinh}(ARGUMENT) {cosh}(ARGUMENT) {tanh}(ARGUMENT)
#128 s 3:6-52, 3:6-54
Select {0: NONE} to skip these options.
{1: current} for current date, time, page number, item number,
user name, user level, computer name, or status.
{2: data-entry} for a field from a Data-entry form, if defined.
#130 2:5-10
Type the name of the source file (including drive and directory) that
contains the data to be imported into the specified destination form.
#131 2:5-10
Select the DataEase form into which the data will be imported.
#132 s 2:5-10 - 2:5-11
Select the format of the source data file.
#133 2:5-17
Select {Yes} if the source DataEase form is identical to the destination
DataEase form. Otherwise, select {No}.
#134 2:5-17
Type the name of the source DataEase form definition file. You need not
specify the file extension (CFM).
#135 2:5-22
Type the field separator character and press RETURN. If the field
separator is the new line character, press RETURN.
#136 2:5-22
Type the record separator character and press RETURN. If the record
separator is the new line character, press RETURN.
#137 2:5-28
If you select {Yes}, DataEase will insert a decimal in all Fixed Point
fields in the import file that do not already have a decimal point. If
you answer {No}, DataEase does not insert decimals although it does import
decimal points that exist in the source file.
#138 2:5-13
DataEase matches the records being imported to the existing records
in the destination form based on the values in the Unique fields.
Select {1. ADD NON-MATCHING} if importing only new records.
{2. UPDATE MATCHING} if updating existing records.
{3. ADD OR UPDATE} if importing new and updating existing records.
{4. DO NOT MATCH} saves time if you are importing only new records,
and you are sure the import file doesn't contain duplicate records.
#139 s 2:5-19, 2:5-23
DataEase can match fields in the source file to the fields in the
destination form either by Field Order or by Field Name.
Select {1. BY FIELD ORDER} if the order of the fields is identical in
the source file and the destination form.
Select {2. BY FIELD NAME}, providing there are corresponding Field Names
in both files.
For Lotus 1-2-3, DIF, Mail-merge, and Variable Length files, the first
record imported must contain the source Field Names.
For dBASE and DataEase files, the Field Names are already present in the
respective file definitions and need not be included as records.
#140 2:5-33
Type the name of the form to be installed.
#141 2:5-34
Type the filename of the source Form Definition file. This file has
an extension of CFM (which you need not type). Specify the full pathname
(i.e., drive and directory).
#142 2:5-34
If you do not want to install data in the form, press RETURN.
Otherwise, type the filename of the source Data file. This file has
an extension of DBM (which you need not type). Specify the full pathname
(i.e., drive and directory).
#143 s 2:5-35 - 36
Type the name of the DQL Procedure (or Quick Report) to be installed.
Do not start it with a number.
#144 s 2:5-35 - 36
Type the filename of the Procedure Definition file. This file has
an extension of DBR (which you need not type). Specify the full pathname
(i.e., drive and directory).
#145 s 2:5-35 - 36
Select {Yes} if the procedure has an associated Data-entry form (.DBF file
extension). The Data-entry form file must be present on the same drive as
the Procedure Definition file.
#146 2:5-41
Select or type the filename of the Import Specification file.
This file has an extension of DBI (which you need not type). Specify
the full pathname (i.e., drive and directory).
#147 2:5-40
Type the name of the Installation Command file. This file has an extension
of DIN (which you need not type). Specify the full pathname
(i.e., drive and directory).
#148
Data transfer will use the server batch facility.
#150 1:4-15
Specify the drive and directory for the Backup or Restore.
#151 1:4-15
If an error occurs during Backup or Restore, select {1: Ignore and Continue}
or {2: Cancel} if you are not going to be present to take action. Otherwise
select option {3: Decide upon Error}.
#152 s 1:4-4 - 13
Select {1. Forms} to get a list of forms and the corresponding files.
{2. Procedures} to get a list of Quick Reports and DQL Procedures.
{3. Import Specifications} to get a list of Imports.
#160 2:2-18
<More Help> displays a help message for the current function.
#161 2:2-26
<Borders & Ext Char Set> is used to draw borders or access the ASCII
extended character set.
#162 s 2:2-20 - 21
<Copy> copies a block of text and fields. Select <Copy> then select
None, Block, Form, or Dictionary field to specify the type of copy
you want to make.
#163 2:2-19
<Cut> moves or deletes fields and/or text. Select <Cut>, move the
cursor to the first character you don't want to cut, and
select <Cut> again.
#164 2:2-21
<Paste> places cut (F3 CUT) or copied (F5 COPY) text and/or fields
onto the form.
#165 2:2-22
<Ins Line> inserts a blank line at the current cursor position and
moves the current cursor line and all following lines down one line.
#166 2:2-22
<Del Line> removes or erases the line on which the cursor rests.
#167 s 2:2-84 - 85
<Show Colors> displays the form as it will appear in Record Entry.
You can only use this option to view the form.
#168 s 2:2-84 - 85
<Underline> marks the beginning of a block that you want to underline
when it is printed using Record Entry format. Text marked as
underlined displays in the Regular Field color in Record Entry.
#169 s 2:2-84 - 85
<Bold> marks the beginning of a block that you want to print
in boldface. Text marked as bold displays in the Highlight 1 color
in Record Entry.
#170 s 2:2-84 - 85
<Italics> marks the beginning of a block that you want to print in
italics. Text marked as italic displays in the Highlight 2 color
in Record Entry.
#171 s 2:2-84 - 85
<CPI 2> marks the beginning of a block that you want to print using
a different characters per inch setting. Text marked as CPI 2
displays in the Title Area color in Record Entry.
#172 s 2:2-84 - 85
<CPI 3> marks the beginning of a block that you want to print using
a different characters per inch setting. Text marked as CPI 3
displays in the Mode Area color in Record Entry.
#173 s 2:2-84 - 85
<CPI 4> marks the beginning of a block that you want to print using
a different characters per inch setting. Text marked as CPI 4
displays in the Message Area color in Record Entry.
#174 s 2:2-84 - 85
<LPI 2> marks the beginning of a block that you want to print using
a different lines per inch setting. A block marked as LPI 2 displays
in the Prompt Line color in Record Entry.
#175 s 2:2-84 - 85
<LPI 3> marks the beginning of a block that you want to print using
a different lines per inch setting. A block marked as LPI 3 displays
in the Menu Highlight color in Record Entry.
#176 s 2:2-84 - 85
<LPI 4> marks the beginning of a block that you want to print using
a different lines per inch setting. A block marked as LPI 4 displays
in the Key Names color in Record Entry.
#177 s 2:2-84 - 85
<End Highlight> marks the end of a block that you have given a
specific highlight attribute.
#178 1:2-25
<Multiview> accesses related forms. Once the related form is
displayed you can view, enter, modify, or delete records.
#179 1:2-21
<Recalculate> recalculates the values of all the fields defined
with Derivation Formulas.
#180 1:2-21
<Suspend Calc> turns off automatic calculation of all the fields
defined with Derivation Formulas.
#181
<Exit> returns you to the previous menu.
#182 2:2-17
<Exit & Save> saves the form on the screen as a new form, or saves
the changes made to an existing form, and returns you to the Form
Definition menu.
#183 2:2-18
<Exit & Abandon> abandons the form, or changes made to an existing
form and returns you to the Form Definition menu.
#184 2:2-23
<Field> creates a record entry field beginning at the current cursor
position. You can view, modify, or delete an existing field
definition by moving the cursor into the field and selecting <Field>.
#185 s 2:2-24 - 25
<Form Properties> displays the Form Properties screen. Use this
screen to define security levels and help messages for the form,
encrypt records, and override the default Record Entry configuration.
#187 s 2:2-27 - 31
<Define Subform> displays the Subform Definition screen.
This screen is used to define Multiforms.
#188 2:2-32
<Print> prints the form definition.
#189 3:5-64
<Exit & Save> saves the format (in the computer's memory)
and returns you to the QBE - Quick Reports or DQL menu.
#190 1:2-18
<Exit & Abandon> returns you to the QBE - Quick Reports or DQL menu
without saving the format.
#191 s 3:5-60 - 63
<Field> defines or modifies a field in the format.
#193 s 3:2-27 - 28
<Print> prints the format.
#194 3:2-12
<Exit & Save> saves the Data-entry form (in the computer's memory)
and returns you to the DQL menu.
#195 1:2-18
<Exit & Abandon> returns you to the DQL menu without saving the
Data-entry form.
#196 3:2-9
<Field> defines or modifies a field on the Data-entry form.
#197 s 3:2-27 - 28
<Print> prints the Data-entry form definition.
#198 s 2:2-64, 2:2-72, 2:2-75
<Exit & Save> saves the Derivation Formula, Upper/Lower Limit
formula, or field help message and returns you to the Field
Definition screen.
#199 s 2:2-64, 2:2-72, 2:2-75
<Exit & Abandon> abandons any changes made to the Derivation Formula,
Upper/Lower Limit formula, or field help message and returns you to
the Field Definition screen.
#200 1:2-18
<Exit> exits Record Entry for this form and returns you to the
Record Entry menu.
#202 1:2-19 - 20
<Save> saves the record on the screen.
#203 s 1:2-19 - 20
<Modify> modifies the record on the screen.
#204 s 1:2-19 - 20
<Delete> deletes the record on the screen.
#205 s 1:2-19 - 20
<Clear Form> clears the form on the screen.
#206 s 1:2-19 - 20
<Clear Field> clears the field in which the cursor rests.
#207 s 1:2-19 - 20
<Del Long:Text line> deletes the line of the long:text field in which
the cursor rests.
#208 s 1:2-19 - 20
<Ins Long:Text line> inserts a line in a long:text field above the
line in which the cursor rests.
#209 s 1:2-19 - 20
<Undo Record> abandons the changes made to the record on the screen.
#210 1:2-21
<Print> prints a copy of the record currently on the screen.
#211 1:2-22
<Enter Search Criteria> clears the form, turns off all the
field derivations, and allows search values to be entered in Prevent
Data-entry fields.
#212 1:2-23
<Continue Search for Criteria> displays the next record that meets
the specified search criteria.
#213 1:2-22
<Begin Search for Criteria> begins a record search.
#214 1:2-22
<Next Consecutive Record> displays the next consecutive record in
the file.
#215 1:2-23
<Previous Consecutive Record> displays the previous record in the
file.
#216 1:2-23
<Go to Record Number> displays a specific record by record number.
#217 1:2-24
<Table View> displays a Table View of the records in the file.
Enter search criteria and select <Table View> to display a table
of matching records.
#218 1:2-25
<Multi-Form> creates an Ad-hoc Multiform.
#219 1:2-25
<Lookup> opens a window into a related form where you can look up
a value and bring it back into the Primary form.
#220 1:2-25
<Exit> exits a related form and returns you to the previous form.
#221 1:2-26
<Quick Report> displays the Quick Reports menu.
#222 1:2-27
<Default Field> retrieves the default value (saved on the Default
Record) for the field in which the cursor rests.
#223 1:2-27
<Default Form> retrieves the Default Record.
#224 1:2-27
<Save Default> saves the record on the screen (or in which the cursor
rests) as the Default Record.
#225 1:2-27
<Delete Default> deletes the default record.
#226 1:2-77
<Allow All Record Access> removes all locks placed on the record that
you are currently viewing.
#227 1:2-77
<Allow Read Record Access> only allows other users to view the record
you are viewing.
#228 1:2-77
<Allow No Record Access> prevents other users from accessing the
record that you are viewing.
#230 1:2-78
<Refresh> reads the record from disk and displays it on the screen.
#231 1:2-78
<Continuous Refresh> automatically refreshes the record on the
screen every few seconds.
#232 1:2-18
<Exit> exits Record Entry for this form and returns you to the
Record Entry menu.
#234 1:2-29
<Save Changes> saves all the changes/modifications made to the table.
#235 1:2-29
<Undo Changes> abandons all the changes made to the table that have
not scrolled off the screen and have not been saved by pressing
F2 SAVE.
#236 1:2-29
<Delete Record> deletes the record on the line in which the
cursor rests.
#237 1:2-29
<Clear Field> clears the field in which the cursor rests.
#238 1:2-29
<Enter New Records> scrolls some records off the screen and displays
some blank lines into which you can enter new records.
#239 1:2-21
<Print> prints the table on the screen.
#240 1:2-30
<Form View> toggles from Table View to Form View.
#241 1:2-31
<Lookup> opens a window into a related form where you can look up a
value and bring it back into the Primary form.
#242 1:2-31
<Exit> exits a related form and returns to the previous form.
#247 1:2-79
<Allow All File Access> removes any locks placed on the form you
are viewing.
#248 1:2-79
<Allow Read File Access> only allows other users to view the records
in the form you are viewing.
#249 1:2-79
<Allow No File Access> prevents other users from accessing the form
you are viewing.
#250 1:2-79
<Refresh> reads the records listed in the table on the screen and
redisplays each record as it appears on the disk.
#251 1:2-78
<Continuous Refresh> automatically refreshes the records on the
screen every few seconds.
#252 3:2-22
<Exit & Save> saves the query (in the computer's memory)
and returns you to the DQL menu.
#253 3:2-22
<Exit & Abandon> returns you to the DQL menu without saving the query.
#254 3:2-15
<Interactive Mode> switches from Edit Mode to Interactive Mode.
#255 s 3:2-18, 3:2-21
<Change Level> changes levels (from Low Level to High Level or
High Level to Low Level).
#256 s 3:6-139 - 143
<Field> displays the Report Field Definition screen and lets you
define a field in the query. This option is used with the
DQL Output command.
#257 3:2-22
<Exit & Save> saves the query (in the computer's memory)
and returns you to the DQL menu.
#258 3:2-22
<Exit & Abandon> returns you to the DQL menu without saving the query.
#259 3:2-20
<Edit Mode> switches from Interactive Mode to Edit Mode.
#260 s 3:2-18, 3:2-21
<Change Level> changes levels (from Low Level to High Level or
High Level to Low Level).
#261 3:2-16
<Skip Menu> bypasses the current Interactive menu options.
#262 1:3-9
<Exit> exits Define/Modify Record Selection or Define/Modify List
Fields and returns you to the QBE - Quick Reports menu.
#263 1:3-9
<Save> saves the record selection criteria or list field definition
for the report and returns you to the QBE - Quick Reports menu.
#264 1:3-9
<Clear Form> removes the selection criteria or list field numbers
from all the fields on the form.
#265 1:3-9
<Clear Field> removes the selection criteria or list field numbers
from the current field.
#266 1:3-9
<Print> prints the record selection criteria or list field definition
specified for the report.
#267 s 1:3-17, 1:3-22
<Multiview> displays a related form. Once the related form is
displayed you can specify record selection criteria or select fields
to list from the related form.
#268 s 1:3-17, 1:3-22
<Exit Multiview> exits a related form and returns you to the previous
form.
#269 3:2-10
<Enter & Continue Procedure> saves the data entered on the Data-entry
form and continues running the procedure.
#270 1:2-18
<Exit & Abandon> returns you to the DQL menu without saving the data
entered on the Data-entry form.
#271 s 1:2-19, 3:2-9
<Clear Form> clears all the data on the Data-entry form.
#272 s 1:2-19, 3:2-9
<Clear Field> clears the data in the current field.
#273 1:2-45
Select the form to display on the screen in a window beginning at
the current cursor position. Press ESC EXIT to remove the related form.
#274 1:2-46
Select the related form that contains the value you want to look up.
Press RETURN to bring the value from the related form back to the
Primary form.
#275 2:2-130
Select {Yes} to delete all records in the RELATIONSHIPS form that
contain the name of the form you are deleting.
Select {No} to delete the form only (do not delete any records from
the RELATIONSHIPS form).
#277 s 3:6-111 - 112
{lock} all files ^| filename ^| selected record ^[shared^| exclusive^].
LAN command used to override the default Multi-User Locking Rules
specified on the System Configuration form.
Select {lock all files} to lock all the forms referenced by the
procedure. Select {lock filename} to lock just the specified form.
Select {lock selected records} to lock just the record that is
currently being processed.
The {shared} option lets users view the locked resource. The
{exclusive} option prevents all access to the locked resource.
#278 s 3:6-186 - 187
{unlock} all files ^| filename ^| selected record .
LAN command used to override the default Multi-User Locking Rules
specified on the System Configuration form. Unlocks resources
specified by a DQL {lock} command.
Select {unlock all files} to unlock all the forms referenced by the
procedure. Select {unlock filename} to unlock just the specified form.
Select {unlock selected records} to unlock just the record that is
currently being processed.
#279 s 3:6-152 - 153
{query selection} lock files ^| records ^| nothing .
LAN command used to override the default Multi-User Locking Rules
specified on the System Configuration form.
Select {query selection lock files} to lock every form referenced by
the procedure that contains any records selected for processing.
Select {query selection lock records} to lock every record selected for
processing. Select {query selection lock nothing} to lock no forms or
records. This option allows users to view, modify, or delete records
selected for processing by the procedure.
Once the procedure begins actually processing the selected records, the
query selection lock is forfeited.
#280 s 3:6-95 - 98
{input using} FORMNAME {into} "TEMPFORM" .
Provides record entry functions at any time during the procedure and
processes the input data.
Specify the name of the form that contains the data you want to input.
Specify the name of a second temporary form, enclosed in quotation
marks, to reference the input record.
When the input record is processed, DataEase stores one of the
following values in the current status variable depending on which key
was pressed to input the record: (ESC=1), (F2=2), (F7=3), (F8=4). This
value can be used to control subsequent conditional processing.
#281 s 3:6-139 - 143
{output}:
FIELD NAME ^| TEXT
.
Writes text or fields directly to the output device while processing
the procedure.
Insert the {output} command followed by a colon in column 1 of the
query. Press F10 FIELD to enter a field or specify the text you want to
appear in the output.
Following the last line to be output, insert a period in column 1 of
the query.
#282 s 3:6-122 - 123
{message} "MESSAGE TEXT" ^[{window}^] ^[{pause}^] .
Enter the message you want to display enclosed in quotation marks.
The default displays up to a 40-character message in the upper right corner
of the screen. The {window} option displays a message of up to 4,000
characters in a window. The {pause} option requires a user to press a
key to resume processing.
#283 s 3:6-38 - 39
{case} (EXPRESSION)
{value} COMPARISON 1:
ACTION SERIES 1 .
^[{others}:
OTHERS ACTION SERIES .^]
{end}
Compares expression to a series of values and executes different
action(s) based on which comparison is true.
Insert the {case} command. Specify an expression enclosed in
parentheses and press RETURN. Next, insert the keyword {value}.
Specify a comparison value followed by a colon. After each value
statement, enter the action(s) DataEase should perform if the value
comparison is true. Each action statement is followed by a period.
After the last value-action series, optionally insert the keyword
{others} and specify the action(s) you want DataEase to take if none
of the preceding comparisons are true. The {case} command must be
terminated by an {end} command.
#284 3:6-190
{value} :
ACTION SERIES .
Part of the {case} command that compares an expression to a series of
values and executes different actions based on which comparison is
true.
Specify a value followed by a colon and press RETURN. Then specify the
action(s) you want DataEase to perform if the value comparison is true.
Each action statement is terminated by a period.
#285 3:6-138
{others} :
ACTION SERIES .
Part of the {case} command that compares an expression to a series of
values and executes different actions based on which comparison is
true.
Specify the action(s) you want DataEase to perform if none of the
preceding value comparisons is true. Each action statement is
terminated by a period.
#286 3:6-162
{run procedure} "PROCEDURE NAME" .
Loads and runs the specified procedure.
Enter the name of the procedure enclosed in quotation marks, followed
by a period.
#287 3:6-35
{call menu} "MENU NAME" .
Displays the specified DataEase system or custom defined menu.
Enter the name of the menu enclosed in quotation marks, followed by a
period. If a Chain menu is called, it is executed, but not displayed.
#288 3:6-36
{call program} "PROGRAM NAME ^[ARGUMENTS^]" .
Loads and runs the specified program.
Enter the name of the program enclosed in quotation marks, followed by
a period. The program name can be a constant or an expression involving
functions and variables. Specify the full pathname if the program is
not in the current directory.
#289 3:6-156
{record entry} "FORMNAME" .
Displays the specified form, allowing Record Entry functions to be
performed during the procedure.
The input data is entered directly into the database; it is not
processed by the procedure.
#290 3:6-89
{import} "IMPORT SPECIFICATION NAME" .
Imports data into a DataEase form according to a previously defined
import specification.
Enter the name of the import specification enclosed in quotation marks,
followed by a period.
#291 3:6-159
{reorganize} "FORMNAME" .
Reorganizes the specified form; this permanently erases all deleted
records and then recreates all the indexes used to organize the data.
Enter the name of the form enclosed in quotation marks, followed by a
period.
#292 3:6-57
{db status} .
Generates a report that summarizes the status of the forms, procedures,
and/or imports in the current database. The default displays the report on
the screen. Press SH-F9 PRINT to send the report to the printer.
#293 3:6-31
{backup db} .
Creates a backup copy of the current database in a special DataEase
format. The backup must be restored using the {restore db} command or
the [Restore Database] option on the Maintenance menu.
DataEase prompts you for the information and/or disks needed to perform
the backup.
#294 3:6-161
{restore db} .
Restores a database from a backup copy created by the {backup db} command
or the [Backup Database] option on the Maintenance menu.
DataEase prompts you for the information and/or disks needed to perform
the restore.
#295 s 3:6-113 - 114
{lock db} .
LAN command used to override the default Multi-User Locking Rules
specified on the System Configuration form.
Select {lock db} to lock the current database.
This prohibits any user from signing on to the current database.
#296 3:6-188
{unlock db} .
LAN command used to override the default Multi-User Locking Rules
specified on the System Configuration form.
Select {unlock db} to terminate the {lock db} command and unlock the
current database.
#297 3:6-99
{install appl} "INSTALLATION FILENAME" .
Installs forms, reports, procedures, or entire applications in the
current database.
Enter the name of the installation command file (.DIN filename
extension) enclosed in quotation marks, followed by a period.
#500 - 599 reserved for Japanese version