+ All Categories
Home > Documents > · PDF file1.2 - New Mnemonics 1.3 - New System Parameters 1.4 - Language -...

· PDF file1.2 - New Mnemonics 1.3 - New System Parameters 1.4 - Language -...

Date post: 06-Mar-2018
Category:
Upload: vuongdieu
View: 219 times
Download: 4 times
Share this document with a friend
33
------------------------------------------------------------------------------ ProvideX Version 4.20 - README File - August 2000 Full Shipping Release (ssn version code 4.20) ------------------------------------------------------------------------------ Section 0) Packaging Changes Section 1) Language Level Enhancements, Additions, & Changes Section 2) WindX Section 3) Nomads Section 4) Graphical Editor *IT Section 5) Utilities Section 6) Activation Programs ------------------------------------------------------------------------------ Section 0 - Packaging Changes 0.1 - Add-On Packages for ProvideX As of this release we are changing the method by which certain speciality features are released. Sage Canada is introducing add-on packages for ProvideX. Add-on packages are separately purchased items which extend ProvideX's abilities. These may be purchased on a Per Serial Number basis. Each add-on has a package number, and requires an activation key to make the feature work. The ProvideX Activation programs: pvxactv.exe, pvxwactv.exe and pvxactv have been enhanced to allow you to easily add these new packages to your sites (see Activation changes later in this document). Activations may be queried from inside ProvideX so software may determine if features are present for the particular installation, and packages may be installed by running the activation program with command line arguments. The add-on packages available as of this release are: Package # - Description 20001) Email Tools - Mime compliant called utilities for generating and sending SMTP Email with formatting and attachments. 20002) ProvideX Web Server - Version 1.3 which is SSL ready. To utilitize SSL with the Web Server you will need the SSL Support add-on. 20003) SSL Support - A TCP/IP level Secure Socket Layer support for the "[TCP]" OPEN specification. Allows you to encrypt your TCP/IP communications. (currently MS Windows only) 20004) Multiple Image type Support - Support for new image formats beyond simply bmp and ico. New formats supported include jpg, png and many more. 20005) Smart List and Drop Boxes - Provides for auto-loading of list and drop boxes within Nomads Panels, based on Nomads Queries, with network efficiency builtin. 20010) BBx Keyed File Read - Provides the ability to read BBx keyed data files directly without having to convert the data or use ODBC or other middleware components. Note: BBx is a registered trademark of Basis International Ltd. Package documentation is available separately.
Transcript

------------------------------------------------------------------------------ ProvideX Version 4.20 - README File - August 2000 Full Shipping Release (ssn version code 4.20)------------------------------------------------------------------------------

Section 0) Packaging Changes Section 1) Language Level Enhancements, Additions, & Changes Section 2) WindX Section 3) Nomads Section 4) Graphical Editor *IT Section 5) Utilities Section 6) Activation Programs

------------------------------------------------------------------------------Section 0 - Packaging Changes

0.1 - Add-On Packages for ProvideX

As of this release we are changing the method by which certain speciality features are released.

Sage Canada is introducing add-on packages for ProvideX. Add-on packages are separately purchased items which extend ProvideX's abilities. These may be purchased on a Per Serial Number basis.

Each add-on has a package number, and requires an activation key to make the feature work. The ProvideX Activation programs: pvxactv.exe, pvxwactv.exe and pvxactv have been enhanced to allow you to easily add these new packages to your sites (see Activation changes later in this document). Activations may be queried from inside ProvideX so software may determine if features are present for the particular installation, and packages may be installed by running the activation program with command line arguments.

The add-on packages available as of this release are:

Package # - Description 20001) Email Tools - Mime compliant called utilities for generating and sending SMTP Email with formatting and attachments. 20002) ProvideX Web Server - Version 1.3 which is SSL ready. To utilitize SSL with the Web Server you will need the SSL Support add-on. 20003) SSL Support - A TCP/IP level Secure Socket Layer support for the "[TCP]" OPEN specification. Allows you to encrypt your TCP/IP communications. (currently MS Windows only) 20004) Multiple Image type Support - Support for new image formats beyond simply bmp and ico. New formats supported include jpg, png and many more. 20005) Smart List and Drop Boxes - Provides for auto-loading of list and drop boxes within Nomads Panels, based on Nomads Queries, with network efficiency builtin. 20010) BBx Keyed File Read - Provides the ability to read BBx keyed data files directly without having to convert the data or use ODBC or other middleware components. Note: BBx is a registered trademark of Basis International Ltd.

Package documentation is available separately.

All the files necessary to make features work, are shipped automatically with each copy of ProvideX and WindX. The DLL's necessary to make SSL work, are subject to the restrictions imposed by law both by the exporting and by the importing country.

Since the components required for the packages are shipped with ProvideX and WindX, you will need to supply the Serial Number to which a package is to be added to, at the time you purchase the add-on. You will then receive an Activation Key for the package, which when installed on the system with the Serial Number supplied will activate the specific feature.

Packages will be available for Trial purposes, however they will only function for 25 days, after which they will be un-usable for 10 days, before they can be re-activated as Trial's.

Activation keys for Package features are tied to the Serial Number, but not to a specific machine. Therefore if it becomes necessary to reactivate the ProvideX itself on the machine, the original package activation keys may be re-entered to reactivate the package.

Activation keys for Package features will start with an "R" unless special conditions are required.

The program code for a package feature, which is built from ProvideX Programs, will not be list-able, edit-able nor save-able. Access to source code for these features will require a security/non-disclosure agreement and special activation keys obtainable only on direct request to Sage Canada Ltd.

An online activation system will be available in the near future for people who wish to obtain Trial activations for package features.

Please contact your Distributor for sales, pricing and ordering information.

Note: Due to the nature of this packaging change, any current owners of the ProvideX WebServer will need to contact their dealer/distributor and obtain an add-on package key for their installation. The web server software included in this release will not function until a correct package activation is performed.

0.2 - Workstation Setup software (wrkset32.exe)

With the increase in the size of the ProvideX installation file (pvw32???.exe) due to the number of increased features and DLL's we have separated the workstation setup software (wrkset32.exe) from the normal ProvideX Windows installation packages.

The Workstation Setup will now be available as a separate download. Because it is separate, we are renaming it so that the version number will appear in the name wsw32VVV.exe where VVV represents the version number.

By making this file available separately the size of the main ProvideX installation will be smaller.

------------------------------------------------------------------------------Section 1 - Language Level Enhancements, Additions, & Changes

1.1 - New Language Features 1.2 - New Mnemonics 1.3 - New System Parameters 1.4 - Language - Changes/Corrections 1.5 - Operating Systems no longer supported

------------------------------------------------------------------------------1.1 - New Language Features

1.1.1 - Button Enhancements 1.1.1.1: Flat Button Support. Flat Buttons show no raised outline unless the mouse is over the button or the button is pushed. You may select a flat button by specifying an option flag of "F" in the OPT= of any of the four button style creation commands. BUTTON 10,@(10,10,10,2)="&OK",OPT="F"

1.1.1.2: Bitmap Button Support. You may now custom design buttons of any colour, style or shape by controlling the image that appears as a button. The image is a bitmap, whose width is divided by four. Each of the four divisions within the image represent what the button will look like in a particular state. To select a Bitmap Button, specify an option flag of "B" in the OPT= of any of the four button styles.

The image is divided into quarters which are: 1st quarter: Image of the button when disabled. 2nd quarter: Image of the button when in its normal state. 3rd quarter: Image of the button when the mouse is over the button. 4th quarter: Image of the button when it is pushed down.

Note: The above two new button attributes are valid for all four button styles -- BUTTON, RADIO_BUTTON, CHECK_BOX and TRISTATE_BOX. For the bitmap button attribute, where a button style allows for more than one bitmap to be specified such as a check_box or tristate_box, each of the specified bitmaps are broken into quarters. Therefore for the TRISTATE_BOX you could have three bitmaps, each with four associated images, for a total of twelve bitmaps.

1.1.2 - 32Bit ProvideX Program Sizes The maximum program size has increased from 64K per program to the maximum the OS allows, or 2GB's whichever is smaller, for all platforms which support 32bit values (not MS-DOS or Windows16-bit.)

Note: There is still a limit of 64999 maximum line numbers. Programs created beyond 64K will not run on 16bit platforms.

Also See New System Parameters: 'PZ' Set on to suppress the warning about program size. 'AI' Set to Line Number increment value for LOAD of ASCII programs

1.1.3 - Key Definition Changes, New Attributes for Keys 1.1.3.1: Case Insensitive Keys. You may now force individual key segments to upper or lower case during the key definition of a file. The keys within the file will be written and automatically converted to the case specified. This allows for Case Insensitive Key Searching. To force a key segment to upper case, specify a "C" in the segment definition. To force a key segment to lower case, specify an "L". Example Key definition: KEYED "filename",[1:1:10:"C"],[2:1:40:"L"]+[1:1:10:"C"]

Note: The conversion tables for Upper and Lower case conversions, are located in the ProvideX message file *MLFILE.EN. These tables may be set using the DEF UCS() and DEF LCS() functions, and may be retrieved using the UCS(*) and LCS(*) functions.

