You are on page 1of 123

GuiXT

with InputAssistant und Viewer Keywords A-Z

Synactive

Copyright 2003 by Synactive GmbH, Raiffeisenstrae 2, D 64572 Bttelborn www.synactive.com 1st edition revised version august 2004 All rights reserved. Synactive is registered trademark of Synactive GmbH. SAP and R/3 are registered trademarks of SAP AG. Internet Explorer is registered trademark of Microsoft Corporation All other trademarks are property of the respective owners and are herewith acknowledged. For orders please use the order page in www.synactive.com or send an email to office@synactive.com.

Contents
AppendFile 5 ApplyGuiScript 6 Box 7 BoxSize 8 ButtonSize 9 Call 10 CheckBox 15 CloseFile 16 ColumnHeader 17 ColumnOrder 18 ColumnSize 19 ColumnWidth 20 Comment 21 Compress 22 CopyText 24 Decimalseparator 26 Default 27 Del 28 Enter 30 FieldSize 33 File 34 GetTableAttribute 35 GlobalTextReplace 36 Goto/Label 37 HistoryUpdate 38 Icon 39 If 40 Image 45 Include 51 InputField 52 Leave 60 Link 61 ListImage 62 Mark 64 Message 67 NoDropDownList 68 NoInput 69 NoLeadingZeros 71 Numerical 72 Offset 73 On 74 OpenFile 75 Parameter 76 Pos 77 ProcessingOption 79 Pushbutton 81 Radiobutton 83 Radiobutton (IA) 85 ReadFile 86 RemoveFile 88 Retry on error 89 Return 90 Returnvalues 91 Set 94 SetCursor 97 StatusMessage 98 Stop 100 Tab 101 TableWidth 102 Text 103 TextBox 104 TextReplace 105 Tip 106 Title 107 TitlePrefix 108 Uppercase 109 Using 110 VersionNumber 111 View 112 ViewHelp 118 WindowSize 120 GuiXT system variables 121

AppendFile
Purpose
With AppendFile you can append a new record to a file, e.g. in order to fill a table with R/3 data for later use in Excel. It is also possible to specify a second file. This file is copied to the first one, and all GuiXT variables in each line are replaced with their current values.

Example
AppendFile "X:GuiXTFiles\MatDes.txt" s_matnr s_text s_unit s_price The value of the variables &[s_matnr] &[s_text] &[s_unit] &[s_price] is concatenated to a single record. The values are separated by the delimiter specified in the OpenFile command (Delimiter=, default delimiter is the tab). Looking at the example, assume that &[s_matnr]= 10000120 &[s_text]= Bolt &[s_unit]= ST &[s_price]= 0.02 and that the delimiter is ';'. Then the new file record is 1000001;20;Bolt;ST;0.02

Format
AppendFile "filename" var1 var2 var3 ... Currently up to 14 variables are possible. AppendFile "filename" template="templatefile" The template file is copied and all GuiXT variables &[...] are replaced with their current values.

Tips&Tricks
See "Special Topics" for a detailed example File handling in inputscripts.

GuiXT Keywords

ApplyGuiScript
Function
With ApplyGuiScript you can use VBScript in order to access the screen object model (requires SAP GUI 6.20, "SAP GUI Scripting API for Windows" ) . For example, you can handle special controls like the "grid" control.

Example
ApplyGuiScript "activate_document_link.vbs"

Format
ApplyGuiScript "filename" "filename" is the name of a .vbs file. If you do not specify the full path for the file, GuiXT takes the current script directory. It is also possible to use files from SAP Web Repository. ApplyGuiScript template="templatefilename" "templatefilename" is the name of a .vbs file. GuiXT copies the template file into a temporary file, replaces the variables, e.g. "&V[varname]", and executes the script.

Tips &Tricks
For further information and examples, please see the article "SAP GUI Scripting and GuiXT" in our "Special Topics" .

Synactive Documentation

Box
Purpose
With Box you can draw a rectangular box around a group of other screen elements.

Example
Box (10,20) (16,44) "Invoice data" A rectangular box will appear with its top left hand corner at (10,20) and its bottom right hand corner at (16,44). The heading "Invoice data" will also appear.

Format
Box (row1,column1) (row2,column2) Box (row1,column1) (row2,column2) "Heading"

Tips&Tricks
You may use screen variables within the heading text, e.g. Box (10,20) (16,44) "Invoice data for &[Ref number]" When you place an Image within a Box, we suggest, for esthetic reasons, that you use somewhat larger coordinates for the top left hand corner of the image, e.g. Box (10,20) (16,44) "Heading" Image (10.2,20.5) (16,44) "Image file"

GuiXT Keywords

BoxSize
Function
With BoxSize you can resize a group box

Example
BoxSize G[General data] (5,40)

Format
BoxSize G[Box] (rows,columns) rows is the height and columns the width of the group box. If one of the two values, i.e. for rows or columns, is entered as 0, then its previous value will be retained.

Synactive Documentation

ButtonSize
Function
With ButtonSize you can resize a pushbutton

Example
ButtonSize P[Anzeige] (3,20)

Format
ButtonSize P[Pushbutton] (rows,columns) rows is the height and columns the width of the pushbutton.

GuiXT Keywords

Call
Purpose
With Call you can call a function from a GuiXT script or from an InputScript. The function can either be a local dll-function (on the frontend PC), implemented in VC++ or a similar language, or an R/3 function module on the R/3 application server, implemented in ABAP. In this case SAP's RFC (Remote Function Call) technology is used.

Examples
Call "ImgName" dll="guiexits" In="&[Material]" Out="Matfilename" Call "ImgName" In="&[Material]" Out="Matfilename" In the first case the dll-function ImgName is called locally. In the second case the R/3 function module ImgName is called via RFC.

Format RFC call* old format (positional parameters):


Call "funcname" In="par1" In="par2" ... Out="par1" Out="par2" ...

new format (named parameters):


Call "funcname" In.Name1="par1" In.Name2="par2" ... Out.Name1="par1" Out.Name2="par2" ... Table.Name1="tab1" Table.Name2="tab2" ... Call "funcname" Destination="dest" In.Name1="par1" In.Name2="par2" ... Out.Name1="par1" Out.Name2="par2" ... ... Table.Name1="tab1" Table.Name2="tab2" ...
*Please see Calling a R/3 function module -Passing parameters on next page.

10

Synactive Documentation

dll call
Call "funcname" dll="dllname" In="par1" In="par2" ... Out="par1" Out="par2" ... Please observe that only up to 20 parameters (In+Out+Tables) are currently possible.

Option
In case of RFC. Please specify the option immediately after the function name. If the function ends with an "exception", no error message is shown to the user. Instead, the system variable V[_exception] obtains the name of the exception. With if Q[ok] you can query, after Call, if the function ended normally. -try Example: Call "RPY_TABLE_READ" -try in.TABLE_NAME="&V[structid]" .. if not Q[OK] Return "E: Structure &V[structid] not found in data dictionary" statusline endif

How to use the output parameters in your script


The output parameters of a Call can be used in the format &[name] in all subsequent script lines.

Example:
Call "ImgName" In="&[Material]" Out="MatFileName" Image (16,81) (24,100) "&[MatFileName]" Start="&[MatFileName]" "-NoStretch"

Calling a dll function


The function declaration is as follows (example with 2 IN parameters and 3 OUT parameters): __declspec(dllexport) int funcname(char* p1, char*p2, char* p3, char* p4, char* p5) All parameters (IN and OUT) are passed in the order specified in the script. The maximum length of each string is 255 characters. Please

GuiXT Keywords

11

specify all parameters in your script, otherwise the dll-function gets an address exception. You can download some useful examples from the dll-download-page in www.synactive.com.

Calling a R/3 function module Passing parameters


There are 2 variants for parameter passing. You can either use positional parameters, without specifying a name: Call "funcname" In="par1" In="par2" ... Out="par1" Out="par2" ... In this case the importing parameters of the function must be named In1, In2, .., the exporting parameter Out1, Out2,... (R/3 function library, transaction SE37).

12

Synactive Documentation

Or you use named parameters: Call "funcname" In.Name1="par1" In.Name2="par2" ... Out.Name1="par1" Out.Name2="par2" ... Table.Name1="tab1" Table.Name2="tab2" ... In this case there is no restriction on parameter names.

Restrictions
All parameters must be of type C (Character), maximum length 255. For example, you could use the reference field SY-LISEL EXCEPTIONS are not supported. If any exception occurs, the user gets a message and the next script line is executed Dialogs within the function require a "Call Function SYSTEM_ATTACH_GUI." in the called function. Tables must consist of character-type fields as well.

The maximum table witdth is 255. No restriction on the number of lines. If necessary, you can specify a different width between 1 und 32000 for each table in the call statement: Table.Name1(width:4000)="tab1" It is possible to call other function modules from your function module.

Handling of tables
Tables are handled in InputScripts like texts. For example, you can use the TextBox and CopyText statements. They are transferred in both directions It is not possible to use data dictionary based structures in InputScripts; you have to use substring notation in order to divide a table line into single fields

Example: Calling a BAPI


We use the method "Get_Detail" of the R/3 business object "User" to read the user group (User master record). Call "BAPI_USER_GET_DETAIL" In.Username="&[_user]" Out.LogonData="UserLogonData" Set V[UserGroup] "&[UserLogonData](18-29)" Now the variable &[UserGroup] contains the R/3 user group.

GuiXT Keywords

13

Explanation
(see also the interface definition in transaction SE37): The system variable &[_user] is passed as importing parameter Username The variable &[UserLogonData] obtains the value of the exporting parameter LogonData According to structure definition BapiLogonE you find the user group as substring 18-29

Calling other systems


You can call functions in other systems (R/3 or R/2) as well, using the parameter Destination=... The destination must be described in the file saprfc.ini; please see the SAP RFC documentation for details. The file saprfc.ini is either in the sapgui working directory "...\SAPworkdir", or you use the environment RFC_INI to name the saprfc.ini file. Using this technique you can easily integrate information from other systems into the R/3 screens.

Tips&Tricks
If you want to implement the dll in some other language, e.g. Visual Basic, you might need additional tools in order to build the dll. Please ask the supplier of the corresponding programming language if you have any problems here. It is a good idea to use the test environment of the ABAP workbench in order to test your function module before you use it in a GuiXT script. It is possible to switch into the R/3 debugging mode if you call the function module from the script, if you issue a "Call Function SYSTEM_ATTACH_GUI." before the first Break-Point. You can specify the RFC user and password in the GuiXT profile. As default, GuiXT uses "SAPCPIC" and the corresponding standard password. The password is stored in the GuiXT profile in encrypted format.

14

Synactive Documentation

CheckBox
Purpose
With CheckBox you can create additional checkboxes. Its value ("X"=checked, " " otherwise) can be used in an InputScript.

Example
CheckBox (10,1)"Environmentally relevant" Name="EnvRel" This defines a checkbox at position (10,1). The internal field name is EnvRel, i.e. in the InputScript its value is written in the symbolic form &[EnvRel]

Format
CheckBox (row,col) "text" Name="..."

Options:
Default="..." Specification of a default value, only "X" or " " are possible

Tips&Tricks
You can also specify a quickinfo for the checkbox, observing the SAP standard convention for a text with a quickinfo. Example: "@0L\QAttention: Material safety sheets required@Environmentally relevant"

GuiXT Keywords

15

CloseFile
Purpose
With CloseFile you can close a file.

Example
CloseFile "X:GuiXTFiles\MatDes.txt" The file is closed. The next ReadFile command starts at the beginning of the file with the first record.

Format
CloseFile "filename"

Tips&Tricks
Opening and closing a file is valid for each R/3 mode separately See "Special Topics" for a detailed example File handling in InputScripts

16

Synactive Documentation

ColumnHeader
Purpose
With ColumnHeader you can change the column headers in a table control

Examples
ColumnHeader [Material] "Product" ColumnHeader [Table.2,Material] "Product"

Format
ColumnHeader [column] "text" ColumnHeader [table,column] "text" The table name should be specified if there are 2 or more tables on the screen and the column name is not unique. You name the table by its title, if a table title is shown, or otherwise as Table, Table.2, ... If you click on View Screen elements in GuiXT you see the correct name of the table.

Icon and quickinfo


You can also display an icon and a quickinfo. Use the following SAP notation: ColumnHeader [column] "@id\Qquickinfo@text" Here id is the short name of an SAP icon, quickinfo is the quickinfo string and text is the column header. You will find a list of all R/3 icons in transaction ICON, and a list of all icon short names in the ABAP program <ICON> (Transaction SE38, enter the program name <ICON> and press the Display button).

Example:
ColumnHeader [Description] "@8O\QEnter a description please@Description"

Tips&Tricks
You can use the icon and the quickinfo to mark a column in a table.

