Purpose
Change the screen or menu layout dynamically
While a
single optimized screen layout is often sufficient, dynamically varied layouts
can be helpful in certain applications. |
Solution Implement the different layouts in their own include
files. Using a GuiXT status variable whose content is part of the
include name, you control which layout should be active.
Example 1: Dynamic screen layout We design the
simplified data entry of a new customer. As the required information
differs for domestic, European and international customers, we offer the
user a dropdown box to specify the customer's region and then design
the screen to suit this type of customer: the right set of entry fields,
appropriate maximum field length, default values and specific search
help.
We use a
status variable V[customertype] which can be set to "dom" for
"domestic", "eur" for "european" or "gen" for "general" via a dropdown
selection. To change the screen layout immediately when the user selects
the customer type we use the "process=" option of the "dropdownlist"
ommand:
Depending on the customer type we then use an "include" to display the
appropriate layout.
GuiXT Script
// Customer type selection
Box
(1,5)
(5,78)
"1.
Customer type"
Text
(3,6)
"Please select the customer type"
size=32
-label
Set
text[customertypes]_
"dom=Domestic customer;eur=European
customer;gen=General customer"
DropDownList
(3,38.7)
"customertypes"
width=30
_ refer="V[customertype2]"
process="return.txt"
// include appropriate screen layout for selected customer type
if
V[customertype]
include
"create_customer_&V[customertype].txt"
endif
Include "create_customer_dom.txt"
Box
(7,5)
(18,78)
"2.
Address (domestic customer)"
InputField
(9,7)
"Name"
(9,27)
size=30
name="name1"
InputField
(10,27)
-noLabel
size=30
name="name2"
InputField
(11,27)
-noLabel
size=30
name="name3"
InputField
(12,27)
-noLabel
size=30
name="name4"
InputField
(13,7)
"Street"
(13,27)
size=30
name="street"
InputField
(14,7)
"City"
(14,27)
size=30
name="city"
...
InputScript "return.txt"
Return
Example 2: Dynamical menu
If you want your own graphical transaction menu to contain a large
number of functions, it makes sense to use a hierarchical structure in
which the user can navigate dynamically to the different parts.
The following example shows the possibilities (thanks to Adam Th. who
shared the screenshots of his application with us):
The SAP menu has been moved slightly to the right to make room for
new buttons that lead to the respective menu parts.
In this two-dimensional menu ithe user can
either choose one of the
transactions or navigate to further detailed menus:
Click on the image for a larger display
Implement the various menu parts in their own include files.
Use a GuiXT status variable, e.g. V[menustatus], which you
change when the user clicks on one of the navigation buttons. Then
include the right menu part using a dynamic include name, similar to
Example 1:
include
"easy_access_menu.&V[menustatus].txt"
|
Components
InputAssistant + Controls
|