1.1.3.2: Automatic Accent Translation on Keys. You may now force a key segment to translate accented characters to their non-accented character counterpart. This allows for the sorting of multi-lingual characters into a single unified sort sequence. To specify that a key segment is to be translated, include a "T" in the key definition option: Example Key definition: KEYED "filename",[1:1:40:"T"],[2:1:40:"TCD"]

Note: The conversion tables for Accent conversions, are located in the ProvideX message file *MLFILE.EN. The table may be set using the new DEF CVS() function, and may be retrieved using the CVS(*) function.

1.1.3.3: Unique Keys. You may now declare a key segment as Unique with a "U" in the key definition option of the segment. This provides the ability for alternate key chains to be forced as Unique (no duplicate keys allowed) such that attempting to write a record where writing a record that would attempt to create a duplicate key in a key chain declared as Unique, will now report as an ERR=11 duplicate or missing key. Note: The primary key must always be unique. If any segment in a key definition is declared as Unique, then the entire key will be unique.

Note: Options for Case Insensitivity, Translate, and Unique may be combined with each other, and with other current key definition options such as Descending.

1.1.4 - SUB() New Substitute Function. This function will do substitution within a string.

SUB(searchstr$,findstr$,replacestr$ [,occurrence][,err=lineref]) Returns: STRING

Where: Searchstr$, is a string expression containing the string to search. Findstr$, is the text within the searchstr$ to look for. Findstr$ is required and may not be null. Replacestr$, is the text to replace the findstr$ with. Replacestr$ is required, but may be null. occurrence (optional)

0 - All occurrences (assumed if not given) >0 - Specific occurrence, searching left to right within the string. IE: 1=first occurrence, 2=second occurrence. <0 - Specific occurrence, searching from right to left within the string. IE: -1=first occurrence from end, -2=second occurrence from the end of the string etc.

Note: Searches are performed without regard to case. If Findstr$ is null, then an error=46 is generated. If no substitutions occur, no error is generated.

1.1.5 - TCP/IP Enhancements 1.1.5.1 - TIM=nnn allowed on OPEN of TCP/IP channel. You may now specify a timeout value during the open of a TCP/IP channel. OPEN(chan,tim=3)"[tcp]ip;socket"

1.1.5.2 - KEEPALIVE attribute. A new attribute on the OPEN of a TCP/IP channel. This feature only works on the client side TCP/IP connections, and is ignored if specified on the host style connection. Using this attribute forces the OS to send keep alive packets to the host, thereby keeping TCP/IP pipes open forever on TCP/IP connections which time out due to inactivity. OPEN(chan)"[tcp]ip;socket;KEEPALIVE"

1.1.6 - System Menu Enhancement. You may now add custom items to the Drop Down menu that appears when you click on the icon in the upper left corner of the base ProvideX Dialogue window. Items may be added to this menu list, by defining them in your INI file. You may add up to 10 items to the menu, with the names of "SysMenu1" thru "SysMenu10".

The format of the lines in the INI file is:

[Config] SysMenu1=<Menu text>=<ctl>

Where <Menu text> is the text of the menu item. Prefix the Selection letter with a & to have it underscored. <Ctl> is the CTL value to generate when the menu item is selected.

Sample: (in \windows\pvx.ini)

[Config] SysMenu1=&Sleepy=1001 SysMenu2=&Dopey=1002 SysMenu3=&Bashful=1003 SysMenu4=D&oc=1004

1.1.7 - Message Library Enhancement. Multiple Message Library Support. You can now have multiple Message libraries open. When using the MSG(...) function the libraries are searched in order until a match is found.

MESSAGE_LIB filename$ [,NBF=nnn][,ERR=lineref] Removes all entries from message library list and adds filename$ as

the library to search. An error is generated if the filename$ cannot be properly opened. The NBF allows the specification of the number of buffers to allocate. Filename$ may contain one or more message lib filenames, each SEP separated, thus allowing the entire list to be reset in one command.

MESSAGE_LIB ADD filename$ [,NBF=nnn][,ERR=lineref] Add filename$ to the top of the list of libraries to search. An error is generated if the filename$ cannot be properly opened. The NBF allows specification of the number of buffers to allocate.

MESSAGE_LIB DROP filename$ [,ERR=lineref] Removes the specified filename$ from list. An error #12 is generated if filename$ is not in the list.

MESSAGE_LIB POP [,ERR=lineref] Removes the top filename$ from the list. An error #13 is generated if the list is empty.

filename$ - Is a string expression or literal of the filename which may or may not include path.

MSG(*) - Returns the current message_lib settings. If more than one message library exists, the MSG(*) function will return all the filenames in search order, each separated by the default field separator (SEP).

1.1.8 - Icon Support. ProvideX now supports ICONS in addition to Bitmaps. A bitmap may be specified in the 'PICTURE'() mnemonic or within {} curly braces as used in conjunction with GUI objects.

In either of these two cases, you may now tell ProvideX to use an ICON as opposed to a bitmap. The icon filename must end in .ico You may also specify the icon name with a leading ! (exclamation mark) to signify an internal icon, but this causes ProvideX to search for the icon file in the *BMP directory only. There are no internal icons in the ProvideX executable, nor do we currently support retrieving icons from either resource libraries or other system dll/exe's.

The ICON= within the INI file [Config] section has also been enhanced, so that you may specify an existing .ico file as the ICON to use for your application. It is no longer necessary to put the icon into a resource library DLL and reference it by name to have your icon used. Simply specify the path and file name of your icon file ending in .ico.

Note: Icon files often have extra images within them for different sized icons and color depths. If you wish to use a .ico file with ProvideX, it can only have one image within it.

1.1.9 - ListView Enhancements for ReportView Type of LIST_BOX (opt="r"). 1.1.9.1 - Colour Support. The ReportView type LIST_BOX now supports colours on a per column basis. Colour mnemonics may proceed the data within the column, and may also be intermixed within the data itself allowing for multiple foreground /

background colours per column. If a background colour mnemonic proceeds all the data in a column then the entire background of the column will be set to that colour.

1.1.9.2 - Sort Arrows. The ReportView type LIST_BOX will display directional sort arrows in the column title when a sort is initiated by clicking on the column title, or a sort is forced via the 'sort property.

1.1.9.3 - Full Line Highlight / First Column Highlight. The ReportView type LIST_BOX now supports first column highlight and full line highlight.

There are two methods of switching the highlight style for ReportViews.

The PRINT MNEMONICS '+V' and '-V' automatically turn on and turn off full line highlight respectively throughout all subsequent drawing operations. By printing either of these mnemonics you may adjust the highlight style for your application without the need to modify each occurance of a report view used in your app.

You may also specify a "V" (full Line) or "v" (first column) within the OPT= properties during the creation of the report view. This allows you to control the highlight style on a per object basis, and overrides any systemwide use of the print mnemonics '+V' & '-V'.

Note, when the full line highlight is used, the user may click in any column to highlight the row. With 1st column highlight, the user may only click in the 1st column.

1.1.10 - MULTI_LINE Enhancements. 1.1.10.1 - Added support for "!" within the format specification on numeric multi_lines to indicate that the field should be displayed BLANK if the value is 0. NOTE: This should not be used with fields that could ever be less than 1 since you could not enter the decimals only (The system will blank out the value when its 0.0).

1.1.10.2 - Added OPT="t" to support the use of the TAB Key within a multi_line.

1.1.11 - MessageBar Enhancements. 1.1.11.1 - Left Mouse Click Support within 'MESSAGE'() bar areas has been added. We will now return CTL value events when the user clicks within the message bar. Since the message bar may have up to 4 different areas, each area has been assigned a different CTL value. The separate areas are counted from left to right. The event occurs on the button UP only. 1st area returns CTL=-1400 2nd area returns CTL=-1401 3rd area returns CTL=-1402 4th area returns CTL=-1403

1.1.11.2 - Right Mouse Click Support within 'MESSAGE'() bar areas has been added. (As Above) The event occurs on the button UP only. 1st area returns CTL=-1410 2nd area returns CTL=-1411 3rd area returns CTL=-1412

4th area returns CTL=-1413

1.1.12 - ToolBar Mouse CLick Enhancement. Mouse Click Events are now supported within the TOOLBAR area. A Left Mouse Button Up Event returns CTL=-1409. A Right Mouse Button Up Event returns CTL=-1419.

1.1.13 - Additional SEP= support. 1.1.13.1 - Added SEP= logic to the READ DATA directive as in: READ DATA FROM X$,SEP=char$ TO... Note that if the READ DATA is using a REC= clause as well as the SEP=, then the REC= *MUST* appear before the SEP= clause.

1.1.13.2 - The SEP= option has been added to the REC() function as in: REC(IOL=0010,SEP=","). Like the READ DATA, if a REC= clause is given, it *MUST* precede the SEP= option.

Note: At present the SEP=* (dynamic field separators) are *NOT* supported for either of these functions.

1.1.14 - EVS() EVN() Functionality Enhancement Both the EVS() and EVN() functions have been enhanced to provide the ability to return a specified value if the evaluation fails with an error during execution. New Syntax: EVS(strexpr$ [,value$] [,err=lineref]) EVN(strexpr$ [,value] [,err=lineref])

