Feldinformationen zu im Prog. def. Struktur (Felkatalog)

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

Feldinformationen zu im Prog. def. Struktur (Felkatalog)

Beitrag von gse (ForumUser / 97 / 0 / 2 ) »
Hallo liebe Leutz,

kann mir jemand einen Befehl, FuBa, o.ä. nennen, der/das mir die Feldeigenschaften einer im Programm definierten Struktur liefert?

Beispiel.

1. Ich definiere (oder ein anderer hat definiert) in einem Top-Include einen eigene Struktur, deren Aufbau ich als Grundlage für den Feldkatalog verwenden will.

data: begin of my_structure,
KUNDEN_NR type KUNNR,
name1 type NAME1,
LAND1 type LAND1.
data: end of my_structure.

2. vor der Ausgabe des ALV, möchte ich nun den Feldkatolg aufbauen. Die Struktur des Feldkatalogs ist definiert nach dem Tabellentyp slis_t_fieldcat_alv. Wenn ich jetzt, quasi "zu Fuß" den Feldkatalog aufbauen möchte, muss ich die Felder FIELDNAME, SELTEXT_L, SELTEXT_M, etc. versorgen. Genau dafür muss ich bspielsweise wissen, wie die Felder der Struktur bzeichnet wurden.

Weiss hier jemand einen schlauen Rat? Freue mich auf Hinweise, Ratschläge, Meinungen jeder Art! Hierfür im voraus vielen Dank und sonst weiterhin frohes Schaffen!

gse
(aka guenter sigfried eugen)

p.s. das Verwenden von REUSE_ALV_FIELDCATALOG_MERGE will bei mir leider nicht klappen, obwohl ich den Parameter I_INTERNAL_TABNAME = 'IT_MY_STRUCTURE' versorgt habe. Nach Doku-Angaben sollte das eigentlich auch funktionieren. Klappt aber bei mir nicht. Vielleicht weiß auch hier jemand einen Rat?;-)

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


Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moinsen.

Mit dem REUSE_ALV_FIELDCATALOG_MERGE müßte es klappen, wenn I_PROGNAME und I_STRUCTURE_NAME übergeben werden.

Ansonsten müßte es mit der Methode CL_ABAP_STRUCTDESCR=>DESCRIBE_BY_DATA funktionieren. Das Ding liefert eine Referenz auf CL_ABAP_TYPE_DESCR zurück, von der CL_ABAP_STRUCTDESCR abgeleitet ist. Durch geschicktes Casting kann man auf das Instanzattribut COMPONENTS der Klasse CL_ABAP_STRUCTDESCR zugreifen, in der die Komponenten namentlich hinterlegt sind.
Letzteres funktioniert IMHO ab 4.6C.

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

CALL_FUNCTION_CONFLICT_TYPE

Beitrag von gse (ForumUser / 97 / 0 / 2 ) »
Hallo Haubi,

herzlichen Dank für Deine Antwort. Leider habe ich das schon einmal, und dann auch noch ziemlich erfolglos, ausporbiert. Die Dump-Analyse liefert einen folgende Hilflosigkeiten:
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.
Habe in der Schnittstelle zum Fuba zwei Varianten probiert:

i_program_name = g_repid
i_structure_name = MY_STRUCTURE
bzw.
i_program_name = g_repid
i_structure_name = 'MY_STRUCTURE'
*sigh
:roll:

Vielleicht habe ich aber noch was anderes übersehen???

Gruss und frohes Schaffen!

gse
(aka guenter sigfried eugen)

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Also die Variante

Code: Alles auswählen.

i_program_name = g_repid
i_structure_name = 'MY_STRUCTURE' 
sieht gut aus. Einen Dump sollte es da nicht geben. Ich würde nochmal I_INTERNAL_TABNAME und (wenn das auch nix hilft) I_INCLNAME versorgen.
Ansonsten verweise ich mal dreist auf die Doku des FuBa:
...
Die auf einer programminternen Tabelle basierenden Variante sollte nur zum 'rapid prototyping' verwendet werden, da folgende Einschränkungen gelten:
...
:wink:

Gruss,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

hm....

Beitrag von gse (ForumUser / 97 / 0 / 2 ) »
Hallo Haubi,

auch mit den zusätzlichen Parametern, funz das nicht!
Für's "schnelle Prototyping" müsste es doch aber trotzdem eine Lösung geben, oder? :lol:
g_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'
....
*ratlos

bin grad am probieren, ob ich über einen cast, Informationen zum Aufbau der Struktur gewinnen kann.
*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.
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! :roll:

Hat da vielleicht jemand einen Tip, wie das geht? Wär klasse!

und sonst, weiterhin frohes Schaffen!

gse
(aka guenter sigfried eugen)

Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
Hallo Günther,

so kommst du an die Feldnamen:

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.

Gruss Andreas

FuBa 'GET_COMPONENT_LIST'

Beitrag von gse (ForumUser / 97 / 0 / 2 ) »
Hallo liebe leutz,

das Problem über den Standard-Fuba REUSE_ALV_FIELDCATALOG_MERGE konnte ich noch nicht lösen. Indess haben ich einen Workaroung über FuBa 'GET_COMPONENT_LIST' gefunden. Schaut Euch den mal an. Sieht ganz interessant aus.

Allen im Forum, insbesondere Haubi und Andreas meinen Dank für die hilfreichen Antworten / Anregungen!

Weiterhin frohes Schaffen und was sinnliches zum Fest! :lol:

gse
(aka guenter sigfried eugen)

Beitrag von ViktorJ ( / / 0 / 3 ) »
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.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = g_cprog
i_internal_tabname = 'GT_OUTPUT'
i_inclname = g_cprog
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
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.
Das geht schief, wenn die Feldnamen länger sind als name definiert ist.
Man muss noch prüfen, ob die Fortsetzung in der nächsten Zeile gelesen werden muss
(s. F1-Hilfe zu DESCRIBE - oder man verwendet gleich die dort genannten ABAP-Objects-Methoden).

Beitrag von Frank Dittrich (Expert / 674 / 0 / 15 ) »
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.
Ja.
Da hat es sich jemand zu einfach machen wollen.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1220
Views
Ameldesprache im Prog vorgeben ??
von the » 10.05.2007 11:11 • Verfasst in ABAP® Core
1
Antw.
929
Views
Prog mit TAB-Reitern - Updateproblem mit Screenfeldern ??
von hfahrian » 07.06.2005 20:08 • Verfasst in ABAP® Core
3
Antw.
2613
Views
Mimes in ABAP-Prog lesen
von MarkusW » 05.03.2007 13:31 • Verfasst in Web-Dynpro, BSP + BHTML
0
Antw.
926
Views
keine Ausgabe bei Smart Form - Prog.
von barbara » 12.04.2006 11:56 • Verfasst in ABAP® für Anfänger
4
Antw.
2617
Views
Dialog Prog. Mobile Datenerfassung Schriftgroeße aendern
von Juergen » 23.03.2007 12:13 • Verfasst in Dialogprogrammierung

Aktuelle Forenbeiträge

Vererbung abstrakte Klassen
vor 8 Stunden von rob_abc 5 / 101
Neue Themen als SAP Entwickler
vor 18 Stunden von msfox 91 / 9021

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

Vererbung abstrakte Klassen
vor 8 Stunden von rob_abc 5 / 101
Neue Themen als SAP Entwickler
vor 18 Stunden von msfox 91 / 9021