Funktion Mit der InputField-Anweisung können Sie eigene Eingabefelder definieren. Der dort eingetragene Wert kann in einem InputScript verwendet werden.
Beispiel InputField (10,1)"Referenznummer" (10,20) Size="10" Name="Refnr"

Hierdurch wird ein 10-stelliges Eingabefeld definiert. Der Feldtext wird an Position (10,1) angezeigt, das Eingabefeld selbst an Position (10,20). Der interne Feldname ist Refnr, d.h. in einem InputScript wird das Feld in der Form &[Refnr] genannt.

Format InputField (Zeile1,Spalte1) "Feldtext" (Zeile2,Spalte2) Size="..." Name="..."
Zusatzoptionen
-Numerical Nur Zifferneingabe möglich
-Uppercase Eingabe nur in Grossbuchstaben
-date Nur Datumseingabe möglich.
-NoLabel Eingabefeld ohne Text. Die Angaben (Zeile1,Spalte1) und "Feldtext" entfallen dann.
-dynamicLabel In Verbindung mit TechName=: Der angegebene Text wird durch den im SAP Repository abgelegten Feldtext überschrieben. Je nach verfügbarem Platz wird der kurze, mittlere oder lange Text gewählt. Im GuiXT Profile muss dazu ein RFC Benutzer mit entsprechenden Berechtigungen hinterlegt sein.

Bei Verwenden von  VersionNumber werden die gelesenen Texte im GuiXT Cache (lokale Dateien) gespeichert, sodass das relativ aufwändige Lesen aus dem SAP Repository nur bei Ändern der VersionNumber anfällt.

-Invisible Unsichtbare Eingabe (Passwort)
-Required Das Feld wird als Mussfeld (obligatorische Eingabe) dargestellt. Eine automatische Prüfung auf Eingabe findet nicht statt, sie muss selbst im InputScript durchgeführt werden.
-Intensified Der Wert wird farblich hervorgehoben (Standard: rot)
-AlignRight Der Wert wird rechtsbündig ausgegeben
-LeadingSpace Führende Leerzeichen werden übernommen
-ReadOnly Nur Ausgabe
Default= Angabe eines Defaultwertes
MaxLength= Maximale Eingabelänge. Hier kann eine größere Länge als in Size= angegeben werden; das Feld wird dann automatisch scrollbar.
TechName=

SearchHelp=

Angabe eines Feldnamens aus dem SAP Repository, z.B. TechName="BSEG-GSBER". Es wird dann bei F4 bzw. Matchcode-Anwahl der SAP-Standard-Matchcode prozessiert und bei F1 die Standard-Feldhilfe. Alternativ kann auch direkt der Name einer Suchhilfe aus SAP durch SearchHelp="..." angegeben werden.

Die Installation des ABAP Programms ZGUIXTF4 ist hierzu erforderlich. 

-nosearchhelp

shname=

Falls durch techname= nur die F1-Hilfe, aber keine F4-Suchhilfe zugeordnet werden soll, können Sie die Option -nosearchhelp verwenden.

Falls die Suchhilfe mehr als ein Feld liefert, nimmt GuiXT das erste Feld. Optional kann durch shname= der gewünschte Feldname aus der Suchhilfe direkt angegeben werden, z.B.  shname="MATNR"

SearchHelpModal=

Bei Angabe von SearchHelpModal="X": Die Suchhilfe wird modal aufgerufen, unabhängig von der F4-Benutzereinstellung.

shselname1=
shselvalue1=

shselname2=
shselvalue2=
...
...

shselname12=
shselvalue12=

Angabe von bis zu 12 Selektionskriterien, die bei der Anzeige der Matchcodeliste berücksichtigt werden. Die unter shselname1, shselname2, shselname3,...  angegebenen Namen müssen so wie in der Suchhilfe  (Transaktion SE11) definiert  angegeben werden. Als Werte shselvalue1, shselvalue2, shselvalue3,... können entweder Direktwerte oder andere Eingabefelder [...] angegeben werden. Beispiele:

InputField   ....    searchhelp="COCAN"    shselname1="GJAHR"   shselvalue1="2002"

Es werden nur Kostenstellen mit Jahr "2002" zur Auswahl angeboten

InputField   ....    searchhelp="COCAN"    shselname1="GJAHR"   shselvalue1="[Jahr]"

Der aktuelle Inhalt des Eingabefeldes F[Jahr] wird zur Selektion des Jahres im Matchcode gesetzt.

InputField   ....    searchhelp="COCAN"    shselname1="GJAHR"   shselvalue1="[Varname]"

Der aktuelle Inhalt der Variable V[Varname] wird zur Selektion des Jahres im Matchcode gesetzt.

shname1=
shdest1=

shname2=
shdest2=
...
...

shname12=
shdest12=

Angabe von bis zu 12 weiteren Feldern, die nach Auswahl eines Matchcode-Eintrages ebenfalls gefüllt werden. Die unter shname1, shname2, shname3,... angegebenen Namen müssen so wie in der Suchhilfe  (Transaktion SE11) definiert  angegeben werden. Als Zielfeld shdest1, shdest2, shdest3,... können entweder Eingabefelder F[Feldname] oder Variablen V[Varname] angegeben werden. Beispiele:

