Feldkatalog aus interner Tabelle LVC_FIELDCATALOG_MERGE ?

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Feldkatalog aus interner Tabelle LVC_FIELDCATALOG_MERGE ?

Postby Paulina4259 » Tue Jan 10, 2006 4:58 pm

Hallo,

vielleicht kann mir jemand helfen. Ich möchte einen Feldkatalog für eine ALV-Ausgabe erzeugen, dabei möchte ich aber meine interne Tabelle benutzen die ich über einen types aufbaue.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. TYPES: BEGIN OF ekpo_type,
  2.          ebeln          TYPE ebeln,
  3.          ebelp          TYPE ebelp,
  4.          bstyp          TYPE ebstyp,
  5.          ekorg          TYPE ekorg,
  6.          ekgrp          TYPE bkgrp,
  7.          lifnr          TYPE elifn,
  8.          bukrs          TYPE bukrs,
  9.          bedat          TYPE ebdat,
  10.          ernam          TYPE ernam,
  11.          matkl          TYPE matkl,
  12.          matnr          TYPE matnr,
  13.          werks          TYPE ewerk,
  14.          lgort          TYPE lgort_d,
  15.          menge          TYPE bstmg,
  16.          meins          TYPE bstme,
  17.          netpr          TYPE bprei,
  18.          waers          TYPE waers,
  19.          bprme          TYPE bbprm,
  20.          pstyp          TYPE pstyp,
  21.          knttp          TYPE knttp,
  22.          reswk          TYPE reswk,
  23.          afnam          TYPE afnam,
  24. ....
  25. DATA i_pos        TYPE TABLE OF ekpo_type.
  26. DATA i_fieldcat   TYPE lvc_t_fcat.
  27.  
  28. ....
  29. CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
  30.  EXPORTING
  31. *   I_BUFFER_ACTIVE              =
  32. *   I_STRUCTURE_NAME             = 'I_POS'
  33. *   I_CLIENT_NEVER_DISPLAY       = 'X'
  34. *   I_BYPASSING_BUFFER           =
  35.     I_INTERNAL_TABNAME           = 'I_POS'
  36.   CHANGING
  37.     ct_fieldcat                  = i_fieldcat
  38.  EXCEPTIONS
  39.    INCONSISTENT_INTERFACE       = 1
  40.    PROGRAM_ERROR                = 2
  41.    OTHERS                       = 3
  42.           .
  43. IF sy-subrc <> 0.
  44.  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  45.          WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  46.  
GeSHi ©


Leider wird kein Feldkatalog erzeugt.
Paulina4259
..
..
 
Posts: 55
Joined: Thu Oct 14, 2004 3:29 pm

Postby Elke4954 » Tue Jan 10, 2006 5:03 pm

Muss die interne Tabelle nicht mit DATA aufgebaut werden?

data: begin of itab occurs n,
xxx type yyy,

...

end of itab.

:?:
Elke4954
..
..
 
Posts: 22
Joined: Wed Dec 21, 2005 11:08 am

Postby Paulina4259 » Tue Jan 10, 2006 5:22 pm

Nein man kann sich auch intern einen TYP aufbauen und auf diesenen referenzieren.
Paulina4259
..
..
 
Posts: 55
Joined: Thu Oct 14, 2004 3:29 pm

Postby Kimi782 » Tue Jan 10, 2006 5:28 pm

Hallo,

hier muss der Export-Parameter I_STRUCTURE_NAME versorgt werden. Für diesen FuBa muss zwingend eine Struktur im Dictionary über die SE11 angelegt werden. Dann wird auch der Feldkatalog aufgebaut.

Gruss
Chatty
Kimi782
...
...
 
Posts: 109
Joined: Mon Jul 18, 2005 10:22 am

Postby Paulina4259 » Tue Jan 10, 2006 5:33 pm

Hallo,

ich dachte mir das schon. Danke! Aber der Baustein LVC_FIELDCATALOG_MERGE hat doch aber den Schnittstellenparameter I_INTERNAL_TABNAME. Ist das nur irreführend?
Paulina4259
..
..
 
Posts: 55
Joined: Thu Oct 14, 2004 3:29 pm

Postby Kimi782 » Tue Jan 10, 2006 5:47 pm

sorry habe mich geirrt... hier ist ein Ausschnitt aus der Hilfe zum FuBa reuse_alv_fieldcatalog_merge:


Unterstützt den Aufbau des Feldkatalogs für die ALV-Funktionsbausteine. Der Aufbau erfolgt alternativ auf Basis einer im ABAP Data Dictionary definierten Struktur bzw. Tabelle oder einer programminternen Tabelle.

Die programminterne Tabelle muss entweder in einem -TOP Inlcude stehen
oder das einschliessende Include muss explizit in der Schnittstelle
bekannt gegeben werden.

Die auf einer programminternen Tabelle basierenden Variante sollte nur zum 'rapid prototyping' verwendet werden, da folgende Einschränkungen gelten:

Aus Performancegesichtspunkten suboptimal, da stets zur Laufzeit das Coding der Tabellendefinition nachgelesen und interpretiert werden muß.
Dictionaryreferenzen werden nur dann berücksichtigt, wenn die Schlüssel-
wörter LIKE oder INCLUDE STRUCTURE verwendet werden (kein TYPE).
Enthält der Feldkatalog mehr als 90 Felder, so werden die ersten 90 Felder im Default auf der Liste ausgegeben, die restlichen Felder stehen zunächst nur im Feldvorrat zur Verfügung.

Wird der Feldkatalog vorbelegt mitgegeben, so werden diese Daten mit den 'automatisch' ermittelten Informationen abgemischt.



Du musst also mit LIKE und nicht mit TYPE arbeiten. Ich denke das gilt auch für den FuBa LVC_FIELDCATALOG_MERGE.

Allerdings habe ich das bis jetzt noch nie mit einer internen Tabelle gemacht sondern immer Strukturen aus dem DDIC verwendet.

Gruss
Chatty
Kimi782
...
...
 
Posts: 109
Joined: Mon Jul 18, 2005 10:22 am

Postby Paulina4259 » Wed Jan 11, 2006 1:12 pm

Hallo Chatty,

danke für Deine Hilfe. Habs mit like getestet, leider auch ohne Erfolg. Es muss doch aber gehen. Laut Hilfe:
FU LVC_FIELDCATALOG_MERGE
____________________________________________________
Kurztext
Aufbau des Feldkatalogs aus Dictionarystruktur oder interner Tabelle

Funktionalität
Unterstützt den Aufbau des Feldkatalogs für die ALV-Funktionsbausteine. Der Aufbau erfolgt alternativ auf Basis einer im ABAP Data Dictionary definierten Struktur.

...
Tabellenname
Bedeutung
Name der internen Ausgabetabelle im CALLBACK_PROGRAM .

Der Angabe eines Datenobjektes in einem Include des CALLBACK Programmes

sollte immer die Angabe einer ABAP DDIC Struktur vorgezogen werden

Ich wollte halt nicht den Weg gehen eine Struktur im DDIC anzulegen, da ich in dem Programm mehrere verschiedene Ausgabelisten erzeugen möchte.

Vielleicht doch noch eine andere Idee?
Paulina4259
..
..
 
Posts: 55
Joined: Thu Oct 14, 2004 3:29 pm

Postby Kimi782 » Wed Jan 11, 2006 3:54 pm

Hallo,

also ich habe es jetzt auch mehrfach versucht aber leider ohne Erfolg. Ich gebe dir Recht das es laut SAP auch mit int. Tabellen funktionieren müßte aber irgendwie läufts nicht so wie es sollte.

Wenn du wirklich keine Struktur verwenden möchtest kannst du den Feldkatalog auch manuell aufbauen, dies ist aber ziemlich umständlich so das ich dir zur Anlage einer Struktur rate.

Gruss
Chatty
Kimi782
...
...
 
Posts: 109
Joined: Mon Jul 18, 2005 10:22 am

Postby Paulina4259 » Wed Jan 11, 2006 4:01 pm

Danke chatty für Deine Hilfe!

Ich habe es auch aufgegeben. Da es sich um ein bestehendes Programm handelt, in welchem der Feldkatalog für bereits 40 Felder manuell aufgebaut war, habe ich diesen Spagetticode eben noch erweitert. Ich hätte es nur gerne vereinfacht.
Paulina4259
..
..
 
Posts: 55
Joined: Thu Oct 14, 2004 3:29 pm

REUSE_ALV_FIELDCATALOG_MERGE

Postby Luana3981 » Thu Jan 19, 2006 4:48 pm

Wieso nicht FuBa 'REUSE_ALV_FIELDCATALOG_MERGE'

Gruss

Robbl
Luana3981
.
.
 
Posts: 2
Joined: Thu Jan 19, 2006 4:48 pm

Next

Return to ABAP Objects®

Who is online

Users browsing this forum: No registered users and 10 guests