Date: 10-03-2022 Subject: RELEASE 10.5 Runtime Files These RELEASE notes pertain to the following programs or files: EMBEDINI 10.5 03 Oct 2022 10.5.0.500 EMBEDINI64 10.5 03 Oct 2022 10.5.0.500 HEXDUMP 10.5 03 Oct 2022 10.5.0.500 HEXDUMP64 10.5 03 Oct 2022 10.5.0.500 MAKECLI 10.5 03 Oct 2022 10.5.0.500 MAKECON 10.5 03 Oct 2022 10.5.0.500 MAKECONET 10.5 03 Oct 2022 10.5.0.500 MAKEDEF 10.5 03 Oct 2022 10.5.0.500 MAKEMFD 10.5 03 Oct 2022 10.5.0.500 MANAGECE 10.5 03 Oct 2022 10.5.0.500 OBJMATCH 10.5 03 Oct 2022 10.5.0.500 OBJMATCH64 10.5 03 Oct 2022 10.5.0.500 ODBCINST64 10.5 03 Oct 2022 10.5.0.500 PLBCGI 10.5 03 Oct 2022 10.5.0.500 PLBCLICON 10.5 03 Oct 2022 10.5.0.500 (ComCtl 6) PLBCLIENT 10.5 03 Oct 2022 10.5.0.500 (ComCtl 6) PLBCLINET 10.5 03 Oct 2022 10.5.0.500 (ComCtl 6) PLBCON 10.5 03 Oct 2022 10.5.0.500 (ComCtl 6) PLBCONET 10.5 03 Oct 2022 10.5.0.500 (ComCtl 6) PLBNET 10.5 03 Oct 2022 10.5.0.500 (ComCtl 6) PLBSERVE 10.5 03 Oct 2022 10.5.0.500 (Processed Server) PLBSERVET 10.5 03 Oct 2022 10.5.0.500 (Threaded Server) PLBWEBSRV 10.5 03 Oct 2022 10.5.0.500 (Processed Server) PLBWEBSRVT 10.5 03 Oct 2022 10.5.0.500 (Threaded Server) PLBWIN 10.5 03 Oct 2022 10.5.0.500 (ComCtl 6) SUNAAMDX 10.5 03 Oct 2022 10.5.0.500 SUNAAMDX64 10.5 03 Oct 2022 10.5.0.500 SETGUID 10.5 03 Oct 2022 10.5.0.500 SUNINDEX 10.5 03 Oct 2022 10.5.0.500 SUNINDEX64 10.5 03 Oct 2022 10.5.0.500 SUNLS 10.5 03 Oct 2022 10.5.0.500 SUNMOD 10.5 03 Oct 2022 10.5.0.500 SUNMOD64 10.5 03 Oct 2022 10.5.0.500 SUNSORT 10.5 03 Oct 2022 10.5.0.500 SUNSORT64 10.5 03 Oct 2022 10.5.0.500 WININST 10.5 03 Oct 2022 10.5.0.500 PLBNETSUP.DLL 10.5 03 Oct 2022 10.5.0.500 Required for PLBNET PLBWSEC.DLL 10.5 03 Oct 2022 10.5.0.500 Req'd PLBWIN/PLBNET PLBNLDD.DLL 10.5 03 Oct 2022 10.5.0.500 Required SUNDM PLBNLDR.DLL 10.5 03 Oct 2022 10.5.0.500 Req'd PLBWIN/PLBNET PLBNLDS.DLL 10.5 03 Oct 2022 10.5.0.500 Required PLBSERVE PLBNLDW.DLL 10.5 03 Oct 2022 10.5.0.500 Required PLBWEBSRV ODSBAC32.DLL 10.5 03 Oct 2022 ODSBAC64.DLL 10.5 03 Oct 2022 SA_DLL32.DLL 10.5 03 Oct 2022 10.5.0.500 SUNWADO.DLL 10.5 03 Oct 2022 10.5.0.500 SUNWADO25.DLL 10.5 03 Oct 2022 10.5.0.500 SUNWADO28.DLL 10.5 03 Oct 2022 10.5.0.500 SUNWMSQL.DLL 10.5 03 Oct 2022 10.5.0.500 SUNWODBC.DLL 10.5 03 Oct 2022 10.5.0.500 SUNWSRV.DLL 10.5 03 Oct 2022 10.5.0.500 SUNWSRV64.DLL 10.5 03 Oct 2022 10.5.0.500 Required for Sundm64 DBGIFACE 10.5 03 Oct 2022 PLBCMP 10.5 03 Oct 2022 PLBDBUG 10.5 03 Oct 2022 SUNDEBUG 10.5 03 Oct 2022 ADMEQU.INC 10.5 03 Oct 2022 PLBEQU.INC 10.5 03 Oct 2022 PLBMETH.INC 10.5 03 Oct 2022 *============================================================================== Notes for some NEW Items: - PL/B Windows runtimes support Microsoft Edge WebView2. - Windows runtimes support both Win32 and WebView2 objects on same PLF forms in PL/B programs. - New DATATABLE object added. Features: Transactioning with ROLLBACK and COMMIT operations. Undo Stack used to restore original data as needed when using transactions. Paging feature allows pages of data to be shown in a ListView mode. Server side object used to virturalize data. DATATABLE data binding to HTMLCONTROL object. *============================================================================== Notes for WARNINGS: - The PLBCLI.ZIP and PLBRUN.ZIP are not released as of version 10.5. *============================================================================== Notes for DOCUMENTATION: - In the PL/B Lanuage Reference manual, add a Note (30.) to the 'COPYFILE' instruction that reads as follows: 30. When the COPYFILE syntax format (1) is being used in a program executing using the 'plbserve' runtime, there is an approximate file size limit of 16MB when a file is being transferred to or from the 'plbclient' OS system. This 16MB limit only applies as shown in these examples: COPYFILE "c:\serverpath\serverfile.ext": "!c:\clientpath\clientfile.ext" In this case, a file named 'serverfile.ext' is being copied from the server OS system to the client OS system. COPYFILE "!c:\clientpath\clientfile.ext": "c:\serverpath\serverfile.ext" In this case, a file named 'clientfile.ext' is being copied from the client OS system to the server OS system. - In the PL/B Language Reference manual, add the RUNTIME object to include the following method: ----------------------------------------------------------------- GetKnownPath Method (RUNTIME) The GetKnownPath method retrieves a limited set of Windows OS folder paths that are documented as 'known' folders by the Windows OS. The format of this method is defined as follows: [label] {object}.GetKnownPath GIVING {return}: USING [*TYPE=]{type} Where: label Optional. A Program Execution Label. object Required. A RUNTIME object. return Optional. A Character String Variable that receives a path that is known by the OS executing the runtime. type Required. A Numeric Variable or decimal number that identifies the folder path to be retrieved from the OS. Flags Affected: EOS, OVER, ZERO Note the following: 1. The EOS flag is set true if the {return} character variable is too small such that the returned folder path string is truncated. 2. The ZERO and OVER flag are always cleared. 3. The {type} value identifies the folder path to be retreived from the OS. The supported values are defined as follows which are included in the 'plbmeth.inc' descriptions: Type Value $FOLDERID_Desktop CONST "0" $FOLDERID_Documents CONST "1" $FOLDERID_Downloads CONST "2" $FOLDERID_Fonts CONST "3" $FOLDERID_Music CONST "4" $FOLDERID_OneDrive CONST "5" $FOLDERID_Pictures CONST "6" $FOLDERID_Programs CONST "7" $FOLDERID_ProgramData CONST "8" $FOLDERID_ProgramFiles CONST "9" $FOLDERID_RoamingAppData CONST "10" $FOLDERID_System CONST "11" $FOLDERID_SystemX86 CONST "12" $FOLDERID_Videos CONST "13" $FOLDERID_Windows CONST "14" $FOLDERID_LocalAppData CONST "15" $FOLDERID_LocalDocuments CONST "16" $FOLDERID_LocalDownloads CONST "17" $FOLDERID_LocalMusic CONST "18" $FOLDERID_LocalPictures CONST "19" $FOLDERID_LocalVideos CONST "20" $FOLDERID_Public CONST "21" $FOLDERID_PublicDesktop CONST "22" $FOLDERID_PublicDocuments CONST "23" $FOLDERID_PublicDownloads CONST "24" $FOLDERID_PublicPictures CONST "25" $FOLDERID_PublicMusic CONST "26" $FOLDERID_PublicVideos CONST "27" - In the PL/B Language Reference manual, add GETMODE and SETMODE keyword descriptions as follows: .......................... *PRTPREVIEWCENTER (GETMODE) *PRTPREVIEWCENTER=(value} The *PRTPREVIEWCENTER control reports the current runtime flag value used to allow/disallow Print Preview window positioning relative to its parent window. The Print Preview parent window is the current active PL/B WINDOW when Print Preview window is created. {value} is a previously defined Numeric Variable that receives the runtime behavior flag as follows: Value Comment 0 This value is the default value. When this value is being used, the PL/B runtime Windows OS default position/size values when the Print Preview window is created. 1 This value causes the PL/B runtime to position the Print Preview window relative to the center of its parent window position. .......................... *PRTPREVIEWCENTER (SETMODE) *PRTPREVIEWCENTER=(value} The *PRTPREVIEWCENTER control specifies/sets the runtime flag value used to allow/disallow Print Preview window positioning relative to its parent window. The Print Preview parent window is the current active PL/B WINDOW when Print Preview window is created. {value} is a decimal number or a Numeric Variable value set into the runtime behavior flag described as follows: Value Comment 0 This value is the default value. When this value is being used, the PL/B runtime Windows OS default position/size values when the Print Preview window is created. 1 This value causes the PL/B runtime to position the Print Preview window relative to the center of its parent window position. .......................... *WEBMODEHTMLCTRL (GETMODE) *WEBMODEHTMLCTRL=(value} The *WEBMODEHTMLCTRL control returns the current state flag used to control WebMode processing for HTMLCONTROL objects in a PL/B program. This control is only meaningful for runtimes that have WebView2 support. {value} is a previously defined Numeric Variable that receives the runtime behavior flag as follows: Value Comment 0 This value identifies that the WebMode processing for a HTMLCONTROL is to use the current runtime default setting. See the PL/B runtime keyword named 'PLBWIN_WEBMODEHTMLCTRL' for addition information. 1 This value identifies that the WebMode processing for a HTMLCONTROL to be set for Win32 only. In this case, the normal Windows runtime operations are processed using the Windows OS 'IWebBrowser2' interface. 2 This value identifies that the WebMode processing for a HTMLCONTROL can be set for Win32 or WebView2 controls. In this case, the HTMLCONTROL can be created using Win32 operations or using WebView2 operations. 3 This value identifies that the WebMode processing for a HTMLCONTROL to be set for WebView2 mode only. In this case, the HTMLCONTROL is created using the Microsoft Edge WebView2 interface. .......................... *WEBMODEHTMLCTRL (SETMODE) *WEBMODEHTMLCTRL=(value} The *WEBMODEHTMLCTRL control sets the current state flag used to control WebMode processing for HTMLCONTROL objects in a PL/B program. This control is only meaningful for runtimes that have WebView2 support. {value} is a decimal number or a Numeric Variable value set for runtime behavior flags described as follows: Value Comment 0 Set this value so the WebMode processing for a HTMLCONTROL is to use the current runtime default setting. See the PL/B runtime keyword named 'PLBWIN_WEBMODEHTMLCTRL' for addition information. 1 Set this value so the WebMode processing for a HTMLCONTROL is set for Win32 only. In this case, the normal Windows runtime operations are processed using the Windows OS 'IWebBrowser2' interface. 2 Set this value so the WebMode processing for a HTMLCONTROL can be either for Win32 or WebView2 controls. In this case, the HTMLCONTROL can be created using Win32 operations or using WebView2 operations. 3 Set this value so the WebMode processing for a HTMLCONTROL is for WebView2 mode only. In this case, the HTMLCONTROL is created using the Microsoft Edge WebView2 interface. .......................... *WEBMODEPLF (GETMODE) *WEBMODEPLF=(value} The *WEBMODEPLF control returns the current state flag used to control WebMode processing for PL/B objects on PLF forms loaded and created in a PL/B program. This control is only meaningful for runtimes that have WebView2 support. {value} is a previously defined Numeric Variable that receives the runtime behavior flag as follows: Value Comment 0 This value identifies that the WebMode processing for PL/B objects on PLF forms is to use the current runtime default setting. See the PL/B runtime keyword named 'PLBWIN_WEBMODEPLF' for addition information. 1 This value identifies that the WebMode processing for PL/B objects on PLF forms is to use Win32 only controls. 2 This value identifies that the WebMode processing for PL/B objects on PLF forms can be either Win32 or WebView2 controls. In this case, the PLF form objects can be created using Win32 interface or using WebView2 interface. 3 This value identifies that the WebMode processing for PL/B objects on PLF forms is set for WebView2 mode only. In this case, the runtime uses the Microsoft Edge WebView2 interface to create PL/B objects on PLF forms. .......................... *WEBMODEPLF (SETMODE) *WEBMODEPLF=(value} The *WEBMODEPLF control sets the current state flag used to control WebMode processing for PL/B objects on PLF forms loaded and created in a PL/B program. This control is only meaningful for runtimes that have WebView2 support. {value} is a decimal number or a Numeric Variable value set for runtime behavior flags described as follows: Value Comment 0 Set this value so the WebMode processing for PL/B objects on PLF forms is to use the current runtime default setting. See the PL/B runtime keyword named 'PLBWIN_WEBMODEPLF' for addition information. 1 Set this value so the WebMode processing for loading and creating PL/B objects on PLF forms is to only use the Win32 controls. 2 Set this value so the WebMode processing when loading and creating PL/B objects on PLF forms uses either Win32 or WebView2 controls. 3 Set this value so the WebMode processing when loading and creating PL/B objects on PLF forms only uses WebView2 controls. In this case, the PL/B objects are created using the Microsoft Edge WebView2 interface. .......................... *WEBMODEPWF (GETMODE) *WEBMODEPWF=(value} The *WEBMODEPWf control returns the current state flag used to control WebMode processing for PL/B objects on PWF forms loaded and created in a PL/B program. This control is only meaningful for runtimes that have WebView2 support. {value} is a previously defined Numeric Variable that receives the runtime behavior flag as follows: Value Comment 0 This value identifies that the WebMode processing for PL/B objects on PWF forms is to use the current runtime default setting. See the PL/B runtime keyword named 'PLBWIN_WEBMODEPWF' for addition information. 1 This value identifies that the WebMode processing for PL/B objects on PWF forms is to use Win32 only controls. 2 This value identifies that the WebMode processing for PL/B objects on PWF forms can be either Win32 or WebView2 controls. In this case, the PWF form objects can be created using Win32 interface or using WebView2 interface. 3 This value identifies that the WebMode processing for PL/B objects on PWF forms is set for WebView2 mode only. In this case, the runtime uses the Microsoft Edge WebView2 interface to create PL/B objects on PWF forms. .......................... *WEBMODEPWF (SETMODE) *WEBMODEPWF=(value} The *WEBMODEPWF control sets the current state flag used to control WebMode processing for PL/B objects on PWF forms loaded and created in a PL/B program. This control is only meaningful for runtimes that have WebView2 support. {value} is a decimal number or a Numeric Variable value set for runtime behavior flags described as follows: Value Comment 0 Set this value so the WebMode processing for PL/B objects on PWF forms is to use the current runtime default setting. See the PL/B runtime keyword named 'PLBWIN_WEBMODEPWF' for addition information. 1 Set this value so the WebMode processing for loading and creating PL/B objects on PWF forms is to only use the Win32 controls. 2 Set this value so the WebMode processing when loading and creating PL/B objects on PWF forms uses either Win32 or WebView2 controls. 3 Set this value so the WebMode processing when loading and creating PL/B objects on PWF forms only uses WebView2 controls. In this case, the PL/B objects are created using the Microsoft Edge WebView2 interface. .......................... *WEBVIEW2VERSION (GETMODE) *WEBVIEW2VERSION=(value} The *WEBVIEW2VERSION control returns the current WebView2 version being used by the PL/B runtime. {value} is a previously defined Character String Variable that returns the current WebView2 version. If the 'Microsoft Edge WebView2 Runtime' is not installed on the Windows OS system where the PL/B runtime is executing, the return string is NULL. For example: "105.0.1343.50;Microsoft Edge WebView2 Runtime" - In the PL/B Runtime Reference manual, add the following keywords: .......................... PLBWIN_WEBMODEHTMLCTRL Keyword PLBWIN_WEBMODEHTMLCTRL={webmode} This keyword control defines and sets the WebMode processing to be used when an HTMLCONTROL object is being created. If this keyword is not used or it has an invalid value, the default behavior of the PL/B runtimes is to execute as normally expected without using the Microsoft WebView2 Edge interface. The {webmode} values can be set as follows: Value Description 1 Set this value so the WebMode processing for a HTMLCONTROL is set for Win32 only. In this case, the normal Windows runtime operations are processed using the Windows OS 'IWebBrowser2' interface. 2 Set this value so the WebMode processing for a HTMLCONTROL can be either for Win32 or WebView2 controls. In this case, the HTMLCONTROL can be created using Win32 operations or using WebView2 operations. 3 Set this value so the WebMode processing for a HTMLCONTROL is for WebView2 mode only. In this case, the HTMLCONTROL is created using the Microsoft Edge WebView2 interface. .......................... PLBWIN_WEBMODEPLF Keyword PLBWIN_WEBMODEPLF={webmode} This keyword control defines and sets the WebMode processing to be used when PL/B objects on a PLF form are being created. If this keyword is not used or it has an invalid value, the default behavior of the PL/B runtimes is to execute as normally expected without using the Microsoft WebView2 Edge interface. The {webmode} values can be set as follows: Value Description 1 Set this value so the WebMode processing for loading and creating PL/B objects on PWF forms is to only use the Win32 controls. 2 Set this value so the WebMode processing when loading and creating PL/B objects on PWF forms uses either Win32 or WebView2 controls. 3 Set this value so the WebMode processing when loading and creating PL/B objects on PWF forms only uses WebView2 controls. In this case, the PL/B objects are created using the Microsoft Edge WebView2 interface. .......................... PLBWIN_WEBMODEPWF Keyword PLBWIN_WEBMODEPWF={webmode} This keyword control defines and sets the WebMode processing to be used when PL/B objects on a PWF form are being created. If this keyword is not used or it has an invalid value, the default behavior of the PL/B runtimes is to execute as normally expected without using the Microsoft WebView2 Edge interface. The {webmode} values can be set as follows: Value Description 1 Set this value so the WebMode processing for loading and creating PL/B objects on PWF forms is to only use the Win32 controls. 2 Set this value so the WebMode processing when loading and creating PL/B objects on PWF forms uses either Win32 or WebView2 controls. 3 Set this value so the WebMode processing when loading and creating PL/B objects on PWF forms only uses WebView2 controls. In this case, the PL/B objects are created using the Microsoft Edge WebView2 interface. - In the PL/B Language Reference manual, change the WINDOW object methods to include the 'SetAsClient' method described as follows: ----------------------------------------------------------------------- SetAsClient Method (WINDOW) The SetAsClient method is only used when using a WebView object. This method assigns the current WINDOW object so CLIENT methods are executed for the embedded WebView browser thead created for the current Window. The format of this method is defined as follows: [label] {object}.SetAsClient GIVING {return} Where: label Optional. A Program Execution Label. object Required. A WINDOW object. return Optional. A Numeric Variable always returns a zero value. Flags Affected: EOS, OVER, ZERO Note the following: 1. The ZERO flag is always set to True. 2. The EOS and OVER flag are always cleared. 3. When a WebView object is created on a WINDOW object, a WebView thread is created with an embedded browser. 4. This method is only needed if a PL/B program has WebView objects created as children on multiple WINDOW objects at the same time. In this case, the SetAsClient identifies which WebView client browser is to be accessed when CLIENT methods are used in a PL/B program. - In the PL/B Language Reference manual, change the 'LISTVIEW Events' section to include a reference to the $UPDATED event. - In the PL/B Language Reference manual, change the 'EVENTREGISTER' statement Note (4.) table so the $UPDATED description reads as follows: 22 $UPDATED Updated Only AUTOMATION, DATATABLE and LISTVIEW (when it uses SetEditColumn method). - In the PL/B Language Reference manual, add the new object named DATATABLE described as follows: ................................................................... DATATABLE The DATATABLE object provides the PL/B language a means of loading, storing, and manipulating a table of data that is maintained and referenced using a column/row orientation. The object attributes and behaviors are specified using PL/B properties and/or methods which are executed in a PL/B program. The following statement formats: [label] DATATABLE [%|^][arraysize] Where: label Optional. A Program Execution Label. % Optional. Denotes the item as being GLOBAL. arraysize Optional. An integer decimal constant, CONST variable, or EQUATEd value indicating the number of array items. Flags Affected: NONE Note the following: 1. The DATATABLE is supported in CREATE, GETPROP, and SETPROP instruction. 2. By default, a newly create DATATABLE does not have an end user UI interface to view and/or perform user actions with. This allows a PL/B program to create, manage, and maintain one or more DATATABLE objects as virtual table(s) of data for an application. However, a PL/B program can bind a DATATABLE to a PL/B HTMLCONTROL object when an application requires an end user UI interface to be used. When the DATATABLE/HTMLCONTROL bind is being used, the generation and presentation of the DATATABLE data done using 'BootStrap 5' framework. More information about 'BootStrap 5' is available at this link: https://getbootstrap.com/docs/5.0 3. The DATATABLE object is contains two collections as COLUMNS and ROWS that can be used. These collections are used to execute column and properties for a DATATABLE. 4. The COLUMNS collection allows direct access to the DATATABLE columns using the GETPROP or SETPROP statements. The collection uses the following format: [label] GetProp {object}.Columns({key}),{property} Where: label Optional. A Program Execution Label. object Required. A DATATABLE object that is accessed. key Required. A decimal number or Numeric Variable that is zero-based position of the column. Or, the key can be specified using a Character String Variable or literal using the 'column identification'. The 'column identification' is defined using the *ID parameter for the 'AddColumn' method when a column is added to the DATATABLE. property Required. The remaining line of the GETPROP statement. 5. The ROWS collection allows direct access to the DATATABLE rows using the GETPROP or SETPROP statements. The collection uses the following format: [label] GetProp {object}.Rows({nkey}),{property} Where: label Optional. A Program Execution Label. object Required. A DATATABLE object that is accessed. nkey Required. A decimal number or Numeric Variable that specifies a zero-based position of a row in the DATATABLE. property Required. The remaining line of the GETPROP statement. 6. This DATATABLE object supports the following properties: ACTIVEROW=dnumnvar CHECKBOX=dnumnvar CONTEXT=dnumnvar GRIDLINE=dnumnvar HIDECOLHDR=dnumnvar MULTISELECT=dnumnvar OBJECTID=dnumnvar PAGEPOS=dnumnvar PAGESIZE=dnumnvar RUNNAME=svarslit SORTORDER=dnumnvar STRIPED=dnumnvar TRANSACTION=dnumnvar USERDATA=svarslit 7. This DATATABLE COLUMNS collection supports the following properties: ALIGNMENT=dnumnvar COLUMNID=svarslit CONTENTTYPE=dnumnvar CONTEXT=dnumnvar COMPUTE=svarslit DATATYPE=dnumnvar EDITCSS=svarslit EDITLIST=svarslit MAXSIZE=dnumnvar ORDER=dnumnvar TITLE=svarslit WEBCLASS=svarslit WEBWIDTH=svarslit 8. This DATATABLE ROWS collection supports the following properties: CHECKED=dnumnvar CONTEXT=dnumnvar PARAM=dnumnvar SELECTED=dnumnvar 9. The DATATABLE object supports the following methods: AddColumn AddRow DeleteAllColumns DeleteAllRows DeleteColumn DeleteRow FindRow FindNextRow GetColumnCount GetOrderArray GetRowCount GetRowText GetRowTextAll LoadCsvFile SaveCsvFile SetRowText SetRowTextAll Sort HtmlBind Commit Rollback Undo HtmlUpdate HtmlSave HtmlUnBind 10. The DATATABLE object supports events which are generated by UI actions through the HTMLCONTROL object which has been attached (i.e. bind) to the table. The events only take affect after the DATATABLE bind to a HTMLCONTROL is done. The EVENTREG statement is used to register the events for the DATATABLE like other objects. Supported Events Using Listview Mode are: $CHANGE - 3 Event Result is 'Row' number only zero relative. The Home, End, Up and Down keyed actions cause this event. These keys only have an affect within the scope of a single page. $CLICK - 4 Event Result is 'Row' number only zero relative. $DBLCLICK - 6 Event Result is 'Row' number only zero relative. $UPDATED - 22 Event Result is '( (Row*100) + Col )'. Row and Column numbers are zero relative. This $UPDATED event can occur after a DATATABLE cell or subitem has data that is changed by an end-user UI action. $COLCLICK - 23 Event Result is 'Column' number only zero relative. $ITEMACTIVATE - 25 Event Result is '( (Row*100) + Col )'. Row and Column numbers are zero relative. Supported Events Using Cards Mode are: $CLICK - 4 Event Result is 'Row' number only zero relative. $UPDATED - 22 Event Result is '( (Row*100) + Col )'. Row and Column numbers are zero relative. This event only occurs when a click action for $TC_BUTTON1, $TC_BUTTON2, or $TC_BUTTON3 occurs. The Row number is the Card number. The Column number identifies which CARD button is clicked. $ITEMACTIVATE - 25 Event Result is '( Row*100 )'. Row number are zero relative. Column number is always zero. - In the 'PL/B Web Server' manual, add the 'PLBWEB_USE_WEBVIEW' keyword with the following description. PLBWEB_USE_WEBVIEW Keyword PLBWEB_USE_WEBVIEW={on|off} By default this keyword is 'off' for the PL/B Web Server. When this keyword is set to 'on', the PWS server loads and uses the 'Bootstrap 5' framework so the client HTML objects have enhanced appearances and behaviors for PL/B objects. See the 'PL/B Language Reference' manual under 'Web Technologies' for more details web objects. - In the PL/B Language Reference manual, add these properties for a BUTTON created as a web object: --------------------------------------- CONTEXT Property (WebView Only) The CONTEXT property is only used when the object has been created as a web object using the WebView mode. This property uses Bootstrap 5 'Contextual classes' to invoke a style for background and color attributes. CONTEXT={value} Note the following: 1. The CONTEXT can be used in CREATE, GETPROP and SETPROP statements for a web object. 2. {value} is a Numeric Variable or Decimal number defining the context style to be used for this object. The supported values for this property are defined as follows: Value Web object uses... $OC_DEFAULT 0 default Contextual class. $OC_DANGER 1 danger Contextual class. $OC_DARK 2 dark Contextual class. $OC_INFO 3 info Contextual class. $OC_LIGHT 4 light Contextual class. $OC_PRIMARY 5 primary Contextual class. $OC_SECONDARY 6 secondary Contextual class. $OC_SUCCESS 7 success Contextual class. $OC_WARNING 8 warning Contextual class. 3. Use the following link to get information about a web object for the Bootstrap 5 'Contextual classes' buttons: https://getbootstrap.com/docs/5.0/components/buttons/ --------------------------------------- BUTTONSTATE Property (WebView Only) The BUTTONSTATE property is only used when a BUTTON object has been created as a web object using the WebView mode. This property uses a combination of Bootstrap 5 'Contextual classes' and button state types to invoke a variety of appearances for a web button object. BUTTONSTATE={value} Note the following: 1. The BUTTONSTATE can be used in CREATE, GETPROP and SETPROP statements for a BUTTON web object. 2. {value} is a Numeric Variable or Decimal number defining the buttonstate style to be used for this object. The supported values for this property are defined as follows: Value Web object uses... $BTNSTATE_DEFAULT 0 default. $BTNSTATE_OUTLINE 1 button outline. $BTNSTATE_SPIN 2 button spinner. $BTNSTATE_SPINGROW 3 button grow spinner. 3. For more information about Bootstrap 5 buttons and spinners, see the following links: https://getbootstrap.com/docs/5.0/components/buttons/ https://getbootstrap.com/docs/5.0/components/spinners/ - In the PL/B Language Reference manual, add the switch property for a CHECKBOX object created as a web object: --------------------------------------- SWITCH Property (WebView Only) The SWITCH property is only used when a CHECKBOX object has been created as a web object using the WebView mode. This property uses a Bootstrap 5 'switch class' to show a toggle switch for a web checkbox object. SWITCH={value} Note the following: 1. The SWITCH property can be used in CREATE, GETPROP and SETPROP statements for a CHECKBOX web object. 2. {value} is a Numeric Variable or Decimal number where the value turns the switch on or off. The supported values for this property are defined as follows: Value Web object uses... $OFF 0 no toggle switch as default. $ON 1 a toggle switch. 3. For more information about Bootstrap 5 switches, see the following link: https://getbootstrap.com/docs/5.0/forms/checks-radios/#switches - In the PL/B Language Reference manual, add the WEBMODE property for the HTMLCONTROL and WINDOW objects: --------------------------------------- WEBMODE Property The WEBMODE property is used to specify whether the WebView mode is to be allowed or not allowed for a HTMLCONTROL or WINDOW object. Once these objects are created using a specific web mode, all child objects are created and processed accordingly. WEBMODE={value} Note the following: 1. The WEBMODE property can be used in CREATE, GETPROP and SETPROP statements. However, this property ONLY takes affect when it is used in the CREATE statement for a HTMLCONTROL or WINDOW object. After these objects have been created to use a WEBMODE setting, this web mode remains in effect until they are destroyed. 2. {value} is a Numeric Variable or Decimal number where the value identifies the current web mode to be used. The supported values for this property are defined as follows: Value Web Mode is... 0 This value identifies that the WebMode processing for a HTMLCONTROL or WINDOW object is to use the current runtime default setting. See the PL/B runtime keyword named 'PLBWIN_WEBMODEHTMLCTRL' for addition information. 1 This value identifies that the WebMode processing for a HTMLCONTROL or WINDOW object only uses Win32 controls. For HTMLCONTROL, the normal Windows runtime operations are processed using the Windows OS 'IWebBrowser2' interface. Otherwise, the normal Windows OS controls are used. 2 This value identifies that the WebMode processing for a HTMLCONTROL or WINDOW object can use Win32 or WebView2 controls. 3 This value identifies that the WebMode processing for a HTMLCONTROL or WINDOW object only uses WebView2 controls. In this case, these objects are created using the Microsoft Edge WebView2 interface. - In the PL/B Language Reference manual, add the INPUTTYPE property for the EDITTEXT object: --------------------------------------- INPUTTYPE Property (WebView Only) The INPUTTYPE property is only used when an EDITTEXT object has been created as a web object using the WebView mode. This property sets the input 'type' of the HTML tag used by an EDITTEXT web object. INPUTTYPE={value} Note the following: 1. The INPUTTYPE property can be used in CREATE, GETPROP and SETPROP statements for an EDITTEXT web object. 2. {value} is a Numeric Variable or Decimal number that is used to set the input type for the EDITTEXT web object. The supported values for this property are defined as follows: Value Input Type is... $ET_INPUTDEFAULT 0 text // $ET_INPUTCOLOR 1 color. $ET_INPUTDATE 2 date. $ET_INPUTDTLOCAL 3 datetime-local. $ET_INPUTEMAIL 4 email. $ET_INPUTMONTH 5 month. $ET_INPUTNUMBER 6 number. $ET_INPUTPASSWORD 7 password. $ET_INPUTSEARCH 8 search. $ET_INPUTTEL 9 tel. $ET_INPUTTEXT 10 text. $ET_INPUTTIME 11 time. $ET_INPUTURL 12 url. $ET_INPUTWEEK 13 week. 3. For more information about HTML tag and input type, see the following link: https://www.w3schools.com/tags/tag_input.asp - In the PL/B Language Reference manual, add the WEBOBJECT property for these PL/B objects: BUTTON MREGION CHECKBOX PANEL COLOR (Create Only) COMBOBOX PICT DATALIST PROGRESS EDITDATETIME RADIO EDITNUMBER SHAPE EDITTEXT SLIDER FLOATMENU SPLITTER FONT (Create Only) GROUPBOX STATTEXT HTMLCONTROL STATUSBAR ICON TABCONTROL IMAGELIST TOOLBAR LABELTEXT TREEVIEW LISTVIEW --------------------------------------- WEBOBJECT Property (WebView Only) The WEBOBJECT property is used to create PL/B objects as web objects when the WEBMODE is set with WebView turned on. WEBOBJECT={value} Note the following: 1. The WEBOBJECT property can be used in CREATE, GETPROP and SETPROP statements. However, this property ONLY takes affect when it is used in the CREATE statement to create a web object. After a web object is created using this property, it remains in effect until it is destroyed. The COLOR and FONT objects can only use the WEBOBJECT property in a CREATE statement. 2. {value} is a Numeric Variable or Decimal number where the value causes a web object to be created or not. The supported values for this property are defined as follows: Value Is Web object to be created? $OFF 0 No by default. $ON 1 Yes when WEBMODE set to use WebView. *============================================================================== The following files have been changed as noted: ------------------------------------------------------------------------------- PLBWEBSRV (HTML\JS\CSS) - Modified to support 10.2A changes. plbwebbasic.css 10.1B 190424 plbwebbasic.js 10.2B 200707 plbwebboot.html 10.2A 191210 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 plbwebstartwv.html 10.5 220524 Support Bootstrap 5 plbwebstart99a.html 9.9A 170428 - A new keyword named 'PLBWEB_USE_WEBVIEW={on|off}' has been added to the PL/B Web Server. When this keyword is set to 'on', the PWS server loads and uses 'Bootstrap 5' framework so the client HTML objects have appearances and behaviors like WebView2 objects. - Added 'plbwebstartwv.html' to PWS 'http_root' directory to be used instead of 'plbwebstart.html' if the PWS keyword 'PLBWEB_USE_WEBVIEW=ON' is being used. - Moved all PWS server '.js' files to the 'http_root\js' directory. Also, the 'plbwebuser.js' must be placed into the 'http_root\js' directory. - Moved all PWS server '.css' files to the 'http_root\css' directory. ------------------------------------------------------------------------------- PLBWIN, PLBNET - Added a RUNTIME method named 'GetKnownPath' which is implemented to retrieve specific Windows OS known folder paths. See the Documentation section for detailed information on this method. ------------------------------------------------------------------------------- PLBWIN, PLBCON, PLBCLIENT - Added WebView2 Support to the Plbwin runtime and Plbclient client. WebView2 PL/B Language Implementation PLBWIN and PLBCLIENT have been modified to support the 'Microsoft Edge WebView2 Runtime' when it is installed and available on a Windows OS System. By default the PLBWIN/PLBCLIENT executes as a WIN32 Desktop Application as normally expected. See the 'PL/B Language Reference' manual under the 'Introduction' section for more information. WebView2 System Requirements 1. Windows 10 2. Windows 11 3. Sunbelt Runtime/CLient requires 32 bit WebView2 Runtime. WebView2 Installation 1. Windows 10 a. The 'Microsoft Edge WebView2 Runtime' must be installed on the Windows 10 System where the PL/B Runtime/Client command ( Plbwin/Plbclient ) is being executed. b. The 'Microsoft Edge WebView2 Runtime' can be installed manual using the following link: https://developer.microsoft.com/en-us/microsoft-edge/webview2/ - Scroll Down to 'Evergreen Standalone Installer' - Download the 'x86' Installer 2. Windows 11 a. The 'Microsoft Edge WebView2 Runtime' is released with the Windows 11 OS. - Modified the BUTTON object to support the following properties: --------------------------------------- CONTEXT Property (WebView Only) The CONTEXT property is only used when the object has been created as a web object using the WebView mode. This property uses Bootstrap 5 'Contextual classes' to invoke a style for background and color attributes. CONTEXT={value} --------------------------------------- BUTTONSTATE Property (WebView Only) The BUTTONSTATE property is only used when a BUTTON object has been created as a web object using the WebView mode. This property uses a combination of Bootstrap 5 'Contextual classes' and button state types to invoke a variety of appearances for a web button object. BUTTONSTATE={value} - Modified the CHECKBOX object to support the following property: --------------------------------------- SWITCH Property (WebView Only) The SWITCH property is only used when a CHECKBOX object has been created as a web object using the WebView mode. This property uses a Bootstrap 5 'switch class' to show a toggle switch for a web checkbox object. SWITCH={value} - Modified the HTMLCONTROL and WINDOW objects to support the 'WEBMODE' property described as follows: --------------------------------------- WEBMODE Property The WEBMODE property is used to specify whether the WebView mode is to be allowed or not allowed for a HTMLCONTROL or WINDOW object. Once these objects are created using a specific web mode, all child objects are created and processed accordingly. WEBMODE={value} - Modified the EDITTEXT object to support the following property: --------------------------------------- INPUTTYPE Property (WebView Only) The INPUTTYPE property is only used when an EDITTEXT object has been created as a web object using the WebView mode. This property sets the input 'type' of the HTML tag used by an EDITTEXT web object. INPUTTYPE={value} - Added support for a 'WEBOBJECT' property used to create PL/B web objects and described as follows: --------------------------------------- WEBOBJECT Property (WebView Only) The WEBOBJECT property is used to create PL/B objects as web objects when the WEBMODE is set with WebView turned on. WEBOBJECT={value} ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLBWEBSRV (Windows) - Corrected O123 error for a 'SETPROP COLLECTION' when the properties are specified using the '*property' syntax. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, PLB(UNIX), PLBWEBSRV - Modified the index logic used to automatically determine the EOR type so it detects a read data file error. If a read error is detected, the logic has been changed to give an appropriate error. This change has been made to prevent the possiblity of a GPF error. - Corrected a problem where the TEMPLATE 'G' generic control was causing a S30 subcode 111 error when unexpected binary data was encountered in a tamplate PDF object. ------------------------------------------------------------------------------- PLBWIN, PLBNET, PLBSERVE, ALL GUI CLIENTS - The DATATABLE object provides the PL/B language a means of loading, storing, and manipulating a table of data that is maintained and referenced using a column/row orientation. The object attributes and behaviors are specified using PL/B properties and/or methods which are executed in a PL/B program. 1) Features of the DATATABLE include: Transactioning Undo Stack Paging Server local 2) See the Documentation section for more information for the DATATABLE properties, methods, and events. ------------------------------------------------------------------------------- PLBWIN, PLBNET, ALL GUI CLIENTS - Modified to allow SETFOCUS for a TOOLBAR. - Modified the compiler to report all unresolved event label errors in a PLFORM in the '.plbm' meta data. This change corrects an issue where the IDE was not showing all of the unresolved event labels to the end-user. - Modified the LISTVIEW object 'SortColumn' to work properly when sorting with a numeric type value of 3 (numeric ascending) or 4 (numeric descending) and a filter of '(1)' where the column data contains negative currency values fomatted as follows: "-$nnn,nnn.nn" - Modified to allow the print preview Window to be positioned to the parent Window Center when the 'SETMODE *PRTPREVIEWCENTER=1' is used. - Modified to support the 'PRTPREVIEWCENTER' keyword for the GETMODE and SETMODE. The 'PRTPREVIEWCENTER' keyword can be used to cause the Print Preview Window to be positioned/centered relative to its parent Window. See the Documentation section for details. - Modified the PL/B runtimes to allow errors to be detected during a save PLF file operation when processing events in the PL/B designer. ------------------------------------------------------------------------------- PLBCMP - Modified to allow SETFOCUS for a TOOLBAR. - Modified so the LIKE operation can use a RECORD member variable. - Modified to support the DATATABLE object. See the Documentation section for more information. - Modified the compiler to give a more detailed error when a DEFINE replaces a label with an invalid label string. - Changes to the compiler have been made so all of the unresolved event label errors in the PLF forms are stored in the meta data. This allows the IDE to show all of the errors as expect. - Corrected a bug where an INTEGER declaration that was initialized to an EQUATE value could cause indeterminate program PCODE. This could cause unexpected program behaviors including a GPF. iVar INTEGER 4,$MyEquate - Added the 'PRTPREVIEWCENTER' keyword to GETMODE/SETMODE. See the documentation section for more information. - Added the following keywords to GETMODE/SETMODE for WebView2 support: See the Documentation section for more information. WEBMODEHTMLCTRL WEBMODEPLF WEBMODEPWF WEBVIEW2VERSION (GETMODE only) ------------------------------------------------------------------------------- PLBEQU.INC - This include has been updated for 10.5 objects and properties. ------------------------------------------------------------------------------- PLBMETH.INC - This include has been updated for version 10.5 objects and methods. ------------------------------------------------------------------------------- SUNIDE.PLC - Removed external editor support. - Added initial support for WebObjects. ------------------------------------------------------------------------------- DESIGNER.PLC - Added support for WebObject. - Consolidated new file functions using a dialog. - Modified the toolbox window to support WebObjects. - Corrected issues with windows being shown without be activated. - Corrected issues in object array creation. ------------------------------------------------------------------------------- EDITOR.PLC - Added trapping of object errors during hot key assignment in initialization. - Corrected an F05 error when closing a read-only file. - Added exception handling for NotifyDataChange and NotifyEmpty call backs. - Modified "nogo" logic in the CodeListVariable function. - Added logic to ensure the correct editor id is set on a right click. - Added routines to get and set bookmarks from a single string. - Disable Replace in the shortcut menu if the file is read only. ------------------------------------------------------------------------------- PROFILER.PLC - No changes ------------------------------------------------------------------------------- SCHEMAEDITOR.PLC - No changes ------------------------------------------------------------------------------- WATCH.PLC - Modified to set WEBMODE default values. ------------------------------------------------------------------------------- DBEXPLORER.PLC - Modified to set WEBMODE default values. -------------------------------------------------------------------------------