Code: Alles auswählen.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR...
In Auszügen lautet das Coding (du willst nicht wirklich 2500 Zeilen hier lesenewx hat geschrieben:Hi Ralf,
offenbar doch mal dein Coding zum Nachstellen.
Welches SAP-Release?
Gruß, Enno
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
Den hab ich reingemacht, weils ohne nicht gingewx 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.
Was genau funktioniert bei dir beim Zurückstellen der Werte nicht?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...
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: Was genau funktioniert bei dir beim Zurückstellen der Werte nicht?
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: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
Lustig nicht, ich freue mich nur darauf. Das ist alles.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?