Funktion |
Mit der
Set-Anweisung
können Sie Werte in Eingabefelder setzen. Die
Set-Anweisung
ist insbesondere zum Gebrauch in einem InputScript (Einbildtransaktionen)
gedacht. Im Unterschied
zu Default
prüft Set
nicht, ob das Eingabefeld leer ist, sondern überschreibt einen eventuell
existierenden Wert. In normalen GuiXT-Scripten ist
Set
kaum verwendbar, da der ursprünglich anzuzeigende Wert schon bei Anzeige
des Bildes überschrieben wird.
Ausser Eingabefeldern können
Sie durch
Set auch
intern benutzten Variablen einen Wert zuweisen:
Set
V[Varname]
"Wert".
|
Beispiel |
Set
F[Auftragsart]
"BV"
Das Eingabefeld Auftragsart erhält
den Wert "BV".
Häufig wird als Wert ein Parameter
des InputScript oder ein vorher definiertes Eingabefeld genannt, z.B.
Parameter
AufArt
...
Set
F[Auftragsart]
"&U[AufArt]"
|
Format |
Set
F[Eingabefeld]
"Wert" |
setzt einen Wert für ein
Eingabefeld. |
Set
V[Varname]
"Wert" |
setzt eine globale Variable. |
Set
V[gnm*]
"Wert" |
setzt einen Wert für alle
globalen Variablen bei denen der Name mit "gnm*" beginnt. |
Set
V[varname](x-y)
"Wert" |
setzt einen Wert in die
Stellen x bis y. Falls die bisherige Länge der Variablen kürzer
ist als x, wird mit Leerzeichen aufgefüllt. |
Set
Text[xxx]
"Wert" |
als Kurzschreibweise für:
Set
V[y]
"Wert"
CopyText fromString="y"
toText="xxx"
Analog wird
&Text[xxx]
in Strings durch den aktuellen Inhalt des Langtextes xxx ersetzt.
|
Set
html[name]
"Wert" |
Setzt einen Wert in einer HTML-Seite, die davor durch
connectHTML
mit GuiXT verbunden wurde |
Set
list[row,col]
"Wert"
Set
list[row,col,len]
"Wert"
|
Nur in ABAP-Listanzeige
möglich. Der angegebene Wert wird in die Liste geschrieben, und
zwar in Zeile
row
und Spalte
col,
wobei die Zählung bei 0 beginnt und sich auf die aktuell angezeigte
Seite bezieht. Optional kann durch
len
die gewünschte
Länge des Strings mitgegeben werden.
Hinweis: Die Systemvariable
V[_listfirstvisiblerow] enthält die absolute Nummer der ersten auf
der Seite angezeigten Zeile, bei 1 beginnend.
|
|
Zusatzoptionen
|
-stringlength |
Die Länge
des Strings (in Bytes) wird in der Variablen zur Verfügung gestellt |
-charCount |
Die Anzahl
Zeichen des Strings wird in der Variablen zur Verfügung gestellt |
search= |
Angabe
eines Suchstrings. Wird der String gefunden, so wird das danach
angegebene Wort übertragen. Beispiel:
Set
V[Belegnr]
"&V[_message]"
search="Beleg"
Falls
die Systemvariable
V[_message]
den Inhalt
"Es wurde der Beleg 10004003 erzeugt" hat, so wird der Variablen
V[Belegnr]
der Wert
"10004003" zugewiesen. Bei der Suche wird Gross/Kleinschreibung
ignoriert.
Durch
if Q[ok]
kann man abfragen, ob der String gefunden wurde.
|
-position |
Nur in
Verbindung mit
search=: Die
Position 1,2,3,... (in Bytes) des gesuchten Strings wird in der Variablen zur Verfügung gestellt.
Falls nicht gefunden: 0. |
-charPosition |
Nur in
Verbindung mit
search=: Die
Position 1,2,3,... (in Zeichen) des gesuchten Strings wird in der Variablen zur Verfügung gestellt.
Falls nicht gefunden: 0. |
pattern= |
Angabe
einer Suchmaske, welche die Zeichen
-
'%'
beliebiger String bis zum nächsten passenden Zeichen der Suchmaske
-
'_'
einzelnes Zeichen
enthalten
kann. Es werden von links nach rechts alle Zeichen in die
Variable übertragen, die einem "%" oder "_" entsprechen. Wenn die
angegebene Suchmaske nicht mehr mit dem String übereinstimmt, werden
keine weiteren Zeichen übertragen.
Durch
if Q[ok]
kann man abfragen,
ob die Suchmaske vollständig den angegebenen String beschrieben
hat.
Beispiele:
Set
V[x] "02.05.2007"
pattern="__.__.____"
// ok V[x] = "02052007"
Set
V[x] "[abcd]"
pattern="[%]"
//
ok V[x] ="abcd"
Set
V[x] "12"
pattern="%kg"
// nicht
ok V[x]= "12"
Set
V[x] "Beleg 400000087 hinzugefügt"
pattern="Beleg
% hinzugefügt"
// ok
V[x]= "400000087"
|
regex= |
Angabe
eines regulären Ausdrucks (ECMAScript Syntax). Es wird der auf
den regulären Ausdurck passende Teilstring übertragen.
Durch
if Q[ok]
kann man abfragen,
ob
der reguläre Ausdruck auf den angegebenen String zutrifft.
Beispiele:
Set
V[x] "478"
regex="^[0-9]{3}$"
// ok. V[x] = "478", prüft auf genau 3
Ziffern
Set
V[x] "M20"
regex="^(M1|M2|V1)$" //
nicht ok, V[x] = "", prüft auf M1 oder M2 oder V1
Set
V[x] "Beleg 400000087 hinzugefügt am
04.11.2020" regex="[0-9]+" //
ok, V[x] = "400000087", prüft auf Ziffernfolge
|
regexReplace= regexReplaceFirst= |
In Verbindung mit
regex=:
Alle gefundenen Teilstrings bzw. der erste gefundene Teilstring
werden durch den angegebenen String ersetzt.
Durch
if Q[ok]
kann man abfragen,
ob
der String verändert wurde.Beispiel:
Set
V[x] "Die Zahl 478 kommt
zweimal vor: 487"
regex="[0-9]{3}"
regexReplace="XXX"
// ok. V[x] = "Die
Zahl XXX kommt zweimal vor: XXX"
|
decryptWithKey= |
Nur in Verbindung mit
Set
html[...]: Der Wert
wird mit dem angegebenen Schlüssel entschlüsselt und dann in das HTML-Feld übertragen, siehe Anweisung Decrypt |
-upperCase |
Der Wert
wird in Grossbuchstaben umgesetzt |
-lowerCase |
Der Wert
wird in Kleinbuchstaben umgesetzt |
-alignRight |
Der String wird
rechtsbündig übertragen. Nur sinnvoll mit Längenangabe in der
Zielvariablen. |
-unpack |
Ein Wert,
der aus einem Funktionsbaustein/BAPI als gepackter Dezimalwert geliefert
wurde, wird als normale Ziffernreihe übertragen. |
-pack |
Ein
numerischer Wert wird in gepacktem Format abgelegt |
|
Rechenoperationen
und Zusatzoptionen |
Set
erlaubt die Angabe von Rechenoperationen +, -, *, / mit jeweils
zwei Operanden. Das Ergebnis der Rechenoperation wird in aufbereiteter
Form in die Variable gestellt. Die beiden Operanden können als Direktwerte
(z.B. 1 oder 5830) oder als Inhalte von Variablen ("&V[...]") angegeben
werden. Beispiele:
Set
V[Wert]
5830
/
365
Set
V[Wert]
"&V[Gesamt]"
/
365
Set
V[Wert]
"&V[Gesamt]"
/
"&V[Tage]"
Set
V[Summe] "&V[Betrag1]"
+
"&V[Betrag2]"
Set
V[Index]
"&V[Index]"
+
1
Das
Ergebnis wird kaufmännisch gerundet und mit 2 Dezimalstellen in
die Ergebnisvariable gestellt. Dabei wird bei Anmeldung mit Sprache
Englisch der Punkt, sonst das Komma zur Abtrennung der Dezimalstellen
verwendet (siehe auch die Zusatzoptionen und die Anweisung
DecimalSeparator).
Ganzzahlige Werte werden ohne Dezimalstellen dargestellt.
|
decimals= |
Angabe
der Anzahl gewünschter Dezimalstellen zur Aufbereitung des Ergebnisses
(0,1,2,3,...). Auch ganzzahlige Werte werden mit der angegebenen
Anzahl von Dezimalstellen dargestellt. |
decimalSeparator= |
Angabe
des Trennzeichens für die Dezimalstellen: "," oder "." . Dieses
wird sowohl bei der Interpretation der Operanden als auch bei der
Darstellung des Ergebnisses berücksichtigt. |
decimalSeparator=UserDefault
|
Der im
Benutzerstammsatz abgelegte Default (Punkt oder Komma) wird benutzt.
Beim ersten Verwenden dieser Anweisung wird der Defaultwert über
einen Remote Function Call (RFC) eingelesen. Es ist daher ein gültiger
RFC Benutzer im GuiXT-Profile erforderlich. |
groupSeparator= |
Angabe
eines Trennzeichens für die Tausendergruppen, meist "," oder ".".
Es wird zur Darstellung des Ergebnisses verwendet. |
groupSeparator=UserDefault
|
Der im
Benutzerstammsatz abgelegte Default (Punkt oder Komma) wird benutzt.
Beim ersten Verwenden dieser Anweisung wird der Defaultwert über
einen Remote Function Call (RFC) eingelesen. Es ist daher ein gültiger
RFC Benutzer im GuiXT-Profile erforderlich. |
|
Beispiel |
Set
V[x]
246824717
decimals=3
decimalSeparator="."
groupSeparator=","
Die
Variable V[x] erhält den Wert "3,526,067.286". Das exakte Ergebnis
ist "3526067,285714..."; es wird auf 3 Dezimalstellen gerundet und
gemäss den Optionen aufbereitet.
|
|
Tipps & Tricks |
- Das Ankreuzen einer Checkbox
ist ebenfalls mit
Set
möglich. Als Werte sind
"X"
oder
" "
möglich, oder entsprechend die Angabe eines Parameters, der einen dieser
Werte besitzt.
- Analog aktivieren Sie
durch Set
einen Radiobutton. Dabei ist es nicht nötig, die übrigen Radiobuttons
der gleichen Gruppe zu deaktivieren, das geschieht automatisch bei dem
Aktivieren eines einzelnen Radiobuttons. Zum Beispiel werden durch
Set R[Dokumentation]
"X"
in Transaktion SE38 die
weiteren Radiobuttons der gleichen Gruppe,
R[Quelltext],
R[Varianten],
R[Attribute],
R[Textelemente],
auf nicht aktiv gesetzt.
- Bitte lesen Sie das
InputAssistant Tutorial zur
Anwendung von Set.
|
Komponente |
GuiXT (für
eigene Variablen: GuiXT + InputAssistant) |