Dictionary-IV 8.41
Release Notes
|
Software Enhancements
1. Enhancements have been made to Date Types 2 and 7. A new date type (type 8) has been
added. The following is a description of the changes:
Date Type 8
Version 8.4.1 supports a new Dictionary-IV date type. This new date type (type
8) stores the Basic SQL date as a number in your data files. This storage method
removes a number of problems caused by the binary storage with date type 5.
FORMATS
The new date is type 8. The storage length can support date, time, and date & time.
Description |
Length |
Date only |
6.0 |
Time only |
7.6 |
Data and Time |
11.4 |
DATE INPUT AND DISPLAY
The input and display for SQL dates is controlled by Global variables. These Global
variables are stored in the system format #IDSV. The date input mask (IM) and the date
display mask (DM) can be set in either an application or using the System Administration
subsystem. The System Administration subsystem (option 2 from menu UTMENU10) has a
selection to Maintain Date Masks. This selection will control the default value for
input and display when using the new SQL date type. The third field in this selection also
allows for specification of a Date Method. If a user does not enter enough
characters to match the input mask, the Date Method will be executed. The Date
Method provides the opportunity to modify the data after input but before date
validation. The most common use of the Date Method is to determine and add a
Century value to a six-character date input. For example:
Input Mask: MMDDYYYY
User enters: 03 26 97
The date validation routine will use the Input Mask. In this example, if it is not 8
characters (MMDDYYYY), it would typically fail. But, prior to any validation, the Date
Method is executed. The Date Method can update the users input by adding the
proper century. The Date Method has access to all kinds of information to assist in
determining the Century including the dates data-name, format and link.
Thoroughbred provides a sample Date Method - OOUDATE. This method uses the 50-year rule
to determine the century. We recommend using this method as a default to get started.
The source for the program OOUDATE is located in the 4BW library. OOUDATE is a Method
and cannot be compiled unless you have OPENworkshop. OOBDATE is a basic program and can be
modified and recompiled as OOUDATE.
GLOBAL VARIABLES
The display mask, input mask, and the date method are initialized through the System
Administrator. These values can be changed within your application by modifying the format
values found in #IDSV.
Global Variable |
Description |
Maximum Length |
#IDSV.IM |
Input mask |
20 |
#IDSV.DM |
Display mask |
40 |
#IDSV.DATEMETHOD |
Date method name |
8 |
Date Type 2
The storage of this date type has been enhanced to use letters for years past 1999.
First, the base year must be specified. This is specified in the IPL file as a new PRM
option:
PRM BASE-YEAR=????
The BASE-YEAR= parameter is used to specify the base year. The specified year must be a
multiple of 100 or an error will be produced. If this parameter is not specified, the base
year will default to 1900.
The following table shows the storage of the year when the base year is set to 1900:
Year |
Stored as... |
1900 |
00 |
1990 |
90 |
1997 |
97 |
2000 |
A0 |
2100 |
K0 |
2200 |
U0 |
2250 |
Z0 |
The following table shows the storage of the year when the base year is set to 1800:
Year |
Stored as... |
1800 |
00 |
1900 |
A0 |
1997 |
J7 |
2000 |
K0 |
2100 |
U0 |
2150 |
Z0 |
Assigning a value can be done with either a 6 or 8 character string. For example, the
following statements would set the value of #FORMAT.DT2 to August 15th, 1997:
#FORMAT.DT2 = "970815"
or
#FORMAT.DT2 = "19970815"
The following statement would set the value of #FORMAT.DT2 to August 15th, 2097:
#FORMAT.DT2 = "20970815"
Date Type 7
The storage formula for this date type has been changed from:
CHR(YY+1) + CHR(MM+1) + CHR(DD+1)
to:
CHR(MOD(YYYY,1900)+1) + CHR(MM+1) + CHR(DD+1)
The following table shows the storage of the year:
Year |
Stored as... |
1900 |
$00$ |
1997 |
$62$ |
2000 |
$65$ |
2100 |
$C9$ |
2154 |
$FF$ |
Assigning a value can be done with either a 6 or 8 character string. For
example, the following statements would set the value of #FORMAT.DT7 to August 15, 1997:
#FORMAT.DT7 = "081597"
or
#FORMAT.DT7 = "08151997"
The following statement would set the value of #FORMAT.DT7 to August 15th, 2097:
#FORMAT.DT7 = "08152097"
ATR()
The ATR() function has been enhanced to handle the changes to date types 2 and 7. The
following table shows the attribute numbers that have been changed and the corresponding
old and new values for date type 2:
Attribute
Number |
Old Attribute
Value |
New Attribute
Value |
23 |
8 |
10 |
24 |
8 |
10 |
25 |
00/00/00 |
0000/00/00 |
26 |
00/00/00 |
0000/00/00 |
The following table shows the attribute numbers that have been changed
and the corresponding old and new values for date type 7:
Attribute
Number |
Old Attribute
Value |
New Attribute
Value |
23 |
8 |
10 |
24 |
8 |
10 |
25 |
00/00/00 |
00/00/0000 |
26 |
00/00/00 |
00/00/0000 |
LET FMT() AND FMT()
The LET FMT() directive and FMT() function have been enhanced to handle the changes to
date types 2 and 7. The LET FMT() directive accepts either a 6 or 8 character string for
both date types 2 and 7. For example, the following statements would set the value of
#FORMAT.DT2OR7 to August 15th, 1997:
LET FMT("#FORMAT.DT2OR7",0) = "081597"
or
LET FMT("#FORMAT.DT2OR7",0) = "08151997"
The following statement would set the value of #FORMAT.DT2OR7 to August 15th, 2097:
LET FMT("#FORMAT.DT2OR7",0) = "08152097"
The FMT() function returns either a 6 or 8 character string. For example, the following
statement would print "081597":
LET FMT("#FORMAT.DT2OR7",0) = "08151997"
PRINT FMT("#FORMAT.DT2OR7",0)
Using either the "DNM" or "DCM" format masks with the FMT()
function in the above statement would print "08/15/97":
The following statements would print "08152097":
LET FMT("#FORMAT.DT2OR7",0) = "08152097"
PRINT FMT("#FORMAT.DT2OR7",0)
Using either the "DNM" or "DCM" format masks with the FMT()
function in the above statement would print "08/15/2097".
3. F10 GOTO in CONNECT SCREEN/VIEW has been modified to generate a default screen based
on the goto fields (Primary Key or Secondary Key).
4. A new flag has been added to the Installation Record to enable/disable the Link/View
Object Library processing.
5. There have been changes to IDOL-IV in reference to Developer Mode vs User Mode. The
following is a summary of the functions that not are allowed while in User Mode:
o Cannot edit any IDOL-IV Definitions
o Cannot edit (F1) pop-up menus
o The following functions in CONNECT VIEW are "disabled" when in
User Mode:
F1 - Resize/Move
F2 - Delete Column
F3 - Change Column Width
F5 - Sorts. - The user is allowed
to change sorts; not allowed to change definitions
F11 - Field Definition
6. F16 (Print) option has been changed to allow the user to print either the current
window or the entire screen.
7. An enhancement to the F3 (Column Size) function in CONNECT VIEW now allows the user to
specify a display mask for numeric field columns.
8. The F1 (Dictionary Maintenance) option from an IDOL-IV Menu has been changed to use the
new Dictionary Maintenance Views. There are still options on this menu to support the
screen editor (non-window screens), Views (Multi-Record Maint) and IDOL-IV Menus.
9. The F2 (Screen/View) option from an IDOL-IV Menu has been changed to perform CONNECT
SCREEN/VIEW respectively. However, the menu options "F" and "f" still
execute the old Single/Multi-Record Maintenance.
Software Changes
GENERAL
1. Several problems have been corrected dealing with the Link/View Object
Libraries (OOGLNOBJ and OOGVWOBJ). A flag now exists in the Installation Record allowing
the use of these object libraries to be enabled or disabled.
2. A problem with the Backup/Restore Utility has been fixed where after restoring a
"bk" file, attempting to refresh the "bk" file will bring up IDGbk
instead of IDDbk.
3. A problem has been fixed where the dataname #IDSV.PROMPT-LINE-NMBR was being reset to 0
after using some of the Dictionary-IV API's.
LINKS
1. An Error 47 has been corrected when attempting to generate a SORT0 for an MSORT file.
2. A problem has been fixed with the Build Link/View Object Library utility where data
files were opened when the links were processed.
3. A problem has been corrected with MSORT type files where if multiple sorts were
defined, field separators were being returned as part of the data/key.
DICTIONARY MAINTENANCE
1. A problem has been fixed in Format Maintenance where the Variable Names
would be lost after editing.
2. A problem has been corrected in Format Maintenance where the Move Data Name <F3>
option would allow entry of field number 0.
3. A problem has been fixed in Format Maintenance where screens that used the format being
edited were not being updated at all.
4. A problem has been corrected in Format Maintenance where changing the length of a field
and then inserting a data-name would cause an error when attempting to update views.
5. A problem has been fixed in Screen Maintenance where screens could not be copied or
renamed.
6. In Screen Maintenance, changing the Link/Format name from the view now displays a help
module saying that doing this could cause unexpected results.
7. A problem has been corrected in the maintenance of Formats, Views D4, Links and Menus
D4 where the user was allowed to rename these definitions to a name that already existed
with no error message.
8. An Error 20 has been fixed when attempting to copy an MSORT/TISAM Link to another name
and no sorts were defined.
CONNECT SCREEN
1. A problem has been fixed when using F6 on a field with a valid value list. The help
would first be displayed. Afterwards, the valid value error message would be displayed
followed by the valid value lookup window.
2. A problem has been corrected where an IDOL-IV "User" was allowed to move
screens using Function Key 1. You are now required to be a "Developer" in order
to do this.
3. A problem has been fixed where using the Page-Down key in a screen that has
multi-occurrences in the last few fields would cause data to be corrupted.
CONNECT VIEW
1. A problem has been fixed where using a starting key value on an MSORT
type file was not being honored properly when using a secondary sort. The view would start
the display past the specified key value.
2. An Error 46 has been corrected when using a TISAM type file with a long sort key
defined and text fields.
3. A problem with a key range specified on system generated preset values has been fixed.
This worked correctly when used as a PRINT VIEW.
4. A problem has been corrected when using F10 to position to another key in the view. If
the fields in the primary key or current sort key have security 3,0 (system generated),
the system will not allow you to enter values in those screen fields.
5. An Error 47 has been fixed when viewing a file by a sort which is a 1 byte field.
6. A problem has been corrected when viewing an MSORT file by a secondary sort where the
lightbar would get "stuck" on the bottom row of the view if the first record was
on the top row.
7. An Error 14 has been fixed when using F5 (Rebuild Sorts) and the sort file did not
exist.
8. An Error 42 has been corrected when viewing an INDEXED file by a sort.
9. A problem has been fixed when viewing an INDEXED file and pressing F9 to go into
CONNECT SCREEN. Record (Index) 0 would always be displayed instead of the record that the
lightbar was on when F9 was pressed.
10. A display problem has been corrected when viewing INDEXED files where changing from
sort to primary key would redisplay the view from the end of the file rather than from the
beginning of the file.
11. A problem has been fixed when using the F8-LIST function where the columns that
printed were the columns that were saved in the view and not the columns that may have
been dynamically changed or re-arranged while in the view.
|