If a VALUE($) is supplied to either the EVS or EVN function, and the evaluation of the strexpr$ fails at run-time with any error OTHER THAN a syntactical error, then the error will be ignored and the value($) supplied will be returned instead. eg: PRINT EVN("40/0",0) would return the value of 0 rather than generating the err=40. eg: A=9999; PRINT EVS("str(a:""##0"")","<OverFlow>")

1.1.15 - New Image Format Support. (Available as an add-on) Support for multiple file formats for displayable pictures has been added to ProvideX. The new image formats supported are: JPG, BMP, TIFF, PNG, PCX, PAX, WMF, EMF, APM and TGA.

The new image formats may be used anywhere you can currently use a bitmap within the ProvideX Environment, such as 'PICTURE'() and GUI Objects that use the {} picture declaration, such as BUTTON, LIST_BOX, and within objects like TreeView and ListView, etc.

By default BITMAPS and ICONS are supported automatically in ProvideX and WindX versions 4.20 and higher. The new Image Format Support for formats other than bmp and ico require the use of a special DLL, named PVXIMG.DLL. This new DLL, extends the supported image formats in ProvideX and WindX, if it exists and is in the same directory as the pvxwin32.exe executable. *************************************************

This DLL is NOT included with ProvideX, but will be available as either a separate product or as part of a package of add-on tools. *************************************************

1.1.16 - New Keywords for use in FIN. Two new keywords for the FIN function have been added: FIN(chan,"MAXKNO") returns the maximum KNO value allowable for the file. FIN(chan,"CURKNO") returns the current KNO in effect.

1.1.17 - PREFIX Enhancement. The PREFIX command now allows for the use of * and ** as a wild-card style character. This provides support for the use of filename extensions without modifying your source code.

Using a Single Star (*) within a filename in a PREFIX, causes ProvideX to insert the filename from the OPEN command in place of the Star (*).

Using two Star's (**) within a filename in a PREFIX, is the same a using one Star (*). Except the substitution will only occur if a simple filename is used on the OPEN. No substitution will be done if your program is attempting to open a complex filename. A simple filename, is a filename with NO file extension, a complex filename has a file extension.

PREFIX "c:\somedir\*.PRG" OPEN(chan)"FOOFOO"

Will actually scan the disk for "c:\somedir\FOOFOO.PRG" if it is found it will open that file, else it will attempt to find "FOOFOO".

PREFIX "c:\somedir\**.PRG" OPEN(chan)"FOOFOO" OPEN(nahc)"MyFile.Dat"

The first OPEN will look for "c:\somedir\FOOFOO.PRG" then for simply "FOOFOO".

The second OPEN will only look for "MyFile.Dat". As MyFile.Dat is a complex filename, and two stars were specified in the PREFIX command, the attempt to open MyFile.Dat with an extra extension of .PRG is ignored.

This enhancement was done primarily for Windows 2000. The Microsoft Certification requirements for Windows 2000, require that all files have file extensions. The above enhancement allows you to rename your files on disk with a common file extension, without modifying your program code.

1.1.18 - New Dynamic Properties 'SELECTOFFSET 'SELECTLENGTH 'SELECTTEXT These three new properties allow you to query, insert or delete, highlighted text within an GUI input region of types: MULTI_LINE, VARLIST_BOX, VARDROP_BOX. The properties report the current highlighted portion of the data entry field; where the highlight begins within the data, or the current cursor location if not highlighted. The number of characters currently highlighted, and the text contained by within the highlight.

The three properties allow for programatic replacement of text within a GUI

input region, and for concepts such as programatic cut, copy, and paste.

1.1.19 - Specialized Column Sorting support in ListView style LIST_BOXes. Columns may be specified as either numeric or dates based on the contents of the format (FMT=) specification.

1.1.19.1 - Numerical Column Sorting A column which contains numerical data may have either a # or an N following the [ ] 's within the FMT= definition of the ListView style LIST_BOXes.

Example: ,FMT="[Amount]#R10" Formatted Numeric Data, Right justified with a column width of 10 characters. or ,FMT="[Amount]NC10" Non-formatted Numeric Data, Centre justified with a column width of 10 characters.

Using a "#" (pound sign) signifies that the data being passed for the column has been formatted with a STR() function, and contains a consistent number of decimal places as applied by a format mask. As the data has been formatted the decimal place recognition used for the sorting will adhere to the system parameter settings (see 'DP').

The use of "N" indicates the data is unformatted numerics, which may contain differing numbers of digits after the decimal point, and may contain the default decimal point character of "." (period) only.

Note: Support for numerical sorting will be added to Nomads in a future version.

1.1.19.2 - Date Column Sorting A column may be sorted as a Date. To indicate that a column contains data that is to be treated as a date for sorting purposes, you must follow the [ ]'s in an FMT= column definition with a series of Y M, and D characters indicating the ordering of the date as it appears within the data. Only one of each letter D, M or Y may be used in any order you wish (DMY, MDY, YMD etc). The data passed within the column will not be translated or formatted in any way, but rather will be recognized and sorted as dates. The data must contain some sort of alpha separator between the individual values, such as "-" (dashes), "/" (slashes) etc.

For example:

DMY will work for 15-01-99, 01-JUL-2000, etc.

The data will be parsed into up to three fields. Any alpha field encountered will be considered a month name and must match the month names currently being used by the DTE() function.

Note: Support for date sorting will be added to Nomads in a future version.

1.1.20 - Enhanced Function for Accent Conversion Tables (See Key Segment Enhancements). 1.1.20.1 - The CVS() function has been enhanced to allow for the syntax

CVS(*) which will return the current 256 byte Accent translation table.

1.1.20.2 - A new DEF CVS() function has been created for setting the Accent Conversion table. The syntax is: DEF CVS(new_table$)

Where new_table$ is a 256 byte ASCII table representing the characters to translate the Accents to. The value of each byte to be translated is used as an offset into the table. The character at the particular offset is what will be used in place of the original character.

1.1.20.3 - The CVS(strexpr,value) has been enhanced to allow for a value of 512 which will cause ProvideX to translate the strexpr provided based on the accent translation table.

------------------------------------------------------------------------------1.2 - Language, New Mnemonics

1.2.1 - Mnemonics '+V' and '-V' These print mnemonics automatically turn on/off Full line highlight throughout all subsequent drawing operations. By printing either of these mnemonics, you may adjust the highlight style for your ReportView Style ListBoxes in your application without the need to modify each occurrence of the report view used in your app.

1.2.2 - Mnemonic 'SHOW'() added value three. PRINT 'SHOW'(3) This new parameter for the 'SHOW'() mnemonic will restore a hidden window (from a 'SHOW'(-1)) to its previous state of either minimized, maximized or normal.

1.2.3 - Mnemonic 'RP' - New mnemonic for Terminal Read (see 'TR'). This mnemonic performs the same function as the 'TR' (Terminal Read) mnemonic, except that it reports values from the current cursor location to the end of the screen. 'TR' returned the screen contents from 0,0 to the current cursor location.

1.2.4. - Mnemonic 'ZX' - Return Attributes as per BBx. There was an inconsistency in the attributes format and the FIN values when attempting to run ProvideX with code designed for BBx. The Attributes as returned when issuing a 'TR' mnemonic in graphics mode had the foreground and background values reversed and the window scroll region position was not correct.

If you print the 'ZX' mnemonic PVX will report the attributes and FIN values consistent with BBx.

Note: BBx is a registered trademark of Basis International Ltd.

------------------------------------------------------------------------------1.3 - Language, New System Parameters

1.3.1 - 'DF','DL','DW' - Enforced Delay Times on Event. These new system parameters allow you to add automatic delay times to your

application without having to insert WAIT statements into your application. Using these parameters causes ProvideX to return control to the OS for longer periods of time.

Each parameter takes a numeric value from 0 to 1000: A value of 0 indicates no delay is to be done. (default for all) A value of 1 indicates a forced WAIT 0 when the event occurs All other values from 2 through 1000, indicate the number of 100ths of a second to delay on each event occurrence.

'DF' = #hundredths of a second to wait after each 'FF' 'DL' = #hundredths of a second to wait after each 'LF' (implied or explicit LineFeed) 'DW' = # hundredths of a second to wait after 'WI' is exhausted

Note that the 'DF' and 'DL' delays only apply to 'LF' and 'FF' when sent to a device, windows print spooler, or a WindX connected file.

1.3.2 - 'ZP' - Zero Length Program Files Acceptable. The system parameter 'ZP' has been added to allow empty program files to be considered valid. When OFF an ERR=18 is issued if you attempt to RUN/CALL/LOAD/PERFORM an empty file. When ON the error will be ignored.

1.3.3 - 'PZ' - Suppress Program Size Warning for programs over 64K. When ON, ProvideX will NOT warn you if your program size is larger than 64K. When OFF, you will receive a warning when you attempt to save your program. Default is OFF.

1.3.4 - 'TX' - Set default String Template Field Separator to LineFeed. This new system parameter (when ON) causes BBx style string templates that use the (*) format to default to a LF ($0A$) separator rather than a $8A$ separator. When OFF the BBx style string templates will continue to default to $8A$. Default is OFF.

