101+ Reasons to switch up to PxPlus


Core Language

  • File System enhancements
  1. The UpdatePlus™ feature provides an easy way to add new fields to existing file layouts without the need to change existing hard coded file IOLIST/formats. This makes adding new functionality to your application easier as it avoids much of the headache of having to modify existing programs.
  2. True numeric key fields are supported on all PxPlus files. This allows key to consist of numeric data without the need to convert the data to a fixed length string. Negative values are properly managed in the sort sequence.
  3. A physical read next option provides for extremely fast access to the data in a file. This can provide a ten-fold improvement in file access times when the order of the data is not critical.
  4. Keyed/VLR files have been enhanced to provide for better key packing algorithms that can save a substantial amount of file space (up to 30% in some applications).
  5. The performance of memory files in PxPlus is up to 15 times faster than standard ProvideX memory files.
  6. Direct file IO to reduce coding time and improve resource utilization by eliminating the use of file channel numbers and the need to specifically open and close files.
  7. The use of data dictionary table names on the OPEN directive is supported.
  8. Improved KEYED file rebuild facilities both improve the time to rebuild key structures, error reporting, and tracking.
  9. All file update operations can be replicated on multiple files through the use of the REPEAT DATA directive.
  10. A PREFIX DIRECTORY option that allows the application to create logical directories within the PxPlus environment.
  11. The PTH function was enhanced to provide a simple method to test for the existence of a file and to obtain the pathname without having to actually open the file.
  12. Access to file creation, modification, and last access times are provided not just in universal time but also in local time. This avoids the problems associated with converting UTC to a time that is meaningful to the end-user. In addition, reading directories can provide file times, size and type information to the application.
  • OOP programming
  1. When an object is created, its existence can be tied to a file, window, control, other object, or the current program. This provides a simple method to handle the housekeeping chore involved with objects.
  2. The ability to dynamically create properties within an object has been provided to allow objects to add items to its property list. A typical example would be to create properties to an object based on a file data dictionary.
  3. Objects can be created that allow for the dynamic creation of new properties by an external program. The simple act of property assignment can be used to create properties similar to JavaScript and many other OOP languages.
  4. An Object cache manager is provided that maintains frequently created object class definitions in memory for fast instantiation. This has been shown to improve object creation by as much as 50%.
  5. A HIDE option has been added to both methods (functions) and properties to allow for the creation of functionality whose existence the designer may not to be made public.
  6. Object instances can be merged allowing a property/method references to cascade from one object to another 'merged' object. Typical examples would be to merge detail object instances with a header object thus references to the detail object would be able to directly return data from the header.
  7. Objects can be used to enhance or replace windows controls, providing a method to easily create composite controls or attach functions or peoprties directly to existing control.
  8. Pseudo properties can be created that internally reference multiple property values in a single reference. These can be used to improve performance or simplify the transfer of data between the object and application.
  • Functions
  1. A wide variety of FIN and 'OPTION' mnemonic functions that provide access to system information and control without the need to resort to invoking (and learning) system DLL calls.
  2. Improved expression evaluator functions that provide for in-line trapping of expressions without the need to re-invoke the in-line compiler along with improved EVS/EVN performance.
  3. The CVS function provides numerous internal data conversions for URLS, HTML data, UUENCODE, BASE64, and character code sets. These internal conversions run significantly faster than external application code.
  4. An enhanced DIM function provides the ability to search arrays and to total arrays.
  5. Ability to pass and receive floating point data with the DLL function.
  6. Special options on the NUM function provide the ability to test the validity of numeric data and/or provide default value should the data fail numeric validation.
  7. Simple iteration through the active files, windows, controls, and objects is provided through an enhanced TCB function.
  8. The STP function includes the ability to remove formats from formatted strings.
  9. The MAX/MIN functions have been extended to handle strings in addition to numeric values.
  10. An enhanced OBJ function that provides a list of currently instantiated objects in the system.
  • Print subsystem improvements
  1. The internal PDF generator can generate PDFA-1b (ISO-19005-1 compliant) files that adhere to government standards set forth for archival documents.
  2. Improved Windows print interfaces that allow for the easy breaking of data that overflows page or print area boundaries.
  3. A TITLE option is provided to allow the application to define the title for reports when using the windows print spooler.
  4. A VIEW option was added to the PDF creation logic to provide an automatic launch of a PDF viewer when the file is closed. The system can also be configured to use the PDF viewer in lieu of the standard report viewer.
  1. Support of UTF-8 character set allows access to virtually any character through the use of UNICODE set
  2. Associative arrays provide the ability to use string values as array subscripts and provide faster key lookup than even memory files.
  3. Built-in debugging functions and both a graphical and text mode debugger allow for the remote support and debugging of application programs without the need to install any special software on the client machine. In addition, iNomads (the web interface) can make these debug features available on the web.
  4. Structured error trapping and reporting is provided allowing directives such as GOSUB, FOR, and SELECT to provide error trapping for the duration of the encapsulated logic.
  5. An improved FOR directive provides additional iteration options for strings and arrays.
  6. Dynamic allocation and growth of system journals eliminates concern over journal file size.
  7. The PERFORM directive provides additional error trapping for missing programs and entry points making the use of custom user-entry/exit points easier to implement within your application.
  8. Numerous operations have been optimized from numeric conversion, variable lookup and definition, serial program loads, etc.
  9. A SETTRACE RECORD option provides the ability for application program to add information to the system log file for the purpose of tracking and debugging problems.
  10. The ability to change the home directory (HWD), lead program (LPG), network id (NID), all command line arguments, message bar size, and toolbar size provides the ability to tailor the environment from within the application.
  11. Unix and Linux systems support an INI file, which allows for the external specification of system settings, initial global variables, and options.
  12. True background processing on Windows that eliminates the need to have a user license for background tasks and windows services.
  13. Numerous compatibility options exist for both BBx and Thoroughbred from special OPEN options, string template support, error 47 suppression, and formatting options.
  14. The 2-ID-U fingerprint reader interface utility allows the application to read, compare, and display fingerprints.

