# PxPlus Releases

PxPlus 2021 (version 18.00) | May 2021

PxPlus 2021 consists of various new features and enhancements, including a new REST-based Webster+ toolset, new PxPlus Google Workspace® Objects, File Maintenance Generator enhancements and much more.

## Major New Features

- Webster+ for HTML page generation
- Support for larger screens with more controls
- Added named parameters to CALL, PERFORM and Methods
- Enhanced Array management
- New PxPlus Objects for working with Google Workspace® cloud-based applications Drive, Docs and Sheets
- Improved File Maintenance Generator, including support for Webster+ HTML page generation
- Improved support for ADA (USA)/WCAG (Canada) compliance

## PxPlus 2021 Enhancements

Language Changes

- Method Calls enhanced to provide named parameters to CALL and PERFORM directives
- Ability to include images in the PLUSLIB DLL Library
- ZOOM option added to WDW command that will attempt to adjust the font size to fill the primary window as opposed to changing the number of lines and columns
- PxPlus.Script added that allows external applications to directly invoke and interact with PxPlus and PxPlus objects for Windows 32-bit and 64-bit versions
- *BROWSER changes

- Unused key events are now passed to the PxPlus window when being used in HTML Editor, Ed+, etc.
- *BROWSER Debug mode that allows the browser developer console to display in a popup window for any *BROWSER controls that are created
- DragDrop property that supports Get/Set whether the browser allows drag and drop into the browser control or popup windows

> Directives

- REMOVE option added to subscript declaration to remove identified entry of single dimension arrays after use (typically dynamic arrays)
- REDIM INSERT directive to insert either a single element at the specified index or a range of elements
- REDIM DELETE directive to delete the specified index or range of indices
- WITH variable=expression option added to CALL and PERFORM directives to specify a variable that will be initialized with the value from the expression prior execution of the called program
- ACCEPT UNDEFINED option added for the DEF CLASS directive to indicate undefined properties should return a null string or zero
- MENU_BAR and POPUP_MENU directives allow the inclusion of the special characters used to define the menu

> OPTION Mnemonics

- BrowserDebug option for setting debug mode that will display the browser developer console in a popup window
- StdGridQueryImg option for defining the image to use in the query/lookup buttons of a grid
- TipColor option for defining the color for non-HTML tips
  Note: The above options can be read using the FIN function.

> Mnemonics

- FRAME mnemonic now supports the ability to change frame text color when using '4D' mode

> Functions

- CVS function supports new "LINK" and "URL?" formats
- NUM function converts scientific notation either with or without the + after the E (i.e. 0.2E10 = 0.2E+10)
- LNO function allows referencing lines based on a supplied string value
- Added ::name option to the TCB(WINDOW) function to provide the ability to access information for window attributes

> Data Sources and Views

- Usability enhancements for Data Source Definition Wizard
- Ability to add Calculated Fields to Views

Objects

- New Google Workspace® objects

- GoogleAuth object to authorize the Google Workspace® objects
- GoogleDrive object to work with Google Workspace® Drive
- GoogleDocs object to work with Google Workspace® Docs
- GoogleSheets object to work with Google Workspace® Sheets

- *OBJ/ARRAYLIST object to create and work with an array list
- REST Interface Example Objects to PayPal® and Salesforce® that can be used to build a complete interface for your own application
- IsReadOnly data element option added to Data Dictionary object PVXDb
- Improved setting of font styles in *OBJ/EXCEL and *OBJ/WORD

Enhanced IDE, Nomads, iNomads and Toolkit

- Increased panel and control sizes to a width of 620 and height of 255 in all designers
- Ability to fully maximize panel sizes
- Increased the Maximum Number of Controls on a simple panel from 200 to 999 interactive controls
- Create New Project button added beside IDE Project drop box
- Ability to launch HTML pages in HTML Editor from the IDE History and Project list boxes
- Library Object Selection changes