GuiXT Keywords

17

ColumnOrder
Purpose
With ColumnOrder you can change the column order in a table control.

Examples
ColumnOrder [Material] 2 ColumnOrder [Table.2,Material] 2

Format
ColumnOrder [column] n ColumnOrder [table,column] n n is the the new column number, i.e. n=1 means that the column should be the first column that is displayed, n=2 the second. The table name should be specified if there are 2 or more tables on the screen and the column name is not unique. You name the table by its title, if a table title is shown, or otherwise as Table, Table.2, ... If you click on ViewScreen elements in GuiXT you see the correct name of the table. The position of all other columns is unchanged. If the table is already customized by normal R/3 means, and you use GuiXT in addition, then the GuiXT script overrides.

18

Synactive Documentation

ColumnSize
Purpose
With ColumnSize you can change the column width in a table control.

Examples
ColumnSize [Material] 8 ColumnSize [Table.2,Material] 8

Format
ColumnSize [column] n ColumnSize [table,column] n n is the new column width in the table display (number of characters). The table name should be specified if there are 2 or more tables on the screen and the column name is not unique. You name the table by its title, if a table title is shown, or otherwise as Table, Table.2, ... If you click on ViewScreen elements in GuiXT you see the correct name of the table. Columnwidth 0: If you specify width 0, then the column is not displayed. If the table is already customized by normal R/3 means, and you use GuiXT in addition, then the GuiXT script overrides.

Tips&Tricks
ColumnWidth changes only the visual width of the column. ColumnSize changes the field size of the column fields both for data entry and display. When using Sapgui 4.6D it is not possible to create additional GuiXT elements on some R/3 screens that contain large tables; you get an error message in the GUiXT script window. Use ColumnSize to delete some of the unused columns, or to choose a smaller size for some columns, so that you have enough space left for your additional elements. From Sapgui 6.20 onwards you won't have this problem.

GuiXT Keywords

19

ColumnWidth
Purpose
With ColumnWidth you can change the column width in a table control.

Examples
ColumnWidth [Material] 8 ColumnWidth [Table.2,Material] 8

Format
ColumnWidth [column] n ColumnWidth [table,column] n n is the new column width in the table display (number of characters). If the column contains cells that contain more than n characters, the cell can be scrolled. The table name should be specified if there are 2 or more tables on the screen and the column name is not unique. You name the table by its title, if a table title is shown, or otherwise as Table, Table.2, ... If you click on ViewScreen elements in GuiXT you see the correct name of the table. Columnwidth 0: If you specify width 0, then the column is not displayed. If the table is already customized by normal R/3 means, and you use GuiXT in addition, then the GuiXT script overrides.

20

Synactive Documentation

Comment
Purpose
With Comment you can display any given comment text on the R/3 screen

Examples
Comment (10,50) "Please use form M10A" Comment (11,50) "for printout"

Format
Comment (position) "text"

Tips&Tricks
If you want to display a text in a more esthetic way, you can use the Image command or you can use the View command for the display of an html file or an rtf text (e.g. as produced in Microsoft Word) .

GuiXT Keywords

21

Compress
Purpose
With the Compress comand you can get rid of empty lines within a frame or within an entire screen. Lines from below will be moved upwards to fill the empty ones, thus reducing the area and perimeter of the frame. This is particularly useful when you have deleted numerous fields in a screen and you would like to have a compact layout without necessitating a lot of rearranging and fiddling about. The frame is compressed vertically, not horizontally; i.e. there is a reduction in the number of lines but not in the number of columns.

Example
Compress G[further data]

Format
Compress G[frame] Empty lines (rows) within the given frame will be deleted, the frame compacted and its size thereby reduced. Compress Empty lines (rows) within the given screen will be deleted and the entire screen compacted.

Tips&Tricks
Delete the supefluous fields in your script before compressing the screen. In doing so you may have to use the "-triple" option in order to make sure you also delete the text fields behind input fields; otherwise the lines won't be able to be compressed. You can shift frames or fields before or after compressing. Usually it makes sense to do so before compressing in order to have a better overview of the general effect and avoid clutter. "Blank line" applies only to the area within a frame if you are compressing a frame, otherwise it applies to the entire area. It therefore sometimes makes sense to compress individual frames before proceeding to compress the entire screen.

22

Synactive Documentation

If you add your own elements (texts, pushbuttons, inputfields...), please remember to do it before compressing, otherwise there will be no available space left to do so afterwards. You may find that your own elements are also shifted and your frames reduced in the compressing process.

GuiXT Keywords

23

CopyText
Purpose
With CopyText you can copy texts between files, screen areas and text variables.

Examples
CopyText fromText="t1" toScreen="X[LONGTEXT]" The text in text variable "t1" is copied into the text area X[LONGTEXT] on the screen.

Format
CopyText from...="name1" to...="name2"

The following are supported:


fromText, fromScreen, fromFile, fromTemplate, fromString, -fromClipboard, toText, toScreen, toFile, toString, -toClipboard. In each case, please specify at least one of fromText or toText. fromText="t1" toText="t2" Text t1 is copied into text 2 Text t1 is copied into screen area X[Area]. fromText="t1" toScreen= "X[area]" Please observe: The text is actually copied when the screen is displayed, or with the next "Enter" in an InputScript (asynchronous processing).

fromText="t1" toFile="dsn" Text t1 is copied into file dsn. fromText="t1" toString= "varname" The beginning of text t1 is copied into the variable varname. Text t1 is copied into Windows clipboard.

fromText="t1" -toClipboard

24

Synactive Documentation

The text in screen area X[Area] is copied into text t1. Please observe: toText="t1" fromScreen= "X[area]" The text is actually copied when the screen is displayed, or with the next "Enter" in an InputScript (asynchronous processing).

toText="t1"

