Habe in der Schnittstelle zum Fuba zwei Varianten probiert:In der Schnittstelle des Funktionsbausteins wurde festgelegt, daß unter "I_STRUCTURE_NAME" nur Felder eines bestimmten Typs angegeben werden dürfen. Das aktuell mitgegebene Feld "MY_STRUCTURE" hat aber einen anderen Feldtyp.
bzw.
i_program_name = g_repid
i_structure_name = MY_STRUCTURE
*sighi_program_name = g_repid
i_structure_name = 'MY_STRUCTURE'
Code: Alles auswählen.
i_program_name = g_repid
i_structure_name = 'MY_STRUCTURE'
...
Die auf einer programminternen Tabelle basierenden Variante sollte nur zum 'rapid prototyping' verwendet werden, da folgende Einschränkungen gelten:
...
*ratlosg_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = g_repid
I_INTERNAL_TABNAME = 'MY_STRUCTURE'
i_structure_name = 'MY_STRUCTURE'
I_INCLNAME = 'MYPROGTOP'
....
Damit bekomme ich einen Zeiger auf das Datenobjekt, allein, ich kann die Komponentennamen nicht ansprechen??? Würde das gehen, wäre mein Problem gelöst!*Definition my_structure s.o.
types: begin of typ_my_struc.
include structure my_structure.
types: end of typ_my_struc.
data line(100).
FIELD-SYMBOLS: <fs> TYPE ANY.
ASSIGN line TO <fs> CASTING TYPE typ_my_struc.
Code: Alles auswählen.
TYPE-POOLS: SYDES.
DATA: TD TYPE SYDES_DESC.
data fldn type dd03l-fieldname.
DATA WAtypes WITH HEADER LINE LIKE TD-TYPES.
DATA WAnames WITH HEADER LINE LIKE TD-names.
DESCRIBE FIELD itab INTO TD.
LOOP AT TD-TYPES INTO WAtypes.
read table td-names into wanames index watypes-IDX_NAME.
check sy-subrc = 0.
move wanames-name to fldn.
append fldn to fldtab.
ENDLOOP.
Das geht schief, wenn die Feldnamen länger sind als name definiert ist.Asaph hat geschrieben:Code: Alles auswählen.
TYPE-POOLS: SYDES. DATA: TD TYPE SYDES_DESC. data fldn type dd03l-fieldname. DATA WAtypes WITH HEADER LINE LIKE TD-TYPES. DATA WAnames WITH HEADER LINE LIKE TD-names. DESCRIBE FIELD itab INTO TD. LOOP AT TD-TYPES INTO WAtypes. read table td-names into wanames index watypes-IDX_NAME. check sy-subrc = 0. move wanames-name to fldn. append fldn to fldtab. ENDLOOP.
Ja.ViktorJ hat geschrieben:Ich habe die Erfahrung gemacht, dass FB 'REUSE_ALV_FIELDCATALOG_MERGE' funktioniert, wenn
die interne Tabelle mit occurs definiert ist, ansonsten nicht.
z.B.
DATA: BEGIN OF gt_output OCCURS 0,
kunnr LIKE kna1-kunnr,
vkorg LIKE knvv-vkorg,
vtweg LIKE knvv-vtweg,
spart LIKE knvv-spart,
END OF gt_output.