3 December 2014
The procurement subsidiary of PEMEX contacted Intertech Consulting, Inc. to modernize their applications’ interface and make it more user-friendly. The user interface had not been upgraded for well over a decade. There had been no new rollout since it was deployed with PowerBuilder 5, after being migrated from version 4. The application is bilingual, and heavily data driven. There are 100s of windows at runtime, but only 7 windows in development! Controls, User Objects, Menus, DataWindows, and DataWindow Objects all reside in a database. The system had remained useful because all of the changes were in the middle and database tiers.
There were only two points we could modify. Datawindows and the creation routines in the single window and datawindow control class. We made multiple passes at datawindows to get them to comply with Windows system colors, to make labels transparent, to give everything in the new font. Grid labels needed renaming to get Click-Sort service to work. These dataobjects would import into a database repository to be sent to the application when it runs. The second opportunity to enhance was when the windows open and all objects and content is created dynamically. This allowed infrastructural changes to enhance classes of datawindows. It could interpret resizing tags within the DW syntax sent as a string via the middle tier.
The following is a contrast between HITEC from PowerBuilder 4/5 and the facelift Intertech performed with PowerBuilder 12. The existing system is very large (400 windows) and is a three tier system. The PowerBuilder client does not connect to the database and we were unable to change the API of the middle tier. Also, all windows and all datawindows in the system are dynamically built at runtime, so the executable is actually very small.
The Log on uses new JPEG graphic with company logo. It includes a link to the company website. Calibri was used to replace Times New Roman, and was chosen as a sanserif font with equal or better use of space, because many labels translated into Spanish could be longer.
After the Log on window, all window and menu content is dynamically created from a middle-tier server from a company called NeXterra. This application has about 800 DataWindows, all external – no SQL, no database connection. Window controls are created from descriptions from the database, of buttons and DataWindows. The middle-tier forwards data as a string that populates datawindows using the ImportString function. Windows and DataWindows were painted in PowerBuilder IDE, then analyzed and stored into an application repository in the database. Windows were expanded to make use of the larger 1024x768 standard.
The old menu was built dynamically with calls to User32. The MDI Window menu was manually maintained in code. The new menu is dynamic but uses PowerBuilder’s Contemporary menus with menu titles and icon bars. We added selected icons in the toolbars. The Window menu is automatically maintained. The content is in English or Spanish, depending on the user.
The HITEC system is very large, with a complicated menu, so in order to increase usability Intertech built a hierarchical Navigation Sidebar and constructed a “Favorites”, and a “Last Opened” option. Initially, the favorites section shows with the user’s favorite sheets in a simple DataWindow. Click on a row and it opens the item:
If the user selects another section, the treeview is dynamically populated (during construction) of the same dynamic menu items from the menu, expanding that selection and collapsing any other tree node. Any special menu icons are also in the tree view.
All existing windows were Win2000 Classic controls, had Application Workspace for editable columns, and were mostly black and white. The system font was Times Roman. Aligning colors with Windows standards and themes, and then enhancing selected areas, all made usable improvements. Here a radio button column on a DataWindow was retouched to look more like a tab object. Dropdown calendars enhanced all editable date columns.
Grid DataWindows were enhanced at construction to give alternating colors to rows for easier readability. Grid columns had their background set to 70% transparent to let some band color bleed thru. Upon focus, the column becomes opaque and the Windows Background white becomes a natural highlight. The Quick Sort feature, when clicking on the column header, is indicated with Button Highlight/Button Shadow gradient. Header columns take on the highlight system color (here altered for distinction from Active Titlebar blue) in its gradient when picked, reversing gradient focus for ascending and descending sort. If there was a horizontal scrollbar, it got a split scroll, too.
When the system was initially developed, the desktop standard window size was VGA 640 by 480. With the larger resolutions of modern computer monitors, the minimum size was increased to 1024 by 768, with support for even larger windows through intelligent resizing. Intertech made use of the extra workspace by adding automated resizing that tags the datawindows with resize codes.
PowerBuilder 4 had not yet supported dropdown datawindows, only list boxes. Intertech added support for dropdown child population, adding an important interface tool to appear in later releases of Powerbuilder.
Much can be done to make existing PowerBuilder applications seem more modern. This paper has laid out how a very large data-driven PowerBuilder application was architecturally transformed to give a more modern user experience.