File dsn is copied into text t1. You can also copy files on http fromFile="dsn" or ftp servers or in the SAP Webrepository (Notation: http://..., ftp://..., SAPWR:...). fromTemplate= File dsn is copied into text t1; all "dsn" &-Variables will be replaced. fromString= "varname" The content of variable varname is copied into text t1. The content of Windows -fromClipboard clipboard is copied into text t1.

toText="t1" toText="t1" toText="t1"

Options
-append -appendline The source text is appended to the target text. The source text is appended to the target text as a new line. Only in combination with toString=. You specify the number of the desired line, starting with 1. After CopyText you can use if Q[ok] in order to query whether the desired line has been found. delimiter= Only in combination with toString= and line=. Instead of "line feed" the specified character is considered as delimiter.

line=

Tips&Tricks
For examples, see the article Text handling in InputScripts in "Special Topics" .

GuiXT Keywords

25

Decimalseparator
Purpose
With the Decimalseparator-command you can define the decimal separator sign (point or comma) that is used in calculations with Set. As default, the point is taken if the user selected logon language English, and the comma otherwise.

Example
Decimalseparator "."

Format
Decimalseparator "." Decimalseparator ","

26

Synactive Documentation

Default
Purpose
With Default you can assign a default value for an input field. In other words, if the field is blank when the screen is displayed, this default value will be assigned to it.

Example
Default [Order type] "CS" If the field Order type is blank, the value "CS" is assigned to it.

Format
Default [Input field] "Value"

Tips&Tricks
You can assign a Default even for fields which are not displayed using del. When you represent a field by means of a series of radiobuttons using the Radiobutton command, the assigned default value leads to the activation of the corresponding radiobutton.

GuiXT Keywords

27

Del
Purpose
With del you can delete fields, field groups, pushbuttons, radiobuttons, checkboxes, tables and menu items .

Examples
del del del del del del del [Business area.] G[Client specific configuration] #[12,60] [Business area.]+(1,3) M[Change] M[UPD] M[1,4,2]

Format
del [screen element] In the case of fields both the field name and the value or the input field that follows are deleted. In the case of field groups all elements within the group and the group box itself are deleted.

Delete a menu item.


del M[menu item] del M[fcode] del M[i,j,k,l] You can use either the menu item text or the internal function code (press F1 on the menu item to display the function code). In special cases you can also work with the hierarchical position of the menu item, starting with position 1. GuiXT deletes the following elements: the menu item itself the corresponding push button in the toolbar, if it exists the function key assignment

if the menu item is a submenu, all items of the submenu are deleted as well GuiXT also disables the direct input of the function code in the OK code field. For further documentation see the article Deleting menu items in "Special topics".

28

Synactive Documentation

Options
-Triple -Value -Text -Box Applicable for input/output fields with an additional text field behind the entry field. All 3 fields are deleted. Applicable for input/output fields. Only the field value (entry field) is deleted. Applicable for input/output fields. Only the field text is deleted. Applicable if the screen element is a group box. Only the box around the fields is deleted.

Tips&Tricks
If you wish to delete all fields of a field group except one, you can first shift this field outside the box using pos and then delete the rest. Pushbuttons within the application toolbar can be deleted as well. With icon pushbuttons you name them using their quickinfo text. You can delete several screen elements at once: del [screen element 1] [screen element 2] First screen element at the top left corner and the bottom right element have to be specified. All elements between those two will be deleted.

GuiXT Keywords

29

Enter
Purpose
With Enter you can simulate a user action within an InputScript. If you use Enter without specifying anything else, the InputAssistant simulates pressing the Enter button. You can also specify an internal function code which corresponds to a menu entry or a pushbutton.

Examples
Enter Enter "BU" The internal function code "BU" is activated. Enter "/nSE38" process="ShowABAPSource.txt" The transaction SE38 is started and InputScript ShowABAPSource.txt is executed

Format
Enter Enter "Value" Enter "Value" process="InputScript.txt"

Options
OnError= A function code that is executed in case of an error message, as response to the first function code. See Special Topics File Handling in InputScripts, Example 2 for an example. Typically, the OnError= function code is "/N" (Cancel transaction) or "/12" (Cancel). The Script is continued with the Screen command that is active after executing the OnError function code. The variable V[_lasterror] contains the error text. OnError="Continue" This is the most flexible way to handle error messages, but you have to program all further actions in your InputScript. In the case of an error message, the script is continued with the statement after the Enter statement. The variable V[_lasterror] contains the error text. Among other things you can now correct certain values with "Set", and then enter a new function code.

30

Synactive Documentation

Please observe: Some of the normal entry fields might be read-only in the case of an error. All statements between Enter ... OnError="Continue" and the next Screen command are executed only if an error message is produced by Enter. Otherwise they are skipped. It is also possible to use Enter ... OnError="Continue" several times within one Screen block, e.g. to try several input values.

Example:
Screen ... Set [Material] "abc" Enter "/5" OnError="Continue" // The following statements are executed in the case of an error message Message "Material abc not found" Set [Material] "xyz" Enter "/5" OnError="Continue" // The following statements are executed in the case of a 2nd error message Message "Material xyz not found" Set [Material] "M-01" Enter "/5" Wait= Parameter in milliseconds between 0 and 5000. The Enter is performed after the specified number of milliseconds. Enter "/ScrollToLine=..." Table= Scrolling in a table on the screen. Specify the table name and a line number, starting with 1. In list output, scrolling is possible as well; no table name needs to be specified in this case.

Tips&Tricks
If no Enter is specified for the current screen, the processing of the InputScript is terminated. The user can then continue with the transaction himself. See Pushbutton for a description of how to get the internal code.
GuiXT Keywords

31

If you activate OptionsVisible Auto Processing for a test of your InputScript, you only press the Enter button in each screen in order to simulate the function code that you specified in the InputScript. Note: if Enter is always executed, the system will loop. In this case you can stop it by selecting OptionsVisible Auto Processing.

32

Synactive Documentation

FieldSize
Purpose
With FieldSize you can change the size of an input or output field.

Example
FieldSize [Material] 10

Format
FieldSize [Screen element] n The new field size is n characters; n is a value between 1 and the current field size.

Options
-Scrollable Only that part of the input field which is visible is reduced; the field becomes scrollable and can still be made the same length as it originally was.

Tips&Tricks
If the value to be used has more than n characters, the field becomes scrollable automatically, so that the user can display the increased value. But normally FieldSize should be used only if you are sure that the field value will not be more than n characters long, or if its use is combined with the -Scrollable option.

GuiXT Keywords

33

File
Purpose
With File you can assign an alias name to SAPWR (SAP Web Repository)scripts with long names (reason: 30 character name length restriction in SAPWR).

Example
File "saplsmtr_navigation.e0100.txt" Alias="menu.txt"

Format
File "long_filename" Alias="short_filename"

Tips&Tricks
The File command should be put in session script ESession.txt, DSession.txt.

34

Synactive Documentation

GetTableAttribute
Purpose
With GetTableAttribute you can read attributes of a table displayed on screen (table control).

Example
GetTableAttribute T[Table] FirstVisibleRow=FVisRow LastVisibleRow=LVisRow LastRow=LastRow The specified attributes of the table are read into the variables V[FVisRow], V[LVisRow], V[LastRow].

Format
GetTableAttribute tabid ... attribute=varname ...

Following attributes are available:


FirstVisibleRow= Number of the first row that is visible on screen (starting with 1) LastVisibleRow= Number of the last row that is visible on screen LastRow= Number of the last row of the table (independent of its visualization) For example, at the beginning of a table display you could have FirstVisibleRow=1, LastVisibleRow=12, LastRow=115; i.e. rows 1 to 12 are currently displayed, and the table has 115 rows in total.

Tips&Tricks
See www.synactive.com "Tips&Tricks" and "Special topics" for a detailed example

GuiXT Keywords

35

GlobalTextReplace
Purpose
With GlobalTextReplace you can replace a text in the display of all R/3 screens.

Example
GlobalTextReplace "company code" "regional office"

Format
GlobalTextReplace "old" "new" The string is replaced in the following screen elements: Field labels Screen title Group box title Push button title and quickinfo Message line Menu texts Column headers in tables Table title

The following rules apply for the text replacement: 1. It is not case-sensitive, but the first character remains in upper case or lower case 2. Longer texts are replaced before shorter ones The command GlobalTextReplace should be put into the script ESession.txt (E=English; ISession.txt for Italian). This script is performed exactly once for each R/3 session, after the logon screen.

Tips&Tricks
The command TextReplace has the same effect, but for a single screen only.

36

Synactive Documentation

Goto/Label
Purpose
With Goto you can control the InputScript processing.

Example
Goto NextPosition Label NextPosition Screen SAPMVCF66G.0400

Format
Goto labelname Label labelname The InputScript processing is continued with the line following the specified label.

Tips&Tricks
Backward Gotos are possible. They are dangerous since you could run into an infinite loop. If you produce an infinite loop, you can activate the "Visible auto processing" option in GuiXT in order to stop it, and then use a /N-command in order to start a new transaction. If you place the Label statement before a Screen statement, the processing of the current screen is terminated after the Goto. If you place it after the Screen statement, the processing continues even if the screen names are different. It is possible to use if/else/endif within a Screen processing block, but it is not possible to put Screen commands inside of if/else/endif. Use Goto instead.

GuiXT Keywords

37

HistoryUpdate
Purpose
With HistoryUpdate you deactivate or activate the history update, either for the whole screen or for a single field (e.g. a date field).

Example
HistoryUpdate [posting date] off

Format
HistoryUpdate off / on HistoryUpdate [field] off / on Deactivates or activates the history update for the whole screen or for a single field.

38

Synactive Documentation

Icon
Purpose
With the Icon-command you can change the icon in the R/3 title line. By doing this, you are able to differenciate between two applications at a glance, even if they are only in the taskbar.

Example
Icon "C:\Icones\guixt.ico"

Format
Icon "Name of file.ico" The icon appears instead of the R/3 icon in the top left corner of R/3 screens or in the taskbar before the name of the program. You can define icons in 16x16 or 32x32 format.

Tips&Tricks
If you put the Icon-command in the script of the R/3 logon screen, it will appear on all following screens. If you want to have client specific icons, you can include the Icon-command in the script of the system menu S000. You can define the icons as "transparent". In this case, the background colour of the icon will be the colour of the taskbar. Programs helping you in designing or editing icons are either available as shareware in the internet or included in various development systems.

GuiXT Keywords

39

If
Purpose
With if you can make script commands dependent on conditions. For example, on the current GUI-Status or on whether certain fields exist in the R/3 screen.

Example
if Q[Status=ADD1] or Q[Status=UPD1] Image (1,50) (10,90) "imgupd.gif" else Image (1,50) (10,90) "imgdis.gif" endif If the GUI Status is ADD1 or UPD1, the image file "imgupd.gif" will appear, otherwise "imgdis.gif" will appear.

Conditions
What conditions are available with if ?

Existence of screen elements


Firstly, you can look for the existence of screen elements by simply naming the corresponding screen element in the if command. For example: means: "if there is a field Amount on the if F[Amount] screen". if I[Amount] if P[Cancel] means: "if there is an input field Amount on the screen". means: "if there is a Cancel pushbutton on the screen".

Status data
Secondly, you can inquire about certain status data: if Q[Status=xxxx] If the GUI-Status is xxxx if Q[Language=x] If the language key is x (1 character, E=English, D=German, F=French, I=Italian,...)

40

Synactive Documentation

if Q[Database=xxx] if Q[Client=xxx] if Q[User=xxx] if Q[Role=xxx] if Q[Profile=xxx] if Q[Transaction=xxxx]

if the system (database server) id is xxx if the client is xxx if the user is xxx (see Role specific user screens ) if the role is xxx (see Role specific user screens ) if the profile is xxx If the transaction code is xxxx (N.B. only possible with R/3 Rel.4 and upwards) if an R/3 screen variant xxx is active (with a central GuiXT script) if the GuiXT Version is equal to yyyy Qx x. You can use <, = or >. See also Tips & Tricks below. if the user has provoked a StopRequest in an InputScript (see StatusMessage) if the current page of a tabbed dialog is xxxxx (xxxxx is the text displayed on the tab) if the variable vname has the value value (only possible with InputAssistant) if the using parameter uname has the value value (only possible with InputAssistant)

if Q[ScreenVariant=xxxx]

if Q[GuiXTVersion=yyyy Qx x]

if Q[StopRequest]

if Q[Page=xxxx]

if V[vname=value]

if U[uname=value]

User options
Thirdly you can inquire about user options set in guixt.ini: Option opt1 Option opt2 with if Q[Option0xxxx]. For example, you could offer an option HelpDisplay. When the user activates this option in guixt.ini, you could display a help text for certain transactions, either

GuiXT Keywords

41

as image file using Image or as rtf or html file using View. Each user can then decide individually whether or not to use the help text. You can define up to 50 different options in guixt.ini, each Option string containing up to 30 characters.

Is it possible to use nested if else endif ? Are logical expressions permitted?


Yes, both are possible.

Example:
if not Q[Status=UPD1] Image (1,50) (10,90) "imgdis.gif" else if ([Company code] or [Business area]) and not [Order number] Image (1,50) (10,90) "imgupd1.gif" else Image (1,50) (10,90) "imgupd2.gif" Pushbutton (Toolbar) "Cancel" "/OZC27" endif endif You can use normal brackets, "and", "or" and "not" within logical expressions. Normal rules of logic apply for priority and bracketing. Inquiring about field values is not possible. With InputAssistant you can inquire about global variables that can be set in GuiXT Scripts and InputScripts.

Tips&Tricks
A field, e.g. F[Company code], cannot be specified directly in an if statement, please use a variable. Example: Set V[buk] "&F[Company code] " if V[buk=0001] ... endif In order to compare two variables V[x1] and V[x2], you have to use the value &V[x2] in "if V[x1=value]": if V[x1=&V[x2]] ... endif

42

Synactive Documentation

For details concerning if Q[Role=xxx] and if Q[Profile=xxx] see Role specific user screens at www.synactive.com. "if Q[GuiXTVersion..." is supported in GuiXT version 2002 Q4 3 and upwards. If you want to ensure that in your script (probably the logon script) the installed GuiXT version is at least 2002 Q4 5, you can use the following coding: if Q[GuiXTVersion<2002 Q4 5] Message "Please install new GuiXT versions \nFor questions contact S. Bauer ext. 2649" Title="Update necessary" endif But in this case no message would appear in the versions prior to 2002 Q4 3, since the condition if Q[GuiXTVersion<....] didn't yet pertain, and the indication "false" is returned. In order to cover such cases as well, use "not ... >" with the previous GuiXT version id: if not Q[GuiXTVersion>2002 Q4 4] Message "Please install new GuiXT versions \nFor questions contact S. Bauer ext. 2649" Title="Update necessary" endif

You should not use Screen commands within if ... endif, since this makes the script hard to understand, and sometimes the behavior will be quite unexpected.

Bad example:
Screen S1 Set V[x] "a" Enter if V[x=b] Screen S2 Enter "xx" else Screen S2 Enter "yy" endif Assume that we have Screen S1 and then Screen S2. Does GuiXT now process Enter "xx" or Enter "yy"? In fact, in this example,
GuiXT Keywords

43

Enter "xx" is executed, since GuiXT looks for the next matching Screen command for Screen S2, without considering open if statements of previous screen blocks. , please close all open "if" statements in each screen block: Screen S1 Set V[x] "a" Enter Screen S2 if V[x=b] Enter "xx" else Enter "yy" endif In some cases it makes sense to use goto/label: Screen S1 Set V[x] "a" Enter if V[x=b] goto l_b endif Screen S2 Enter "xx" goto l_continue label l_b Screen S2 Enter "yy" label l_continue

Instead

44

Synactive Documentation

Image
Purpose
With Image you can display image files in the R/3 screens. What is the point of having images and graphics in R/3 screens? Four principal reasons spring to mind. Firstly, to create a recognizable context. Secondly, to orientate us within a screen. Thirdly, to give the screen a personal, friendly touch. Fourthly, images can carry a mass of vital information, in particular if the choice of image is data dependent.

Example
Image (10,40) "C:\Images\logo.jpg" The image file C:\Images\logo.jpg is displayed as of position (10,40), i.e. the upper left corner of the image is in row 10, column 40.

Image standards
The following image standards are supported: bmp gif jpg As a rule it makes sense to use bmp for smaller images (like icons) and to use gif and jpg for larger ones.

Format
Image (row,column) "Name of image file" The coordinates (row,column) are the upper left corner of the image. They can be specified as decimal numbers in order to position the image exactly. The image is displayed in its original size. The image is searched in the current script directory unless a full path is specified, e.g. "E:\pictures\logo1.bmp". The image files are internally buffered. Instead of (row,column) the position (toolbar)is supported as well. In this case the image size should be

GuiXT Keywords

45

18x18 pixels. The image is displayed at the right hand side of the toolbar. Image (row1,column1) (row2,column2) "Name of image file"

Here (row1,column1) is the upper left corner and (row2,column2) is the right lower corner. The image is stretched to fit into the given rectangular screen area, without keeping its original proportions (but see -NoStretch option).

Options
-NoStretch -Plain Keeps the height/width ratio of the original image. No 3D-frame is displayed around the image. The image is read from the file system each time it is displayed. Without this option GuiXT keeps the image in memory in order to avoid reading it from the file system each time. This option is useful if new versions of the image are provided by external programs (e.g. from R/3 or timer controlled). Applicable for .gif and 8-bit .bmp images. The image is displayed in a transparent way. Technically, the color of the upper left corner of the image is replaced with the background color of the R/3 screen.

-NoBuffer

-Transparent

Multiple Images
It is also possible to display multiple images using the Image command in a way such that the user can click through the images. In order to do this you name the images using a sequence number, e.g. "img01.gif", "img02.gif", "img03.gif". You then put the special character combination &# (or &##, &###) into the image filename:

Example
Image (10,40) (16,65) "img&##.gif" The system substitutes 1, 2, 3... (or 01, 02, 03... or 001, 002, 003...) in the place of &# (&##, &###), increasing the number each time the user clicks on the image, and decreasing the

46

Synactive Documentation

number with each right mouse click. The mouse cursor shows the image number.

Data dependent images


The image file name can contain variables that are replaced by their values before the image is loaded.

Example
Image (4,80) "C:\products\img&[Material].jpg" If the user enters the material 00500187, the image C:\products\img00500187.jpg will appear.

Dynamic image construction


Sometimes it is not possible or does not make sense to store all images in the local file system. In this case you can specify an exe- or bat-File in the Image command which copies the image file into the local directory from another source: Image (row,column) "Name of image file" exe="program name" If the system does not find the image file, it carries out the given exeor bat-program with the name of the image file as first parameter. After the program has finished, the image file is displayed. Example of an Image command:

Example
Image (10,40) (18,74) "C:\tempimg\chart&[Account]\&[Date].gif" exe="C:\prog\getchart.exe"

Interaction with R/3 through images


By clicking on the image, you can call optional user inputs which will be simulated within R/3. This is obtained by using the additional parameter Input="string": Image (row,column) "Name of image file" Input="string" You can put values into R/3 input fields You can call up menu functions

The notations is as follows: Input="field1:value1;field2:value2; field3:value3;OK:fcode"

GuiXT Keywords

47

The function code fcode can either be an internal code taken from the screen menu, e.g. SCMP, or a transaction code as for example /NFB01 or /OMM02. You will find the internal menu codes as follows: choose the desired function in the transaction menu and press F1 while the mouse cursor points to this function. Now the R/3 system displays the internal function code in a pop-up window. The Enter button, without any special function code, can be called up with OK at the end of the SAP URL: Input="field1:value1;field2:value2; field3:value3;OK"

Starting an InputScript
In conjunction with InputAssistant you can also start an InputScript. You have to add the process= attribute to the OK:fcode.

Example
Input="field1:value1;field2:value2; field3:value3;OK:fcode, process=displaymaterial.txt" "Using" parameters can be passed to the InputScript with the notation U[name]:value. You can also set internal GuiXT variables with V[name]:value and use this value in your InputScript or in GuiXT scripts.

Example 1
"Input=OK:PR03" Clicking on the image calls up the function PR03 in R/3.

Example 2
Input="Material:00012345;Plant:0021;OK" Clicking on the image completes the fields "Material" and "Plant" and then automatically activates the Enter button.

Start of PC-applications through images


By clicking on the image, you can start PC applications. This is obtained by using the additional parameter Start="string": Image (row.column) "Name of image file" Start="string" You can display documents of all registered file types You can start .exe or .bat files with parameters

48

Synactive Documentation

Example
Start="\\P00800\Doc12\me21.html" Clicking on the image displays the html file \\P00800\Doc12\me21.html in your standard browser.

Telephony
You can pass a phone number to the TAPI component ("Telephony Application Programming Interface", outgoing calls), using the parameter dial=.

Example
Image (10,24) "phone.gif" dial="&F[Phone number]" If TAPI is installed and configured on this PC, clicking on the image initiates a phone call to the specified number.

Displaying help files in html format


Component "Viewer" is required for this option When the user clicks on the image, the help file ViewHelp="..." is displayed at the right hand side of the R/3 screen. Interactions with R/3 can be specified in the html file, as described for the View-command (Setting values, calling functions). The help display disappears as soon as the user clicks on an R/3 field. Image (row,column) "Name of image file" ViewHelp="filename.html"

Example
Image [toolbar] "help.gif" ViewHelp="doc_intorder.htm"

Options for ViewHelp


ViewHelpWidth= Width of the help display (in pixel). If no width is specified, 40% of the total window width is taken. It is also possible to specify the width in percentage, e.g. ViewHelpWidth=60%

GuiXT Keywords

49

ViewHelpHeight=

Height of the help display (in pixel). If no height is specified, 40% of the total window height is taken. It is also possible to specify the height in percentage, e.g. ViewHelpHeight=50% Position (upper left corner) of the help display in the form (row,column), e.g. ViewHelpPosition=(10,50).

ViewHelpPosition=

Or relative to other screen elements, e.g. ViewHelpPosition="[Material]+(1,30)". If you specify a position without specifying width and height, the whole window is used, starting at the specified position (lower right part of the window).

Example
Image (toolbar) "help.gif" ViewHelp="doc_intorder.htm" ViewHelpWidth="200"

50

Synactive Documentation

Include
Purpose
With Include you can include a further script file.

Example
Include "radiobuttons_company.txt" The file "radiobuttons_company.txt" is searched in the current script directory. It is then interpreted in the same manner as if its content were part of the original script.

Format
Include "includename" The file "includename" is searched in the current script directory. If it is not found, a syntax error message is displayed in the GuiXT script window, and the main script is continued. If it is found, first the lines of the include file are interpreted, and then the original script is continued. You can also specify the full path, e.g. Include "\\server12\guixt\inlcudes\r105.txt" Files in the SAP Web Repository or on http/ftp servers can also be used, e.g. Include "http://www.synactive.com/incl/r15.txt" A nested Include is possible up to level 10. Please note that it is not possible to use Include in an InputScript.

Tips&Tricks
You may use variables in the include file name, e.g. Include "inc&V[company].txt" With if...endif you can work with a conditional include, e.g. if Q[Transaction=IW33] Include "IW33mainscript.txt" endif

GuiXT Keywords

51

InputField
Purpose
With InputField you can create additional input fields. The value entered into a new input field can be used in an InputScript.

Example
InputField (10,1) "Reference number" (10,20) Size="10" Name="Refnr" This defines an input field with up to 10 characters. The field label is displayed at (10,1), the field itself at position (10,20). The internal field name is Refnr, i.e. in the InputScript its value is written in the symbolic form &[Refnr] .

Format
InputField (row1,col1) "field text" (row2,col2) Size="..." Name="..."

Options
-Numerical -Uppercase -NoLabel -Invisible Only numerical input Only uppercase input Input field without label. Both (row1,col1) and "field text" are omitted in this case. Invisible input (password) The field is displayed like a standard required (i.e. compulsory) input field. In the InputScript you can check that the user has entered a value. The checking is not done automatically. The field value is displayed with a different color (standard: red). The field value is aligned right. No input possibility Specification of a default value Maximum input length. With this, a greater length than in Size= can be

-required

-intensified -alignright -readonly Default= MaxLength=

52

Synactive Documentation

specified; the field will then automatically become scrollbar. Specification of a field name that refers to a field in the R/3 repository, e.g. TechName="BSEG-GSBER". When the user presses F4 or clicks on the matchcode icon, GuiXT processes the standard R/3 matchcode for this field. Alternatively, the name of a search-help from R/3 can be given directly by means of SearchHelp="...". If more than one field is exported by the matchcode module, GuiXT takes the first one. You can also specify the name of the desired field with the shname= option. This function requires the installation of the ABAP program ZGUIXTF4 (available on the download page of www.synactive.com). You can specify up to 9 selection criteria for the matchcode display. The names that you specify with shname, shname2, shname3,... must be exactly the same as in the definition of the search help (transaction SE11). The values shselvalue1, shselvalue2, shselvalue3,... can either be constants or other entry fields [...] . shselname1= shselvalue1= shselname2= shselvalue2= shselname3= shselvalue3=

TechName= SearchHelp= shname=

Examples
InputField .... searchhelp="COCAN" shselname1="GJAHR" shselvalue1="2002" Only cost centers for the year 2002 are displayed. InputField .... searchhelp="COCAN" shselname1="GJAHR" shselvalue1="[Year]" The content of the entry field [Year] is set as selection for the year. InputField .... searchhelp="COCAN" shselname1="GJAHR"
GuiXT Keywords

53

shselvalue1="[varname]" The content of variable [varname] is set as selection for the year. Please note: For this function you need the ABAP program ZGUIXTF4 in version 2002 Q3 8 or upwards. Please note: For R/3 Rel. 4.0 a special handling is needed, since the SAP matchcode function did not yet support the parameterization that GuiXT uses here. In the data dictionary SE11, copy the search help where you need additional value selection, using your own name. For example, copy "BETRA" into "ZZBETRA". If you need constant values as additional selection, enter them as default value, e.g. '0001' (including the ' ') . R/3 Rel. 4.0 only If you need variable values, use a parameter id, e.g. enter BUK . Use a valid parameter id according to table TPARA. Do not forget to activate the search help before testing In the script, use the notation shselname1= "$ xxx " shselvalue1= "..." where xxx is the parameter id. For example: shselname1= "$BUK " You need ZGUIXTF4 version 2003 Q4 1 and upwards. You can specify up to 9 additional fields; they are filled when the user selects a matchcode entry. The names that you specify with shname1, shname2, shname3,... must be exactly the same as in the definition of the search help (transaction SE11). The target fields shdest1, shdest2, shdest3,... can either be entry fields [fieldname] or variables V[varname]. Examples: InputField .... searchhelp="COCAN" shname1="LSTAR"

shname1= shdest1= shname2= shdest2= shname2= shdest2=

54

Synactive Documentation

shdest1=[Activity type] When the user selects a cost center, the cost center key is put into the InputField. In addition, the activity type contained in the selected matchcode line is put into the entry field Activity type. InputField .... searchhelp="COCAN" shname1="LSTAR" shdest1=[Activity type] shname2="KTEXT_KOSTL" shdest2=V[CC_text] The variable V[CC_text] is filled with the cost center text, to be used in further processing. Please note: For this function you need the ABAP program ZGUIXTF4 in version 2002 Q3 6 or upwards. You can specify an InputScript that is processed after the user has selected a value in the search help display. Some typical applications: Display a text in addition to the selected value Specify SearchHelpProcess= "return.txt" , where the InputScript return.txt consists of the statement " Return " only. This forces the screen to be displayed again, and the variables set by the matchcode (like V[CC_text] in the section above ) are shown to the user. Display further data that depends on the selected value The specified InputScript reads additional data (e.g. with a Call statement) and then uses " Return " to display the screen again. The newly read data can be displayed in the GuiXT script.

SearchHelpProcess=

GuiXT Keywords

55

Programmed matchcode help


You can also program a special matchcode function in ABAP and assign it to the InputField.

Notation:
searchhelp= "exit.progname.formname" Here progname is the ABAP program name and formname is the subroutine name The form routine has a standardized interface (see below). It returns the selected value. The special options shselname1=, shselvalue1=, ..., shname1=, shdest1= can be handled as well (see "Special Topics" for details).

Example 1
Inputfield (18,1) "Bk" (18,20) name="buk" size="4" searchhelp="exit.zguixtmc1.mcbuk"

ABAP program:
Program ZGUIXTMC1. * Value table data: begin of t1 occurs 100, bukrs like t001-bukrs, butxt like t001-butxt, land1 like t001-land1, ort01 like t001-ort01, end of t1. * Returned value data: begin of r1 occurs 1. include structure DDSHRETVAL. data: end of r1. Form mcbuk tables sel "table with shselvalue1=, dest "table with using invalue changing selvalue.

shselname1=, shname1=, shdest1

56

Synactive Documentation

* Select data Select bukrs butxt land1 ort01 from t001 into corresponding fields of table t1. * SAP standard function to display table as matchcode selection CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'BUKRS' WINDOW_TITLE = 'Please select a company code' VALUE_ORG = 'S' TABLES VALUE_TAB = T1 RETURN_TAB = R1 EXCEPTIONS OTHERS = 1. * Return selected value if sy-subrc = 0. selvalue = r1-fieldval. endif. endform.

GuiXT Keywords

57

Example 2: Local file name


Inputfield (6,1) "Filename" (6,20) name="filename" size="50" searchhelp="exit.zguixtmc1.mcfile"

ABAP-Program:
Program ZGUIXTMC1. Data: tmp_filename(80). Form mcfile tables sel "table with shselname1=, shselvalue1=, dest "table with shname1=, shdest1 using invalue changing selvalue. Call Function 'WS_FILENAME_GET' Exporting DEF_FILENAME = invalue DEF_PATH = 'C:\GuiXT' MASK = ',*.*,*.*.' MODE = 'O' TITLE = 'Please select a file ' Importing FILENAME = TMP_FILENAME Exceptions others = 1.

* Return selected value If sy-subrc = 0. selvalue = tmp_filename. Endif. Endform.

58

Synactive Documentation

Tips&Tricks
You can also specify a quickinfo for the new field, observing the SAP standard convention for a text with a quickinfo. Example: "@0L\QPlease use the external document number as reference number@Reference number" The InputAssistant displays the history for your new input fields as well. The technical field name required for the matchcode functionality can be found in standard R/3 help F1, "Technical information".

Special search help modules


The following special search help modules can also be specified in SearchHelp="...": ... searchhelp="GuiXT.ORGEH" Hierarchical view of organization ... searchhelp="GuiXT.ZTERM" Payment terms ... searchhelp="GuiXT.ZTERM.D" Payment terms, debitors only ... searchhelp="GuiXT.ZTERM.K" Payment terms, creditors only ... searchhelp="GuiXT.DATE" Calendar ... searchhelp="GuiXT.AKONT.D" shselname1="BUKRS" shselvalue1="&F[::Company code]" Control account debitor. The company code must be specified (constant or variable). ... searchhelp="GuiXT.AKONT.K" shselname1="BUKRS" shselvalue1="&F[::Company code]" Control account creditor. The company code must be specified (constant or variable).

GuiXT Keywords

59

Leave
Purpose
With Leave you can stop the flow of an InputScript. The current screen is the one displayed. In contrast to Return, there is no return to the initial (start) transaction.

Example
Leave

Format
Leave

Tips&Tricks
In general it only makes sense to use Leave if you have used Enter. If you use Leave to stop an InputScript, following a Screencommand without Enter, the current screen will be displayed without GuiXT Script execution, and this is not usually what you want.

60

Synactive Documentation

Link
Purpose
With Link you can link variables to entry fields. In contrast to Set, the variable is updated automatically with the value entered by the user. For example, you can use it when you fill fields automatically, and assume that the user might enter some of the fields manually as well. In particular, when you simplify transactions using your own InputFields, it makes sense to use Link on the hidden screens, if the user can call them up. There are 2 different formats, indicating 2 different directions of value setting when the screen is displayed: With one format the entry field is changed, with the other format the variable is changed.

Example
Link [Date] V[myDate] The entry field "Date" gets the value of the variable "myDate", identical to Set [Date] "&V[myDate]". In addition, after the user has entered a new date, the variable "myDate" is set to this value. Link V[myDate] [Date] The variable "myDate" gets the value of the entry field "Date", identical to Set V[myDate] "&[Date]". In addition, after the user has entered a new date, the variable "myDate" is set to this value.

Format
Link [entry field] V[varname] The variable sets the entry field and receives newly entered values. Link V[varname] [entry field] The variable gets the entry field value and receives newly entered values. Link cell[table,column,row] V[varname] The variable sets the table cell and receives newly entered values. Link V[varname] cell[table,column,row] The variable gets the table cell value and receives newly entered values.
GuiXT Keywords

61

ListImage
Purpose
With Listimage you can display image files in R/3 ABAP lists. All features of the Image command are available. You specify the position of the image within the list via a suitable string that you can choose in the Listimage command.

Restrictions:
The images are not included if you print the list An image is only shown when the corresponding image string is on the currently displayed part of the list. This means that if you scroll down the image vanishes completely as soon as the line containing the image string is no longer visible. On the other hand, at the bottom of the page the upper part of an image remains visible.

Please note:
Attribute an interface status to your report by means of the ABAP command "Set PF-Status ...". The GuiXT script can then be called up under the report name you have chosen, e.g. "ZIMGR000.D0120.txt". The Dynpronumber in lists is always 120. Failing the attribution of such a status the list will appear under the program name "SAPMSSY0" and the script would then be processed for all reports which have no attributed interface status.

Example
Listimage "@Cs" (0,0) (20,50) "C:\GuiXT\Images\ffm.gif" The image file C:\GuiXT\Images\ffm.gif is displayed in the list instead of each occurence of the string @Cs. The image cooordinates are evaluated relative to the position of the string.

Variable images
If you want to display variable images, depending on the value of a certain field within a list section, you specify the value immediately to the right of the search string and within normal brackets, e.g. @Cs(12345678)

62

Synactive Documentation

In this case the name of the image file is modified: the string &par is replaced with the given value.

Example
Listimage "@Cs" (0,0) (20,50) "\\p800\products\&par.gif" The image file \\p800\products\12345678.gif is displayed. Both the search string @Cs and the value (12345678) are deleted in the list.

Format
Listmage "string" (row,column) "name of the image file" The coordinates (row,column) define the position of the top left hand corner of the image relative to the "string" in question. Listmage "string" (row1,column1) (row2,column2) "name of the image file" Analagous to the Image command.

Options
Same options as in the Image command; multiple images and interactions are also possible.

Tips&Tricks
You should choose a unique search string, otherwise the image is displayed at other positions as well. Use special character combinations, e.g. @%. Images can also be display at TOP-OF-PAGE or within the column heading lines of the list.

GuiXT Keywords

63

Mark
Purpose
With Mark you can mark entry fields with a small red cross. For example, you can mark all fields that should be entered by the user.

Examples
Mark [Base unit of measure] Mark [Base unit of measure] "-green" Mark [Base unit of measure] Image="C:\help.gif"

Format
Mark [entry field] A small red cross is displayed in front of the entry field

Options
-red -green -blue -yellow -black -white Color red (Default) Color green Color blue Color yellow Color black Color white

Instead of a small cross the specified imagefile Image=filename (e.g., .bmp, .gif) is displayed. The image size should be 8x8 pixels. -Text The mark is displayed in front of the field designation text

64

Synactive Documentation

Displaying help files in html format


Component "Viewer" is required for this option. When the user clicks on the small red cross, the help file ViewHelp="..." is displayed at the right hand side of the R/3 screen. Interactions with R/3 can be specified in the html file, as described for the View-command (Setting values, calling functions). The help display disappears as soon as the user clicks on an R/3 field.

Example
Mark [Base unit of measure] Image="help.gif" ViewHelp="doc_unit.htm"

Format
Mark [entry field] ViewHelp="filename.html"

Options for ViewHelp


ViewHelpWidth= Width of the help display (in pixel). If no width is specified, 40% of the total window width is taken. Height of the help display (in pixel). If no height is specified, 40% of the total window height is taken. Position (upper left corner) of the help display in the form (row,column), e.g.: ViewHelpPosition=(10,50). Or relative to other screen elements, e.g. ViewHelpPosition="[Material]+(1,30)". If you specify a position without specifying width and height, the whole window is used, starting at the specified position (lower right part of the window).

ViewHelpHeight=

ViewHelpPosition=

Example
Mark [Base unit of measure] Image="help.gif" ViewHelp="doc_unit.htm" ViewHelpWidth="200"

GuiXT Keywords

65

Tips&Tricks
If you need the small cross icons separately, for example in order to display a short explanation of the signs, you can use the Image command and the filenames "mark_red.res" "mark_green.res" "mark.blue.res" ...

66

Synactive Documentation

Message
Purpose
With Message you can display a special message in a separate popup screen from a GuiXT script or an InputScript.

Example
Message "Price change starting &[AEDAT]" Title="Please note new prices"

Format
Message "message text" Message "message text" Title="Title" The message "message text" which can be one or several lines long will be shown with title "Title".

Options
The message is displayed in the status line. An already existing SAP standard message is not shown in this case. If the message text starts with "S: " or "E: " or "W: ", the message is shown as information or error message or warning message. -StatusLine

Example
Message "E: Amount &V[amount] exceeds the limit of 50,000" StatusLine A title parameter is ignored in this case. The -statusline option is always assumed in "Sapgui for HTML" environment (ITS).

Tips&Tricks
As always you can use variables in the message text and title. By inserting \n in your message you can create a carriage return in your message, by inserting \t a tab.
GuiXT Keywords

67

NoDropDownList
Purpose
With NoDropDownList you change a drop down list into a normal entry field

Example
NoDropDownList [Order type]

Format
NoDropDownList [Order type] Changes a drop down list into a normal entry field

Tips&Tricks
This makes sense if the displayed value list contains many or frequently used entries, so that the users prefer a direct input.

68

Synactive Documentation

NoInput
Purpose
With NoInput you can cancel a field group or field's possibility for input.

Example
NoInput [Company code]

Format
NoInput [Screen element] NoInput [Table,columnname] NoInput [Table,*, rownumber ] The input possibility is cancelled for fields, check boxes and radiobuttons. In the case of field groups the cancellation applies for all elements within them. You can also specify a table, a table column or a table row.

Options
-SearchHelp F4 search help remains possible.

Example
The following script cancels the input possibility for the column "Description", and for all already existing table rows (component InputAssistant required for variable handling):

GuiXT Keywords

69

if Q[Transaction=VA02] and Q[Page=Sales] NoInput [All items,Description] // Row index Set V[i] 1 label NextItem // Position filled? Then no input Set V[VA02_item] "&cell[All items,Item,&V[i]]" if V[VA02_item] NoInput [All items,*,&V[i]] Set V[i] &V[i] + 1 goto NextItem endif endif

Tips&Tricks
It is possible to combine NoInput and Default. Row numbers always refer to the visible part of the table, starting with 1.

70

Synactive Documentation

NoLeadingZeros
Purpose
With NoLeadingZeros you can suppress leading zeros in the field display. Example: instead of "000123" the number "123" is displayed, instead of "000000" a single "0".

Example
NoLeadingZeros [House number]

Format
NoLeadingZeros [Screen element] NoLeadingZeros [Table,columnname] You can specify a single field or a table column.

GuiXT Keywords

71

Numerical
Purpose
With Numerical you can restrict a field input to digits only.

Example
Numerical [House number]

Format
Numerical [Screen element] Numerical [Table,columnname] You can specify a single field or a table column.

72

Synactive Documentation

Offset
Purpose
In order to shift a group of screen elements en bloc, e.g. radiobuttons, you can use the Offset command. The given offset is then added to all subsequently specified numerical coordinates.

Example
The following possibilities are equivalent: Offset (10,21) Radiobutton (0,0) "..." Radiobutton (1,0) "..." Radiobutton (2,0) "..." and Radiobutton (10,21) "..." Radiobutton (11,21) "..." Radiobutton (12,21) "..."

Format
Offset (row,column)

Tips&Tricks
With Offset (0,0) you can cancel the effect of a previous Offset .

GuiXT Keywords

73

On
Purpose
With On an input script can be processed if the user presses Enter or a function key. On is used in a GuiXT script.

Examples
On "Enter" Process="nextproduct.txt" On "/11" Process="update.txt"

Format
On "fc" Process="script" On "fc" Process="script" Fcode="newfc" "fc" can be one of the following strings: "Enter" "/n" where n is the number of a function key "/Menu=i,j,k,l" where i,j,k,l represent a menu entry. Please use the Input Recording option in order to generate the correct menu path Fcode="newfc" the code newfc is invoked. This can be a code from the menu, e.g. SCMP, or a transaction code like /NFB01 or /OMM02.

Tips&Tricks
A combination of function keys with the Ctrl and Shift keys can be represented by a number between 13 and 48: Shift = +12 Ctrl = +24 The Enter key can be represented by /0.

Example
On "/39" Fcode="/0" Process="warning.txt"

Result
When the user presses Ctrl+Shift+F3, the Enter key is simulated and the script warning.txt is processed.

74

Synactive Documentation

OpenFile
Purpose
With OpenFile you can open a file and then read the file with ReadFile or write records to file with AppendFile.

Example
OpenFile "X:GuiXTFiles\MatDes.txt" The file is opened in read-only mode. OpenFile "X:GuiXTFiles\MatDes.txt" -Output Delimiter=";"

Format
OpenFile "filename"

Options
-Output -Append The file is deleted, if it exists, and you can now insert new records into the file with AppendFile. The file is not deleted and you can append new records with AppendFile.

The delimiter that you specify here, e.g. ';', will be used in ReadFile and AppendFile in order Delimiter="x" to separate the fields from each other in a record. Default delimiter is the tab.

Tips&Tricks
Opening and closing a file is valid for each R/3 mode separately. It is not necessary to open a file explicitly with OpenFile, since ReadFile or AppendFile contain an implicit open. But it is good practice to do it explicitly, since otherwise a missing CloseFile means that a ReadFile will read nothing at all the next time. See "Special Topics" for a detailed example.

GuiXT Keywords

75

Parameter
Purpose
With Parameter you can define a parameter for an InputScript. When you activate the InputScript you can specify a value for each of its parameters.

Examples
Parameter Amount Parameter Curr "USD" This defines two parameters: Amount and Curr. The parameter Curr obtains the value "USD" if no value is specified in the InputScript call. You can use a parameter in any of the InputScript lines with its symbolic name &[Name], e.g. &[Amount] and &[Curr] .

Format
Parameter Name Parameter Name "Defaultvalue"

Tips&Tricks
You can query whether a parameter has a value different from space, resulting either from using or from its default value: if U[Name] It is also possible to compare it with a fixed value: if U[Name=Value]

Example:
if not U[Curr=USD] and not U[Curr=SFR] Return "Currency &[Curr] is not supported here" endif

76

Synactive Documentation

Pos
Purpose
With pos you can shift fields, field groups, pushbuttons, radiobuttons, check boxes and tables to new positions.

Examples
pos [Business area.] (10,50) pos [Client specific configuration] [Client specific configuration]+(10,0) pos #[12,60](12,50) pos T[ORDERS](10,20)

Format
pos [screen element] (position) In the case of fields both the field name and the value or the input field are shifted. In the case of field groups all elements within the group and the group box itself are shifted.

Options
-Triple -Value -Text Applicable for input/output fields with an additional text field behind the entry field. All 3 fields are shifted. Applicable for input/output fields. Only the field value (entry field) is shifted. Applicable for input/output fields. Only the field text is shifted.

Tips&Tricks
If you wish to move all fields of a field group except one, you can first remove this field from the box using pos and then move the rest. If you specify the position within a script command symbolically by another screen element and shift this screen element to a new position using pos, then its old position is valid f/r all script lines before the pos command, and the new position for all following script lines.

GuiXT Keywords

77

Example
text [Account]+(0,50) "Text 1" pos [Account] [Account]+(1,0) text [Account]+(0,50) "Text 2" The two text strings "Text 1" and "Text 2" appear in two lines one under the other. If you want to swap over the position of two fields, it is not correct to do it in the following way: pos [Account] [Currency] pos [Currency] [Account] Instead you must use absolute coordinates in the 2nd pos command, or refer to a fixed screen element.

78

Synactive Documentation

ProcessingOption
Purpose
With ProcessingOption you can set special processing options.

Example
ProcessingOption ReturnOnError=Off ContinueOnPopup=Off

Format
ProcessingOption option=On/Off The option is switched on or off or a certain value is set. The default for each option is shown below as an example. All options that control the processing of an InputScript are reset to their default value when the InputScript is started. The other options remain valid for the whole session; they should be set in the session script esession.txt.

Options
On: If a popup screen is not found in the InputScript, it is displayed and the InputScript is continued. ContinueOnPopup=On Off: If a popup screen is not found in the InputScript, the InputScript is terminated with the display of the popup. Use in: InputScript On: If the SAP application issues an error message, the start transaction is called again, all input values are filled set again, and the error message is displayed. Off: If the SAP application issues an error message, the InputScript is terminated and the error message is shown on the current screen. Use in: InputScript
GuiXT Keywords

ReturnOnError=On

79

On: Warning messages are treated as error messages . TreatWarningAsErrors=Off Off: Warning messages are skipped, but inserted in the status window (see StatusMessage). Use in: InputScript Number of warning messages to be processed automatically for each screen. A further warning message is treated like an error message. Use in: InputScript On: In commands like Set V[x] "F[element]", leading space in the field value is kept. LeadingSpace=Off Off: In commands like Set V[x] "F[element]", leading space in the field value is deleted. Use in: session script SearchHelpTransaction= "ZXF4" Transaction code used for the search help function (F4) for your own input fields. Use in: session script

MaxWarnings=20

80

Synactive Documentation

Pushbutton
Purpose
With Pushbutton you can create your own pushbuttons within an R/3 screen or within the toolbar. You can make both the menu functions and the navigation to other transactions directly accessible with your own pushbuttons.

Example
Pushbutton (10,50) "Split Screen Editor" "SCMP" You create a pushbutton at row 10, column 50 with text Split Screen Editor. Clicking on the button invokes the internal code SCMP which then starts the Split Screen Editor.

Internal codes
How do I find the internal codes? Choose the desired function in the transaction menu and press F1 while the mouse cursor points to this function. Now the R/3 system displays the internal function code in a pop-up window

Format
Pushbutton (row,column) "Pushbutton text" "FCode" Process="..." Adds a pushbutton on position (row,column). The pushbutton invokes the internal code FCode. This can be a code from the menu, e.g. SCMP, or a transaction code like /NFB01 or /OMM02. "Process=..." relates to the InputScript file. You can omit the "fcode" parameter if only "Enter" is needed in order to continue with the transaction. Pushbutton (Toolbar) "Pushbutton text" "FCode" Adds a pushbutton in the application toolbar. A free funtion key is assigned automatically and displayed in the quickinfo.

GuiXT Keywords

81

Pushbutton (Toolbar) "Pushbutton text" "FCode" "Fkey" Optionally you can specify a function key of your choice as an additional parameter Fkey using the format F1,..F12, Shift+F1,...,Shift+F12, Ctrl+F1,...,Ctrl+F12, Shift+Ctrl+F1,...,Shift+Ctrl+F12. If this function key is already in use the system chooses the next available number. example: Shift+F5 F17, F3 F3

Icon and quickinfo


You can also display an icon and a quickinfo. Use the following SAP notation: Pushbutton (position) "@id\Qquickinfo@text" Here id is the short name of an SAP icon, quickinfo is the quickinfo string and text is the pushbutton text. You will find a list of all R/3 icons in transaction ICON, and a list of all icon short names in the ABAP program <ICON> (Transaction SE38, enter the program name <ICON> and press the Display button). Example: Pushbutton (10,50) "@3G\QInvoke the Split Screen Editor@Split Screen" "SCMP"

Options
Size="x" Size=(x,y) -separator The pushbutton is displayed in a larger size (x rows). The default size is 1, maximum 99. The pushbutton is displayed in a larger size (x rows and y columns). In conjunction with (Toolbar) . The pushbutton is separated from the existing ones by a small vertical line.

Tips&Tricks
You can delete pushbuttons from the toolbar using del [Pushbutton text] You can add a quickinfo to an existing pushbutton using Tip [Pushbutton text] "Quickinfo". New pushbuttons in the toolbar are added on the right hand side. They are also displayed in the function key overview window (right mouse button); here the order corresponds to the assigned function keys.

82

Synactive Documentation

Radiobutton
Purpose
With Radiobutton you can replace an input field with a series of radiobuttons. Instead of having to enter a certain code, the user can simply click on one of the radiobuttons. This will make the operation much easier for the untrained user and save time for the trained user. Instead of a single field you can also specify up to 6 fields and values for one radiobutton. In this case clicking on the radiobutton means that each of these fields gets the corresponding value when you press the Enter button. Please note: In addition, there is a RadioButton syntax if you work with InputScripts and internal variables, see InputAssistant Documentation Radiobutton next pages.

Examples
Radiobutton (10,1) "Cash sale" [Order type] "CS" Radiobutton (11,1) "Internet order" [Order type] "IO" Radiobutton (12,1) "Returns" [Order type] "RE" del [Order type] A radiobutton with text "Cash sale" will appear at row 10, column 1. Clicking on the text or button is equivalent to entering the value "CS" in the field [Order type]. Similarly, when the system displays the screen with a value "CS" in the field [Order type], the radiobutton "Cash sale" is activated.

Radiobutton (10,50) "Foods" [Division] "05" [Sales office] "0001" Radiobutton (11,50) "Cosmetics" [Division] "14" [Sales office] "0002" del [Division] del [Sales office]

GuiXT Keywords

83

Format
Radiobutton (position) "Text next to radiobutton" [Input field] "Value" Radiobutton (position) "Text next to radiobutton" [F1] "V1" [F2] "V2" ...

Tips&Tricks
It is also possible to display both radiobuttons and the input field. This can be of value if you cannot foresee all possible values, but you know that a small subset of values is used in most cases. If the user then clicks on a radiobutton, the corresponding value will be substituted, but if he chooses to directly enter a value, he may do so. Should both actions be performed, the radiobutton choice takes precedence. If the referenced field ([Order type] in our example) contains a value which does not correspond to any radiobutton, no radiobutton will be activated. As a rule, you should not delete the reference field if you are not sure that you have covered all possible values within the radiobutton group. Radiobuttons treat " " and "00" the same way. Capital/small letter writing is also ignored. The reason for that is that "00" is shown as " " in several R/3 screens (variable between edit/show screens) and small letters are transformed into capital letters. By using option "==" in front of the value you can switch off this automatic feature, i.e.: Radiobutton (7,10) "Standard" [Abschlagszyklen] "== " Radiobutton (7,35) "Keine Abschlge" [Abschlagszyklen] "==00" After an error message it might be that a certain subset of the input fields that you specified is changed to read-only by the R/3 system. In this case some of your radiobuttons are changed to read-only too. The exact condition is: The radiobutton state is changed to readonly if at least one of its fields is both read-only and its value is different from the value that you specified.

84

Synactive Documentation

Radiobutton (IA)
Purpose
With RadioButton you can create radio buttons that correspond to the value of a variable. All radiobuttons with the same variable name are considered to be a group, i.e. when the user clicks on one of them, the others are turned off. Please note: In addition, there is a RadioButton syntax for replacing an input field with a series of radiobuttons. See GuiXT Documentation Radionbutton on previous pages.

Example
// Set default office: Boston if not V[SelOffice] Set V[SelOffice] "60" endif // Office selection Offset (8,0) Box (0,0) (4,30) "Select Office" RadioButton (1,1) "Boston" Name="SelOffice" Value="60" RadioButton (2,1) "Paris" Name="SelOffice" Value="62" RadioButton (3,1) "Roma" Name="SelOffice" Value="80" This defines 3 radiobuttons. The internal variable V[SelOffice] is set to one of the values "60", "62", "80", according to the selected radiobutton.

Format
RadioButton (row,col) "text" Name="..." Value="..."

GuiXT Keywords

85

ReadFile
Purpose
With ReadFile you can read a record from a file into GuiXT variables. You can then use the values in an InputScript.

Example
ReadFile "X:GuiXTFiles\MatDes.txt" s_matnr s_text s_unit s_price A new record is read from the file. Using the delimiter given in the OpenFile command (Delimiter=, default delimiter is the tab), the record fields are separated from each other and the variables are filled with the field values. For example, if you read the record 1000001;20;Bolt;ST;0.02 then the variable values are &[s_matnr]= 10000120 &[s_text]= Bolt &[s_unit]= ST &[s_price]= 0.02

Format
ReadFile "filename" var1 var2 var3 ... Currently up to 14 variables are possible. If you specify more variables than contained in the file record, then all remaining variables are cleared. If there are no more records in the file (end of file), then all variables are cleared.

Options
Removes the quotation marks around field values. -StripQuotationMarks

Example:
ReadFile -stripQuotationMarks "X:GuiXTFiles\MatDes.txt" s_matnr s_text s_unit s_price

86

Synactive Documentation

Tips&Tricks
You can handle the "end of file" condition in an InputScript in the following manner (example): if not V[s_matnr] goto script_end endif See "Special Topics" for a detailed example

GuiXT Keywords

87

RemoveFile
Purpose
With RemoveFile you can remove a file.

Example
RemoveFile "X:GuiXTFiles\temp.txt" The file is removed.

Format
RemoveFile "filename"

Tips& Tricks
With OpenFile and option -output you can delete the file content without deleting the directory entry. RemoveFile deletes the directory entry as well.

88

Synactive Documentation

Retry on error
Purpose
Retry on error repeatedly activates the "Enter" button (following the appearance of an error message) until the error message disappears from the current screen. This is particularly useful in an InputScript following a modifying or complementary transaction, when you call up a further transaction for which the completion of the current transaction is a necessary condition. The system displays an error message until the required modification has been confirmed. If you are using Retry on error for the Screen in question, the "Enter" button will be automatically activated after a certain time. This automatic activating of "Enter" occurs up to 20 times in increasing time intervals: 0.3, 0.6, 0.9, 1.2, ... seconds. If the error message still appears, the processing continues as if the error message had occurred without "Retry on error" applying. When using "Retry on error" you don't need any additional Screen commands.

Example
Retry on error

Format
Retry on error

Tips&Tricks
If you execute the InputScript in "Visible auto processing" mode, the option "Retry on error" will be ignored.

GuiXT Keywords

89

Return
Purpose
With Return you can terminate the processing of an InputScript, and return to the calling screen

Example
Return "Only currency USD is supported for the fast posting mode"

Format
Return Return "message text" Return "message text" "title" After returning the message "message text" is displayed with title "Title".

Options
The message is displayed in the status line. An already existing SAP standard message is not shown in this case. If the message text starts with "S: " or "E: " or "W: ", the message is shown as information or error message or warning message. -StatusLine

Example
Return "E: Amount &V[amount] exceeds the limit of 50,000" -StatusLine A title parameter is ignored in this case The -statusline option is always assumed in "Sapgui for HTML" environment (ITS)

Tips&Tricks
As always you can use variables in the message text and title By inserting \n in your message you can create a carriage return in your message, by inserting \t a tab

90

Synactive Documentation

Returnvalues
Purpose
With Returnvalues you can return values from a new mode, opened with "/O...,process=... ", to the old mode. As target fields, both entry fields and variables can be used. It is also possible to invoke a function code and to start an InputScript.

Examples
Returnvalues "Material:&V[mat];Amount:&V[amnt]" The content of the variable V[mat] (new mode) is set into the entry field Material (old mode), and the content of the variable V[amnt] (new mode) is set into the entry field Amount (old mode). Returnvalues "V[mat]:&V[matnr]" The content of V[matnr] (new mode) is set into variable V[mat] (old mode). Returnvalues "U[MATNR]:&V[matnr];OK:/8,process=next.txt" In the old mode, function key F8 is invoked and the InputScript "next.txt" is started. Parameter U[MATNR] of the InputScript gets the value of variable V[matnr] (old mode).

Format
Returnvalues string The string syntax is the same as documented in Image for the parameter Input="...".

GuiXT Keywords

91

Screen
Purpose
With Screen you initiate the automatic processing of a screen in an InputScript. When the InputAssistant processes a transaction internally, the next matching Screen command in the InputScript is searched and the corresponding script commands are performed. If no matching Screen command can be found, the screen is displayed and the user can complete the transaction.

Example
Screen SAPMF05A.0300 This initiates the processing of screen 0300 of program SAPMF05A.

Format
Screen program.screennumber

Tips&Tricks
For nested screens only the top screen is specified, i.e. the screen where the user fills in the values. Specify the screen number with 4 digits You should not use Screen commands within if ... endif, since this makes the script hard to understand, and sometimes the behavior will be quite unexpected.

Bad example
Screen S1 Set V[x] "a" Enter if V[x=b] Screen S2 Enter "xx" else Screen S2 Enter "yy" endif

92

Synactive Documentation

Assume that we have Screen S1 and then Screen S2. Does GuiXT now process Enter "xx" or Enter "yy"? In fact, in this example, Enter "xx" is executed, since GuiXT looks for the next matching Screen command for Screen S2, without considering open if statements of previous screen blocks.

Instead
please close all open "if" statements in each screen block: Screen S1 Set V[x] "a" Enter Screen S2 if V[x=b] Enter "xx" else Enter "yy" endif

In some cases
it makes sense to use goto/label Screen S1 Set V[x] "a" Enter if V[x=b] goto l_b endif Screen S2 Enter "xx" goto l_next label l_b Screen S2 Enter "yy" label l_next

GuiXT Keywords

93

Set
Purpose
With Set you can assign a value to an input field. The Set command is useful in the definition of an InputScript. In contrast to Default, the Set command ignores any previous field value. It does not make much sense to use Set in normal GuiXT scripts. You can also use set in order to assign a value to a global variable. Be careful to use unique names for your global variables.

Example
Set [Order type] "CS" The value "CS" is assigned to the field [Order type]. Often the value is specified as a parameter of the InputScript, or as a previously defined input field, e.g. Parameter OType ... Set [Order Type] "&[OType]" The following line sets the value of a global variable MM01_current_material: Set V[MM01_current_material] "&[Material]"

Format
Set [Input field] "Value" Sets an input field value Set V[vname] "Value" Sets a global variable Set V[gnm*] "Value" Sets all global variables where the name starts with "gnm*" Set * V[vname](x-y) * "Value" Sets a substring of a global variable. If the former length of the variable is less than x, it is filled with "Space" until position x.

94

Synactive Documentation

Options
The specified string is searched in the given text (ignoring upper/lower case). If the string is found, the following word is set into the variable.

Example
Search= Set V[docno] "&V[_message]" Search="document" Assume that the system variable V[_message] has the value "Document 10004003 was posted". The variable V[docno] then gets the value "10004003". -uppercase -lowercase The value is put into upper case The value is put into lower case

Computations
Set allows computing with the operators +, -, *, /, using 2 operands in each case. The result is put into a variable in edited format. Both operands can be either values (e.g. 1 or 5830), or can be referenced by variable names ("&V[...]").

Examples
Set Set Set Set Set V[value] V[value] V[value] V[total] V[index] 5830 / 365 "&V[total]" / "&V[total]" / "&V[amount1]" "&V[index]" + 365 "&V[days]" + "&V[amount2]" 1

The result is rounded to 2 decimal places. For logon language English a decimal point is used, otherwise a comma. See also the Options and the DecimalSeparator command. If the result is an integer value, no decimal places are shown, e.g. "12" instead of "12.00".

GuiXT Keywords

95

decimals=

Specifies the number of decimals places in the result (0,1,2,3,...). Integer values are then also displayed with decimal places, e.g. "12.00".

You can specify "." or ",". decimalseparator= The decimal separator is used both for interpreting the operands and for editing the result. groupseparator= You can specify "," or ".". Groups of 3 digits are separated by the specified character.

Example
Set V[x] 24682471 / 7 Decimals=3 DecimalSeparator="." GroupSeparator="," The variable V[x] obtains the value "3,526,067.286". The exact result is "3526067.285714...". It is rounded to 3 decimal places, and then edited according to the specified options.

Tips&Tricks
You can mark a checkbox with Set: use the values "X" or " ", or a parameter which has one of these values. In a similar way you can use Set for radiobuttons. If you activate one radiobutton it is not necessary to deactivate the other radiobuttons in this group; this is done automatically. For example Set [Documentation] "X" in transaction SE38 would deactivate the other radiobuttons [Source], [Variants], [Attributs], [Text elements].

96

Synactive Documentation

SetCursor
Purpose
With SetCursor you can set the cursor into a certain input field, into a table cell or on a position in a list.

Examples
SetCursor [Name] SetCursor cell[Table,Material,5] SetCursor (4,1)

Format
SetCursor [fieldname] Sets the cursor into the field. SetCursor cell[table,column,row] Sets the cursor into a table cell. SetCursor (row,col) List display: Sets the cursor on a certain position in the list.

Options
Offset=x The cursor will be positioned x spaces from the left border within the field (or table cell).

GuiXT Keywords

97

StatusMessage
Purpose
With StatusMessage you can display status messages during the processing of an InputScript. With the first StatusMessage command, all system messages (including warnings and error messages) are also automatically included in the status message listbox.

Examples
StatusMessage Title="Creating material" A listbox with the title "Creating material" is displayed. All system messages and your own status messages are displayed during the processing of your InputScript. StatusMessage AddString="creating sales data.." Adds a new line "creating sales data..." to the listbox.

Format
StatusMessage

Options
Title= AddString= A title should be given in the first StatusMessage command. You can change it later if necessary. A new text to be added to the listbox Display of a text e.g. "Processing aborted". The text is shown in the system menu of the listbox. As soon as the user clicks on the menu item, an internal status "StopRequest" is set which can be questioned within the inputscript by if Q[StopRequest], for example after Enter or within data processing before reading a new line. The inputscript can process different ending procedures (e.g. close files) and finally stop processing.

StopRequest=

98

Synactive Documentation

Size of the listbox in lines and columns. Size= (Lines,Columns) If one of the values is given as 0, the previous value will be retained. Position of the listbox in lines and columns, or in symbolic form. Examples: Position= ... Position=(10,40) ... Position=[Company code]+(2,10) -ResetContent -Remove Resets the content of the listbox Removes the listbox from screen Controls the inclusion of system messages into the status message window. You select the message types E (Error), W (Warning), or I (Information) , or On / Off.

Examples:
SystemMessages=On All system messages (default) SystemMessages= SystemMessages="E,W,I" same: all system messages (default) SystemMessages=Off No system messages SystemMessages="" same: no system messages SystemMessages="W" Warnings only

Tips&Tricks
You can include variables in the AddString= parameter. Example: with StatusMessage Title="&V[_title]" you can display the title of the screen that you are processing.

GuiXT Keywords

99

Stop
Purpose
With Stop you can stop the interpretation of the remaining part of the script.

Example
Stop

Format
Stop

Tips&Tricks
This command is useful for testing. You can leave a second version of the script in the same file and put a Stop before it.

100 Synactive Documentation

Tab
Purpose
With Tab you can define the tab order of fields and table columns. For each field and each table column you can specify the cursor position after pressing the tab key.

Example
Tab [Company code] [Booking date]

Format
Tab [Screen element1] [Screen element2] Tab [Table,columnname1] [Table,columnname2] When you specify columns, and the new column is not on the right hand side of the previous one, the cursor is put into the next table row. Tab performs automatic "Enter" if a new row is required at the end of the table.

Tips&Tricks
When you specify the same column twice (origin and destination), the user can easily fill in this column for several table rows. Similarly, if you want to facilitate data entry into the first 3 columns, without using the mouse, you can jump from column 3 to column 1 (next row).

GuiXT Keywords

101

TableWidth
Purpose
With TableWidth you can change the table width in a table control.

Example
TableWidth [All positions] 64

Format
TableWidth [tablename] n n is the new table width in the table display (number of characters).

102 Synactive Documentation

Text
Purpose
With Text you can display any given text on the R/3 screen change a field name change the name of a pushbutton, radiobutton or check box.

Examples
Text [Company code] "Regional office" Text (10,50) "Please use form M10A" Text (11,50) " for printout"

Format
Text [Screen element] "text" Text (position) "text"

Options
-Border -intensified -fixedfont Size="n" The text is displayed with a small border (like read-only fields) The text is displayed in a different color. The text is displayed in a a fixed-pitchfont. The text is displayed in length n, padded with space

Tips&Tricks
If you want to replace a field name throughout the entire R/3 system, you can do it by means of the R/3 repository or with the command GlobalTextReplace. If you want to display a text in a more esthetic way, you can use the Image command or you can use the View command for the display of an html file or an rtf text (e.g. as produced in Microsoft Word) .

GuiXT Keywords

103

TextBox
Purpose
With TextBox you can display and edit a text.

Example
TextBox (10,20) (16,44) name="t1" A text edit box is displayed in the screen area (10,50) to (16,44). The content is assigned to a text variable "t1".

Format
TextBox (row1,column1) (row2,column2) name="textname"

Options
-ReadOnly The text cannot be changed.

Tips&Tricks
With CopyText you can copy texts between files, screen areas and text variables

104 Synactive Documentation

TextReplace
Purpose
With TextReplace you can replace a text in the display of the R/3 screen.

Example
TextReplace "company code" "regional office"

Format
TextReplace "old" "new" The string is replaced in the following screen elements: Field labels Screen title Group box title Push button title and quickinfo Message line Menu texts Column headers in tables Table title The following rules apply for the text replacement: 1. It is not case-sensitive, but the first character remains in upper case or lower case 2. Longer texts are replaced before shorter ones

Tips&Tricks
The command GlobalTextReplace has the same effect, but for all R/3 screens

GuiXT Keywords

105

Tip
Purpose
With Tip you can add a quickinfo (tooltip) to fields, field groups and pushbuttons. When the user points the cursor to the field name, the tip appears in a small yellow box. With field groups, a special icon is on display at the upper right hand corner of the group box. Putting the cursor on the icon will display the quickinfo.

Examples
Tip [First name] "First name, e.g. Charles or Robert, generic search Ro* is also possible" Tip [Contract] "Display contract data and price agreements"

Format
Tip [Screen element] "Quickinfo" Screen elements can be single fields, field groups and pushbuttons. With fields a small icon is on display to the left of the field name; with field groups the icon is at the upper right hand corner of the group box.

Tips&Tricks
A few characteristic input values help the user more than abstract definitions You can choose the tip icon in the file guixt.ini from any of the R/3 standard icons. The relevant profile parameters are: icon_tip_field for fields (Default is "icon_tip_field 0L") and icon_tip_box for field groups (Default is "icon_tip_box 35") A list of all R/3 icons can be found in transaction ICON; the internal short names of the icons are contained in the ABAP program <ICON> . From Sapgui Release 4.0 and upwards you can also suppress the field tip icon setting "icon_tip_field Space" in guixt.ini. However, it is then no longer obvious, at a glance, where the user can display a quickinfo.

106 Synactive Documentation

Title
Purpose
With Title you can change the title of an R/3 screen. You can also use Title in an InputScript. The new title is displayed as long as the InputScript is active.

Example
Title "Maintain user parameters for &[user]"

Format
Title "text"

Tips&Tricks
Note that the same screen may be used for "Display", "Change" and "Create". Either you formulate the title text in a fairly general manner, for example Title "User parameters for &[user]" or you differentiate the title using an expression like "if Q[Status=xxxx]".

GuiXT Keywords

107

TitlePrefix
Purpose
With the TitlePrefix command you can provide the titles of all R/3 screens with their own prefixes, e.g. a tag for a particular system or for a particular client. The command is valid for the current screen and all the following ones. If the R/3 window happens to be minimised the modified title will be indicated in the taskbar, so that the user can easily distinguish between several systems, clients, etc.

Example
TitlePrefix "&[_database]:" For a system with the tag TST, all its titles will begin with "TST:".

Format
TitlePrefix "text"

Tips&Tricks
It makes sense to put the TitlePrefix command in the Session-Script ESession.txt You can use the variables &[_database] and &[_client] A conditional combination is also possible, e.g. if V[_database=TST] TitlePrefix "Training:" endif If a script's own title is replaced by Title, this will be indicated.

108 Synactive Documentation

Uppercase
Purpose
With Uppercase you can restrict a field input to uppercase characters.

Example
Uppercase [Search term]

Format
Uppercase [Screen element] Uppercase [Table,columnname] You can specify a single field or a table column.

GuiXT Keywords

109

Using
Purpose
With Using you can assign a value to an InputScript parameter. Both a constant value and the name of a screen field are possible.

Example
Pushbutton (toolbar) "Create" "CRE1" Process="CreateOneStep.txt" Using Currency = "USD" Using Amount = [Amount2] On "Enter" "Create" "CRE1" Process="CreateOneStep.txt" Using Currency = "USD" Using Amount = [Amount2] On "/11" "Create" "CRE1" Process="CreateOneStep.txt" Using Currency = "USD" Using Amount = [Amount2] Here Currency gets the value "USD", Amount gets the value of the field [Amount2].

Format
Using pname = "Value" Using pname = [fieldname]

Tips&Tricks
Please note the difference: A: Using CC = "&[Company Code]" B: Using CC = [Company Code] C: Using CC = "Company Code" D: Using CC = &[Company Code] Assume that there is a field [Company Code] on the screen with the value "0001", and that the user entered the value "5800". The parameter CC then has the following values: A: CC = "0001" B: CC = "5800" C: CC = "Company Code" D: CC = "0001" (same meaning as variant A) Normally only variant B makes sense.

110 Synactive Documentation

VersionNumber
Purpose
With the VersionNumber command you can reduce web traffic to a single access-to-server operation per R/3 logon when using scripts from the R/3 web repository or from ftp/http servers. By means of VersionNumber xxx you insert into the logon script a freely assignable version nummer. The logon script will be newly loaded each time from the web repository or from the chosen ftp/http server, never from the local cache. GuiXT will now seek out all further scripts directly from the local cache, the index names of which have been gleaned from the GuiXT profile, and to which the chosen version number has been added. As a rule there will be no further cause for access to the scriptserver so long as the user calls up no further R/3 screens. Without VersionNumber, on the other hand, each and every script would have to be newly cached for each R/3 session. With 400 users, 30 different R/3 screens per user and 500 dialog steps per user, the following numbers of access-to-server operations may be calculated for an integrated system: without local cache: 400*500 = 200,000 with local cache: 400*30 = 12,000 with local cache and version number:400 * 1 = 400 Later on, should you wish to carry out changes to the GuiXT scripts and make them effective for all users, you simply increase the version number. The next time R/3 is called up, GuiXT reads the new version number, effaces the previous cache index and proceeds to fill a new cache under the new version number.

Example
VersionNumber 0010

Format
VersionNumber string Please note that string is to contain only those symbols that are permitted for index names in Windows, preferably just letters and numbers.

GuiXT Keywords

111

View
Purpose
With View you can display html and rtf files. In addition, the html display offers the possibility of interaction with R/3 screens (Setting field values and calling up menu functions). It is possible to use a template file (rtf or html) which contains GuiXT variables, e.g. field names. These variables are automatically replaced by their current value. The View command supports the standard image formats bmp, gif and jpg just as Image does. In contrast to the Image command they are displayed in a separate scrollable screen area. Note that the View command is part of the component GuiXT Viewer (R/3 add-on by Synactive). It also requires Microsoft Explorer 4.0 or higher.

Example
View (10.5,40.2) (20.5,80) "C:\html\menupr00.html" The html file C:\html\menupr00.html is displayed in the area (10.5,40.2) to (20.5,80).

Formats
The following file formats are supported: rtf html bmp gif jpg

Options
-floating -maximize A new window is opened for the display. It can be resized and moved about independently of the R/3 screen. In conjunction with -floating: the window is maximized.

112 Synactive Documentation

ReturnWindow=

Name of a variable that revives the internal window handle of the created view window. Please observe: This is only possible if View is used within an InputScript. Window handle from of an open view window (see ReturnWindow= option). The window is closed. Example of an InputScript using ReturnWindow= and CloseWindow=: Parameter CLOSE if U[CLOSE=X] View CloseWindow="&V[viewwindow]" return endif View (6,1) (30,120) template="form2.html" -floating ReturnWindow="viewwindow"

CloseWindow=

Format
View (row1,column1) (row2,coloumn2) "file name" View (row1,column1) (row2,coloumn2) "file name" template="template file" View (row1,column1) (row2,coloumn2) template="template file" With (row1,column1) (row2,coloumn2) you specify the upper left hand and lower right hand corner; you may use decimal numbers as coordinates. The file is searched for in the current GuiXT Script directory unless you specifiy a drive letter, e.g. "C:\html\file.html". If you specify a template file, then this file is copied into the file that you specified first, and all GUiXT variables &[....] are replaced by their current values. If you specify only the template file (3rd View format), then GuiXT copies the template file into a temporary file, replaces the variables and displays the file.

GuiXT Keywords

113

Data dependent views


The file name can contain variables that are replaced by their values before the file is loaded.

Example
View (4,80) (12,120) "C:\products\img&[Materialnummer].rtf" If the user enters the product number 00500187, the file C:\products\img00500187.rtf is displayed.

Interaction with the R/3 screen


As usual, you can click on URLs in the html display in order to navigate to other documents in the local file system, the intranet or internet. The "Back" button can be called up via a right mouse click. As a particularly handy feature you can define interactions with the R/3 screen via special SAP URLs: You can put values into R/3 input fields You can call up menu functions The SAP URLs start with the string "SAP://". You then specify the field names and field values and, if desired, a menu function.

114 Synactive Documentation

The notation is as follows: <A href="SAP://field1:value1;field2:value2; field3:value3;OK:fcode"> Since a browser URL is not allowed to contain any blanks, you have to denote the field names without them, for example you have to write "PreviousAccountNumber:00012345" instead of "Previous account number:00012345". The field names are not case sensitive. The function code fcode can either be an internal code taken from the sceen menu, e.g. SCMP, or a transaction code as for example /NFB01 or /OMM02.

You will find the internal menu codes as follows:


Choose the desired function in the transaction menu and press F1 while the mouse cursor points to this function. Now the R/3 system displays the internal function code in a pop-up window. The Enter button, without any special function code, can be called up with OK at the end of the SAP URL: <A href="SAP://field1:value1;field2:value2;field3:value3;OK">

Starting an InputScript
In conjunction with InputAssistant you can also start an InputScript. You have to add the process= attribute to the OK:fcode.

Example
<A href="SAP://field1:value1;field2:value2; field3:value3;OK:fcode,process=displaymaterial.txt"> "Using" parameters can be passed to the InputScript via the SAP-URL with the notation U[name]:value. You can also set internal GuiXT variables with V[name]:value and use this value in your InputScript or in GuiXT scripts.

Using JavaScript
If your html page contains a form with some entry fields, it might make sense to use JavScript in order to pass these values to R/3. See Example 3.

Example 1
<A HREF="SAP://OK:PR03"><IMG SRC="advance.jpg"></A> Clicking on the image advance.jpg calls up the function PR03 in R/3.

GuiXT Keywords

115

Example 2
<A HREF="SAP://Material:00012345;Plant:0021;OK"> Bolt 8x15mm</A> Clicking on the text "Bolt 8x15mm" completes the fields "Material" and "Plant" and then automatically activates the Enter button.

Example 3
HTML page: <form name="form"> <strong>Customer</strong> <input type="text" size="20"name="Customer" value="&amp;[::Customer]"> <input type="button" name="Display" value="Display " onclick="DisplayCustomer()"> </form> <script language="JavaScript"><!-function toGuiXT(string) {window.location.replace("SAP://" + string);}

function DisplayCustomer() {toGuiXT("U[Customer]:" + document.form.Customer.value + ";OK:/NVD03,process=ShowCustomerData.txt");} //</script> When the user clicks on the button "Display" you call up transaction VD03 with the InputScript "ShowCustomerData.txt" . You pass the cutomer number that the user entered to the InputScript with U[Customer]:... If you use the template= option of the View command, then the last recently entered value in the R/3 field "Customer" is taken as initial value in the html form.

116 Synactive Documentation

Open documents
You can open any document with View ; the document viewer is started as a separate application: View "file name" This will start the same application as if the user clicked on the document in Windows Explorer. Examples: .doc or .pdf files. You can also start .exe or .bat files.

Options
Operation= Parameters= Directory= Operation to be performed. Default operation is "Open". The other operations depend on the document type. Often the operations "Edit" and "Print" are defined as well. For .exe and .bat files: string with parameters Default directory

Tips&Tricks
You can use the technique described in Example 1 in order to create an html form of the R/3 application menus, which is both esthetic and quick to use. For end user training you can create special html documents containing various test input values and explanations. In combination with InputAssistant you can also display the html document when the user presses a pushbutton, e.g.: GuiXT Script: Pushbutton (Toolbar) "Show documentation" Process="ActivateView.txt" if V[GuiXT_Show_View=X] Set V[GuiXT_Show_View] "N" View (1,60) (20,100) "C:\GuiXT\html\docu100.html" endif InputScript ActivateView.txt: Set V[GuiXT_Show_View] "X"

GuiXT Keywords

117

ViewHelp
(in combination with the commands Mark or Image.)

Purpose
A variant of the View command can be invoked with the option ViewHelp= in the commands Mark and Image. With this option you can easily display your own help window, for example for training purposes, or for presenting detailed product information. When the user clicks on your help icon (in the toolbar or somewhere on screen), the help file is displayed at the upper right hand side of the screen. See also Help Views Directory in GuiXT Profile.

MARK with Option ViewHelp Displaying help files in html format


Component "Viewer" is required for this option When the user clicks on the small red cross, the help file ViewHelp="..." is displayed at the upper right hand side of the R/3 screen. Interactions with R/3 can be specified in the html file, as described for the View-command (Setting values, calling functions). The help display disappears as soon as the user clicks on an R/3 field.

Format
Mark [entry field] ViewHelp="filename.html"

Example
Mark [Base unit of measure] Image="help.gif" ViewHelp="doc_unit.htm"

IMAGE with Option ViewHelp Display your own html help


Component "Viewer" is needed for this function With ViewHelp= you specify an html file. Clicking on the image will display the html file in the upper right hand side of the window. It can contain interactions with the SAP window ("SAP://"-URL). When the user clicks on any other field, the help display is closed.

118 Synactive Documentation

Format
Image (row,column) "image file" ViewHelp="docfilename.html"

Example
Image (toolbar) "help.gif" ViewHelp="doc_order.htm"

Options for ViewHelp


ViewHelpWidth= Width of the help display (in pixel). If no width is specified, 40% of the total window width is taken. It is also possible to specify the width in percentage, e.g. ViewHelpWidth=60% Height of the help display (in pixel). If no height is specified, the total window height is taken. It is also possible to specify the height in percentage, e.g. ViewHelpHeight=50% Position (upper left corner) of the help display in the form (row,column), e.g.: ViewHelpPosition=(10,50). Or relative to other screen elements, e.g. ViewHelpPosition="[Material]+(1,30)". If you specify a position without specifying width and height, the whole window is used, starting at the specified position (lower right part of the window).

ViewHelpHeight=

ViewHelpPosition=

Examples
Mark [Base unit of measure] Image="help.gif" ViewHelp="doc_unit.htm" ViewHelpWidth="200" Image (toolbar) "help.gif" ViewHelp="doc_intorder.htm" ViewHelpWidth="200"

GuiXT Keywords

119

WindowSize
Purpose
With Windowsize you can resize a popup screen. This is particularly useful when you want to add new elements to a window which is too small.

Examples
Windowsize (12,60)

Format
Windowsize (rows,columns) Resizes the popup screen to the desired dimensions.

120 Synactive Documentation

GuiXT system variables


variable content general status information
&[_user] &[_client] &[_transaction] &[_title] &[_database] &[_ashost] user's name client transaction code name of SAP screen name of R/3 system name of host server 001 MM03 display material C11 pwdf0042

example
BAKER

position of cursor
&[_cursorrow] &[_cursorcol] position of cursor: row and column available in an InputScript if the user has placed the cursor in an input field position of cursor: number of the table row and number of the table column, in each case beginning with 1 available in an InputScript if the user has placed the cursor in a table cell position of cursor in lists: row (begins with 0) position of cursor in lists: column (begins with 0) 12 30

&[_tabrow] &[_tabcol]

5 6

&[_listcursorrow] &[_listcursorcol]

7 48

GuiXT Keywords

121

indications
&[_lastwarning] text of the last warning during in the processing of an InputScript text of the last error message during in the processing of an InputScript, with transaction, program and dynpro number given in brackets message text (information) W: date is in the future E: booking code X2 is not permitted (FB01,SAPMF05 A,0300)

&[_lasterror]

&[_message]

receipt 100000444 was recorded in booking number 1000

contents in lists
&[_listline(0)] &[_listline(1)] &[_listline(2)] ... contents of the lines in a list note: vertical and horizontal lines in the list are represented internally by numbers (4,5,..) content of the list line in which the cursor currently is string within the list line in which the cursor currently is 5M-02 28000 09 5M-06 10000 05

&[_listline]

&[_liststring]

28000

extra indications in lists and tables


&[_listfirstvisiblerow] &[_listlastvisiblerow] &[_listlastrow] first filled row on current screen in lists and tables last filled row on current screen in lists and tables total count of rows in lists and tables 252 280 578

122 Synactive Documentation

date and time


&[today_ymd] &[today_hms] &[today...] actual date in the form: year month day time of day in the form: hour minute second predefined variables and calculatons with today+... or today-... are possible. In the calculations, + or - as well as d=day, h=hour, m=minute, s=second may be used. 20021224 154810 &[today_m/d/y] 12/24/2002 &[today_h:m] 15:48 &[today_d.m.y h:m] 24.12.2002 15:48 &[today+1_m/d/y] 12/25/2002 &[today+14_m/d/y] 1/7/2003 &[today-1_m/d/y] 12/23/2002 &[today+6h_h:m] 21:48 &[today+12h_m/d/y] 12/25/2002

variables in GuiXT script and history directories


&user &client &database &winuser user's name client name of R/3 system windows user name (in GuiXT script directory and history directory) BAKER 001 C11 Smith

GuiXT Keywords

123