GUI Enhancements

  • Button enhancements
  1. Hyperlink button option allows for the creation of buttons that appear like standard web hyperlinks and include the support of font alignment (left, right, or centered)
  2. The ability to selectively change the cursor over a button, check box or radio button.
  3. A 'Sizer' style button control is provided to allow for the creation and control of split screen applications and/or slider controls
  • List view enhancements
  1. Allow multiple columns to include images along with the ability to place a mix of both text and images within the column contents.
  2. Ability to disable header/column resizing
  3. A 'Loadpoint property allows for the loading of multiple 'chunks' of data into a list box thereby improving load times.
  4. The FIND clause has been extended to provide the full contents of a list box making it faster to access the contents of a list box. * Also provided in the GRID *
  5. A 'FindItemText$ property is included to allow for a quick search of text within a list box (or GRID)
  6. The 'TopVisibleItem property allows the program to determine and control the item that appears on the top line of a list view display.
  • Input field (Multi-Line) enhancements
  1. Support of the INSERT key to toggle between insert and overtype mode when entering data.
  2. A rich text control provides the ability to control formatting, fonts, and a wide variety of other word processing styles within the text in an input field. RTF to plain text conversion routines are also provided along with the ability to print RTF data to windows print drivers.
  3. Locked fields can be made transparent allowing for a textured or graphical image based backgrounds.
  1. A Drop box signal has been added that provides the ability to track if/when the user actually attempts to open a drop box contents. This event can be used to dynamically load the drop box contents thereby reducing the load on the system by deferring the loading of lists until actually needed by the user.
  2. Tree view items can displayed in bold
  3. Control over windows transparency and background color masking is provided. Windows can be made transparent (0-100% scale), and background colors can be removed allowing windows behind the screen to show through.
  4. Window/Dialogue frames can be changed from thin to thick line or even totally removed.
  5. The 'MESSAGE' mnemonic is extended to provide the ability to create free floating tips.
  6. A new event has been added to all controls that allows for the dynamic generation of tip contents. When the system is about to display a tip, it can be set to fire the event and defer the tip presentation until its value has been set by the application. This allows for dynamic generation of tip contents based upon context (e.g. list box line item, current record, current status, etc.)
  7. Frame headers can be made transparent to allow bleed through of background texture/images.
  8. The ability to control the text and background colours of disabled controls and system generated controls such as the auto complete list.
  9. True blinking text is supported with the 'BB' mnemonic, with the added capability to control the blink rate.
  10. Pseudo properties can be created that internally reference multiple property values in a single reference. These can be used to improve performance or simplify the transfer of data between the control and application.
  11. Windows animation options have been provided to assist in attracting the users attention and provide visual effects to the application.
  12. The ability to enable and control the flashing of the windows caption line on the window and task bar. This allows the application to draw attention to itself when needed.
  13. Support for the dropping of external file onto controls provides for consistent drag and drop functionality between external applications and PxPlus.
  14. To help avoid problems with touch screens, a button bounce delay is provided that helps minimize double button firing.

