cl_salv_table=>factory "lt_bkpf ist nicht typkompatibel zum formalen Parameter "t_table"

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

cl_salv_table=>factory "lt_bkpf ist nicht typkompatibel zum formalen Parameter "t_table"

Beitrag von Elekam (ForumUser / 3 / 1 / 0 ) »
Hallo!

Ich bin leider noch recht neu mit ABAP und finde mich schwer gute Quellen/Hilfe bei solchen Anfängerproblemen zu finden.

Ich möchte eine interne Tabelle mit cl_salv_table anzeigen. Momentan nehme ich praktisch die bkpf-Tabelle welche jede menge Spalten etc hat und schneide drei Spalten aus, welche ich in die interne Tabelle einfüge. Jetzt sagt er aber der Parameter t_table und lt_bkpf sind inkompatibel. Warum das? Wenn mehr Info benötigt gerne sagen.

Hier mein Code:

Code: Alles auswählen.

TABLES: bkpf, bseg.

*Selection-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE title_01.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE title_01.
SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 5(15) p_name1 FOR FIELD p_blart.
PARAMETERS: p_blart TYPE blart.

SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK block1.

AT SELECTION-SCREEN OUTPUT.
  p_name1 = 'Belegart'.


INITIALIZATION.
  p_blart = 'DD'. "Set default value
END-OF-SELECTION.
Data:
BEGIN OF lt_bkpf OCCURS 0,
  bukrs LIKE bkpf-bukrs,
  blart LIKE bkpf-blart,
  gjahr LIKE bkpf-gjahr,
END OF lt_bkpf.

SELECT
  bukrs,
  blart,
  gjahr
  FROM bkpf
  WHERE @bkpf-blart LIKE @p_blart
  INTO CORRESPONDING FIELDS OF @lt_bkpf.
ENDSELECT.

DATA: go_functions TYPE REF TO cl_salv_functions.        "Symbolleiste

DATA: go_table     TYPE REF TO cl_salv_table.            "Klasse

DATA: go_display   TYPE REF TO cl_salv_display_settings. "Displayeinstellungen

DATA: go_columns   TYPE REF TO cl_salv_columns_table.    "Spaltenmanipulation
DATA: go_column    TYPE REF TO cl_salv_column_table.

DATA: color        TYPE lvc_s_colo.                      "Farbe

DATA: go_sorts     TYPE REF TO cl_salv_sorts.            "Sortierung
DATA: go_agg       TYPE REF TO cl_salv_aggregations.     "Aggregation

DATA: go_filter    TYPE REF TO cl_salv_filters.          "Filter

DATA: go_layout    TYPE REF TO cl_salv_layout.           "Layout

DATA: key          TYPE salv_s_layout_key.

cl_salv_table=>factory( IMPORTING r_salv_table = go_table
                        CHANGING t_table = lt_bkpf ).


* Symbolleiste wird eingeblendet
  go_functions = go_table->get_functions( ).
  go_functions->set_all( abap_true ).

  go_display = go_table->get_display_settings( ).
  go_display->set_striped_pattern( cl_salv_display_settings=>true ).
  go_display->set_list_header( 'Belegzuordnung' ).

  go_columns = go_table->get_columns( ).
  go_column ?= go_columns->get_column( 'CITYTO' ).


* Überschriftenbezeichnung ändern
  go_column->set_long_text( 'Lange Überschrifte' ).      "max. 40 Zeichen
  go_column->set_medium_text( 'Mittlere Überschrift' ).  "max. 20 Zeichen
  go_column->set_short_text( 'Überschr.' ).              "max. 10 Zeichen


* Sortierung
  go_sorts = go_table->get_sorts( ).
 "gr_sorts->add_sort( 'CITYTO' ).


* Filter
  go_filter = go_table->get_filters( ).
  go_filter->add_filter( columnname = 'CARRID' low = 'LH' ).


* Layout (Layoutänderungen abspeicherbar)
  go_layout = go_table->get_layout( ).
  key-report = sy-repid.
  go_layout->set_key( key ).
  go_layout->set_save_restriction( cl_salv_layout=>restrict_none ).


*******************
* Anzeige Tabelle *
*******************
  go_table->display( ).
Danke schonmal!

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


Re: cl_salv_table=>factory "lt_bkpf ist nicht typkompatibel zum formalen Parameter "t_table"

Beitrag von ewx (Top Expert / 4844 / 311 / 640 ) »
Mit OCCURS definierst du eine Tabelle mit Kopfzeile. Das macht man erstens nicht mehr und zweitens ist die Kopfzeile der Grund, weswegen die Parameter nicht kompatibel sind.
Du könntest bei der Übergabe an FACTORY nur den Tabellenkörper übergeben:

Code: Alles auswählen.

lt_bkpf[]
Das solltest du aber gleich wieder vergessen und die interne Tabelle mit TYPES definieren (und da es sich um eine GLOBALE und keine LOKALE Tabelle handelt, sollte diese auch mit G beginnen):

Code: Alles auswählen.

TYPES: begin of ts_bkpf,
         field1 type something,
         ...
       end of ts_bkpf,
       tt_bkpf TYPE STANDARD TABLE OF wa.
DATA gt_bkpf TYPE tt_bkpf.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
msfox


Seite 1 von 1

Vergleichbare Themen

2
Antw.
4939
Views
Salv Table - Layouts speichern
von JohnLocklay » 14.06.2019 11:33 • Verfasst in ABAP Objects®
3
Antw.
2760
Views
GUI Status verhindert on click Event des SALV Table
von Pinguincommander » 05.02.2019 09:51 • Verfasst in ABAP® Core
1
Antw.
2867
Views
Select into table @data(xxx) und returning Parameter
von Basler84 » 06.08.2018 18:40 • Verfasst in ABAP Objects®
1
Antw.
5122
Views
sorted table, hashed table: Übergabe Workarea -> Performa
von Jürgen Fischer » 30.01.2006 08:09 • Verfasst in ABAP® Core
5
Antw.
9841
Views
standard table vs. sorted table
von ralf.wenzel » 31.07.2014 12:49 • Verfasst in ABAP® Core

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
Gestern von Bright4.5 1 / 515
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2149
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8744