Problem mit eigener F4-Hilfe

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Problem mit eigener F4-Hilfe

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
Hallo,

ich habe eine F4-Hilfe in einem Report programmiert und rufe sie mit der Anweisung

Code: Alles auswählen.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR...
auf.

In der entsprechenden Form-Routine wird eine Liste erstellt (mit FuB 'F4IF_INT_TABLE_VALUE_REQUEST'), aus der sich der Anwender ein paar Werte heraussuchen soll, welche dann in der Selektionsoption s_matnr enthalten sein sollen.

Die Werte sind in s_matnr vorhanden, ich sehe sie im Debugger und im Selektionsbild wird mir durch Verfärbung (des Knopfes für das Bild "Mehrfachselektion") angezeigt, dass Einzelwerte vorhanden sind. Weiterhin selektiert das Programm auch mit diesen Werten, wenn ich es starte.

Wenn ich die Mehrfachselektion anklicke, dann wird dort im ersten Reiter dargestellt, dass Einzelwerte vorhanden sind. SEHEN kann ich diese Einzelwerte aber nicht! Sobald ich irgendwas in der Mehrfachselektion mache (und sei es nur Scrollen), verschwindet die Anzeige 'x Einzelwerte'.

Der Funktionsbaustein 'DYNP_VALUES_UPDATE' hilft definitiv nicht, weder mit den Daten (Name, Dynpronummer) des Reports noch mit denen der Mehrfachselektion.

Prinzipiell muss es aber gehen, bei Matchcodes passiert genau das was ich will: Im Matchcode wird eine Einschränkungsbedingung eingegeben, es kommt eine Liste möglicher Treffer hoch, aus der wählen ich mir x Einzelwerte aus und beim Schließen der Liste werden die Einzelwerte in die Selektionsoption eingestellt.

WAS zum Geier mache ich falsch????


LG und danke


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

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


Beitrag von ewx (Top Expert / 4872 / 314 / 644 ) »
Hi Ralf,
offenbar doch mal dein Coding zum Nachstellen.
Welches SAP-Release?
Gruß, Enno

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
ewx hat geschrieben:Hi Ralf,
offenbar doch mal dein Coding zum Nachstellen.
Welches SAP-Release?
Gruß, Enno
In Auszügen lautet das Coding (du willst nicht wirklich 2500 Zeilen hier lesen ;) ):

Code: Alles auswählen.

SELECT-OPTIONS:
      s_matnr FOR mvke-matnr MATCHCODE OBJECT sd_mat1,    
      s_normt FOR mara-normt.

....

AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_normt-low. 
  PERFORM f4_help_normt. 
  LEAVE TO SCREEN 1000. 

....

FORM f4_help_normt.

  DATA: lt_fields LIKE TABLE OF dynpread,
        l_fields LIKE LINE OF lt_fields.

  IF it_normt[] IS INITIAL.
    PERFORM get_value_normt.
  ENDIF.
* Werteliste anzeigen und Auswahl zurückliefern
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
       EXPORTING
            retfield        = 'MATNR'
            window_title    = ' '
            value_org       = 'S'
            multiple_choice = 'X'
            display         = 'F'
       TABLES
            value_tab       = it_normt
            return_tab      = it_return_tab
       EXCEPTIONS
            parameter_error = 1
            no_values_found = 2
            OTHERS          = 3.
* Werte an Parameter übergeben
  IF sy-subrc = 0 AND NOT it_return_tab IS INITIAL.
    LOOP AT it_return_tab.
      s_matnr-sign = 'I'.
      s_matnr-option = 'EQ'.
      s_matnr-low = it_return_tab-fieldval.
      APPEND s_matnr.
      CLEAR s_matnr.
    ENDLOOP.
  ENDIF.

  LOOP AT s_matnr.
    l_fields-fieldname = 'S_MATNR-LOW'.
    l_fields-fieldvalue = s_matnr-low.
    APPEND l_fields TO lt_fields.
  ENDLOOP.

  CALL FUNCTION 'DYNP_VALUES_UPDATE'
       EXPORTING
            dyname               = 'ZSDMT_MATERIALINFO_VERTRIEB'
            dynumb               = '1000'
       TABLES
            dynpfields           = lt_fields
       EXCEPTIONS
            invalid_abapworkarea = 1
            invalid_dynprofield  = 2
            invalid_dynproname   = 3
            invalid_dynpronummer = 4
            invalid_request      = 5
            no_fielddescription  = 6
            undefind_error       = 7
            OTHERS               = 8.


  CLEAR   it_return_tab.
  REFRESH it_return_tab.

