"Autofill" in Dynpro/Parametereingabe

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

"Autofill" in Dynpro/Parametereingabe

Beitrag von Friguu (ForumUser / 3 / 3 / 0 ) »
Hallo,

vorab zur Info, ich bin neu in der ABAP-Welt (seit ca. 1 Woche) und beschäftige mich nebenbei damit. Ebenfalls habe ich im allgemeinen noch nicht sehr viel Erfahrung im programmieren.

Zu meinem Problem:

Ich habe 2 Domänen jeweils mit definierten Festwerten. Die erste beinhaltet Artikelnummern (Festwert) und entsprechende Details zu Artikelnummer "XY" (Kurzbeschreibung) und die zweite den passenden Lagerort zu Artikelnummer "XY". Die Lagerorte in der Kurzbeschreibungen und die eigentlichen Festwerte sind immer die Artikelnummern.
Dann habe ich in einem Programm mit Hilfe der Funktion 'DD_DOMVALUES_GET' die Festwerte und Kurzbeschreibungen ausgelesen und mit einem Loop in eine interne Tabelle l_tab_hilfe abgelegt.
Es wird ein Parameter abgefragt PARAMETERS: l_pr_id TYPE zpt_dte_pr_id. Mit diesem Parameter (Ebenfalls Festwerte mit Artikelnummer) wird dann aus der l_tab_hilfe der entsprechende Inhalt gesucht (über eine IF-Anweisung) gesucht.
Dann habe ich mit dem "MOVE" Befehl den Inhalt aus l_tab_hilfe in eine weitere interne Tabelle l_tab_hilfe2 weitergegeben (weil ich es irgendwie nicht geschafft habe, dass der Inhalt aus l_tab_hilfe auch außerhalb des Loops richtig ausgegeben wird).

So weit, so gut. Das was ich dort versucht habe zu beschreiben Funktioniert auch wie ich es wollte. Habe den entsprechenden Code auch im Anhang.

Zu meiner Frage:

Gibt es irgendeine Möglichkeit, dass das was ich oben zustande gebracht habe, eine Art "Autofill" Funktion darstellt?
Wenn ich beispielsweise Artikelnummer 123 eingebe, dass dann in 2 weiteren Feldern automatisch der entsprechende Lagerort und die Details angezeigt werden.

Code:

Code: Alles auswählen.

REPORT  ztest_asd.

TYPES:
          BEGIN OF l_str_test,
            pr_id(10) TYPE n,
            pr_bez(20) TYPE c,
            pr_lgr(30) TYPE c,
          END OF l_str_test.



DATA :
          BEGIN OF l_str_hilfe,
            pr_id(10) TYPE n,
            pr_bez(20) TYPE c,
            pr_lgr(30) TYPE c,
          END OF l_str_hilfe.

PARAMETERS:
            l_pr_id TYPE zpt_dte_pr_id.


DATA:
      l_tab_hilfe LIKE STANDARD TABLE OF l_str_hilfe WITH HEADER LINE,
      l_tab_hilfe2 LIKE STANDARD TABLE OF l_str_hilfe WITH HEADER LINE,
      l_tab_bez TYPE TABLE OF  dd07v WITH HEADER LINE,
      l_tab_lgr TYPE TABLE OF  dd07v WITH HEADER LINE,

      l_str_test TYPE l_str_test,
      l_tab_test TYPE STANDARD TABLE OF l_str_test.


FIELD-SYMBOLS:
               <l_test>,
               <l_pr_bez>,
               <l_pr_lgr>,
               <l_pr_mng>,
               <l_pr_btrg>,
               <l_pr_curr>.

*BEZEICHNUNG UND ID
CALL FUNCTION 'DD_DOMVALUES_GET'
  EXPORTING
    domname              = 'ZPT_PR_ID'
    text                 = 'X'
*   LANGU                = ' '
*   BYPASS_BUFFER        = ' '
* IMPORTING
*   RC                   =
  TABLES
    dd07v_tab            = l_tab_bez
 EXCEPTIONS
   wrong_textflag       = 1
   OTHERS               = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.


*LAGERORT
CALL FUNCTION 'DD_DOMVALUES_GET'
  EXPORTING
    domname              = 'ZPT_PR_LGR'
    text                 = 'X'
*   LANGU                = ' '
*   BYPASS_BUFFER        = ' '
* IMPORTING
*   RC                   =
  TABLES
    dd07v_tab            = l_tab_lgr
 EXCEPTIONS
   wrong_textflag       = 1
   OTHERS               = 2
          .
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.




LOOP AT l_tab_bez.
  MOVE l_tab_bez-domvalue_l TO l_tab_hilfe-pr_id.

  DO 1 TIMES.
    IF l_pr_id = l_tab_hilfe-pr_id.
      MOVE l_tab_hilfe-pr_id TO l_tab_hilfe2-pr_id.
*  schreiben der PR_ID
*      ASSIGN l_tab_hilfe-pr_id TO <l_test>.
*      WRITE: /, /,  <l_test>.
    ENDIF.
  ENDDO.

  DO 1 TIMES.
    IF l_pr_id = l_tab_hilfe-pr_id.
      MOVE l_tab_bez-ddtext TO l_tab_hilfe-pr_bez.
      MOVE l_tab_hilfe-pr_bez TO l_tab_hilfe2-pr_bez.