- Webster+ menu added for defining settings for generating HTML pages
- Panel objects with HTML pages are designated as Type "Dh"
- Selecting a File Maintenance panel object launches File Maintenance Generator
- Preview HTML Page option added to the right click menu
- Updated validation rules when creating new panels

- Copy Screen Objects utility changes in Library Object Selection

- Ability to specify different input libraries
- New Select Objects dialog for selecting other panels to copy
- Ability to create new output library with SVN Version Control System support
- New Apply button allows consecutive copy operations and changes to input/output libraries without exiting
- Enhanced Copy progress bar

- Suppress Groups utility added to help with panel design when multiple groups are used in all designers
- Usability enhancements for User Defined CTL Values utility
- Webster+ property and Focus method added to TinyMCE® Editor COM control
- Support for applying Multi-Line Data Class height/width attributes to a Multi-Line control in all designers
- iNomads Alt Text property added to Image controls for ADA (USA)/WCAG (Canada) compliance in all designers
- Embedded panel control changes for all designers

- Display/Edit the contents of the panel that is being embedded as a control
- Refresh the list of controls on the embedded panel

- Clear Control when all Triggers are Null option added to Smart Controls and Smart Charts
- Ability to set Frame Text Color when using 4D mode
- Support for applying the Read-Only (locked) attribute when adding a Data Dictionary element control to a panel
- Support for applying the Read-Only attribute for Data Dictionary elements to columns in a Smart Grid
- Updated validation rules when creating new folder panels in all designers

> File Maintenance Generator

- Form Types option added for creating a Nomads panel, an HTML page or both
- Ability to Preview HTML Page
- Ability to define the Webster+ Preview URL for previewing HTML pages
- Ability to specify an Optional HTML Interface Program to allow additional logic to be performed for HTML pages
- Ability to optionally Include HTML Page
- Ability to add Smart List Boxes, Smart Charts and Images to a Nomads panel or HTML page

- Define Height and Width options
- Add a Visual Class to Smart List Boxes and Smart Charts
- Name each Smart List Box, Smart Chart and Image

- Ability to add Embedded Panel or HTML Short Codes to the Layout Grid to embed specific elements on a panel
- Ability to add a Hyperlink to a data element prompt to link to a maintenance/inquiry panel
- Added an Info Line to provide details about a selected cell in the Layout Grid or a selected field in the Fields list box
- Added Folder Options for folder height and tab position for HTML pages
- Ability to Rename folder panels
- Ability to Move Key Fields of a table to any row on the Main panel in the Layout Grid
- Ability to combine both an Extended Class Validation descriptive SHOW.xxxx field and its related field into one cell to allow another field to occupy the adjacent cell
- Ability to use the Delete key to remove the contents of a selected cell in the Layout Grid
- Section Size option added to the Layout Grid for setting the width of HTML sections
- Section Break options for HTML pages added to the Layout Grid to control placement of sections when panels are resized
- Clear All Cells option added to the Layout Grid for clearing the contents of all cells
- Lock/Unlock option added to the Layout Grid for locking/unlocking a data dictionary field
- Cut Cell/Paste Cell(s) options added to the Layout Grid for cutting/pasting cells between panels
- Support for Read Only fields and Floating Tips from the Data Dictionary

> HTML Editor

- File menu option added for displaying a list of recently opened files
- Support for updating SVN Version Control System when Saving HTML File to a source SVN directory
- Ability to Preview HTML Page
- Ability to define Webster+ Preview URL
- Ability to insert Webster+ Short Codes into an HTML document
- Support for saving changes to the current file prior to loading a new page, opening an existing file or exiting
- Support for adding HTML page updates to IDE History
- Support for creating Projects and adding HTML files to projects
- Updated TinyMCE® to version 5.5.1

> Ed+ Program Editor

- Improved syntax highlighting for PxPlus programs

> iNomads

- Support for ADA (USA) or WCAG (Canada) Compliance

> Themes and Visual Classes

