Focus auf Eingabefelder
Wenn ein HTML-Dokument angezeigt wird, das Eingabefelder enthält, dann muss immer erst der Cursor in das Eingabefeld gesetzt werden. Erst dann können Daten eingegeben werden. Praktischer wäre es, wenn der Focus sofort auf dem Eingabefeld liegen würde. SAP stellt dafür jedoch keine Methoden zur Verfügung. Mit ein bisschen HTML-Wissen geht es trotzdem…
Wenn Sie Ihr Dokument ähnlich mit Eingabefeldern versehen haben, wie im Beispielprogramm DD_ADD_FORM_INPUT, dann können Sie mit folgendem Trick den Eingabefocus direkt auf das erste Eingabefeld im Dokument setzen:
DATA position TYPE i.
DATA wa TYPE sdydo_html_line.
SEARCH do->html_table FOR ‘<!%_BODYSTART>’.
IF sy-subrc EQ 0.
position = sy-tabix.
position = position – 1.
CONCATENATE ‘onLoad=”‘
‘parent.frames[0].document.’
‘forms[0].’
input1->id
‘.focus()”‘
INTO wa.
INSERT wa INTO do->html_table INDEX position.
ENDIF.
“do” ist die Referenz auf CL_DD_DOCUMENT.
“input1” ist das Eingabefeld (CL_DD_INPUT_ELEMENT).
Das Einsetzen des “onLoad”-Befehls muss vor dem do->merge erfolgen.
Hinweis:
Wenn es nicht das erste Eingabefeld sein soll, dann müssen Sie ‘forms[0]’ anpassen. 0 ist das erste Eingabefeld, 1 das zweite und so weiter.
- 7. December: Excel Racing Simulation – Root Vole Race - 7. Dezember 2024
- 5. December: ABAPConf - 5. Dezember 2024
- 4. December: Only a lazy developer is a good developer - 4. Dezember 2024