A NEW TODAY IS DAWNING!

TB0020 - Summary of new functionality in BuildPro 8.00

Number: TB0020

Availability: As of BuildPro 8.00 on all platforms


Introduction

This bulletin provides a summary of functionality added over the past several releases. A number of these additions have been implemented in parallel with Web-API developments.


Handling of TAB key in Multi-line Edit Fields

The TAB keys can now be processed in two different ways for multi-line edit fields. The MultilineEditTABThru setting in the BuildPro configuration file (wintoday.ini / .todayrc) controls handling of the TAB key on a system wide basis. Valid settings are:

MultilineEditTABThru=TRUE

Pressing the TAB key will pass focus to the next field. This is the default setting.

MultilineEditTABThru=FALSE

Pressing the TAB key will insert a TAB character in the field.


Changing the background color of Display-only Edit Fields

Settings in the BuildPro configuration file control the background color of edit fields in display mode:

The background and brush colors for non selectable fields:

EditSelectableNoBg=DarkGrey
EditSelectableNoBrush=solid-DarkGrey

The background and brush colors for non editable fields:

EditEditableNoBg=DarkGrey
EditEditableNoBrush=solid-DarkGrey

NOTE: If all values are set, then the non selectable settings take precedence.


Altering field display characteristics at runtime.

The characteristics of labels and edit fields can be altered at runtime using extensions to the FIELD command.

FIELD *FONT= dataref from-field to-field
FIELD *BRUSH= dataref from-field to-field
FIELD *FGCOL= dataref from-field to-field
FIELD *BGCOL= dataref from-field to-field

In the above, dataref is either a text string (solid-red) or a reference to a definition in the BuildPro configuration file (myInputColor).

Example:

FIELD *FONT= "Arial-italic-14" 1 2
FIELD *FGCOL= "red" 1 2
FIELD *BGCOL= "blue" 1 2
FIELD *BRUSH= "myNormalBrush" S-part_no

For a demonstration of these commands test this application.


Change Window Title at Runtime

The text in title bar of the current window can be changed at runtime using the SCREEN *TITLE command:

SCREEN *TITLE S-title

Example:

*P01 = L-Application " - " L-Company
SCREEN *TITLE *P01


Communication Area Enhancements

Communication Areas are useful variable to obtain various system or operating information. Following are explanation of new comm areas:

System communication areas:

*CLIENTID --- READ-ONLY
Storage Char
Length 15
Edit Code Unspecified
Holds the IP address of the current BuildPro. For stand-alone BuildPro processes, it is the same as *SERVERID .

*SERVERID --- READ-ONLY
Storage Char
Length 15
Edit Code Unspecified
Holds the IP address of the BuildPro server.

*PID
Storage SHORT
Length 5
Edit Code Unsigned Numeric
Holds current BuildPro operating system process id.

*RANDOM
Storage SHORT
Length 5
Edit Code Unsigned Numeric
Description: Holds a random number - generated at reference time.

Communication areas for formatting data. Each of the following comm areas expect a single argument in parenthesis.

*UPPER, *LOWER, *PROPER
Storage CHAR
Length varies
Edit Code Unspecified
Accessibility: READ ONLY

*UPPER(dataref)
Reads the content of the current dataref, upshifts all alphabetic characters and loads the result into the target dataref. Special alphabetic characters are shifted according to the current language definition or UNICODE distance by default.

Example:

*P01 = "London"
*P02 = *UPPER(*P01)

*LOWER(dataref)
Reads the content of the current dataref, downshifts all alphabetic characters and load the result into the target dataref. Special alphabetic characters are shifted according to the UNICODE distance by default.

*PROPER(dataref)
Reads the content of the current dataref, shifts all alphabetic characters to conform to proper name format and load the result into the target dataref. For example, *P02=*PROPER("JOHN SMITH") will place "John Smith" in *P02. The implementation assumes all non-alphabetic characters to be word separators. Special alphabetic characters are shifted according to the UNICODE distance by default, but for upshifting, the sort definition takes precedence.

Example:

L-name = *PROPER(F-name.file)
V-hello = "Hello, " *TRIMR(L-name) "! Today's date is " *DATE
L-index = *LOWER(L-value1) "-" *LOWER(L-value2)
*P02 = *UPPER("abcdefgh")[1,4]

*PUNCT(dataref)
Reads the contents of dataref, inserts thousand separators into the proper positions and loads the result into the target. Dataref may be any dataref, literal or numeric literal. If the dataref is not a numeric literal, it first checks if the alphanumeric represents a legal number. Thousand separators are language dependant.

Example:

V-subtotal = 23000
*P02="$" *PUNCT(V-subtotal)

will place "$23,000" in *P02.

*TRIMR(dataref)
Trims excess trailing spaces from dataref.

*TRIML(dataref)
Trims exess leading spaces from dataref.

Example:

L-age = " 23"
L-name = "John "
*P01 = *TRIMR(V-name) "'s age is " *TRIML(V-age)

will place "John's age is 23" in *P01
 

Improving Windows Performance when using complex screens

Under Windows, the TCP buffer size can be set in the BuildPro configuration file. An increased buffer size will increase performance in the display of complex screen specifically in the case of many pulldown menu items (>100).

Under [TODAY Environment] add the following entry:

TCPBuffSize=32760

The default is 4096. To test, select a high value (256,000) and lower it until optimum performance is achieved.