NOMADS (The graphical designer)

  1. A Spell checker interface provides the ability to add spell checking to any/all input fields in Nomads. Multiple languages are supported: English, Spanish, French, German, and Dutch.
  2. The file maintenance utility in PxPlus provides a variety of user exit points that can be used to easily extend generated maintenance programs with application specific logic.
  3. Enhanced query subsystem with filters, hidden columns, favorites and built-in exports to clipboard and spreadsheets. Special options also exist to control the printing of query output.
  4. Background images are supported within the Nomads panel designer allowing the user to place textures or images in the background of graphical panels.
  5. A Widget option allows for the simple creation of desktop widgets that provide for non-rectangle shaped windows.
  6. Nomads query can be accessed as a logical file allowing the re-use of query definitions within the application.
  7. An interface to Google maps is provided that allows maps to be inserted directly into Nomads panels.
  8. Both property sheet and the legacy folder-style maintenance modes of the Nomads panel designer are supported. In addition, the property sheets display can be independently moved anywhere on the desktop providing a more flexible programming environment.
  1. ... And of course iNomads that enables Nomads application to run as native Web applications

WindX

  1. An auto-download facility provides the ability to have the system download images and programs to the workstation as required. This includes checks to make sure that the most recent version of the file is present.
  2. The Simple Client server provides a single port access to the server while providing both faster application launching and execution times than NTHOST. This facility comes complete with the utilities required to either install or de-install it as a Windows service.
  3. Improved compression resulting in anywhere from a 3-10 fold reduction in the amount of data sent to the workstation.
  4. A new [LCL] prefix can be used on all file and program references that normally supported the [WDX] prefix. This prefix will be ignored, if not running in WindX; otherwise it will be considered the same a [WDX] prefix. This simplifies coding and provides a more consistent interface.
  5. Support to access list/drop box indexes which exceed 64K in the LOAD, WRITE and other functions.
  6. Tracing of locally occurring un-trapped errors helps eliminate problems that can go undetected in a WindX only environment.

Utilities and Miscellaneous Features

  1. A 'WRAPUP' object provides the ability to run logic when a resource is released. For example when a file is closed, an object is dropped, a program is exited, or a window/control is dropped.
  2. The Integrated Toolkit provides a rich graphical development and debugging environment without the need to install any additional software on server and/or workstation. The environment includes a program editor, access to NOMADS designer, macro capabilities, source control, compare utilities, and a debugger for user launched task, background tasks, and (assuming security setting allow) any PxPlus task in the system.
  3. A windows service utility provides the same basic functionality as the Unix 'inittab' by allowing the developer to designate programs that will be run in background. This service can be used to launch processes and then to monitor their progress, even re-spawning them, if needed.
  4. A PLUSDLL facility allows the creation of a DLL based application where application code and static data files (such as Nomads panels) can be embedded within a DLL for easy and secure application distribution.
  5. A Visual Dictionary utility provides a simple graphical interface for the definition of data dictionaries on existing legacy files.
  6. The Apache web server is supported to provide a compatible environment where clients may want to use this industry standard web server. In addition, an [HTTP] prefix provides the ability to call and execute remote programs through the use of a 'SOAP' based interface and the Apache web server.
  7. Source control interface built into the language to track program and Nomads panel.
  8. Utilities that provide a synchronized transfer of system journal information between multiple machines.
  9. Product activation and registration can now be done online without manual intervention. This simplifies the installation, setup and upgrading of the product and provides the ability to get clients back up and running faster should re-activation be needed.
  10. A command line utility (TASKS) is provided that allows for the display of all processes that are currently using a file and what record it currently is using.
  11. Numerous command line utilities provide a more robust program development environment.
  12. A Windows external program cache facility is available that can be used to improve system performance by reducing program loads across a network. It also reduces memory utilization by sharing copies of the same program between processes on the system.
  13. A context sensitive help facility is provided during command line processing and as part of both the text and graphical editors.

... Do you really need any more?