Date: 02-01-2019 Subject: RELEASE 10.1A Runtime Files These release notes pertain to the following programs or files: EMBEDINI 10.1A 01 Feb 2019 10.1.1.500 EMBEDINI64 10.1A 01 Feb 2019 10.1.1.500 HEXDUMP 10.1A 01 Feb 2019 10.1.1.500 HEXDUMP64 10.1A 01 Feb 2019 10.1.1.500 MAKECLI 10.1A 01 Feb 2019 10.1.1.500 MAKECON 10.1A 01 Feb 2019 10.1.1.500 MAKECONET 10.1A 01 Feb 2019 10.1.1.500 MAKEDEF 10.1A 01 Feb 2019 10.1.1.500 MAKEMFD 10.1A 01 Feb 2019 10.1.1.500 MANAGECE 10.1A 01 Feb 2019 10.1.1.500 OBJMATCH 10.1A 01 Feb 2019 10.1.1.500 OBJMATCH64 10.1A 01 Feb 2019 10.1.1.500 ODBCINST64 10.1A 01 Feb 2019 10.1.1.500 PLBCGI 10.1A 01 Feb 2019 10.1.1.500 PLBCLICON 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 6) PLBCLIENT 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 6) PLBCLINET 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 6) PLBCON 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 6) PLBCONET 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 6) PLBNET 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 6) PLBSERVE 10.1A 01 Feb 2019 10.1.1.500 (Processed Server) PLBSERVET 10.1A 01 Feb 2019 10.1.1.500 (Threaded Server) PLBWEBSRV 10.1A 01 Feb 2019 10.1.1.500 (Processed Server) PLBWEBSRVT 10.1A 01 Feb 2019 10.1.1.500 (Threaded Server) PLBWIN 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 6) PLBCLICON5 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 5) PLBCLIENT5 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 5) PLBCLINET5 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 5) PLBCON5 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 5) PLBCONET5 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 5) PLBNET5 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 5) PLBWIN5 10.1A 01 Feb 2019 10.1.1.500 (ComCtl 5) SUNAAMDX 10.1A 01 Feb 2019 10.1.1.500 SUNAAMDX64 10.1A 01 Feb 2019 10.1.1.500 SETGUID 10.1A 01 Feb 2019 10.1.1.500 SUNINDEX 10.1A 01 Feb 2019 10.1.1.500 SUNINDEX64 10.1A 01 Feb 2019 10.1.1.500 SUNLS 10.1A 01 Feb 2019 10.1.1.500 SUNMOD 10.1A 01 Feb 2019 10.1.1.500 SUNMOD64 10.1A 01 Feb 2019 10.1.1.500 SUNSORT 10.1A 01 Feb 2019 10.1.1.500 SUNSORT64 10.1A 01 Feb 2019 10.1.1.500 WININST 10.1A 01 Feb 2019 10.1.1.500 ODSBAC32.DLL 10.1A 01 Feb 2019 ODSBAC64.DLL 10.1A 01 Feb 2019 PLBNETSUP.DLL 10.1A 01 Feb 2019 10.1.1.500 Required for PLBNET PLBWSEC.DLL 10.1A 01 Feb 2019 10.1.1.500 Req'd PLBWIN/PLBNET SA_DLL32.DLL 10.1A 01 Feb 2019 10.1.1.500 SUNWADO.DLL 10.1A 01 Feb 2019 10.1.1.500 SUNWADO25.DLL 10.1A 01 Feb 2019 10.1.1.500 SUNWADO28.DLL 10.1A 01 Feb 2019 10.1.1.500 SUNWMSQL.DLL 10.1A 01 Feb 2019 10.1.1.500 SUNWODBC.DLL 10.1A 01 Feb 2019 10.1.1.500 SUNWSRV.DLL 10.1A 01 Feb 2019 10.1.1.500 SUNWSRV64.DLL 10.1A 01 Feb 2019 10.1.1.500 Required for Sundm64 DBGIFACE 10.1A 01 Feb 2019 PLBCMP 10.1A 01 Feb 2019 PLBDBUG 10.1A 01 Feb 2019 ADMEQU.INC 10.1A 01 Feb 2019 PLBEQU.INC 10.1A 01 Feb 2019 PLBMETH.INC 10.1A 01 Feb 2019 PLBCLI.ZIP 10.1A 01 Feb 2019 10.1.1.600 (ComCtl 6) PLBRUN.ZIP 10.1A 01 Feb 2019 10.1.1.600 (ComCtl 6) *============================================================================== Notes for some NEW Items: - The PL/B SPLITTER and STATUSBAR objects have been added to the PL/B Web Server. - All of the Installations for the Windows Sunbelt Products have been built with a 'Sunbelt Computer Software' Digital Signature applied. Using the Windows File Explorer, do a 'right+click' action on a 10.1A installation file and look at the 'Properties'. Click on the 'Digital Signature' tab and view the details for the 'Sunbelt Computer Software' certificate. *============================================================================== Notes for DOCUMENTATION: - In the PL/B Language Reference under the 'CUETEXT Property' section, change the Notes as follows: Modify the Note (5.) as follows: 5. The CUETEXT property is only displayed by the Windows OS for a single line EDITTEXT control. Therefore, when an EDITTEXT is created and the CUETEXT property {value} is specified as a non-NULL string, the EDITTEXT is always created as a single line EDITTEXT. Add a Note (8.) as follows: 8. If an EDITTEXT is created as a multi-line edittext object, a SETPROP of the CUETEXT property has non affect on the Windows OS edittext control. - In the PL/B Language Reference under the 'EDITEXT' section, add a Note (11.) that reads as follows: Note: 11. If an EDITEXT is created using a non-NULL CUETEXT property string value, the EDITEXT object is always created as a single line EDITTEXT. - In the PL/B Language Reference under the 'MULTILINE Property' section, add a Note (8.) that reads as follows: Note: 8. If an EDITEXT is created using a non-NULL CUETEXT property string value, the EDITTEXT object is always created as a single line EDITTEXT and the MULTILINE property does not take affect. - In the PL/B Web Server under the 'Considerations' section, change the Note (10.) as follows: Note (10.) Remove the TOOLBAR and STATUSBAR objects from the 'unsupported Objects' list. - In the PL/B Language Reference manual under the 'LEFT Property' section, add a Note (4.) as follows: 4. When the PL/B Web Server, this property behaviors can change to be processed as a percentage when the 'SETMODE *PERCENTCONVERT' value is 1 or 2. See the 'SETMODE *PERCENTCONVERT' keyword description for more details. - In the PL/B Language Reference manual under the 'WIDTH Property' section, add a Note (5.) as follows: 5. When the PL/B Web Server, this property behaviors can change to be processed as a percentage when the 'SETMODE *PERCENTCONVERT' value is 1 or 2. See the 'SETMODE *PERCENTCONVERT' keyword description for more details. - In the PL/B Language Reference manual under the 'TOP Property' section, add a Note (4.) as follows: 4. When the PL/B Web Server, this property behaviors can change to be processed as a percentage when the 'SETMODE *PERCENTCONVERT=2' mode setting is used. See the 'SETMODE *PERCENTCONVERT' keyword description for more details. - In the PL/B Language Reference manual under the 'STATUSBAR' section, change the Note (7.) to read as follows: Note: 7. Using the PL/B Web Server version 10.1A or newer, this PWS object is supported/simulated with the following limitations: a. The SIZEGRIP property is not supported. b. The AUTOSIZE property 'spring' setting only works for the last STATUSPANEL. Otherwise, the STATUSPANEL behavior uses 'content'. c. There is no right-click action. d. STATUSPANEL tooltips are not supported. e. New CSS classes are used a follows: 'plbsb' - StatusBar 'plbsbp' - StatusPanel BDRSYTLE pain text 'plbsbi' - StatusPanel BDRSTYLE inset (Sunken) 'plbsbo' - StatusPanel BDRSTYLE outset (Raised) 'plbsbz' - StatusPanel last panel with spring. f. Click event always returns a event result of zero. - In the PL/B Application Server manual in the 'Server Command Line' section, add a new Note (27.) that reads as follows: Note: 27. When the PL/B Application Server is installed and loaded by the Windows Services Manager, there is an internal runtime option '-l' that must be used in the service command line. This '-l' option CAN NOT be used directly by an end-user in an Application Server command line to start the Windows service. - In the PL/B Web Server manual in the 'Server Command Line' section, add a new Note (23.) that reads as follows: Note: 23. When the PL/B Web Server is installed and loaded by the Windows Services Manager, there is an internal runtime option '-l' that must be used in the service command line. This '-l' option CAN NOT be used directly by an end-user in a PL/B Web Server command line to start the Windows service. - In the Sunbelt Data Manager manual under the 'SUNDM Keywords', add a new keyword named 'DM_OPENONCE_ALLOWREAD={on|off}' as follows: DM_OPENONCE_ALLOWREAD Keyword The DM_OPENONCE_ALLOWREAD keyword only takes affect when the Data Manager is executing with the 'open once' mode turned on. This keyword can be set in the Data Manager configuration to allow Data Manager files to be opened directly in READ only mode by programs not using the Data Manager. This keyword replaces the 'DM_OPENONCE_SHARED' keyword. DM_OPENONCE_ALLOWREAD 1. The default setting when this keyword is NOT used is the same as when 'DM_OPENONCE_ALLOWREAD=OFF'. 2. This keyword DOES NOT take affect if the 'DM_ONCEONCE=OFF' is used. 3. Only support by Windows OS Data Manager. DM_OPENONCE_ALLOWREAD=OFF 1. The Data Manager opens data files with read/write access privileges. 2. The Data Manager locks the data files to prevent the possibility of changes to the managed data files by any 3rd party Windows programs. 3. Plbwin runtimes must use the Data Manager to open managed data files. Otherwise, an appropriate I10 error occurs. 4. Windows Opportunistic Locking can be used by the Windows OS. DM_OPENONCE_ALLOWREAD=ON 1. Data Manager data files are opened in exclusive mode. 2. Windows Opportunistic Locking is not used when an OS mapped drive is being used. 3. Plbwin runtimes can directly open data files using READ only mode without using the Data Manager while the same files are opened by the Data Manager. - In the Sunbelt Data Manager manual under the 'SUNDM Keywords', change the 'DM_OPENONCE_SHARED' keyword to read as follows: The 'DM_OPENONCE_SHARED' keyword is replaced by the 'DM_OPENONCE_ALLOWREAD' keyword in release 10.1A. Note: 1. The 'DM_OPENONCE_SHARED=ON' is the same as 'DM_OPENONCE_ALLOWREAD=OFF'. 2. The 'DM_OPENONCE_SHARED=OFF' is the same as 'DM_OPENONCE_ALLOWREAD=ON'. 3. See 'DM_OPENONCE_ALLOWREAD Keyword' for details. - In the PL/B Language Reference manual under the 'GETIEM and SETITEM Objects' section, remove the MAINWINDOW and PANEL. - In the PL/B Language Reference manual under the READONLY property section, modify the following notes: Modify Note (1.) to read as follows: "1. READONLY may be used in CREATE or GETPROP statements of an EDITTEXT, EDITNUMBER, or RICHEDITTEXT object. Also, the SETPROP statement can be used to change the READONLY property ONLY when using one of these Windows runtimes ( Plbwin, Plbnet, or Plbclient/Plbserve ). Add a new Note (5.) as follows: "5. When using the PL/B Web Server, the READONLY property for the PWS EDITNUMBER can not be turned on or off using the SETPROP instruction. Also, when using the PWS EDITNUMBER with the READONLY property turned on and the UPDOWNALIGN property set to $UPDOWNALIGNLEFT or $UPDOWNALIGNRIGHT, the up/down control actions continue to change the value of PWS EDITNUMBER by the client browser." - In the PL/B Language Reference manual under the STATIC property section, modify the following notes: Modify Note (1.) to read as follows: "1. STATIC may be used in CREATE, SETPROP, or GETPROP statements of the EDITTEXT and EDITNUMBER objects." Add a new Note (5.) as follows: "5. When using the PL/B Web Server, the PWS EDITNUMBER with the STATIC property turned on does not allow this object to obtain the focus by a user tabbing action. Otherwise, the behaviors of the PWS EDITNUMBER with the STATIC property turned on is the same as the READONLY property behaviors." - In the PL/B Runtime Reference manual under the 'M (MailSend) Errors' section, change the following: Modify the 'sss' table as follows: Swap the descriptions for the subcode 83 and 84 value. Add the following to the 'sss' table 47 Null variable not allowed for MAILSEND parameter 85 Unexpected error during receive operation - In the PL/B Language Reference manual under the 'WINTYPE Property' section, add a Note (8.) as follows: Note: 8. When CE window types are being used under the PL/B Web Server runtime, one of the CSS classes named 'ce8', 'ce9', 'ce10', or 'ce11' is applied to the PWS WINDOW. These classes are declared in the 'plbwebbasic.css'. These classes are used to invoke specialized Windows CE behaviors which are applied to the PWS WINDOW object as follows: 'ce8' - Reserved for future use when WINTYPE=$CEMODALNOMENU. 'ce9' - Reserved for future use when WINTYPE=$CEMODELESSNOMENU. 'ce10' - CSS styles used when WINTYPE=$CEFIXEDNOMENU. This class causes the WINDOW object to be positioned to the TOP/LEFT position of 0/0. 'ce11' - CSS styles used when WINTYPE=$CESIZEABLENOMENU. This class causes the WINDOW object to be positioned to the TOP/LEFT position of 0/0. - In the PL/B Language Reference manual, add a new method named 'CheckHost' to the RUNTIME object described as follows: *------------------------------------------------------------------ The CheckHost method checks to see if a specific internet host address exists. The method uses the following format: [label] {object}.CheckHost [GIVING {return}]: USING [*HostName=]{hostname}[: [*Port=]{port}][: [*Timeout=]{timeout}][: [*Options=]{mask}] Where: label Optional. A Program Execution Label. object Required. A RUNTIME object. return Optional. A Numeric Variable that returns the pass\failure values for the execution of the method. hostname Required. A previously defined Character String Variable or literal that contains the host name or IP address that is being checked. port Optional. A Numeric Variable or decimal number that identifies the port to be tested. timeout Optional. A Numeric Variable or decimal number that identifies the number of seconds to wait. options Optional. A Numeric Variable or decimal number that specifies a bit mask value that controls the behaviors of this method. Flags Affected: OVER, ZERO Note the following: 1. The ZERO flag is always set when the {return} value is zero which indicates that the method execution was successful. The ZERO flag is cleared if the {return} value is not zero which indicates that the method execution failed. 2. The OVER flag is set to TRUE if the hostname was not found and FALSE if the hostname was found. 3. If the optional port parameter is given, then the CheckHost method attempts to connect to the host using that port number. Warning: When using the {port} number of '80' to make a connection, the 'CheckHost' method performs a special 'ping' test to verify that the 'URL' is valid before doing the connection check. If this special 'ping' check fails, the {result} is returned with a value of '100 + N' where the 'N' value is the 'ping' error value. This special 'ping' check is required to insure expected pass/fail results. 4. If the optional port parameter is not given, the CheckHost method uses the Internet Control Message Protocol (ICMP) to 'ping' the host name. This is be tried 4 times before an error is given. 5. The timeout parameter specifies the number of seconds to wait checking. If no value is given or the value is 0, then 100 milliseconds is used. 6. If the {return} value is non-zero indicating a failure the follow failure results can be expected: Failure Values Comment (Using PING mode without {port}) 1 - Unable to create/setup socket. 2 - Unable to resolve {hostname} ip. 3 - Send error. 4 - Select error. 5 - Timeout occurred. 6 - Receive error. 9 - Unable to set file descriptor (Unix Only). Failure Values Comment (Using CONNECT mode with {port}) 1 - Unable to make socket connection. 3 - Unable to resolve {hostname} ip. 9 - Unable to set file descriptor (Unix Only). 10 - Unable to create socket. 11 - Connect socket error. 12 - Select socket error. 13 - Select timeout. 14 - Select file descriptor error. 100 + N - Special 'port' 80 type errors. The 'N' values in this case are the same as described for the PING mode error values. See the Note (3.) for more details when the {port} value of '80' is being used. 7. The options parameter is reserved for future use. 8. When executing the 'CheckHost' method on a Linux\Unix system, the end-user must insure that the 'PL/B' runtime has sufficient privileges to execute using the 'Ping' mode. Otherwise, the 'CheckHost' method 'Ping' mode will always fail. - In the PL/B Language Reference manual, add a new method named 'CheckDescription' to the ERROR object described as follows: *------------------------------------------------------------------ The GetDescription method retrieves the description associated with PL/B error codes. The error descriptions are defined in XML format and can be found in the default 'plberrors.xml' or a user XML file. The method uses the following format: [label] {object}.GetDescription [GIVING {return}] USING [*CODE=]{code}: [*SUBCODE=]{subcode}[: [*FILENAME=]{filename}][: [*FLAGS=]{flags}] Where: label Optional. A Program Execution Label. object An ERROR object that has been previously Required. declared. return A Character String Variable that receives the Optional. description information that is associated with the error being accessed on the error stack. code A Character String Variable or string literal Required. that specifies the error code string. For example the error code can be "C09". subcode A Character String Variable or string literal that Required. specifies the subcode string. For example, the subcode string can be "21". filename A Character String Variable or string literal that Optional. specifies the file name which contains user defined error codes and descriptions. flags A Numeric Variable or decimal number that Optional. specifies a bit mask value that can be used to control the behaviors of this method. Flags Affected: EOS, OVER, ZERO Note the following: 1. The OVER and ZERO flags are always set to be FALSE. 3. The EOS flag is set to be TRUE if the {return} variable is too small to receive the description without being truncated. 4. The {flags} bit mask values parameter is implemented for future usage. 5. The {code} and {subcode} strings are case sensitive and MUST match the data exactly. 6. If the {filename} parameter is not specified for this method, the default file name used by the PL/B runtime is 'plberrors.xml'. When the {filename} parameter is specified, the file name is a XML file that contains user error codes and descriptions. In any case, the 'plberrors.xml' or the user XML file must have the format as follows: 10.1 ... ... Where: Root XML tag. Xml element tag that contains the runtime version. Xml element tag that contains the error, subcode, type, and description attributes for an error. - In PL/B Language Reference manual, change the 'CreateElement Method (XDATA)' as follows: ....................................... Add a Note (10.) that reads as follows: 10. If the parent of the created element has a JSONTYPE of JSON_TYPE_ARRAY, then a special label prefix of 'object' can be used when creating a JSON_TYPE_OBJECT to prevent the label from being output in the JSON array object elements. See Example 5. .......................... Add Example 4. as follows: 4. This example shows an 'employees' JSON array that contains JSON objects for each 'Employee': xData XDATA .  xData.CreateElement GIVING result: USING *POSITION=CREATE_AS_LAST_CHILD: *LABEL="employees": *JSONTYPE=JSON_TYPE_ARRAY: *OPTIONS=MOVE_TO_CREATED_NODE . xData.CreateElement GIVING result: USING *POSITION=CREATE_AS_FIRST_CHILD: *LABEL="Employee": *JSONTYPE=JSON_TYPE_OBJECT: *OPTIONS=MOVE_TO_CREATED_NODE . xData.CreateElement GIVING result: USING *POSITION=CREATE_AS_FIRST_CHILD: *LABEL="firstName": *TEXT="John": *JSONTYPE=JSON_TYPE_STRING: *OPTIONS=MOVE_TO_CREATED_NODE . xData.CreateElement GIVING result: USING *POSITION=CREATE_AS_NEXT_SIBLING: *LABEL="lastName": *TEXT="Doe": *JSONTYPE=JSON_TYPE_STRING In this example code , the following simple JSON object string is created by the previous XDATA CreateElement methods to output a JSON array where each array element has the "Employee" label name. "employees":[{"Employee":{"firstName":"John,"lastName":"Doe"}}] In this case, the "employees" is a JSON array with one JSON object element that has the "Employee" label. .......................... Add Example 5. as follows: 5. This example shows an 'employees' JSON array that contains JSON objects where each JSON object element DOES NOT have an "Employee" label reference: xData XDATA .  xData.CreateElement GIVING result: USING *POSITION=CREATE_AS_LAST_CHILD: *LABEL="employees": *JSONTYPE=JSON_TYPE_ARRAY: *OPTIONS=MOVE_TO_CREATED_NODE . . By adding the prefix of 'object' ( Is case sensitive! ) to . use the LABEL of "objectEmployee", the JSON array output . DOES NOT include the "Employee" for each JSON array object . element. . xData.CreateElement GIVING result: USING *POSITION=CREATE_AS_FIRST_CHILD: *LABEL="objectEmployee": *JSONTYPE=JSON_TYPE_OBJECT: *OPTIONS=MOVE_TO_CREATED_NODE . xData.CreateElement GIVING result: USING *POSITION=CREATE_AS_FIRST_CHILD: *LABEL="firstName": *TEXT="John": *JSONTYPE=JSON_TYPE_STRING: *OPTIONS=MOVE_TO_CREATED_NODE . xData.CreateElement GIVING result: USING *POSITION=CREATE_AS_NEXT_SIBLING: *LABEL="lastName": *TEXT="Doe": *JSONTYPE=JSON_TYPE_STRING In this example code, the following simple JSON object string is created by the previous XDATA CreateElement methods to output a JSON array where each array element object DOES NOT have the "Employee" label name. "employees":[{"firstName":"John,"lastName":"Doe"}] In this case, the "employees" is a JSON array with one JSON object element that does not have an "Employee" label. - In the PL/B Language Reference manual under the 'DBCONNECT' instruction, change the ODBC connections Note (5.) to read as follows: Note the following for ODBC connections: 5. If {ext} contains 'READ', the database is opened in READ ONLY mode. If {ext} contains 'NOAC', the database is opened with SQL auto commit turned off. The {ext} string can only be set either 'READ' or 'NOAC' and not both. *============================================================================== The following files have been changed as noted: ------------------------------------------------------------------------------- PLBSERVE - Removed the '-l' option from the PL/B Application Server help screen. The '-l' command option is ONLY used when the PL/B Application Server is loaded via the Windows Service Manager. This option CAN NOT be specified/used directly by an end-user. - Corrected a problem where a memory leak would occur when a PL/B program executed an AdmLogOff instruction while accessing the PL/B Application Server Administrative Services. If an excessive number (>64,000) of AdmLogOff instructions were executed, the PL/B Application Server could encounter unexpected OS memory allocation errors resulting in indeterminate behaviors. ------------------------------------------------------------------------------- PLBWEBSRV (HTML\JS\CSS) - Modified to support 10.1A changes. plbwebbasic.css 10.1A 181114 plbwebbasic.js 10.1 181123 plbwebctls.js 10.1A 190103 plbwebmob.js 10.0A 180402 Support jQuery Mobile plbwebtvcssinfo.html 9.9 161028 plbmobstart.html 10.0A 180402 Support jQuery Mobile plbwebstart.html 10.0A 180402 plbwebstart99a.html 9.9A 170428 - Added classes to 'plbwebbasic.css' for STATUSBAR support. - Modified the 'plbwebbasic.css' to include the classes named 'ce8', 'ce9', 'ce10', and 'ce11' used when the WINTYPE CE values are being used for a WINDOW object. - Modified the 'plbwebbasic.js' for PWS Splitter support. - Modified the 'plbwebctls.js' to correct a PWS EDITTEXT EDITTYPE 'Numeric' problem. ------------------------------------------------------------------------------- PLBWEBSRV - Added the STATUSBAR object to the PL/B Web Server with the following limitations: 1. The SIZEGRIP property is not supported. 2. The AUTOSIZE property 'spring' setting only works for the last STATUSPANEL. Otherwise, the STATUSPANEL behavior uses 'content'. 3. There is no right-click action. 4. STATUSPANEL tooltips are not supported. 5. New CSS classes are used a follows: 'plbsb' - StatusBar 'plbsbp' - StatusPanel BDRSYTLE pain text 'plbsbi' - StatusPanel BDRSTYLE inset (Sunken) 'plbsbo' - StatusPanel BDRSTYLE outset (Raised) 'plbsbz' - StatusPanel last panel with spring. 6. Click event always returns a event result of zero. - Added the WEBCLASS, WEBHEIGHT, WEBWIDTH, WEBLEFT, WEBTOP, and WEBPOSITION properties to the PWS STATUSBAR and TOOLBAR objects. - Modified the PWS EDITTEXT and EDITNUMBER objects to allow the 'KeyPress' event to execute with the same behavior as when the PLBWIN runtime is used. - Modified the GETMODE and SETMODE instructions to support a new keyword named *PERCENTCONVERT. The *PERCENTCONVERT keyword is ONLY used by the PL/B Web Server runtime and it has no affect for all other PL/B runtimes. *PERCENTCONVERT (GETMODE) *PERCENTCONVERT={value} Where: {value} Required. A previously defined Numeric Variable. The *PERCENTCONVERT returns the mode value used by the PL/B Web Server to convert the PWS object positions into a percentage. The returned values are described as follows: Value Description 0 This is the default if the *PERCENTCONVERT is not used. In this case, PWS object positions are not converted. n Any non-zero value causes the LEFT position and the WIDTH for a PWS object to be converted into a percentage relative to the width of its parent. 2 This value causes the LEFT, WIDTH, and TOP property values for a HTML object to be converted into a percentage relative to the width and height of its parent. Note: 1. When the {value} is set to a non-zero value, the following PL/B statement behaviors occur as follows executing on a PWS runtime: a. A CREATE or FORMLOAD of a PWS object converts a LEFT and WIDTH property value to a WEBLEFT and WEBWIDTH property value as a percentage position. This only happens when both of these conditions are meet: 1) The WEBLEFT and WEBWIDTH properties do not have a user specified preexisting property value. 2) The percent calculates to a value from 1% to 100%. b. A SETPROP of a PWS object converts a LEFT or WIDTH property value to a WEBLEFT or WEBWIDTH property value as a percentage position. This only happens if the percent calculates to a value from 1% to 100%. c. The percentage position values are retrieved by a GETPROP on WEBLEFT or WEBWIDTH property. d. When the {value} is set to be 2, the same behaviors are also applied for the CREATE, FORMLOAD, GETPROP, and SETPROP using the TOP and WEBTOP properties. *PERCENTCONVERT (SETMODE) *PERCENTCONVERT={value} Where: {value} Required. A previously defined Numeric Variable or decimal value. The *PERCENTCONVERT sets the mode value used by the PL/B Web Server to convert the PWS object positions into a percentage. The values are described as follows: Value Description 0 This is the default if the *PERCENTCONVERT is not used. In this case, PWS object positions are not converted. n Any non-zero value causes the LEFT position and the WIDTH for a PWS object to be converted into a percentage relative to the width of its parent. 2 This value causes the LEFT, WIDTH, and TOP property values for a HTML object to be converted into a percentage relative to the width and height of its parent. Note: 1. When the {value} is set to a non-zero value, the following PL/B statement behaviors occur as follows executing on a PWS runtime: a. A CREATE or FORMLOAD of a PWS object converts a LEFT and WIDTH property value to a WEBLEFT and WEBWIDTH property value as a percentage position. This only happens when both of these conditions are meet: 1) The WEBLEFT and WEBWIDTH properties do not have a user specified preexisting property value. 2) The percent calculates to a value from 1% to 100%. b. A SETPROP of a PWS object converts a LEFT or WIDTH property value to a WEBLEFT or WEBWIDTH property value as a percentage position. This only happens if the percent calculates to a value from 1% to 100%. c. The percentage position values are retrieved by a GETPROP on WEBLEFT or WEBWIDTH property. d. When the {value} is set to be 2, the same behaviors are also applied for the CREATE, FORMLOAD, GETPROP, and SETPROP using the TOP and WEBTOP properties. - Removed the '-l' option from the PL/B Web Server help screen. The '-l' command option is ONLY used when the PL/B Web Server is loaded via the Windows Service Manager. This option CAN NOT be specified/used directly by an end-user. - Add a CSS class named 'ce8', 'ce9', 'ce10', or 'ce11' to any PWS WINDOW object with a WINTYPE with a value of $CEMODALNOMENU, $CEMODELESSNOMENU, $CEFIXEDNOMENU, or $CESIZEABLENOMENU. These CSS classes are declared in the 'plbwebbasic.css'. - Modified the PL/B Web Server to automatically add a 'z-index' value of 20 when a non-modal window becomes active. Also, the 'z-index' value of 10 is set when a non-modal window is deactivated. This change corrects a problem where all of the HTML objects for two WINDOW objects were showing as merged objects when one window was placed on top of a second window. - Modified the HTMLCONTROL 'GetAttr' and 'SetAttr' methods to allow the HTML 'checked' and 'disabled' attributes to be accessed/changed. This change is needed because of special behaviors for these HTML attributes. - Added the SPLITTER object to the PL/B Web Server. - Corrected a problem where the PWS EDITTEXT/EDITNUMBER 'KeyPress' event was not executing the 'KeyPress' PL/B event routine when the keyed character was an 'Enter' key. - Corrected a problem where a PWS BUTTON with the DEFAULT property could cause unexpected click events. - Corrected a problem where a memory leak would occur when a PL/B program executed an AdmLogOff instruction while accessing the PL/B Web Server Administrative Services. If an excessive number (>64,000) of AdmLogOff instructions were executed, the PL/B Web Server could encounter unexpected OS memory allocation errors resulting in indeterminate behaviors. - Corrected a problem where a PWS EDITNUMBER object was starting in a disabled mode and a 'SETPROP ENABLED=$TRUE' would not enable the object. - Corrected a problem where the EDITTEXT EDITTYPE property value for 'Numeric' did not work using the PL/B Web Server. ------------------------------------------------------------------------------- PLBWIN, PLBNET - Corrected a problem that could cause PLF form load errors in the PL/B Designer. The symptom for this problem was an 'I83 subcode 216' error when the PL/B Designer was loading a PLF form. This problem could occur indeterminately depending on the current memory usage when the PL/B Designer was executing. - Corrected a problem for a JQueryEvent issue that was causing a PL/B Designer problem where the JQueryEvent event could not be set for the HTMLCONTROL object. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLB(UNIX), PLBWEBSRV - Corrected a problem where the MAILSEND instruction was reporting an error subcode value of '40' when an unexpected NULL variable was being used for some keyword parameter. With this correction, a Mxx error subcode value of 47 is now generated and described as follows: 47 Null variable not allowed for MAILSEND parameter. - Corrected a problem where the INDEX '-r' option did not work as expected when the embedded command line in the ISI header contained the alternate primary selection '-p=...' option. Example of INDEX instruction with '-r' option: INDEX "erbxxx.isi -r" Example of ISI Header command line that failed when using '-r' sunindex erbxxx.txt, erbxxx.isi,L306 -30-50,p="4='4597'&119='1'" - Corrected a problem in the HTTP instruction where an invalid response could be received. This problem would occur if http messages were being received using 'Transfer-Encoding: chunked' and a chunked message size value was split between two http messages. This problem has existed since release 9.6C. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLB(UNIX), PLBWEBSRV, ALL GUI CLIENTS - Added a new RUNTIME object method named 'CheckHost'. This keyword can be used to determine if an internet host address exists. See the Documentation section for details of the 'CheckHost' method. ------------------------------------------------------------------------------- PLBWIN, PLBNET, ALL GUI CLIENTS - Modified the HTMLCONTROL object so its parent WINDOW remains in its current OS active state when the HTMLCONTROL object contents are changed. - Modified the HTMLCONTROL to suppress the context menu which would appear upon a right-click user action before this change was made. - Corrected a problem for the EDITNUMBER where updown control actions were causing the EDITNUMBER value to be changed when the READONLY or STATIC property was turned on. - Corrected a problem where a 'backspace' operation was changing the contents of a RICHEDITTEXT with the READONLY property set to the TRUE state. - Corrected a problem where the FORMLOAD of PLF form with an HTMLCONTROL object was forcing the PLF WINDOW object to always become an inactive Window. ------------------------------------------------------------------------------- PLBCMP - Added the WEBCLASS, WEBHEIGHT, WEBWIDTH, WEBLEFT, WEBTOP, and WEBPOSITION properties to the PWS STATUSBAR, TOOLBAR, and SPLITTER objects. - Modified the GETMODE and SETMODE instructions to support a new keyword named *PERCENTCONVERT. The *PERCENTCONVERT keyword is ONLY used by the PL/B Web Server runtime and it has not affect for all other PL/B runtimes. GETMODE *PERCENTCONVERT={nvar} SETMODE *PERCENTCONVERT={dnumnvar} - Corrected a problem where the 'ELSE' structure statement would give an unexpected compiler error when using the 'ZR' option specifying User Comment delimiters. Example 'prog' of Unexpected Compiler Error: IF ZERO ... ELSE ; Comment ... ENDIF . . Execute this command line in a command shell . plbcmp prog -zr#";" . . Gave this error before the 10.1A correct: . ELSE ; Comment * Invalid user comment identifier! . - Corrected a problem where the compiler was giving an unexpected error for a GETITEM using a TABCONTROL and an array syntax for the {data} parameter. GETITEM {object}, {item}, {data} Example of compiler error that has been corrected: TC TABCONTROL . tabNumber form 1 tabName dim 20(3) . getitem TC,tabNumber,tabName(2) * Space required as statement terminator. - Corrected a PL/B expression problem where the compiler was allowing math operators using DIM variables. This problem would generate an expression that would cause indeterminate PL/B program operations. With this correction, the compiler now generates an appropriate compiler error when DIM variables are used with math operators. ------------------------------------------------------------------------------- DBGIFACE - Corrected issue with the Data menu. - Corrected highlighted line tracking. ------------------------------------------------------------------------------- PLB Designer - Modified the PLB designer to support the SPLITTER object for PWF forms. - Corrected a problem where the 'JQueryEvent' for the HTMLCONTROL object did not work in the PL/B Designer. ------------------------------------------------------------------------------- SUNINDEX - Corrected a problem where the Sunindex '-r' command did not work as expected when the embedded command line in the ISI header contained the alternate primary selection '-p=...' option. Example of ISI Header command line that failed when using '-r' sunindex erbxxx.txt, erbxxx.isi,L306 -30-50,p="4='4597'&119='1'" ------------------------------------------------------------------------------- ADMEQU.INC - Reviewed for 10.1A patch release. ------------------------------------------------------------------------------- PLBEQU.INC - Modified for PWS StatusBar object. - Modified for PWS Splitter object. ------------------------------------------------------------------------------- PLBMETH.INC - Modified for PWS StatusBar object. - Modified for PWS Splitter object. - Added the CheckHost method for the RUNTIME object. - Added the GetDescription method for the ERROR object. ------------------------------------------------------------------------------- PLBWSEC.DLL - Modified the security dll to prevent the global variables from being swapped out by the Windows OS. This change is made to prevent an unexpected GPF error with an Exception Code of 0xc0000006. ------------------------------------------------------------------------------- SUNWODBC.DLL - Modified to only return information for SQL Tables when using 'GetInfo TYPE={dbfile}' operations. - Modified the ODBC driver to allow the DBCONNECT {ext} to be set to 'NOAC' which sets the connection attribute to use the SQL_AUTOCOMMIT_OFF option. In this case, the driver uses manual-commit mode and the PL/B program must explicitly commit or roll back transactions. ------------------------------------------------------------------------------- SUNIDE.PLC - Corrected issue with display of the shortcut menu for the sources treeview. - Implemented an IDE option to allow the source/labels find panel to be hidden. - Corrected I81 error that occurs when a string including a single quote was copied to the clipboard. - Corrected file selection when using the Find function of the source map. - Increased the maximum number of inclusion files supported from 1000 to 5000. - Added quotes around the compiler's work directory specification. ------------------------------------------------------------------------------- DESIGNER.PLC - Added the STATUSBAR object for web forms. - Included the WEBCLASS, WEBHEIGHT, WEBWIDTH, WEBLEFT, WEBTOP, and WEBPOSITION properties for the TOOLBAR and STATUSBAR objects. - Enabled TABID Renumbering for web forms. - Corrected an issue in the version comparison logic. - Added shortcut menus to text and numeric property edit fields to allow undo, cut, copy, paste, delete, and select all functions. - Corrected an F04 error that occurred when an object was being recreated. - Corrected an error that would occur went an object name property only changed case. ------------------------------------------------------------------------------- EDITOR.PLC - Added file's last modified time to the status bar. ------------------------------------------------------------------------------- DBGIFACE.PLC - Corrected issue with the Data menu. - Corrected highlighted line tracking. ------------------------------------------------------------------------------- SCHEMAEDITOR.PLC - Added SQLIO support for Oracle databases. - Corrected field validation logic in the index addition routine. ------------------------------------------------------------------------------- WATCH.PLC - Modified the version field display to accomodate a longer string. - Added version numbers to clients list display. ------------------------------------------------------------------------------- DBEXPLORER.PLC - Add support for a database name specified on the command line. -------------------------------------------------------------------------------