- New Suppress Header property for Grids to suppress Grid headers
- New Button Color property for Grids to control background color for system-generated buttons in a Grid, including Drop Box buttons and Query buttons

> Data Dictionary

- Ability to Export and Import Data Dictionary definitions
- Ability to add Floating Tips to Data Dictionary elements
- Read Only attribute added for Data Dictionary elements
- Notes input control added to the Info panel
- Last File Change and Last Physical Update display-only fields added to the Main panel
- Support for updating Uppercase data dictionary element based on Data Class attribute
- Delete button added to Data Dictionary Key Definition for removing a key
- Data Dictionary physical update no longer locks a file if only the internal dictionary needs updating and no conversion is required
- Faster loading of the data elements grid
- Search Grid option added on the Elements panel to quickly find a field name in the data elements grid

> Data Class Definition

- New Width and Height properties for Multi-Line Data Classes
- New Display Format property and Query Button options for Drop Box Data Classes

Query Changes

- Query Drop Tree view added to Query+
- Row Display Options added to Query+ to assign visual attributes to rows based on specified conditions
- Ability to change Font in Query+
- Ability to Suppress Records in Query+ based on duplicate return values
- Updated functionality for how the default title name for a Query is derived
- Ability to Pass External Data to a Query

- %QRY_VARDATA$ can be loaded with the data for the variables in REC( ) format
- %QRY_VARIOL$ can be loaded with a compiled IOList containing names of the variables to hold external data
- _VAR. aliases added for variables passed to the *winlist logic for creating selection criteria tests

> Query Security

- Three different levels of Query Security added

- Top level determines whether Query will display
- Second level is at the Query File Link level
- Third level is at the Column level (i.e. elements and formulas)

- Security options added for Query+ and Classic Query in Query Definition, Query File Link, Column Options and Query Formula Definition

> *QUERY*

- SEQPFX=Y option added that will prefix the key with a 10-digit sequence number to guarantee unique keys and no data loss
- KNO=* option added that will use the key specified in the Query definition

Report Writer

- Line Advancement options added that allow two consecutive lines to print at the same vertical location when grouping report data
- Check mark support added to menu items to clearly indicate selected options

Web Services

- OAuth2 Security added to PxPlus Web Services

PxPlus Web Server

- New %Exit_Include_HTML variable that, when set along with %exit_code, tells Web Server that the output sent to %PRINT_FN should be returned to the browser

Utilities and Commands

- *TOOLS/CONVERTHTMLCOLOR utility to convert HTML color names into Hex colors
- *TOOLS/PRINTHTML utility to convert HTML input into formatted text output on the given open channel
- *TOOLS/READFILE utility to read the entire binary contents of a file and return the data in the output string
- Added options to *TOOLS/CONVERTDATA utility to allow non-exclusive access to the data files if exclusive access is not available
- Ability to Add HTML Pages to projects using Project Maintenance
- Updated Zip Code Library Miniz to version 2.1.0 that allows creation of Zip files greater than 2GB and ZIP64 support for Zip files greater than 4GB
- Updated *plus/web/request utility to use HTTP version 1.1 protocol to make Web requests and receive responses
- Enhanced Data Mirroring Apply program to check for Apply.Stop file every 100 transactions to allow the Apply process to be stopped
- Added Query button to Key Value in File View and File Update utilities
- Support for Read-Only (locked) flag added to View Embedded Dictionary utility

## Other Changes for Reference

Nomads Properties

- Option 5 (for Drop Tree) added to %NOMADS'Query_View

Parameters

- '!E' system parameter added to cause the ESCAPE directive to generate an internal MSGBOX on Windows
- Option -3 added to 'TC' system parameter to use the TipColor setting for non-HTML tips
- 'SB' system parameter now set to On by default to check if the record is locked (EXTRACTED) on another channel

INI Contents Options

- BrowserDebug to control whether or not the browser developer console will display in a popup window
- TipColor to define the color for non-HTML tips

Version Control System

- Ability to delete a list of files
- SVN Version Control System allows Updating of busy data and resource files