1.3.5 - 'AI' - Automatic Line Numbering Increment ('AI'=nnn) This parameter sets the default line numbering increment when a LOAD/RUN/CALL/PERFORM of an ascii text program occurs, or when you use the AUTO command. The default is 'AI'=10, i.e. auto increment by 10. Previously ASCII text programs were always numbered by 10, thereby allowing for only 6500 lines. Note: 'AI' is reset to the default value when a START is issued.

1.3.6 - '1U' - Force Session to use a User Slot. If ON, ProvideX will try to use a dedicated user slot for this process. In effect this removes the shared nature of PVX under windows or WindX whereby the same terminal is considered a single user regardless of the number of invocations. This also effects the FacetTerm sharing. When OFF, the session will attempt to use shared user slots. A new TCB() value of 27 indicates what User Slot Number this session is using, and whether or not it is a dedicated or shared. Default is OFF.

Note: Once '1U' is set it ON, it cannot be unset, unless the application terminates.

New TCB(27) returns: >0 = Dedicated non-shared user slot number being used <0 = Shared user slot number being used

0 = Task is not being counted in the user slot table (background task)

1.3.7 - 'PD' - Default Precision for Current Session.('PD'=nn) This system parameter sets the default number of decimal places for Precision for the current session. The default value is 2. Note, this parameter will be reset to 2, if a START command is issued.

1.3.8 - 'TB' - Toolbar Size Matches Number of Window Columns When OFF, the Toolbar width and co-ordinates are calculated based on 80 columns, regardless of the number of columns in the window. (Default) When ON, the toolbar width and co-ordinates are calculated based on the number of columns in the window.

1.3.9 - 'EL' - Encryption Level for Password Protected Programs ProvideX now supports multiple encryption levels for password protected programs. This provides for new levels of password protection on programs.

The 'EL' system parameter will return the current level of program encryption. The new encryption levels are 0 to 4 (5 levels in total).

Versions of ProvideX prior to 4.20 understand only encryption level 0 and therefore may only load/run programs that have been password protected with encryption level 0.

ProvideX version 4.20 understands all 5 encryption levels, and may load/run any password protected programs created with any encryption levels from 0 through 4.

Sage Canada Ltd., will control the default encryption level that any version of ProvideX will ship with, as well as what levels of encryption may be set. ProvideX version 4.20 will ship with the encryption level set to 0 by default. However the next release of ProvideX may increase the default encryption level.

The 'EL' system parameter may be used to either find out what the current encryption level is, via PRM('EL') or to set the encryption level to a new value.

As of ProvideX 4.20 you may only set the encryption level to 0 or to 1. You may not set 'EL' to any higher value, until such time as Sage Canada makes those levels available either by releasing a new version of ProvideX with another level available, or by contacting Sage Canada Ltd. and working out an agreement to use a different level.

By using different levels of encryption, your password protected software will use different encoding schemes, making it more difficult for third party software to decode your password protected programs.

By forcing the encryption level to 0, you will be able to write and password protect programs on ProvideX version 4.20 or higher, and send them to people who are running on any version of ProvideX prior to 4.20.

------------------------------------------------------------------------------1.4 - Language - Miscellaneous Changes/Corrections

1.4.1 - Right Mouse Button Behaviour Change. Right Mouse button clicks have been changed to no longer issue CTL=4. A Right Mouse Button Down will issue CTL=-1802, while the Right Mouse Button Up will issue CTL=-1803 Changed in *DEV/WINDOWS and *DEV/WINTERM

1.4.2 - Bitmap Printing change. The printing of Bitmaps in ProvideX has changed to use a newer series of MS-Windows API calls. This corrects problems with incorrect bitmap printing and incorrect gray-scaling.

Note: Due to the nature of this change, ProvideX will no longer run on MS-Windows NT version 3.51. As of this ProvideX Release, MS-Windows NT 3.51 is no longer supported.

1.4.3 - ProvideX Start-up Sequence change when using Temporary Activation keys. There was an issue when running on a Temporary Activation Key wherein ProvideX would a) Wait on unix startup for 5 seconds or b) display a message box in windows during startup. This caused a problem when running *NTHOST on any other application that attempted to spawn new tasks. The code was modified to *NOT* display/pause if running a temporary key AND there is a program name on the command line (unless there is 7 or less days left in the activation period).

