Code: Alles auswählen.
*----------------------------------------------------------------------*
* MODULE value_connection INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE value_connection INPUT.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = progname
dynumb = dynnum
translate_to_upper = 'X'
TABLES
dynpfields = dynpro_values.
READ TABLE dynpro_values INDEX 1 INTO field_value.
SELECT carrid connid
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE values_tab
WHERE carrid = field_value-fieldvalue.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CONNID'
dynpprog = progname
dynpnr = dynnum
dynprofield = 'CONNECTION'
value_org = 'S'
TABLES
value_tab = values_tab.
ENDMODULE. "value_connection INPUT
Das ist eine falsche Annahme. Wenn es für ein Feld eine Suchhilfe-Anbindung gibt, dann kann diese genutzt werden. Wenn z.B. CARRID nicht nicht auf dem Dynpro vorhanden ist, kann es in der Suchhilfe zu CONNID ausgewählt werden (oder wird angezeigt).Johnny11 hat geschrieben:Die Felder die bei dem Selection-Screen angezeigt werden, sind nicht fix. Somit ist nicht sichergestellt, dass z.B. das Feld "Verbindungen" wirklich vorhanden ist.
Dadurch muss die Suchhilfe dynamisch aufgebaut werden.
ja, genau.Johnny11 hat geschrieben:Ich werde mir einmal das Include anschauen - ich nehme an, dass das ein Beispiel ist?
Code: Alles auswählen.
FORM free_f4_help.
progname = sy-repid.
dynnum = sy-dynnr.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = progname
dynumb = dynnum
translate_to_upper = 'X'
TABLES
dynpfields = dynpro_values.
READ TABLE dynpro_values INDEX 1 INTO field_value.
SELECT carrid connid
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE values_tab
WHERE carrid = ls_expr-low.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CONNID'
dynpprog = progname
dynpnr = dynnum
dynprofield = 'CONNECTION'
value_org = 'S'
TABLES
value_tab = values_tab.
ENDFORM.
Code: Alles auswählen.
CALL FUNCTION 'F4IF_GET_SHLP_DESCR'
EXPORTING
shlpname = 'DRCONN_AIRLINE'
shlptype = 'SH'
IMPORTING
shlp = ls_shlp.
Code: Alles auswählen.
LOOP AT ls_shlp-interface ASSIGNING <i>.
IF <i>-shlpfield = 'CARRID'.
<i>-value = Wert aus FB 'DYNP_VALUES_READ' .
ENDIF.
IF <i>-shlpfield = 'CONNID'.
<i>-valfield = 'X'.
ENDIF.
ENDLOOP.
Code: Alles auswählen.
CALL FUNCTION 'F4IF_START_VALUE_REQUEST'
EXPORTING
shlp = ls_shlp
disponly = space
multisel = 'X'
TABLES
return_values = lt_return
EXCEPTIONS
error_message = 1.