Fieldcatalog "dynamisch" generieren...

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Fieldcatalog "dynamisch" generieren...

Beitrag von stoker64 (ForumUser / 6 / 0 / 0 ) »
Hallo Zusammen
Immer wieder denke ich mir, dass folgender Code optimiert werden könnte:

Sorry - für den "Bandwurm"... :wink:
auf jeden Fall: ich denke mir, dass es irgendwie möglich sein sollte, quasi die Itab-Einträge zu "loopen" und diese dem Fieldcatalog zuzuweisen. Es ist ja so, dass im Dictionary jeder Eintrag als Feld/Domäne hinterlegt ist, und die wichtigsten Eigenschaften eigentlich bekannt sein müssten... oder?
Danke und Gruss Stoker64

Code: Alles auswählen.

DATA: BEGIN OF itab OCCURS 0,
      vbeln LIKE vbrk-vbeln,
      fkdat LIKE vbrk-fkdat,
      kunag LIKE vbrk-kunag,
      name1 LIKE kna1-name1,
      posnr LIKE vbrp-posnr,
      pstyv LIKE vbrp-pstyv,
      matnr LIKE vbrp-matnr,
      arktx LIKE vbrp-arktx,
      vgbel LIKE vbrp-vgbel, 
      aubel LIKE vbrp-aubel, 
      fkimg LIKE vbrp-fkimg,
      vrkme LIKE vbrp-vrkme,
      fklmg LIKE vbrp-fklmg,
      meins LIKE vbrp-meins,
      netwr LIKE vbrp-netwr,
      pvkme LIKE vbrp-netwr.
DATA: END OF itab.


**

 gt_fieldcat-fieldname   = 'VBELN'.
  gt_fieldcat-no_zero     = 'X'.
  gt_fieldcat-hotspot     = 'X'.
  gt_fieldcat-outputlen   = '8'.
  gt_fieldcat-coltext     = 'Faktura'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'FKDAT'.
  gt_fieldcat-outputlen   = '8'.
  gt_fieldcat-coltext     = 'FaktDat.'.
  append gt_fieldcat.

  gt_fieldcat-fieldname   = 'KUNAG'.
  gt_fieldcat-no_zero     = 'X'.
  gt_fieldcat-outputlen   = '6'.
  gt_fieldcat-coltext     = 'AG'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'NAME1'.
  gt_fieldcat-outputlen   = '20'.
  gt_fieldcat-coltext     = 'Name'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'POSNR'.
  gt_fieldcat-outputlen   = '5'.
  gt_fieldcat-coltext     = 'PosNr.'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'MATNR'.
  gt_fieldcat-no_zero     = 'X'.
  gt_fieldcat-outputlen   = '6'.
  gt_fieldcat-coltext     = 'MatNr.'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'ARKTX'.
  gt_fieldcat-outputlen   = '20'.
  gt_fieldcat-coltext     = 'MatBez.'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'VGBEL'.
  gt_fieldcat-no_zero     = 'X'.
  gt_fieldcat-outputlen   = '8'.
  gt_fieldcat-coltext     = 'Lieferung'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'AUBEL'.
  gt_fieldcat-no_zero     = 'X'.
  gt_fieldcat-outputlen   = '8'.
  gt_fieldcat-coltext     = 'Auftrag'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'FKIMG'.
  gt_fieldcat-outputlen   = '8'.
  gt_fieldcat-coltext     = 'GelMeng'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'VRKME'.
  gt_fieldcat-outputlen   = '4'.
  gt_fieldcat-coltext     = 'VrkME'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'FKLMG'.
  gt_fieldcat-outputlen   = '8'.
  gt_fieldcat-coltext     = 'FakMeng'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'MEINS'.
  gt_fieldcat-outputlen   = '4'.
  gt_fieldcat-coltext     = 'BasME'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'PVKME'.
  gt_fieldcat-outputlen   = '5'.
  gt_fieldcat-coltext     = 'Preis'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'VRKME'.
  gt_fieldcat-outputlen   = '4'.
  gt_fieldcat-coltext     = 'per'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'NETWR'.
  gt_fieldcat-outputlen   = '5'.
  gt_fieldcat-coltext     = 'NettoBetr.'.
  append gt_fieldcat.
  clear gt_fieldcat.

  gt_fieldcat-fieldname   = 'PSTYV'.
  gt_fieldcat-outputlen   = '5'.
  gt_fieldcat-coltext     = 'PTyp'.
  append gt_fieldcat.
  clear gt_fieldcat.

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


Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo stoker64,

benutze den FB LVC_FIELDCATALOG_MERGE auf die jeweilige DDIC-Struktur VBRK, VBRP, KNA1) und lese dann mit 'READ TABLE WITH KEY fieldname = <feld>' das jeweilige Feld ein und stelle es dann in deine eigentliche Feldkatalogtabelle. COL_POS wirst Du auf jeden Fall anpassen (null setzen oder explizit die Reihenfolge festlegen) müssen.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von Bernhard_C (ForumUser / 26 / 0 / 0 ) »
Hallo stoker64, hallo ereglam,
da find´ ich es aber einfacher, den FuBau auf die itab loszulassen:

[code]
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = 'Z_DEIN_PROGRAMM'
i_internal_tabname = 'ITAB'
* I_STRUCTURE_NAME =
i_inclname = 'Z_DEIN_PROGRAMM'
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
[/code]
Dann hast Du in der gt_fieldcat z.B. auch die Reihenfolge wie in Deiner Datendeklaration
Schönen Gruß
Bernhard

Beitrag von stoker64 (ForumUser / 6 / 0 / 0 ) »
Danke für die bisherigen Antworten - werde es gleich ausprobieren!
gruss stoker64

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1960
Views
Report dynamisch generieren...
von gabrielgn » 16.01.2008 08:17 • Verfasst in ABAP® Core
4
Antw.
2278
Views
Funktionsbaustein dynamisch generieren
von gabrielgn » 21.01.2008 08:57 • Verfasst in ABAP® Core
8
Antw.
7386
Views
dynamisch funktionsbausteine generieren
von andipesel » 11.02.2008 08:41 • Verfasst in ABAP Objects®
8
Antw.
5394
Views
Interne Tabelle dynamisch generieren
von inab » 22.10.2008 10:19 • Verfasst in ABAP Objects®
3
Antw.
4575
Views
Dynamisch Struktur und Tabelle generieren und füllen
von Kresiquadratur » 16.07.2007 14:32 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 3 Tagen von Bright4.5 1 / 775
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2395
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8982