This change allows Temporary Activation Keys to run the *NTHOST/*NTSLAVE and other background and spawned processes for 23 days before needing a permanent activation key.

1.4.5 - Corrected Err= logic for user defined functions

1.4.6 - The use of string templates where the variable name declared in the template was missing would produce a GPF, this has been corrected. e.g. DIM x$:":c(3*),x:c(4*)"

1.4.7 - Corrected a problem whereby multiple START's would lose items in the System menu.

1.4.8 - It is no longer necessary to use ,BSZ= during KEYED file definition, if defining record sizes over 4000 bytes. ProvideX now calculates the minimum block size necessary.

1.4.9 - Corrected the screen location when issuing a 'MOVE' of a Dialogue box. If you created a 'DIALOGUE'(4,5,10,10,"HELLO"), then issued a 'MOVE'(4,5) the dialogue would move up as well as a bit to the left.

1.4.10 - Corrected a error caused by using FIN(0,"KKKK") when using WindX.

1.4.11 - Eliminated extra trailing slash from a DIR("C:")

1.4.12 - Windows 2000 introduced a problem whereby Child Windows (including 'WINDOW') could not be made "active" (highlighted title bar). This in turn caused problems with OnFocus events. This has been corrected, but due to the nature of the correction these types of windows will only remain active for up to three days at a time.

1.4.13 - Corrected a GPF when using huge exponents. (PRINT 2^1028)

1.4.14 - Added BBx string template variable name validation. First character must be A to Z or underscore. All others must be A to Z, 0 to 9, period, or underscore.

1.4.15 - Corrected click location for MessageBar CTL values outside of Messagebar region (far right). (Beta Correction)

1.4.16 - Corrected BEGIN/END logic for SELECT when using either Descending, Case Converted, or Accent Converted Key chains. This corrects a previous bug, where the SELECT was comparing the key obtained with the END key given incorrectly.

Note: Several people have been seen to have code such as the following where the key used is a descending key, or has descending segments within the key: SELECT * FROM filename BEGIN item$ END item$+$FF$

The above no longer works, as it was incorrect originally. The code should have been: SELECT * FROM filename BEGIN item$ END item$+$00$

In a descending key situation, the END value should be lower than the BEGIN value. Because ProvideX pads descending keys to their full length with $FF$ the BEGIN value would have been item$+$FF$ and therefore the END should have been END item$+$00$ so that the END was less than the BEGIN key value. The BEGIN/END with descending key values now works correctly.

1.4.17 - Added slashes in the lower right corner of resizeable windows. (Win98 Look & Feel) Slashes are suppressed in Maximized windows.

1.4.18 - Corrected a GPF when using the KEP() function on an empty *MEMORY* file.

1.4.19 - Corrected a GPF when using either 'CPI'(0) or 'LPI'(0)

1.4.20 - Corrected Radio_button 'ENABLE property, not enabling / disabling the control properly including graying. Note: You must set 'ID first.

1.4.21 - Removed the button that appeared in the Windows TaskBar when a tool tip was being displayed.

1.4.22 - Added ignore of WM_CLOSE message if running on behalf of an NT service. Note: This change allows ProvideX to run as a NT Service via SERVANY, and remain running when a user logs in or out of the NT Console.

1.4.23 - Added a special check if using Link file named "LPT1"

1.4.24 - Corrected a memory leak of a several bytes each occurrence when passing arguments to a CALL'd program across a WindX connection. (CALL "[WDX].....",arg1$)

1.4.25 - Corrected highlight in GUI objects when doing an OnFocus jump to the GUI object using ALT-xxx Accelerator keys.

1.4.26 - Corrected an issue whereby BUTTONs in a WindX session would sometimes "stick" down when pressed. Issue was more noticeable in Citrix and MS-Terminal Server based WindX sessions.

1.4.27 - Enhanced the type ahead buffer logic for WindX.

1.4.28 - Corrected ERR= logic. In a few specific cases, the err= was not being followed. The error instead was reported at console mode or followed the generic error trapping. This has been corrected.

1.4.29 - Changed ListView to case insensitive matching for keystroke jumping within the list.

1.4.30 - Corrected *MEMORY* file handling of KEP() for both 'BX' and non-'BX' mode.

1.4.31 - Enhanced *MEMORY* file, to allow EXTRACT to be used without advancing key pointer.

1.4.32 - Corrected an error 0 issue involving CALLing or PERFORMing a program when there were insufficient permissions to read the program file on disk. The error 0 was not always reported.

1.4.33 - Made allowance for spaces being used in SQL table names when used by the internal SQL generation logic.

1.4.34 - Changed Listview to no longer signal an event when listview is set to AUTO and the app does a LIST_BOX WRITE

1.4.35 - Changed KEYED LOAD to report invalid file type when used on SORT files.

1.4.36 - Change to report ISZ= usage in an OPEN to an [ODB] data source to report an error.

1.4.37 - Corrected the use of UNLOCK on a [DLL] type channel.

1.4.38 - Increased the Default record limit from 4096 to 10240 for composite IOLISTs when using the CHR type field definition.

1.4.39 - Enhanced the internal [ODB] system. Integration for SQL is tighter and faster.

1.4.40 - Enhanced file OPENs for files which are found in a PREFIX FILE. An OPT= specified in the OPEN to such a file will have the OPT= value appended as additional options to the true file being opened from a file found within a PREFIX file.

A PREFIX FILE allows for two fields within the data record. The first field is the path/filename of the real file to open. The second is an Options field. These Options are put into the OPT= for the OPEN of the real path/filename. The above enhancement allows an OPT= on the original OPEN, where the additional OPT= is appended to any of the Options from the second field of the PREFIX FIle Record.

Example: PREFIX FILE contains the following: Key="GLMAST", DATA RECORD="[ODB]DSN;TABLE"+sep+"KEY=field1"

If you OPEN(chan)"GLMAST" internally ProvideX will:

OPEN(chan,OPT="KEY=field1")"[ODB]DSN;TABLE"

If you OPEN(chan,OPT="REC=somedata")"GLMAST" then internally ProvideX will: OPEN(chan,OPT="KEY=field1;REC=somedata")"[ODB]DSN;TABLE"

1.4.41 - Corrected a GPF caused when a BEGIN was encountered while a SELECT was active.

1.4.42 - Corrected a SETMOUSE issue when using condensed print on the console screen.

1.4.43 - Corrected a Font Resource leak

1.4.44 - Dropping to the Console Prompt in a Hidden Window has changed. ProvideX will now check if the current window is hidden when it is about to drop to console mode. If the window is hidden then it will be made visible automatically.

1.4.45 - Corrected a GPF when attempting to READ DATA to an Array, where that Array had previously been DIM'd as a string template.

1.4.46 - Corrected the 'FMT$ dynamic property for multi-lines. where a format mask with all zero's, would be reported back as all null's ($00$).

1.4.47 - Added Auto-Close of WindX window, if the user clicked in the upper right hand corner, when at the console prompt. This change adjusts WindX's behaviour to match a locally running instance of ProvideX.

1.4.48 - INI file handling - Behaviour Modification. We have changed the search rules for the default PVX.INI file and for any INI file specified on the command line which does not have an explicit path.

The new search pattern is: 1) Check the Windows Directory (\Windows or \Winnt) 2) Check the Current Directory 3) Check the directory where the pvxwin32.exe is currently being run from.

When ProvideX needs to update your INI file for items such as last WindowState, it will update the INI file in the location in which it was found during the initialize state, based on the search pattern above.

If no INI file was found during the initialization of ProvideX and ProvideX needs to update the INI, then it will create the INI itself, in the directory where the pvxwin32.exe program was executed from.

The PVXWACTV.EXE, ProvideX Activation Program will no longer create the PVX.INI file. Therefore there will be no LIBRARY= specified by default on a new installation. To locate the lib directory, and therefore the ProvideX Activation Key file (ACTIVATE.PVX), we will first check for an INI file (either specifically named or the default name PVX.INI) and if not found, then the Activation Key file will be assumed to be directly below the location that the pvxwin32.exe executable is being run from.

These changes allow for multiple applications, and applications from different vendors to co-exist on the same system with simpler installation and less chance settings interfering with each other.

This change also provides for Windows2000 Compliance, which requires that an application not put files into the windows directory, but maintain them within the applications installation or working directories.

The LIB directory and INI filename for the current ProvideX Session may be found easily by looking at the About Box for ProvideX that is on the drop down system menu, under the icon in the upper left corner of the base ProvideX window.

1.4.49 - Corrected 'SELECTITEM when used with a Multi-Select ListBox. The 'SELECTITEM was returning a base-zero value when it should have been a base one value.

1.4.50 - Made an allowance for the use of a ":" at the end of a filename when opening an LPTn port number directly. LPT1 and LPT1: are now considered as the same device.

1.4.51 - Adjusted the internal ODBC logic to handle out-of-range dates when using date fields of class MAS90.

1.4.52 - Corrected the use of 'ENABLED=0 and 'ENABLED=1 dynamic property, to correct for proper enabling/disabling of graphical objects.

1.4.53 - Allowed a SELECT to a WindX connected file to handle BEGIN/END clauses.

1.4.54 - Added 3 new cursor shapes: 'CURSOR'(10) - Resize Vertical, Up and Down (combined) arrows 'CURSOR'(11) - Resize Horizontal, Left and Right (combined) arrows 'CURSOR'(12) - Not Allowed, Circle with diagonal line through it.

1.4.55 - Corrected the printing of 'LPI'() and 'CPI'() to channel 0 to no longer affect the current window caption.

1.4.56 - Added stricter checking for .INI and .PVX files to ensure that a ProvideX program with those extensions is not corrupted or over-written with INI data, when the program name is specified on the command line, or launched from a windows file association.

1.4.57 - ProvideX will no longer install an automatic file association in MS Windows for files ending in .pvx

1.4.58 - Corrected handling of BREAK command within an IF, BREAK will no longer attempt to break out of blocked style IF. IF expr then { }.

1.4.59 - Added support for BREAK command within a SELECT structure.

1.4.60 - Corrected file times reported by FIN() on UNIX/Linux systems to report file times based on the current time zone, rather than GMT. This keeps the file time reporting consistent with the Windows versions of ProvideX.

1.4.61 - Corrected a GPF, when FIN(chan,"IPADDR") when issued against a

non-TCP channel such as channel=0.

1.4.62 - Corrected an issue where printing a 'picture'() as the first command issued to a *WINPRT* channel would not display the picture.

1.4.63 - Modified the 'LEN property of a multi-line to accept values up to 32000, rather than a limit of 255.

1.4.64 - Corrected an issue where the keyword NEXT within a SELECT/NEXT RECORD construct would be confused with other uses of the word NEXT, such as DOM=*NEXT.

1.4.65 - Modified the KEY=VAR:VAR:VAR specification to cut the variables used to the correct length, if they were longer than the key segment they were associated with.

1.4.66 - Eliminated a GPF when using an expression that concatenates strings together, where the evaluated expression would have a string length beyond 32000 characters. I.E.: DIM X$(32000); Y$=X$+X$+X$

1.4.67 - Eliminated a GPF, when the '*X' mnemonic is declared to use a program, which was not saved in tokenized format.

1.4.68 - corrected a GPF, when using a ,kno=0 in a READ on a SORT file.

1.4.69 - Enhanced ERR=31 handling to allow for entering commands in console mode so that the user does not receive err=31 for each command typed.

1.4.70 - Corrected an issue with beta code of Flat Buttons where clicking an holding down the mouse button while over a flat button, and then moving the mouse off of the button, was leaving the button depressed rather than returning to its normal state.

1.4.71 - Enhanced the TCB() function to return Activation Information. TCB() now supports the following syntax: TCB( package_index , info_reqd [,err=lineref])

Where: Package_Index is a number from 0 to the number of packages installed. Package 0 will always be the ProvideX activation.

Info_Reqd, may be any of the following values: 0 - Actual Package Number (0 is the base ProvideX package #) 1 - The expiry date in the form of YYYYMMDD as a numeric value, and where a value of 0 means no expiry date. 2 - Package Activation Flags (32 Bit flags as a numeric)

1.4.72 - Enhancement to the TCB() function. Additional values available:

TCB(44) - The number of seconds of offset to GMT (Greenwich Mean Time) TCB(45) - Daylight Savings indicator: 0 - not current in Day Savings 1 - Daylight Savings active

1.4.73 - Change to the System Parameter 'TC' - Tip Colour. The system parameter 'TC' setting have changed in that the value 0 which previously was Black, has been modified to now be the current Windows Default Tip Colour as specified in the users Desktop -> Appearance

settings.

'TC'=0 was Black. 'TC'=0 is now Current Windows Default Colour.

The default value for 'TC' has also changed from 11 (Yellow) to 0. So that the tip colour matches the other windows applications on the specific users system.

1.4.74 - Corrected an issue in the MSK() function, when using the ^ (not matching character) followed by one or more characters (+) would go into an infinite loop if no character was found.

1.4.75 - Corrected an issue with the XFA() function where requesting information on a field name which was an array was not returning any info.

1.4.76 - Enhanced IOLIST specification. NUM(n [,scale][,SEP=char]) The NUM() representation within an IOLIST format specification, has been enhanced to include a SEP= clause. This allows for padded numerical fields, followed by a field separator. Note: NUM fields are padded with leading zero's.

1.4.77 - Corrected and Enhanced the OCX/COM/ActiveX interface. This interface now supports a very wide range of objects, where the original interface was limited. Methods and Properties are supported as if they were dynamic properties. Events and Event Handling are not yet supported.

Note: CTL Values of -32001 through -32767 and 32001 through 32767 have now been reserved for use internally within ProvideX for OCX handling. Please do not use the CTL values.

Syntax:

Create link to OCX/COM/ActiveX object:

DEF OBJECT numvar,"object name",err=lineref Associates the object with the current window, yet hidden from view. Once the definition is complete, numvar will contain a handle to the object. This handle may be used to query and set properties and methods.

DEF OBJECT numvar,@(col,row,cols,rows),"object name",err=lineref or DEF OBJECT numvar,@(col,row,cols,rows)="object name",err=lineref Either of the above two syntax statements will associate the object with the current window, and the object will be visible in the coordinates specified.

To query a list of valid properties and methods: PRINT numvar'* where numvar is the numeric variable containing the handle to the object.

To query a specific property: PRINT numvar'property or var=numvar'property

To set a specific property: numvar'property=value

These may be compound for objects within objects: numvar'object'property=value

To set a method: var=numvar'method() or var=numvar'method(arguments)

Two properties exist to help with error handling: 'pvxerror$ gives the text of the error message from the object 'pvxerror gives the numerical error code from the object

To remove an associated OCX/COM/ActiveX object from the screen:

DELETE OBJECT numvar where numvar is a numeric variable containing the handle to the object.

Note: Objects will automatically be destroyed when the window it was defined in is dropped.

Note: Sage Canada will not provide support for any OCX/COM/ActiveX objects, their use nor for their errors/problems/GPF's. Sage Canada will however provide support for problems relating to our OCX/COM/ActiveX interface itself which is the communications tunnel between ProvideX and the OCX/COM/ActiveX object. Use of this interface is at your own risk. Documentation on properties, usage, arguments for methods etc. must be obtained from the object supplier not from Sage Canada Ltd.

Example: 10 DEF OBJECT handle,@(2,2,70,16)="Shell.Explorer" 20 errcode=handle'Navigate2("www.pvx.com") 30 input * 40 DELETE OBJECT handle

Note: The OCX/COM/ActiveX interface as it exists in this release, is not fully supported across a WindX connection.

1.4.78 - ProvideX Activation Program(s): Changes for Package Activation

1.4.78.1 - New command line parameter: -P no arguments The -P signifies that a package activation is to follow

1.4.78.2 - Activation Syntax: PVXWACTV -P -O <pkg_id> -N <Name of Package> where -O is followed by the ID# of the package to activate. where -N is followed by the description of the package.

Example: PVXWACTV -P -O 20000 -N "Some Package Name"

The above will display a message box to the user, which would request the Expiration Date and the Activation Key.

For non-interactive use, you may specify the standard activation command line arguments for expiration and activation key.

Example of non-interactive activation:

PVXWACTV -P -O 20000 -H -N "Some Package Name" -E 0 -K R................

1.4.79 - Corrected an issue where you could receive different sets of CTL values for events when running under WindX as opposed to running locally under regular ProvideX, when using some GUI objects with Automatic signalling turned on.

1.4.80 - Enhanced the TIM=0 logic during an INPUT/OBTAIN under WindX when running on a Windows based server, to always return to the operating system which ensured Windows had an opportunity to notify ProvideX of new events.

1.4.81 - Enhanced the command line argument for INI files, to accept quotes around the INI file name and to allow for spaces within the filename.

1.4.82 - Floating Point Notation will now be reset to standard decimal notation during a RESET operation. RESET would always change the precision, but would leave floating point notation on, it now turns it off.

1.4.83 - Changed the Hot Key, for the Edit -> Mark/Copy in the drop down system menu on the base ProvideX window from M to k. K is consistent with the Windows DOS Command Mode Window.

1.4.84 - Allowed the system parameter 'SZ' to be set up to 32000 (previous limit was 16000). The default for 'SZ' under windows environments has been lowered from 32767 to 32000. The default for 'SZ' under UNIX/Linux environments has been increased from 512 to 32000.

1.4.85 - Corrected KEYED file creation, when using a string for the key definition to allow for option flags on the key segments.

1.4.86 - Corrected a TCP/IP loop when closing the viewer under WindX. Bug was introduced in 4.19y

1.4.87 - Corrected a GPF received when a formatted reportview list box had a null line loaded into it..

1.4.88 - Correction to the new formatting logic for reportview list boxes, where the column alignment was incorrect if a bitmap was specified in the first column of data.

1.4.89 - Increased the 'SZ' maximum allowed value to 32767 to match original values in older versions of ProvideX. Was lowered to 32000 in 4.19y, and has now been restored to its original value.

1.4.90 - Corrected a small problem with SET_FOCUS in an OCX control.

1.4.91 - Corrected GRID SELECT READ and GRID SELECT READ NEXT when under WindX to return values larger than 255 for column and row sizes.

1.4.92 - Corrected a problem introduced in 4.19 where attributes such as 'BU' would be incorrect after a clear screen, or screen repaint condition.

1.4.93 - Corrected READ RECORD(0,siz=1 not recognizing a BREAK condition.

1.4.94 - Corrected the 'MOVE'() mnemonic when used in the base Window of the Base Dialogue, which was not accounting for the size of the toolbar.

1.4.95 - Corrected a problem with getting on focus events for multilines created inside a child window.

1.4.96 - Corrected a problem introduced into 4.19 whereby the insert mode in *E was not being followed on a WindX connection.

1.4.97 - Corrected a problem with RADIO_BUTTONS where it would miss the SHIFT key in a SHIFT-TAB keystroke sequence once in a while, typically when the system was under heavy load conditions.

1.4.98 - Enhanced the printing logic to allow the printing of a 'PICTURE'() as the only item on a page.

1.4.99 - Enhanced the use of the 'CI' (Clean Input Buffer) when running under a WindX enviroment, to ensure that both the input queues on either end and the data in transit would be cleared.

1.4.100 - Corrected a problem accessing Object Properties when within the Windows Command Mode Debugging Window.

1.4.101 - Corrected a problem introduced in 4.19 with not closing Message Library files on quiting ProvideX under UNIX.

1.4.102 - Corrected a problem introduced in 4.19 where the error=0 on a TIM= of an input was not occuring if across a TCPIP pipe.

1.4.103 - Added a missing pixel to the look-and-feel of buttons.

1.4.104 - Added logic to allow the changing of the font on buttons via the 'FONT$ property.

1.4.105 - Added new command: SETDEV (chan) PROGRAM "filename" This command allows you to add an Imbedded I/O program to any file channel already opened. The Imbedded I/O program will remain in affect only until the channel is closed.

1.4.106 - Extended FIN() functionality, with a new parameter: FIN(chan,"IO_PROGRAM") will return the program filename of the Imbedded I/O program for a file current open on a channel.

1.4.107 - Changed YEAR sorting within ListViews to correctly handle sorting of years of only 2 digits.

1.4.108 - Modified the SWITCH/END SWITCH to allow for nesting of SWITCH statements within SWITCH statements.

1.4.109 - Corrected a problem with compounded let statements not correctly interpreting a string templated variable, if the let contained the c-style incremental operators. E.G.: X+=1,X$="" when X$ was previously DIM with a string template.

1.4.110 - Corrected the 'PUSH' of a dialogue to duplicate the CAPTION style of the window being duplicated.

------------------------------------------------------------------------------1.5 - Operating Systems no longer supported.

1.5.1 - Due to the change in bitmap handling ProvideX versions 4.14 or higher will no longer run on MS-Windows NT version 3.51.

1.5.2 - MS-Windows NT Version 3.51 will no longer be supported.

1.5.3 - MS-Windows 3.1 (16-Bit) will no longer be supported.

1.5.4 - MS-DOS will only be available on request.

------------------------------------------------------------------------------------------------------------------------------------------------------------Section 2 - WindX, Changes and Enhancements

2.1 - Maximum User Limit Exceeded Message. The WindX connection logic has been changed to check if the user limit has been exceeded on the server. If this is the case, WindX displays a message box on the local workstation which was attempting to connect. Previously the user limit exceeded message appeared on the server's console.

2.2 - WindX now directly supports the use of the following file commands via the [WDX] tag:

SERIAL, KEYED, DIRECT, SORT, PROGRAM, DIRECTORY, REFILE and ERASE. It is no longer necessary to embed these commands in an EXECUTE statement.

e.g.: SERIAL "[WDX]somefile.ext"

2.3 - Added support for WINPRT_SETUP DIRECTORY command. The WINPRT_SETUP DIRECTORY command was instituted in version 4.12c of ProvideX, but was overlooked in version 4.12c of WindX. This has now been corrected.

2.4 - WindX now supports the use of LOCK() and UNLOCK() on a channel which is opened to a file/device across a WindX connection.

2.5 - WindX now directly supports the MNEMONIC definition command. Previously, the MNEMONIC command was not supported, and therefore required programmers to issue EXECUTE "[WDX]MNEMONIC(chan)...." commands, to declare mnemonics for channels opened across a WindX connection.

With the MNEMONIC command now directly supported by WindX, it is no longer necessary to use the EXECUTE command to declare those mnemonics to the WindX side of the connection.

All mnemonics declared (except *R and *X) to a channel which is opened across a WindX connection will be sent automatically to the WindX workstation. The exceptions to this are the '*R' mnemonic, which declares an operating system command to execute on channel close, and '*X' which declares a program to CALL on channel close. These two are considered as local to the server, unless the [WDX] tag is used within their declaration.

Examples: OPEN(chan)"[WDX]\\mach\printer_share" MNEMONIC(chan)'FF'=$0C$ <-- automatically goes to WindX workstation. MNEMONIC(chan)'*R'="erase "+filename$ <-- occurs on the server, rather

than the workstation. MNEMONIC(chan)'*R'="[WDX]erase "+filename$ <-- occurs on the workstation, rather than the server.

2.6 - Freely Re-Distributable form of WindX known as WindX Plug-in. WindX now comes in 2 forms.

#1 - Stand-Alone licensed copy. This is the form of WindX that has been shipping to this point in time. This form of WindX is a purchased form and requires a serial number and activation key. Once activated WindX itself requires no further license to operate. This is known as local or workstation based Activation.

#2 - WindX Plug-in. This new form of WindX does not need to be purchased, nor does it require a Serial Number or Activation key to work. However, it requires that the ProvideX on the server, it is connecting to have a special WindX-Enabled flag on the servers activation key. This is known as Server Side Activation.

This form of WindX has an embedded serial number of 799995.

This WindX will function for 2 minutes before it terminates. Within that 2 minute period of time, it must connect to a server and the server must run an instance of ProvideX. (Note: Simply connecting to the server is not enough; a ProvideX session on the server must be initiated). The ProvideX on the server must be "WindX-Enabled".

A WindX-Enabled server has a special flag within its activation key that allows or denies access by this new form of WindX. The freely distributable form of WindX verifies that the server will allow it in, and if so, will use a user slot on the server and will not terminate after 2 minutes, but function normally. If the server is not WindX-Enabled, then this re-distributable form of WindX will terminate. Note: Only the first instance of this form of WindX from the particular workstation will use a user slot on the server. Any further instances of WindX from the specific workstation to this server will not use any additional user slots.

The concept behind this freely distributable WindX Plug-in is that you may allow as many users as you want to download the WindX Plug-in and use it like a typical plug-in. But your server will only accept connections for as many simultaneous users as you are activated for on the server side.

By using this form of WindX, you may ship as many copies to end users as you wish. They must however connect to a ProvideX on a server within 2 minutes of launching WindX to work, and where the number of simultaneous connections on the server is limited to your server's ProvideX user limit.

Note: The Stand-Alone form of WindX does not require a WindX-Enabled flag on the server, but will continue to operate as it has before.

------------------------------------------------------------------------------------------------------------------------------------------------------------Section 3 - Nomads - Changes and Enhancements

3.1 - Nomads Designer Changes & Enhancements. 3.1.1 - Selecting Objects on a Panel

Added the ability to select/unselect multiple controls using the mouse+SHIFT keys

Note: The hotkey CTRL-A will select all controls

3.1.2 - Controlling Object Alignment on a Panel. The Alignment option allows you to move controls to the left, center, right, top, bottom or middle.

The following hotkeys have been assigned to each alignment option:

Left (CTRL-L) Center (CTRL-E) Right (CTRL-R) Top (CTRL-T) Middle (CTRL-F) Bottom (CTRL-B)

The following is an example of how the alignment rules work:

If you select 3 controls and you press CTRL-L to align to the left then all the controls will be aligned to the leftmost control and NOT the first control that was selected.

3.1.3 - Controlling Object Distribution (Spacing) on a Panel. The distribution option will adjust spacing between controls either vertically or horizontally.

The following hotkeys have been assigned to each distribute option:

Vertical (CTRL-V) Horizontal (CTRL-G)

Using the Distribution feature:

If you press CTRL-V the spacing is based on the bottom and topmost controls.

If you press CTRL-G the spacing is based on the left and rightmost controls.

NOTE: The distribute option requires a selection of three or more controls.

3.1.4 - Delete/Cut/Copy/Paste are supported when Multiple Objects are selected.

3.1.5 - Added multiple selections capability to: a) Tab sequence utility b) Group option in the controls properties c) Library Object Selection panel d) The panel copy utility (can copy one or more objects to the same library or another library).

3.1.6 - Library Object Selection Panel. Changed the Library Object Selection panel from a Standard Listbox to a Listview with Report format and enabled the sorting attribute.

The date display format is now YYYY/MM/DD HH:MM to facilitate sorting.

3.1.7 - Additional Object Attributes Supported: 3.1.7.1 - The attribute 'Full Line Highlight' has been added to the List View control

3.1.7.2 - The attribute 'Tab Support' has been added to the Multi-line control.

3.1.7.3 - Buttons, Checkboxes and Radio buttons now support the 'Flat' and 'Bitmap Buttons' attributes.

NOTE: When using these new attributes for a flat Radio button, you must define the control using a bitmap otherwise it will not appear flat.

3.1.8 - Added a 'Hot Keys' help window, to the Help Section of the Menu Bar.

3.1.9 - Added access to the graphical editor (*IT) when setting up a validator and formatter program. This can be accessed in the multi-line control and the Data Class Maintenance Utility.

3.1.10 - Redesigned the toolbar with 'Flat' buttons.

3.1.11 - Added the rotation factor to the fonted text control. NOTE: Only True Type fonts will work with the rotation factor.

3.1.12 - Rewrote the Menu Bar Maintenance utility using the Treeview control.

3.1.13 - Security can now be assigned at the Panel level. There are two accesses available:

FULL (panel is displayed, security is then checked on individual controls). NONE (panel is not displayed).

3.1.14 - A New Bulk Edit Utility has been added to the designer toolbar. This utility allows you to change the following properties on multiple controls:

Width Height Attributes Font Colour Help Reference Floating Tip Reference Message Bar reference

3.1.15 - A new Object type called SHAPES is now available that allows you to define either ARC, CIRCLE, LINE, PIE, POLYGON or RECTANGLE.

SHAPES have the following parameters:

PEN style which consists of style, width and colour Where style contains a drop list of 8 different pen styles Where width is a value between 0-255 Where colour contains a drop list of 16 different colours

FILL region which consists of a pattern and colour Where pattern contains a drop list of 8 different fill patterns. Where colour contains a drop list of 16 different fill colours

RADIUS (a value between 0-255) RATIO (a value between 0-255) ANGLES (a value between 0-255)

X/Y values (These values refer to logical screen coordinates, not line and column coordinates)

The following table shows the applicable parameters for each SHAPE:

PEN STYLE FILL PATTERN RADIUS RATIO ANGLES X/Y VALUES --------- ------------ ------ ----- ------ ---------- ARC Y N Y Y Y N CIRCLE Y Y Y Y N N LINE Y N N N N Y PIE Y N Y Y Y N POLYGON Y Y N N N Y RECTANGLE Y Y N N N N

NOTE: The starting point for all SHAPES is the column and line.

3.1.16 - *WINPROC changes 3.1.16.1 - Modified to handle maximized windows

3.1.16.2 - Fixed an error 47 which occurred when more than 250 characters were used in the status bar display

3.1.16.3 - Help topics will now be referenced at the folder level without having to assign the help to each control on a folder panel.

3.2 - Data Dictionary Changes. 3.2.1 - Key Definition. Descending Order button is now only disabled for primary external keys.

3.3 - File Maintenance Changes. 3.3.1 - Definition 3.3.1.1 - Update Options button disabled for a new definition.

3.3.1.2 - No longer has an error if a definition is loaded after a field has been removed from the associated file in the data dictionary.

3.4 - Query Changes. 3.4.1 - Solved Query issues involving: 3.4.1.1 - Fonts - no longer inherits justification from calling panel. 3.4.1.2 - Handles very old font definitions which had embedded quotes. 3.4.1.3 - Sets/Resets 'TU' parameter correctly when exiting and returning from file maintenance. 3.4.1.4 - No longer loses the variable prefix in an expression. 3.4.1.5 - Corrected an issue with numeric tests in the selection criteria for manually-defined files.

3.4.2 - Query Enhancements: 3.4.2.1 - Displays DataBase Tables: The query can now read and display tables from databases which have odbc drivers. To display a database table, you are required to supply a Data Source Name, select a Table, and define a unique key for the table. This is done on the 'File Information' folder of the Query Header. You may also include a 'Connect Option' in the 'Option' folder, which is appended to the OPEN statement which is used to open the database table at run-time. Defining 'Link files' also requires you to define a key for each file, and allows you to enter an optional 'Connect option' as well. Database tables use the new 'Sort by Columns' mode.

Note: Even though native files and database tables require different information and thus have different definitions, it is possible to display database tables using native file definitions and vice versa:

Case 1: Query definitions originally set up for the native file system may be used to display database tables if a Prefix File is defined to determine the database and table name corresponding to the original file. No changes need to be made to the query definition. The only difference will be that the query will be displayed using the 'sort by columns' mode.

Case 2: A query definition for a database table may be used to display a native file if the following conditions are met: (i) The database table name and logical file name are the same. (ii) The 'Data Source Name' is a global expression, now loaded with the name of the physical file. (iii) The global variable %NOMAD_QUERY_ODB_IGNORE is set to 1.

3.4.2.2 - Query - Sort by Columns mode: 'Sort by columns' mode means you can sort a query on each column by clicking your mouse on a column heading. Subsequent clicks will toggle the sort between ascending/descending mode. Database tables can only be displayed in this mode, but native ProvideX files can be displayed in either the original 'Sort by File Keys' or the new 'Sort by Columns' mode. To select the new mode, check the 'Sort by columns (Pre-load data)' box in the 'Options' folder of the Query Header.

'Sort by columns' works by preloading selected records into a main memory file and creating a second memory file, if required, to handle column sorting. This logic has performance implications which should be considered when deciding which mode may be best

for a particular application. For example, if you wish to display all the contents of a large file (i.e. no selection criteria), it would be faster to use the traditional 'Sort by file key' mode with the 'Alternate scroll bar logic' option set up. If, however, you wished to display a small range of records from that same file, the new mode could prove superior. Pre-loading the data in this case would take little time, and once the data was loaded, browsing it would be faster.

A 'Refresh' button has been added to update the display with new/updated information while the query is running.

There are some additional column options that are available with 'Sort by column' mode. For columns containing numeric values, you can select optional 'tip' values to be displayed when the mouse is placed over the column heading. These values include the column total, average, minimum and maximum. For columns containing string values, you can specify an alternate sorting algorithm. For example, a column for DESCRIPTION$ could have an alternate sorting algorithm defined as UCS(DESCRIPTION$) so that various descriptions entered in upper or lower or mixed case would be sorted alphabetically. Also, a date stored originally in MMDDYYYY format could be displayed as MM/DD/YYYY with a format mask ("XX/XX/XXXX"), but sorted chronologically as YYYYMMDD (e.g. D$(5,4)+D$(1,2)+D$(3,2))

One other point of difference between 'Sort by file key' and 'Sort by columns' mode is how the 'Start at' value is entered. When sorting by the file key, the 'Start at' value has to match the key value, so does not necessarily match the data as displayed, especially if it is formatted. When sorting by columns, however, the 'Start at' value matches the values of the columns. Numeric values do not require that the user enter formatting characters, but string values do. If a phone number is displayed with dashes in its format (e.g. 000-000-0000), then the user would have to include the dashes when entering the 'Start at' value. Columns containing string values which use an alternate sorting algorithm, however, pose a particular problem as the value displayed in the column does not match the corresponding sort value. In this case, the 'Start at' logic does its best to derive a workable sort value, but success is *not* guaranteed.

3.4.2.3 - Query - Prefix and Range selection criteria on 'Sort by' key: If you choose the 'Sort by columns' option for displaying native ProvideX files, you can choose to apply the Prefix/Range values in the selection criteria to either the primary key, or an alternate key which has been specified as the 'Sort by' key in the Query header definition. If you do not choose the 'Sort by Columns' option, the Prefix/Range criteria is applied to the primary key.

3.4.2.4 - Query, New global variables: %NOMAD_QRY_CLEAR_START 0 - Position at start value (default) 1 - Override start value and display at beginning of file

%NOMAD_QUERY_NO_GRAY

0 - Display grey/white lines (or not) as indicated in the query definition options (default) 1 - Override the grey/white option and display white only

%NOMAD_QUERY_ODB_IGNORE 0 - Do not ignore odbc flag (default) 1 - Ignore odbc table flag and process as a native file

3.4.2.5 - Query, Special Variables: ENTIRE_RECORD$ - Can be used in a 'Return Value' expression to return the contents of the entire record (uses REC() function). Can be used alone or in conjunction with PRIME_KEY$. (e.g. PRIME_KEY$+ENTIRE_RECORD$)

------------------------------------------------------------------------------------------------------------------------------------------------------------Section 4 - Graphical Editor *IT 4.1 - Solved several issues involving error 47

4.2 - *IT Enhancements: 1) A new *cmd program called 'it' has been added. If you type 'it' at the command prompt, 'it' will determine the current program in memory, then invoke the graphical editor (*it) which will load the program right from memory (not from disk). When you finish editing your program in *it, save the program and the program will automatically be reloaded from disk into memory when you exit *it. (This is similar to *e except that *it requires that you save your changes before leaving the editor).

2) The main window is now hidden when entering *it, and shown when exiting, regardless of your 'XT' parameter setting. Also, the ProvideX window is released when *it is invoked from *nomads.

------------------------------------------------------------------------------------------------------------------------------------------------------------Section 5 - Utilities

5.1 - *WIN/DATE - Fixed Y2K issue.

5.2 - *FI, *UFI, *UDP, & *UDV 5.2.1 - Modified to handle the new key conversion options (C,L, & T) Where 'C' and 'L' refer to uppercase/lower conversion and 'T' refers to translation of extended ASCII. 5.2.2 - Same Utilities plus *CMD/SYSTEM/VER: Added logic to handle large program sizes.

5.3 - *UFAM - Added message indicating range for increasing record size

5.4 - *UFM - Can now create files with variable length records Greater than 4000 bytes

5.5 - *UFC - Added User Tag field to the embedded dictionary iolists

5.6 - *UDP - No longer generates error 47 if the program is empty

5.7 - *DEV/WINDOWS Redefined Right Mouse Button Down from IGNORE to CTL=-1802 Redefined Right Mouse Button Up from CTL=4 to CTL=-1803 Redefined Center Mouse Button Up from CTL=-1 (call **) to IGNORE Removed pvx97.bmp and .cfg code (obsolete)

5.8 - *DEV/WINTERM Redefined Right Mouse Button Down from IGNORE to CTL=-1802 Redefined Right Mouse Button Up from CTL=4 to CTL=-1803 Redefined Center Mouse Button Up from CTL=-1 (call **) to IGNORE

5.9 - *TOOLS/KEYSCAN - Initialized Directory Entry Variable prior to next read

5.10 - *HELP - Corrected filechan read of help entry to avoid channel 0

5.11 - *UPL - Modified listing as uppercase, allow for maximum print columns of less than 79 chars

5.12 - *PROGBAR - Corrected Cancel Button not reacting when under WindX

5.13 - *MLFILE.EN, *LEXTBL.EN *LEXTBL.DEF New Error Messages, and Syntax Tables

5.14 - *VIEWER.PRG - Graphical Print Preview Corrected incorrect window matching under WindX, fixes the find and goto windows not closing when run under WindX. Fixed placement of screen in Find Operation, to avoid 1/2 line visible. Added logic to force quit if in WindX environment. Removed Right Mouse Click close window action in preparation for Right Mouse Menu's.

5.15 - *WindX.UTL, *NTHOST, *NTSLAVE, *URL Added logic to check for CLOSE signal Modified Timing to correct for Windows2000 Professional Modified starting of WindX session under windows, to force an INVOKE rather than a START to ensure Args are processed correctly.

5.16 - *KYBRD.STD - Modified External Key Size to 64 Bytes from 25

5.17 - *CMD/SYSTEM/LV - Corrects an error scanning for programs with property references ('xxx)

5.18 - *CMD/SYSTEM/IT - New. Invokes *IT and loads current program from memory, then reloads the program from disk when *it is exited. (See also 4.2 *IT enhancements).

5.19 - New Utility *WINAPI - This is a new utility which has common DLL calls for Microsoft Windows. This utility will be shipped with ProvideX and with WindX, which allows you to do CALL "*WINAPI;entrypoint" and CALL "[WDX]*WINAPI;entrypoint" on an as needed basis

Current Entry Points: "*WINAPI;GetForegroundWindow",handle Where: handle (returned) is the Windows Handle number of the window that is currently in the foreground.

"*WINAPI;FindWindow",title$,handle Where: title$ - (required) is the caption name of the window you are looking for. (we auto append $00$) handle - (returned) is the Windows Handle number of the window if found.

"*WINAPI;SendMessage",handle,message,result, Where arglist is one of the following combinations: handle,message,result,arg1,arg2 handle,message,result,arg1$,arg2 handle,message,result,arg1,arg2$ handle,message,result,arg1,arg2

handle - (required) is the Windows handle of the object to send the message to. message - (required) is the message number to send, see MS Windows API documentation to get values. result - (returned) is the result code returned

arg1 or arg1$ (required) is either a string or numeric argument which will be sent as the first argument or wparam.

arg2 or arg2$ (required) is either a string or numeric argument which will be sent as the second argument or lparam.

"*WINAPI;PostMessage" syntax is exactly the same as SendMessage

5.20 - *PG.CNV - Changed to open file in read-only mode, to allow for program compares on read-only programs.

5.21 - *FL.NME - Changed to open file in read-only mode, to allow for program compares on read-only programs.

------------------------------------------------------------------------------------------------------------------------------------------------------------Section 6 - Activation Programs

6.1 - PVXWACTV.EXE now 32-Bit. The ProvideX Activation program is now 32-Bit.

6.2 - PVXWACTV.EXE new/changed command line parameters. Originally the PVXWACTV.EXE activation program had a '-I' parameter to indicate that this was to be an automated installation run and as such no dialogue would be presented. This conflicted with the '-I' parameter in the text mode version which forced a file initialization.

To resolve this conflict, we changed the '-I' parameter in the Windows version to '-Q' (for Quiet) and implemented a new '-I' parameter, which tells the activation program to initialize the activation file.

This change corrects an issue whereby running an automated activation from the command line would fail when an existing activation key had specific parameters, such as an expiry date.


Recommended