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.
2064
Views
Report dynamisch generieren...
von gabrielgn » 16.01.2008 08:17 • Verfasst in ABAP® Core
4
Antw.
2378
Views
Funktionsbaustein dynamisch generieren
von gabrielgn » 21.01.2008 08:57 • Verfasst in ABAP® Core
8
Antw.
7543
Views
dynamisch funktionsbausteine generieren
von andipesel » 11.02.2008 08:41 • Verfasst in ABAP Objects®
8
Antw.
5543
Views
Interne Tabelle dynamisch generieren
von inab » 22.10.2008 10:19 • Verfasst in ABAP Objects®
3
Antw.
4698
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

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1742
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2296

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1742
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2296

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 293
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 882
MS-Word als Editor
letzen Monat von tekko 1 / 4395