Date: 05-29-2015 Subject: RELEASE 9.7C Runtime Files These release notes pertain to the following programs or files: PLBCON 9.7C 29 May 2015 9,7,3,500 (ComCtl 6) PLBCONET 9.7C 29 May 2015 9,7,3,500 (ComCtl 6) PLBCLICON 9.7C 29 May 2015 9,7,3,500 (ComCtl 6) PLBCLIENT 9.7C 29 May 2015 9,7,3,500 (ComCtl 6) PLBCLINET 9.7C 29 May 2015 9,7,3,500 (ComCtl 6) PLBNET 9.7C 29 May 2015 9,7,3,500 (ComCtl 6) PLBSERVE 9.7C 29 May 2015 9,7,3,500 (Processed Server) PLBSERVET 9.7C 29 May 2015 9,7,3,500 (Threaded Server) PLBWEBSRV 9.7C 29 May 2015 9,7,3,500 (Processed Server) PLBWEBSRVT 9.7C 29 May 2015 9,7,3,500 (Threaded Server) PLBWIN 9.7C 29 May 2015 9,7,3,500 (ComCtl 6) PLBNETSUP.DLL 9.7C 29 May 2015 9,7,3,500 Required for PLBNET PLBWSEC.DLL 9.7C 29 May 2015 9,7,3,500 Req'd PLBWIN/PLBNET PLBCON5 9.7C 29 May 2015 9,7,3,500 (ComCtl 5) PLBCONET5 9.7C 29 May 2015 9,7,3,500 (ComCtl 5) PLBCLICON5 9.7C 29 May 2015 9,7,3,500 (ComCtl 5) PLBCLIENT5 9.7C 29 May 2015 9,7,3,500 (ComCtl 5) PLBCLINET5 9.7C 29 May 2015 9,7,3,500 (ComCtl 5) PLBNET5 9.7C 29 May 2015 9,7,3,500 (ComCtl 5) PLBWIN5 9.7C 29 May 2015 9,7,3,500 (ComCtl 5) PLBCMP 9.7C 29 May 2015 PLBDBUG 9.7C 29 May 2015 ADMEQU.INC 9.7C 29 May 2015 PLBEQU.INC 9.7C 29 May 2015 PLBMETH.INC 9.7C 29 May 2015 PLBCLI.ZIP 9.7C 29 May 2015 9,7,3,600 (ComCtl 6) PLBRUN.ZIP 9.7C 29 May 2015 9,7,3,600 (ComCtl 6) EMBEDINI 9.7A 09 Jan 2015 9,7,1,500 EMBEDINI64 9.7A 09 Jan 2015 9,7,1,500 HEXDUMP 9.7A 09 Jan 2015 9,7,1,500 HEXDUMP64 9.7A 09 Jan 2015 9,7,1,500 MAKECLI 9.7A 09 Jan 2015 9,7,1,500 MAKECON 9.7A 09 Jan 2015 9,7,1,500 MAKECONET 9.7A 09 Jan 2015 9,7,1,500 MAKEDEF 9.7A 09 Jan 2015 9,7,1,500 MAKEMFD 9.7A 09 Jan 2015 9,7,1,500 MANAGECE 9.7A 09 Jan 2015 9,7,1,500 OBJMATCH 9.7A 09 Jan 2015 9,7,1,500 OBJMATCH64 9.7A 09 Jan 2015 9,7,1,500 ODBCINST64 9.7A 09 Jan 2015 9,7,1,500 PLBCGI 9.7A 09 Jan 2015 9,7,1,500 PLBDSIGN 9.7A 09 Jan 2015 9,7,1,500 SETGUID 9.7A 09 Jan 2015 9,7,1,500 SUNAAMDX 9.7A 09 Jan 2015 9,7,1,500 SUNAAMDX64 9.7A 09 Jan 2015 9,7,1,500 SUNINDEX 9.7A 09 Jan 2015 9,7,1,500 SUNINDEX64 9.7A 09 Jan 2015 9,7,1,500 SUNLS 9.7A 09 Jan 2015 9,7,1,500 SUNMOD 9.7A 09 Jan 2015 9,7,1,500 SUNMOD64 9.7A 09 Jan 2015 9,7,1,500 SUNSORT 9.7A 09 Jan 2015 9,7,1,500 SUNSORT64 9.7A 09 Jan 2015 9,7,1,500 WININST 9.7A 09 Jan 2015 9,7,1,500 ODSBAC32.DLL 9.7A 09 Jan 2015 ODSBAC64.DLL 9.7A 09 Jan 2015 SA_DLL32.DLL 9.7A 09 Jan 2015 9,7,1,500 SUNWADO.DLL 9.7A 09 Jan 2015 9,7,1,500 SUNWADO25.DLL 9.7A 09 Jan 2015 9,7,1,500 SUNWADO28.DLL 9.7A 09 Jan 2015 9,7,1,500 SUNWMSQL.DLL 9.7A 09 Jan 2015 9,7,1,500 SUNWODBC.DLL 9.7A 09 Jan 2015 9,7,1,500 SUNWSRV.DLL 9.7A 09 Jan 2015 9,7,1,500 DBGIFACE 9.7A 09 Jan 2015 *============================================================================== Notes for some NEW Items: *============================================================================== Notes for WARNINGS: - There are some PLBWIN object behaviors that depend solely on the Windows controls. In some cases, the PLB applications may depend on the Windows OS control behavior. When these same PLB applications execute using the PL/B Web Server runtimes, the program execution behaviors may need to be changed to account for the differences between Windows control behaviors and HTML object behaviors. Examples: 1. Some users may set the PLB object HEIGHT and\or WIDTH to have a zero size. PLBWIN Windows OS runtime: In this case, the Windows OS determines the behavior where the Windows control is NOT visible to the end-user. PL/B Web Server Client Browser: In this case, the client browser is responsible for rendering the HTML object that has a zero HEIGHT and WIDTH. The object rendering behaviors depend solely on the client browser type being used. In most cases, the HTML object may still be visible. 2. The pop down item list for a COMBOBOX is controlled and rendered by the Windows OS. PLBWIN Windows OS runtime: Some users have implemented their PLB applications to hide data in the COMBOBOX items by extending the item data to include information outside the bounds of the drop down viewing rectangle. This technique is ONLY valid for the Windows OS. PL/B Web Server Client Browser: The drop down item list viewing rectangle is controlled and rendered by the client browser. The client browsers DO NOT clip the item list data and therefore all of the item list data appears in the drop down list. The PWS application must be changed to only show the end user item list without including the extended data. - In the 9.7Cd, the SETPROP TITLE for a CHECKBOX object was modified to to work. However, there is still a problem where word wrapping for a PWS Checkbox does not work and the TITLE string is being truncated. There is no generic single solution that can be applied to resolve this word wrapping problem. However, if the end-user application requires the TITLE to wrap for a specific CHECKBOX or RADIO object, the following example using the 'SetWebStyle' method to change the
tag element used to enclose the object as a work-around. Example Using 'SetWebStyle' to Force Word Wrap for CHECKBOX: . . CheckBox has been created with a long 'Title' string requiring . word wrapping. . StyleName INIT "line-height" //CSS style for HTML element StrValue INIT "20px" //Value varies depending on program. //In this case, '20' is 1/2 the //height of the CHECKBOX . CheckBox.SetWebStyle USING StyleName: //CSS style name StrValue: //Style string value 1 //Apply style to
// enclosing CHECKBOX *============================================================================== Notes for DOCUMENTATION: - Modify the descriptions found in the PL/B Language Reference manual under the GETINTO 'SYSTEM Information' section to read as follows: Column Size Value 647 10 Windows OS Major Version added in version 9.6A. For all Windows OS versions prior to Windows 8, this field is populated using the API described by the MSDN GetVersionEx API description. Starting with PLB version 9.7C, this field is populated using the Product Version of the 'kernel32.dll' mapped into the PLB runtime process when a Windows OS version 8 or newer is executing. 657 10 Windows OS Minor Version added in version 9.6A. For all Windows OS versions prior to Windows 8, this field is populated using the API described by the MSDN GetVersionEx API description. Starting with PLB version 9.7C, this field is populated using the Product Version of the 'kernel32.dll' mapped into the PLB runtime process when a Windows OS version 8 or newer is executing. 667 10 Windows OS build number added in version 9.6A. For all Windows OS versions prior to Windows 8, this field is populated using the API described by the MSDN GetVersionEx API description. Starting with PLB version 9.7C, this field is populated using the Product Version of the 'kernel32.dll' mapped into the PLB runtime process when a Windows OS version 8 or newer is executing. - Modify the PL/B Runtime Reference manual in the 'M (MAILSEND) Errors' to to include the following 'Mnn' error description: Value Operand 94 Error sending the SMTP Date field. - In the PL/B Language Reference manual in the 'Open Method (CLIENT)', add new parameter descriptions as follows: The method uses the following format: [label] {object}.Open [GIVING {return}] USING [[*URL=]{url}][: [*Options=](options}][: [*Name=]{name}][: [*Specs=]{specs}] Where: label Optional. A Program Execution Label. object Required. A CLIENT object that has been defined. return Optional. A Numeric Variable that returns the success or failure of the method. url Optional. A Character String Variable or string literal that defines the initial page to be displayed. options Optional. A Numeric Variable or decimal number that is currently undefined Flags Affected: OVER, ZERO Note the following: 1. The ZERO flag is set to a TRUE state when the {return} value zero. Otherwise the ZERO flag is cleared. 2. The OVER flag is set to a TRUE state if the value returned is too large to be stored into the {return} variable. 3. The {options} value is available for use to implement special behaviors for this method. Value Description 0x0000 If the {options} parameter is not used or the {options} value is zero, the default behavior for the 'Client.Open' method is to open a new browser window and load a web page link as described for a browser Window object 'open' method. In this case, the {url}, {name}, and {specs} parameters can be used. 0x0001 If the {options} parameter bit value of 1 is being used, the 'Client.Open' method executes in a mode that allows a 'Save-As-Dialog' to appear at the browser client which allows a file name specified in the {url} string to be opened or saved at the client browser. In this case, the {url} MUST be a file name that can include a relative path specified by a sub-directory to the path declared in the 'PLBWEB_SAVETOCLIENT' keyword. Also, the {name} and {specs} parameters are ignored when using this {options} bit value. 4. Depending on the {options} bit value being used, the {url} string can be either a link to any web server web page or it can be a '[path\]file' that is located on the PL/B Web Server. When the {options} bit value is zero, the {url} string may be a link to a web server from which a web page may be loaded into the new browser window. It should also be noted that the {url} string could actually start another PL/B program in the new browser window. See the following link for more information on the definition\syntax of a URL: http://en.wikipedia.org/wiki/Uniform_resource_locator Example of {url} string: Client.Open USING *URL="http://www.sunbelt-plb.com" This instruction causes the Sunbelt Web Server web page to show in a new browser window. Client.Open USING *URL="http://www.sunbelt-plb.com:8081/ images/sunbelt.png" This instruction allows the Sunbelt PL/B Web server to download the image located and named '/usr/plbwebsrv.97b/http-root/images/sunbelt.png' to the client browser. In this case, the image is rendered by the client browser so it appears in a new client browser window. When the {options} bit value is 0x0001, the {url} string must be a file name for a file that can be found in a sub-directory defined by the keyword named 'PLBWEB_SAVETOCLIENT={subdirectory}'. In this case, the PL/B Web Server downloads the specified file to the client browser using a HTTP 'content-disposition' header to cause the client browser to invoke the 'Save-As-Dialog' so the {url} string file can be saved at the client browser. If the 'PLBWEB_SAVETOCLIENT' keyword is NOT used, the PWS defaults to ONLY down files found in the PWS sub-directory named 'savetoclient' that is found in the PWS 'http_root' directory. Example of {url} string without 'PLBWEB_SAVETOCLIENT' keyword: Client.Open USING *URL="sunbelt.png": *OPTIONS=1 //Force Save-As-Dialog! This instruction allows the Sunbelt PL/B Web server to retrieve the image named 'sunbelt.png' from the PWS sub-directory named 'savetoclient' under the 'http_root' directory. The image is downloaded to the client browser where the browser invokes the 'Save-As-Dialog'. In this case, the 'savetoclient' directory is the default sub-directory name that is used when the 'PLBWEB_SAVETOCLIENT' keyword is NOT defined for the PWS server. Example of {url} string with 'PLBWEB_SAVETOCLIENT' keyword being used: plbwebsrv.ini [environment] PLBWEB_SAVETOCLIENT=myimages When the PL/B Web Server is first loaded, this keyword defines the sub-directory under the PWS 'http_root' directory which contains files the can be downloaded to a client browser where the browser invokes the 'Save-As-Dialog' Client.Open USING *URL="sunbelt.png": *OPTIONS=1 //Force Save-As-Dialog! This instruction allows the Sunbelt PL/B Web server to retrieve the image named 'sunbelt.png' from the PWS sub-directory named 'myimages' under the 'http_root' directory. The image is downloaded to the client browser where the browser invokes the 'Save-As-Dialog'. Example of {url} string with 'PLBWEB_SAVETOCLIENT' keyword being used when the downloaded file(s) exists in a sub-directories under the directory identified by the 'PLBWEB_SAVETOCLIENT' directory: plbwebsrv.ini [environment] PLBWEB_SAVETOCLIENT=mydownload When the PL/B Web Server is first loaded, this keyword defines the sub-directory under the PWS 'http_root' directory which contains sub-directories and files the can be downloaded to a client browser where the browser invokes the 'Save-As-Dialog' Client.Open USING *URL="myreport\sales.pdf": *OPTIONS=1 //Force Save-As-Dialog! This instruction allows the Sunbelt PL/B Web server to retrieve\download a file named 'sales.pdf' that is located in the 'myreport' sub-directory which exists under the 'mydownload' sub-directory. In this case, 'mydownload' sub-directory is under 'http_root' directory. The 'myreport\sales.pdf' file is downloaded to the client browser where the browser invokes the 'Save-As-Dialog'. 5. The {name} string usage is optional and may be used when the {options} value is zero. The {name} string can be specified the same as defined for a browser WINDOW object 'name' parameter for the 'open()' method. See the following link for details of possible strings that can be used. "http://www.w3schools.com/jsref/met_win_open.asp" 6. The {specs} string usage is optional and may be used when the {options} value is zero. The {specs} string can be specified the same as defined for a browser WINDOW object 'specs' parameter for the 'open()' method. See the following link for details of possible strings that can be used. "http://www.w3schools.com/jsref/met_win_open.asp" 7. The operations of the 'Client.Open' method depends on the current configuration\settings of the client browser and the Web Server being accessed via the {url} string. Depending on these configuration\settings the 'Save-As-Dialog' may or may not be shown on the client browser. - In the PL/B Language Reference manual under the 'ZORDER Property', add add the following Note (9.): Note: 9. When using the PL/B Web Server, all of the PL/B objects with the same parent are created in the same plane. Therefore, any PL/B objects that have the same parent must use the ZORDER to insure that the objects are shown as expected if objects are created on top or over other objects. - In the PL/B Runtime Reference manual under the 'C (Chain) Errors' add the following C15 subcode 39 error description: C15 Subcode 39 Insufficient memory available while allocating Global data memory when loading a load module. - In the PL/B Language Reference manual under the 'SETITEM' section, modify the following under Notes: Note (2.) modify the description for a PWS SLIDER: 2. When {item} is zero, the current position of the slide button is changed to the value of {data}. An {item} value of one changes the minimum value and a value of two changes the maximum value. When {item} is three, the page shift value is changed. For a PL/B Web Server SLIDER object, an {item} value of four causes the page 'step' value to be changed. Add the following Note (8.) for a PWS SLIDER: 8. The PL/B Web Server SLIDER is implemented using the jQuery SLIDER object. The PWS SLIDER supports a jQuery SLIDER 'step' option which is described as follows: "Determines the size or amount of each interval or step the slider takes between the min and max. The full specified value range of the slider (max - min) should be evenly divisible by the step." - In the PL/B Language Reference manual under the 'AddCss Method (CLIENT)' section, modify the following: Change the {options} description to read as follows: "options Optional. A Number Variable or decimal number whose value controls specific behaviors of the AddCss method." Change the Note (4.) to read as follows: "Note: 4. The {options} value is used to invoke special behaviors for this method as follows: Options Value Description 0x00000001 This value causes this method to allow\force the same CSS file to be updated for any secondary updates after the first update has occurred. Otherwise, a subsequent update of the same CSS file is ignored." - In the PL/B Web Server reference manual under the 'Server Configuration Keywords' section, add the following keyword description: PLBWEB_IDLETERM - optional idle termination Web page invoked at the next child UI interaction after the idle child task is terminated. PLBWEB_IDLETERM={HtmlFileName|PlcProgName} This keyword defines the default behavior that occurs after an idle child task is terminated and the client browser user attempts to perform a UI interaction because there is no PWS child task to continue the session. In this case, the {HtmlFileName|PlcProgName} can be restarted if the PLBWEB_IDLETERM keyword is used. Otherwise, the default PL/B Web Server web page named 'plbwebidleterm.html' is invoked at the client browser. The assigned keyword string is defined as follows: PLBWEB_IDLETERM= In this case, the 'plbwebidleterm.html' default web page is used. PLBWEB_IDLETERM={HtmlFileName} In this case, the user web page specified by the {HtmlFileName} name is used. Example: PLBWEB_IDLETERM=UserIdleTerm.html PLBWEB_IDLETERM={PlcProgName} In this case, the application PLB program name is used\executed. Example: PLBWEB_IDLETERM=.plc This would use the 'answer.plc' started in the answer\master mode. - In the PL/B Language Reference Manual under the 'PDF PRTOPEN Notes' section, please add the following to the Note (3.) flag bit mask definitions. The PRTOPEN *FLAGS bit map has been changed to include the following: PDF_FLAGS_USE_SUBFONTS EQU 2048 ( 0x0800 ) When this bit is turned on, fonts are rendered as font subsets into the Sunbelt PDF output. This bit ONLY affects the Sunbelt PDF output and is not used for any other advanced printer devices. When this bit is turned on, the font subsets are always embedded for the Sunbelt PDF output. PRT_FLAGS_UNICODE EQU 4096 ( 0x1000 ) When this bit is turned on, the Unicode support is enabled and used for advanced printing output. In this case, the printer output device can be a Windows print device or the Sunbelt PDF output device (pdf:). Also, the Unicode support applies to the print preview output. If this bit is turned on and the Sunbelt PDF output device is used, the font subsets are automatically used for the PDF output. - In the PL/B Language Reference under the ADMGETINFO instruction change the $ADMITEMSHAREDMEM keyword description for Note (3.) to read as follows: Value Keyword Returns... 9 $ADMITEMSHAREDMEM - the bit mask value that identifies the current running state(s) for a server child task. The $ADMITEMSHAREDMEM bit mask state values are defined as follows: ADM_FLAG_RUNNING 0x00010000 The child task is running. ADM_FLAG_SHUTDOWN 0x00020000 The child tasks should gracefully shutdown. ADM_FLAG_HAS_MSG_ERR 0x00040000 The child task got an error during a message. ADM_FLAG_PUT_MSG 0x00080000 A message was posted to the child task queue. ADM_FLAG_NO_LOGGING 0x00100000 Logging is not being performed for the child task. ADM_FLAG_IDLE 0x00200000 The child task is in the 'idle' state using the PWS server. ADM_FLAG_SUSPENDED 0x00400000 The child task is in the 'suspended' state using the PWS server. ADM_LOG_LEVEL1 0x01000000 The child task is using log level 1 logging. ADM_LOG_LEVEL2 0x02000000 The child task is using log level 2 logging. - In the PL/B Language Reference manual under the 'GetInfo Method (CLIENT)', make the following changes to the Notes: -> Change the Note (7.) to be Note (10.). -> Add the new Note (8.) that reads a follows: Note 8. The following data fields provide information about the socket connection from the child task and the client browser as follows: Field Meaning PeerIP This field is the peer IP address of the client browser which is associated\connected to the current PWS child task running the current PLB program. HttpHost This field is the Http Host request-header field that specifies the Internet host and port number found in the Http header as obtained from the original URL given at the client browser. -> Add the new Note (9.) that reads a follows: Note 8. The {options} parameter can be used to retrieve all of the data fields or one specific data field. If the {options} parameter is NOT specified or it is specified with a value of zero, the 'GetInfo' method returns all of the available data fields with a delimiter character between the fields. If the {options} is specified with a non-zero value, a single data field can be retrieved where the {options} value is defined as follows: Options Value Description 0 - Return all data fields with a delimiter character between the fields. 1 - Return the field 'availHeight' data. 2 - Return the field 'availWidth' data. 3 - Return the field 'colorDepth' data. 4 - Return the field 'height' data. 5 - Return the field 'pixelDepth' data. 6 - Return the field 'width' data. 7 - Return the field 'appCodeName' data. 8 - Return the field 'appName' data. 9 - Return the field 'appVersion' data. 10 - Return the field 'cookieEnabled' data. 11 - Return the field 'language' data. 12 - Return the field 'platform' data. 13 - Return the field 'product' data. 14 - Return the field 'userAgent' data. 15 - Return the field 'PeerIP' data. 16 - Return the field 'HttpHost' data. - In the PL/B Language Reference manual under the DBEXECUTE instruction section, change the Note (4.) to read as follows: "4. Parameters can be a Character String Variable, or a Numeric variable. These parameters are used for any parameters specified in a SQL statement. Up to 99 parameters are allowed. Any parameter variables beyond 99 are ignored. See the DBPREPARE instruction for information of parameter usage." - In the PL/B Language Reference manual under the DBPREPARE instruction section, change the Note (1.) to read as follows: "1. The prepared SQL statement can request parameters during execution through the use of the question mark (?) character. Any (?) characters specified in a SQL statement are replaced by a parameter variable specified in the USING list of a DBEXECUTE instruction. Up to 99 parameters or (?) parameter characters are supported." - In the PL/B Language Reference manual under the APPEARANCE Property section, add the following Note (6.). Note: 6. Using the LABELTEXT object for the PL/B Web Server runtime, the APPEARANCE property has extended appearance values that are defined as follows: Value Keyword The appearance is... 1 $3D three-dimensional presented using a combination of PLB CSS classes named 'lt' and 'bs1'. Note, 'bs1' is used for all PLB object types. 2 $FLAT two-dimensional presented using a combination of PLB CSS classes named 'lt' and 'bs2'. Note, 'bs2' is used for all PLB object types. 3 $LISTLBL HTML