ENDFORM.

....

FORM get_value_normt.

  DATA: lt_fields LIKE TABLE OF dynpread,
        l_fields LIKE LINE OF lt_fields.

  l_fields-fieldname = 'S_NORMT-LOW'.
  APPEND l_fields TO lt_fields.
  l_fields-fieldname = 'S_NORMT-HIGH'.
  APPEND l_fields TO lt_fields.

  CALL FUNCTION 'DYNP_VALUES_READ'
       EXPORTING
            dyname     = 'ZSDMT_MATERIALINFO_VERTRIEB'
            dynumb     = '1000'
       TABLES
            dynpfields = lt_fields.

  READ TABLE lt_fields INDEX 1 INTO l_fields.
  IF NOT l_fields-fieldvalue IS INITIAL.
    s_normt-sign = 'I'.
    s_normt-option = 'EQ'.
    s_normt-low = l_fields-fieldvalue.
    APPEND s_normt.
  ENDIF.
  READ TABLE lt_fields INDEX 2 INTO l_fields.
  IF NOT l_fields-fieldvalue IS INITIAL.
    s_normt-sign = 'I'.
    s_normt-option = 'EQ'.
    s_normt-low = l_fields-fieldvalue.
    APPEND s_normt.
  ENDIF.

  SELECT matnr normt FROM mara
    INTO CORRESPONDING FIELDS OF TABLE it_normt
         WHERE normt IN s_normt.

ENDFORM.                    " get_value_normt


Das Coding ist nicht von mir, ich soll lediglich an ein ziemlich altes Programm (darum sieht das Coding auch so aus wie es aussieht) genau die beschriebene Lösung "dranhängen".

Wie gesagt: s_matnr wird korrekt gefüllt, wird das Programm dann gestartet, dann machts genau was es soll. Nur DARGESTELLT werden diese Werte ums Verrecken nicht in der Selektionsoption auf dem Selektionsbild.



Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ewx (Top Expert / 4872 / 314 / 644 ) »
Hi Ralf,

ich würde mal den 'DYNP_VALUES_UPDATE' in dem Fall weglassen. Macht so wie es programmiert ist eh keinen sinn, da immer das gleicher Feld upgedated wird (S_MATNR-LOW). Mal abgesehen davon, dass man auch in S_MATNR-HIGH Werte eingeben kann...

Gruß, Enno.

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
ewx hat geschrieben:Hi Ralf,

ich würde mal den 'DYNP_VALUES_UPDATE' in dem Fall weglassen. Macht so wie es programmiert ist eh keinen sinn, da immer das gleicher Feld upgedated wird (S_MATNR-LOW). Mal abgesehen davon, dass man auch in S_MATNR-HIGH Werte eingeben kann...

Gruß, Enno.
Den hab ich reingemacht, weils ohne nicht ging ;) Rausmachen hilft also nicht wirklich was. Und LOW wird deshalb dort angegeben, weil ja alle Werte, die zurückkomemn Einzelwerte sind, die haben also alle die Form:

I EQ <matnr>

Aber wie gesagt: Ohne gings auch nicht, einen Fehler gibt er auch nicht aus.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ewx (Top Expert / 4872 / 314 / 644 ) »
Interessantes Problem... :)
Auf "meinem" 4.5er-System funktioniert's nicht mal mit dem Zurückstellen der Werte richtig...

Meine Meinung: Wenn die Materialnummer anhand der Normbezeichnung gesucht werden soll, dann legt eine Suchhilfe an, in der NORMT enthalten ist. Bzw. Lest S_NORMT-LOW/HIGH aus bei F4 auf S_MATNR.

Wäre natürlich trotzdem interessant, warum es nicht funktioniert...

Gruß, Enno
PS: Was macht dein neuer Wirkungsgkreis?
Meiner wird demnächst auch HH... :lol:

Beitrag von ralf.wenzel (Top Expert / 3946 / 201 / 281 ) »
ewx hat geschrieben:Interessantes Problem... :)
Auf "meinem" 4.5er-System funktioniert's nicht mal mit dem Zurückstellen der Werte richtig...

Meine Meinung: Wenn die Materialnummer anhand der Normbezeichnung gesucht werden soll, dann legt eine Suchhilfe an, in der NORMT enthalten ist. Bzw. Lest S_NORMT-LOW/HIGH aus bei F4 auf S_MATNR.

Wäre natürlich trotzdem interessant, warum es nicht funktioniert...

Gruß, Enno
PS: Was macht dein neuer Wirkungsgkreis?
Meiner wird demnächst auch HH... :lol:
Was genau funktioniert bei dir beim Zurückstellen der Werte nicht?

Diese Suchhilfe GIBT es bereits, der Anwender möchte aber nicht erst die Suchhilfe aufrufen müssen -- jaja, ich weiß, ich rede immer viel davon, dass man die Anwender erziehen muss, aber bei dem Kunden bin ich grad neu und möchte nicht gleich als "Papa rabiata" auftreten ;)

Einen neuen Wirkungskreis in HH hab ich noch nicht -- zumindest nix Gescheites -- sonst würde das nicht mehr in meiner Signatur stehen. Was genau findest du daran lustig?

Ich bin aber nach wie vor für jeden Tip dankbar, egal ob freiberuflich oder festangestellt.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von ewx (Top Expert / 4872 / 314 / 644 ) »
ralf.wenzel hat geschrieben: Was genau funktioniert bei dir beim Zurückstellen der Werte nicht?
Sorry: Genau das gleiche wie bei dir: Die Werte sind definitiv in S_MATNR[] vorhanden, aber [..->] zeigt nur einen Bruchteil davon an...
ralf.wenzel hat geschrieben:Diese Suchhilfe GIBT es bereits, der Anwender möchte aber nicht erst die Suchhilfe aufrufen müssen -- jaja, ich weiß, ich rede immer viel davon, dass man die Anwender erziehen muss, aber bei dem Kunden bin ich grad neu und möchte nicht gleich als "Papa rabiata" auftreten ;)
Sie müssen die Wertehilfe ja auch nicht aufrufen; Man kann ja auch den Suchwert gleich im Feld angeben. Wenn du z.B. für Matnr die Suchhilfe MAT1 verwendest, dann gibt es für "Material zur Bezeichnung" das Kürzel [M]. Heisst also, man kann durch =M.teil* die Suchhilfe mit dem Kürzel M und dem Suchstring teil* aufrufen.
ralf.wenzel hat geschrieben:Einen neuen Wirkungskreis in HH hab ich noch nicht -- zumindest nix Gescheites -- sonst würde das nicht mehr in meiner Signatur stehen. Was genau findest du daran lustig?
Lustig nicht, ich freue mich nur darauf. Das ist alles.
Enno

Seite 1 von 1

Vergleichbare Themen

8
Antw.
6797
Views
SALV - Problem mit der F4-Hilfe
von einar46 » 25.02.2014 11:58 • Verfasst in ABAP Objects®
2
Antw.
1425
Views
SAP Netweaver 7.0 Installation PROBLEM HILFE
von beterman » 07.11.2011 15:43 • Verfasst in ABAP® für Anfänger
7
Antw.
6240
Views
SAP Netweaver 7.0 Installation PROBLEM HILFE
von beterman » 04.08.2011 14:11 • Verfasst in ABAP® für Anfänger
16
Antw.
8436
Views
ALV Grid: Problem mit "Cellstyle" und "F4-Hilfe"
von Steffen » 25.07.2018 10:56 • Verfasst in ABAP® Core
3
Antw.
3638
Views
F4 Hilfe
von bohne » 29.11.2006 13:20 • 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

Mahnung erstellen
Gestern von wreichelt 2 / 52
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 71
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 45

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

Mahnung erstellen
Gestern von wreichelt 2 / 52
Absprung VA02 Position
Gestern von gs3rr4 gelöst 3 / 71
OPD Druck im SPOOL
Gestern von Manfred K. 1 / 45