Eigener Matchcode über Button aufrufen

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

Eigener Matchcode über Button aufrufen

Beitrag von codierknecht (ForumUser / 84 / 0 / 0 ) »
Hallo,

ich habe mir ein eigenes Suchhilfeobjekt erstellt. Wenn ich diesen aus der SE80 teste, funktioniert das Objekt super.

Ich habe nun einen Button, welcher die Suchhilfe aufrufen soll. Dazu habe ich folgendes codiert

Code: Alles auswählen.

DATA ls_shlp TYPE shlp_descr.
DATA lt_retval TYPE STANDARD TABLE OF ddshretval.

CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
  EXPORTING
    shlpname = 'ZMC_ARTIKELPASS'
    shlptype = 'SH'
  IMPORTING
    shlp     = ls_shlp.

CALL FUNCTION 'F4IF_START_VALUE_REQUEST' 
  EXPORTING 
    shlp          = ls_shlp 
  TABLES 
    return_values = lt_retval.
Wenn ich den Button drücke, erscheint der Matchcode und die Werte sind korrekt gefüllt. Wenn ich nun einen Wert auswähle, wird das Fenster geschlossen. Die Tabelle lt_retval ist aber leer.

Wie erhalte ich denn nun die ausgewählten Werte?

Viele Grüße
Codierknecht

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


Beitrag von ewx (Top Expert / 4885 / 319 / 644 ) »
du musst in ls_shlp-interface die Felder VALFIELD und VALTABNAME füllen, damit die Suchhilfe weiss, welches Feld zurückgestellt werden soll.

Code: Alles auswählen.

  LOOP AT TF4_SHLP-INTERFACE ASSIGNING <F4_INTERFACE>.
    CASE  <F4_INTERFACE>-SHLPFIELD.
      WHEN 'VKORG'.
        <F4_INTERFACE>-VALUE = '1000'.
      WHEN 'KUNNR'.
        <F4_INTERFACE>-VALFIELD   = 'KUNNR'.
        <F4_INTERFACE>-VALTABNAME = 'KNA1'.
    ENDCASE.
  ENDLOOP.
oder so ähnlich...:-)

Beitrag von codierknecht (ForumUser / 84 / 0 / 0 ) »
Hallo,

vielen Dank für die Info.
Ich habe das Feldsymbol mal so definiert

Code: Alles auswählen.

      field-symbols <F4_INTERFACE> type shlp_descr-interface.
aber ich erhalte die Meldung,
Der Zeilentyp der Tabelle "LS_SHLP-INTERFACE" ist nicht kompatibel zum
Typ des Feldsymbols "<F4_INTERFACE>".
Wie ist das Feldsymbol zu definieren?

Beitrag von ewx (Top Expert / 4885 / 319 / 644 ) »
das kriegst du mit doppelklicken auf die Typdefinition von LS_SHLP raus:
Field-Symbols <if> type DDSHIFACE.

Beitrag von codierknecht (ForumUser / 84 / 0 / 0 ) »
Hi,

das habe ich auch so gemacht, aber ich erhalte immer noch die selbe Fehlermeldung. Hier man mein aktuelles coding

Code: Alles auswählen.

      DATA ls_shlp TYPE shlp_descr.
      DATA lt_retval TYPE STANDARD TABLE OF ddshretval.
      field-symbols <F4_INTERFACE> type DDSHIFACES.

  LOOP AT ls_SHLP-INTERFACE ASSIGNING <F4_INTERFACE>.
    CASE  <F4_INTERFACE>-SHLPFIELD.
      WHEN 'MATNR'.
        <F4_INTERFACE>-VALFIELD   = 'MATNR'.
        <F4_INTERFACE>-VALTABNAME = 'Z001_ARTIKELPASS'.
    ENDCASE.
  ENDLOOP.

      CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
        EXPORTING
          shlpname = 'ZMC_ARTIKELPASS'
          shlptype = 'SH'
        IMPORTING
          shlp     = ls_shlp.

      CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
        EXPORTING
          shlp          = ls_shlp
        TABLES
          return_values = lt_retval.

Der Fehler wird beim ASSIGNING angezeigt.

Beitrag von codierknecht (ForumUser / 84 / 0 / 0 ) »
Hat sich erledigt.


Hab es nun so gemacht

Code: Alles auswählen.

      DATA ls_shlp TYPE shlp_descr.
      DATA lt_retval TYPE STANDARD TABLE OF ddshretval.
      field-symbols <F4_INTERFACE> like line of ls_shlp-interface.

      CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
        EXPORTING
          shlpname = 'ZMC_ARTIKELPASS'
          shlptype = 'SH'
        IMPORTING
          shlp     = ls_shlp.

  LOOP AT ls_SHLP-INTERFACE ASSIGNING <F4_INTERFACE>.
    CASE  <F4_INTERFACE>-SHLPFIELD.
      WHEN 'MATNR'.
        <F4_INTERFACE>-VALFIELD   = 'MATNR'.
        <F4_INTERFACE>-VALTABNAME = 'Z001_ARTIKELPASS'.
    ENDCASE.
  ENDLOOP.



      CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
        EXPORTING
          shlp          = ls_shlp
        TABLES
          return_values = lt_retval.
Der Loop war auch noch an der falschen Stelle

Beitrag von ewx (Top Expert / 4885 / 319 / 644 ) »
field-symbols <F4_INTERFACE> type DDSHIFACES.
DDSHIFACES ist der Tabellentyp
DDSHIFACE ist die Zeile...
:D

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1579
Views
Tabelle in der der Matchcode steht
von Firsttakeoff » 27.02.2012 14:15 • Verfasst in Human Resources
1
Antw.
3680
Views
Neuen Matchcode für Kreditoren definieren
von hai_friedrich » 29.08.2008 13:53 • Verfasst in Basis
7
Antw.
4338
Views
Erweitern Matchcode KREDA/M_KREDA /LFA1)
von deejey » 14.12.2018 10:23 • Verfasst in Dialogprogrammierung
1
Antw.
2283
Views
Neuer Matchcode für Transcation PR05 und PTMW
von Firsttakeoff » 27.02.2012 13:56 • Verfasst in Human Resources
5
Antw.
5052
Views
Per Button klick ein symbol in den Button einfügen
von alex1986 » 03.08.2011 15:57 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

IBAN und BUT0BK
vor 3 Tagen von GastX gelöst 4 / 3692
Gewährleistungsende im Equipment
vor 4 Tagen von Yourairld gelöst 8 / 25959
IF mit AND und OR
vor 2 Wochen von GastX 6 / 14161
Meine Inbox
vor 3 Wochen von Rabea1103 1 / 11621

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

IBAN und BUT0BK
vor 3 Tagen von GastX gelöst 4 / 3692
Gewährleistungsende im Equipment
vor 4 Tagen von Yourairld gelöst 8 / 25959
IF mit AND und OR
vor 2 Wochen von GastX 6 / 14161
Meine Inbox
vor 3 Wochen von Rabea1103 1 / 11621