"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 / 4399 / 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 / 4099 / 128 / 941 ) »
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.
10607
Views
Parametereingabe->Textausgabe
von Nadine_2706 » 06.09.2011 07:45 • Verfasst in ABAP® für Anfänger
3
Antw.
1542
Views
Tabellenstruktur nach Parametereingabe
von robz » 15.11.2006 09:11 • Verfasst in ABAP Objects®
6
Antw.
6429
Views
Web-Dynpro: längeres Dynpro nicht sichtbar
von erzoo24 » 08.03.2017 11:33 • Verfasst in Web-Dynpro, BSP + BHTML
0
Antw.
3068
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

Regex in where
vor 16 Stunden von tar 8 / 364
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 284
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 527

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

Regex in where
vor 16 Stunden von tar 8 / 364
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1636
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 284
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 527

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 221
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3403
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9953