*schreiben pr_bez
*      ASSIGN l_tab_hilfe-pr_bez TO <l_pr_bez>.
*      WRITE:  <l_pr_bez>.
    ENDIF.
  ENDDO.

  IF sy-tabix = 1.
    LOOP AT l_tab_lgr.
      IF l_pr_id = l_tab_lgr-domvalue_l.
        MOVE l_tab_lgr-ddtext TO l_tab_hilfe-pr_lgr.
        MOVE l_tab_hilfe-pr_lgr TO l_tab_hilfe2-pr_lgr.
*  SCHREIBEN DER PR_LGR
*        ASSIGN l_tab_hilfe-pr_lgr TO <l_pr_lgr>.
*        WRITE:  <l_pr_lgr>.
        EXIT.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDLOOP.




WRITE: /, l_tab_hilfe2-pr_id,
          l_tab_hilfe2-pr_bez,
          l_tab_hilfe2-pr_lgr.




Ich hoffe ihr könnt meinem Vorhaben irgendwie folgen.

Vielen Dank im voraus!!

Viele Grüße,
Friguu

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: "Autofill" in Dynpro/Parametereingabe

Beitrag von a-dead-trousers (Top Expert / 4397 / 223 / 1182 ) »
Hi!

Du willst also folgendes erreichen:
Wenn der Benutzer z.B. etwas in ein Feld eingibt und dann ENTER drückt, dass dann in einem anderen Feld etwas reingeschrieben wird.

Das ist ohne viel Hexerei über die Standard PAI/PBO Logik von SAP lösbar. Durch von ENTER werden nämlich alle Eingaben vom aktuellen Dynpro an den SAP-Server zurückgeschickt. Dieser verabeitet die Daten im sog. PAI und schickt sie anschließend über das PBO wieder an den GUI.
Du musst also nichts weiter machen, als im PAI-Modul (in Reports das Ereignis AT SELECTION-SCREEN) den Wert aus der Benutzereingabe bestimmen, die zugehörigen Daten aus deiner internen Tabelle damit auslesen und das Ergebnis in das Feld übertragen in das die Daten ausgegeben werden sollen.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Friguu

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: "Autofill" in Dynpro/Parametereingabe

Beitrag von Friguu (ForumUser / 3 / 3 / 0 ) »
Hi,

vielen Dank für die Antwort!

Ich habe mir schon gedacht, dass das so nicht möglich ist. :(

Ich werde deinen Lösungsvorschlag mal ausprobieren und mich ggf. nochmal hier rein schreiben.

Viele Grüße,
Friguu

Re: "Autofill" in Dynpro/Parametereingabe

Beitrag von black_adept (Top Expert / 4093 / 128 / 940 ) »
Hallo Friguu,

da du ja von Domänen mit Festwerten sprichst gehe ich mal davon aus, dass die Wertemenge recht überschaubar sein könnte. Wenn dem so ist, dass könntest du alternativ zu einem "normalen" Eingabefeld auch eine Listbox verwenden, die genau diese Werte schon vorrätig hat und der User nur hiervon auswählen muss. Da eine Listbox mit einem Funktionscode ausgestattet werden kann, der dann auch PAI auslöst kannst du mit a-d-ts Vorgehensweise in diesem speziellen Fall dann sogar ohne zusätzlichens ENTER die Zusatzfelder befüllen.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Friguu

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: "Autofill" in Dynpro/Parametereingabe

Beitrag von Friguu (ForumUser / 3 / 3 / 0 ) »
Hi,

nochmals vielen Dank für die Antworten!

Ich habe nun eine Lösung, die eurer ähnelt. Sie ist zwar nicht schön, aber selten und reicht erst mal für meine Übungszwecke. ¯\_(ツ)_/¯

Viele Grüße,
Friguu

Seite 1 von 1

Vergleichbare Themen

3
Antw.
5531
Views
6
Antw.
10595
Views
Parametereingabe->Textausgabe
von Nadine_2706 » 06.09.2011 07:45 • Verfasst in ABAP® für Anfänger
3
Antw.
1540
Views
Tabellenstruktur nach Parametereingabe
von robz » 15.11.2006 09:11 • Verfasst in ABAP Objects®
6
Antw.
6396
Views
Web-Dynpro: längeres Dynpro nicht sichtbar
von erzoo24 » 08.03.2017 11:33 • Verfasst in Web-Dynpro, BSP + BHTML
0
Antw.
3064
Views

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 13 Stunden von msfox 18 / 11060
Dialog-Container mit Toolbar/Status
vor 16 Stunden von black_adept gelöst 27 / 4181
IT0024 Qualifikationen CP-ID
vor 18 Stunden von ArjenR 1 / 140

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Trennen Strasse und Hausnummer
vor 13 Stunden von msfox 18 / 11060
Dialog-Container mit Toolbar/Status
vor 16 Stunden von black_adept gelöst 27 / 4181
IT0024 Qualifikationen CP-ID
vor 18 Stunden von ArjenR 1 / 140

Unbeantwortete Forenbeiträge

IT0024 Qualifikationen CP-ID
vor 18 Stunden von ArjenR 1 / 140
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 3077
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9674