Code: Alles auswählen.
FORM ... USING l_table TYPE STANDARD TABLE.
FIELD-SYMBOLS: <ls_table_line> TYPE ANY.
LOOP AT l_table ASSIGNING <ls_table_line>.
...
Code: Alles auswählen.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ''
retfield = ' '
* PVALKEY = ' '
dynpprog = vc_repid
dynpnr = vc_dynnr
* dynprofield = ''
* STEPL = 0
WINDOW_TITLE = ' '
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = l_table
* FIELD_TAB =
RETURN_TAB = ' '
* DYNPFLD_MAPPING =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* NO_VALUES_FOUND = 2
* OTHERS = 3
Code: Alles auswählen.
FORM zpdplan_set_stdatl_v01.
TYPES: BEGIN OF ty_ZPPSTANDARD,
ZPPIDSTANDARD LIKE ZPPSTANDARD-ZPPIDSTANDARD,
ZPPBEZSTANDARD LIKE ZPPSTANDARD-ZPPBEZSTANDARD,
END OF ty_ZPPSTANDARD.
DATA: it_values_tab TYPE TABLE OF ty_ZPPSTANDARD,
vc_repid LIKE sy-repid,
vc_dynnr LIKE sy-dynnr,
l_it_returntab TYPE TABLE OF ddshretval, "Returntabelle
l_wa_returntab LIKE LINE OF l_it_returntab,
l_okcode(20) type c,
l_kbbez(80) type c,
l_ta_KB type table of ZPPSTANDARD,
l_wa_KB LIKE LINE OF l_ta_KB.
l_okcode = sy-ucomm.
if l_okcode = 'ZPPSTD'.
vc_repid = sy-repid.
vc_dynnr = sy-dynnr.
SELECT ZPPIDSTANDARD ZPPBEZSTANDARD
FROM ZPPSTANDARD
INTO TABLE it_values_tab
up to 30 rows.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
* DDIC_STRUCTURE = ''
retfield = 'ZPPIDSTANDARD'
* PVALKEY = ' '
dynpprog = vc_repid
dynpnr = vc_dynnr
* dynprofield = ''
* STEPL = 0
WINDOW_TITLE = 'Auswahl Krankheitsbild'
* VALUE = ' '
value_org = 'S'
* MULTIPLE_CHOICE = ' '
* DISPLAY = ' '
* CALLBACK_PROGRAM = ' '
* CALLBACK_FORM = ' '
* MARK_TAB =
* IMPORTING
* USER_RESET =
TABLES
value_tab = it_values_tab
* FIELD_TAB =
RETURN_TAB = l_it_returntab
* DYNPFLD_MAPPING =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* NO_VALUES_FOUND = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE l_it_returntab INTO l_wa_returntab INDEX 1.
IF sy-subrc = 0.
g_wertkb = l_wa_returntab-fieldval.
ENDIF.
SELECT ZPPIDSTANDARD ZPPBEZSTANDARD
FROM ZPPSTANDARD
into corresponding fields of table l_ta_KB
where ZPPIDSTANDARD = g_wertkb.
READ TABLE l_ta_KB INTO l_wa_KB INDEX 1.
CALL METHOD <PUB__SERVICE>->API__SET_VALUE
EXPORTING
I_ALIAS = 'ZPPBKB'
I_VALUE = l_wa_KB-ZPPBEZSTANDARD.
endif.
ENDFORM.
Code: Alles auswählen.
FORM zpdplan_prepare_f4_v01.
data: l_ta_atmmass type table of ZPPATMPMASS,
l_wertkb(20) type c.
l_wertkb = g_wertkb.
CASE <pub__this_alias>.
WHEN 'ZPPATMMAS'.
select a~ZPPIDATMPMASS b~ZPPDATATMPMASS into corresponding fields of table l_ta_atmmass from ZPPSTDATMPMASS AS a INNER JOIN ZPPATMPMASS AS b on a~ZPPIDATMPMASS = b~ZPPIDATMPMASS where a~ZPPIDSTANDARD = L_wertkb.
perform zpdplan_get_atlf4_v01 using l_ta_atmmass.
*When ' '.......
endform.
Code: Alles auswählen.
FORM zpdplan_get_atlf4_V01 using l_ta_atmmass TYPE STANDARD TABLE.
FIELD-SYMBOLS: <ls_table_line> type any.
LOOP AT l_ta_atmmass assigning <ls_table_line>.
endloop.
* CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
* EXPORTING
** DDIC_STRUCTURE = ''
** retfield = ''
** PVALKEY = ' '
** dynpprog = ' '
** dynpnr = ''
** dynprofield = ''
** STEPL = 0
* WINDOW_TITLE = ''
** VALUE = ' '
* value_org = 'S'
** MULTIPLE_CHOICE = ' '
** DISPLAY = ' '
** CALLBACK_PROGRAM = ' '
** CALLBACK_FORM = ' '
** MARK_TAB =
** IMPORTING
** USER_RESET =
* TABLES
* value_tab =
** FIELD_TAB =
** RETURN_TAB = ' '
** DYNPFLD_MAPPING =
** EXCEPTIONS
** PARAMETER_ERROR = 1
** NO_VALUES_FOUND = 2
** OTHERS = 3
* .
* IF sy-subrc <> 0.
** MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
** WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
endform.
Ja das habe ich geht nicht ....Thanatos82 hat geschrieben:hi,
keine ahnung ob es daran liegt aber hast du schon mal versucht statt USING die Anweisung TABLES zu nutzen sowohl in der Form-Deklaration als auch im Aufruf zu nutzen?
Code: Alles auswählen.
FORM zpdplan_prepare_f4_v01.
CASE <pub__this_alias>.
WHEN 'ZPPATMMAS'.
g_wa_atlstd-dattab = 'ZPPATMPMASS'.
g_wa_atlstd-dattab2 = 'ZPPSTDATMPMASS'.
g_wa_atlstd-wert = 'ZPPDATATMPMASS'.
g_wa_atlstd-kb =l_wertkb.
APPEND g_wa_atlstd TO g_atlstd.
PERFORM zpdplan_get_atlf4_v01.
Code: Alles auswählen.
FORM zpdplan_get_atlf4_V01.
DATA: l_ittab TYPE REF TO data,
l_tabname TYPE tabname,
l_retfield TYPE dfies-fieldname,
l_it_returntab TYPE TABLE OF ddshretval, "Returntabelle
l_wa_returntab LIKE LINE OF l_it_returntab,
dbtab_syntax TYPE string,
dbtab_syntax1 type string value ' = ',
dbtab_syntax2 type string,
dbtab_syntax3 type string,
dbtab_syntax4 type string.
FIELD-SYMBOLS <fs> TYPE STANDARD TABLE.
*String für Select-Abfrage zusammen setzen
CONCATENATE g_wa_atlstd-dattab 'INNER JOIN' g_wa_atlstd-dattab2 'ON' into dbtab_syntax separated by space.
CONCATENATE g_wa_atlstd-dattab'~'g_wa_atlstd-wert into dbtab_syntax1.
CONCATENATE g_wa_atlstd-dattab2'~'g_wa_atlstd-wert into dbtab_syntax2.
concatenate 'WHERE' 'ZPPISTANDARD' '=' g_wa_atlstd-kb into dbtab_syntax3 separated by space.
concatenate dbtab_syntax dbtab_syntax1 '=' dbtab_syntax2 dbtab_syntax3 into dbtab_syntax4 separated by space.
READ TABLE g_atlstd INTO g_wa_atlstd INDEX 1.
CREATE DATA l_ittab TYPE STANDARD TABLE OF (g_wa_atlstd-dattab).
ASSIGN l_ittab->* TO <fs>. "Tabelle dem FS zuweisen
*SELECT (g_wa_atlstd-wert) INTO corresponding fields of TABLE <fs> FROM ZPPATMPMASS inner join ZPPSTDATMPMASS on ZPPATMPMASS~ZPPIDATMPMASS = ZPPSTDATMPMASS~ZPPIDATMPMASS where ZPPIDSTANDARD = 'KB2'. "Dann Daten holen
SELECT (g_wa_atlstd-wert) INTO corresponding fields of TABLE <fs> FROM (dbtab_syntax4).
l_tabname = g_wa_atlstd-dattab. "Casting....
l_retfield = g_wa_atlstd-wert. "Casting...
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' "bereitstellen
EXPORTING
* ddic_structure =
retfield = l_retfield
value_org = 'S'
display = 'F'
TABLES
value_tab = <fs>
return_tab = l_it_returntab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
READ TABLE l_it_returntab INTO l_wa_returntab INDEX 1.
<pub__this_value> = l_wa_returntab-fieldval.
Code: Alles auswählen.
SELECT (g_wa_atlstd-wert) INTO corresponding fields of TABLE <fs> FROM ZPPATMPMASS inner join ZPPSTDATMPMASS on ZPPATMPMASS~ZPPIDATMPMASS = ZPPSTDATMPMASS~ZPPIDATMPMASS where ZPPIDSTANDARD = 'KB2'.
Code: Alles auswählen.
SELECT (g_wa_atlstd-wert) INTO corresponding fields of TABLE <fs> FROM (dbtab_syntax4).
Code: Alles auswählen.
*String für Select-Abfrage zusammen setzen
CONCATENATE g_wa_atlstd-dattab 'INNER JOIN' g_wa_atlstd-dattab2 'ON' into dbtab_syntax separated by space.
CONCATENATE g_wa_atlstd-dattab'~'g_wa_atlstd-wert into dbtab_syntax1.
CONCATENATE g_wa_atlstd-dattab2'~'g_wa_atlstd-wert into dbtab_syntax2.
concatenate 'WHERE' 'ZPPISTANDARD' '=' g_wa_atlstd-kb into dbtab_syntax3 separated by space.
concatenate dbtab_syntax dbtab_syntax1 '=' dbtab_syntax2 dbtab_syntax3 into dbtab_syntax4 separated by space.