InputField   ....    searchhelp="COCAN"    shname1="LSTAR"   shdest1=F[Leistungsart]

Nach Auswahl der Kostenstelle wird diese in das neu definierte InputField gestellt. Zusätzlich wird die Leistungsart aus dem selektierten Eintrag in das Eingabefeld Leistungsart übernommen.

InputField   ....    searchhelp="COCAN"    shname1="LSTAR"   shdest1=F[Leistungsart]  shname2="KTEXT_KOSTL" shdest2=V[CC_text]

Zusätzlich wird die Variable V[CC_text] mit dem Kostenstellentext gefüllt, der für die weitere Verarbeitung genutzt werden kann.

SearchHelpProcess=
Angabe eines InputScripts, das nach Auswahl eines Matchcodeeintrags prozessiert wird. 

Folgende Anwendungsfälle sind denkbar:

  • Anzeige eines Langtextes zu dem ausgewählten Wert:
    Angabe 
    SearchHelpProcess="return.txt", wobei das InputScript return.txt lediglich die Anweisung "Return" enthält. Hierdurch wird der Bildschirm neu angezeigt, und die durch den Matchcode gesetzten Variablen (wie  V[CC_text] im vorangehenden Abschnitt) werden dem Benutzer angezeigt.
  • Anzeige weiterer abgeleiteter Daten zu dem ausgewählten Wert:
    Das angegebene InputScript besorgt (z.B. durch eine Call-Anweisung) weitere Daten und kehrt durch  "
    Return" zur Anzeige zurück. Die neu besorgten Daten können durch das zum Bild gehörende GuiXT-Script dargestellt werden.
Eigene Matchcodehilfe Sie können dem InputField auch eine selbst programmierte Matchcodehilfe zuordnen durch die Notation
 
searchhelp="exit.progname.formname"
wobei progname der ABAP Programmname ist und formname der Name der Unterroutine (FORM-Routine), die aufgerufen wird. Die Unterroutine  wird mit einer standardisierten Schnittstelle (s.u.) aufgerufen und liefert den ausgewählten Wert zurück.  Auch die über shselname1=, shselvalue1=, ..., shname1=, shdest1= möglichen Zusatzparameter können in der selbst programmierten Matchcodehilfe behandelt werden (siehe Beispiel in den "Special Topics").

Beispiel 1: Lesen von Werten aus SAP Datenbank

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

ABAP-Programm:

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
 shselname1=, shselvalue1=,
       dest   "table with
 shname1=, shdest1
     using invalue
       changing selvalue.

* 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.

Beispiel 2: Lokaler Dateiname

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

ABAP-Programm:

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.


Tipps & Tricks
  • Sie können bei dem Feldtext eine Quickinfo hinterlegen, indem Sie den Text in der SAP-Konvention für Quickinfos aufbauen, z.B.:

"@0L\QBitte die externe Dokumentennummer angeben, falls bekannt@Referenznummer"

  • Der InputAssistant verwaltet auch die Eingabehistorie der selbst definierten Felder
  • Den für die Matchcode-Funktionalität erforderlichen technischen Namen finden Sie im SAP in der Hilfe für das betreffende Feld (F1) unter "Technische Informationen".
  • Folgende speziellen Suchhilfen können durch eine Angabe  unter SearchHelp="..." ebenfalls aktiviert werden:
    • ... searchhelp="GuiXT.ORGEH"  Hierarchische Sicht der Organisation
    • ... searchhelp="GuiXT.ZTERM"  Zahlungsbedingungen
    • ... searchhelp="GuiXT.ZTERM.D"  Zahlungsbedingungen, nur Debitoren
    • ... searchhelp="GuiXT.ZTERM.K"  Zahlungsbedingungen, nur Kreditoren
    • ... searchhelp="GuiXT.DATE"  Datum (Kalender)
    • ... searchhelp="GuiXT.TIME"  Zeitauswahl
    • ... searchhelp="GuiXT.AKONT.D"  shselname1="BUKRS" shselvalue1="&F[::Buchungskreis]" Abstimmkonto Debitoren. Der Buchungskreis muss zwingend mitgegeben werden (als Konstante oder Variable)
    • ... searchhelp="GuiXT.AKONT.K"  shselname1="BUKRS" shselvalue1="&F[::Buchungskreis]" Abstimmkonto Kreditoren. Der Buchungskreis muss zwingend mitgegeben werden (als Konstante oder Variable)
  • Sie können die Eingabe eines Datums wie folgt überprüfen (wir setzen hier ein Datum in der Form dd.mm.yyyy voraus):

    InputField (5,5) "Datum"(5,20) name=d1 -date

    if not V[d1]

      Message "E: Bitte das Datum eingeben" -statusline

    else

      Set V[x]&V[d1]- &V[today_d.m.y]

      Set V[x]&V[today_d.m.y]+ &V[x]

      if not V[x=&V[d1]]

        Message "E: Bitte ein gültiges Datum im Format dd.mm.yyyy eingeben, z.B. 12.05.2010" -statusline

      endif

    endif

Komponente GuiXT + InputAssistant