welcher Baustein für mein Vorhaben

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

welcher Baustein für mein Vorhaben

Beitrag von .marc. (ForumUser / 20 / 1 / 0 ) »
Hallo Leute,

bin auf der Suche nach einem Baustein für folgendes:

1. Auslesen von Daten aus mehreren Tabellen
2. berechnete, erzeugte, etc. Inhalte in eigenen Spalten darstellen (zB.: Vorab wird eine Selektion über einen Zeitraum getroffen -> sollen Werte dieses Zeitraumes summiert und in einer Spalte meiner Wahl (soll dann zB SummeWerte genannt werden) dargestellt werden. Nat. in der jeweiligen Zeile..
3. Darstellung als ALV-Liste (also list_display = 'X')

Das heißt. Ich benötige eine ALV-Liste die ich mir zusammenstellen und mit werten befüllen kann von wo und wie ich will...

Ein normaler Report mit WRITE (zahl) kommt nicht in Frage, da ich in "ABAP Programmierrichtlinien" lese.. und da steht was von guten und schlechten Beispielen. Schlecht sind dort alle klassischen Listenausgaben. Gut hingegen alle ALV-Listen. Nur muss es dann ja auch die Möglichkeit geben diese Liste zu gestalten wie man will. Da ich hierbei auf keinen grünen Zweig komme, möchte ich euch mal fragen, da ich blutiger Anfänger in ABAP bin. Ich lese dann in einem Forum was von alv_grid, in dem anderen von cl_salv_tables und und und... ich sehe nicht mehr durch

Anbei mal was ich seither gemacht habe, aber nun nicht mehr weiterkomme, da ich nicht weiß wie ich eigene Spalten erzeugen kann, welche ich füllen kann wie udn mit was ich möchte. Der Code an sich funktioniert soweit:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report  ZMW_TESTOBJECTS2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zmw_testobjects2.

*&---------------------------------------------------------------------*
*& Global Declarations
*&---------------------------------------------------------------------*
TABLES: tabelle1,
        tabelle2,
        tabelle3.

*----------------------------------------------------------------------*
* SELECTION-SCREEN                                                     *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK choices WITH FRAME.
PARAMETERS:
  l_field1 TYPE tabelle1-field1 OBLIGATORY,
  l_field2 TYPE tabelle2-field2 OBLIGATORY,
  l_field3 TYPE tabelle2-field3,
  l_field4 TYPE tabelle1-field4.
SELECTION-SCREEN END OF BLOCK choices.

*&---------------------------------------------------------------------*
*& Class Test Definition
*&---------------------------------------------------------------------*

CLASS test_class DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS: read_data,
                   fill_list.

  PRIVATE SECTION.
      TYPES: BEGIN OF struc_out_table1,
              field3 LIKE tabelle2-field3,
              field2 LIKE tabelle2-field2,
              field4 LIKE tabelle1-field4,
              field1 LIKE tabelle1-field1,
              field5 LIKE tabelle3-field5,
             END OF struc_out_table1.

    CLASS-DATA: it_out_table1   TYPE TABLE OF   struc_out_table1,
                ctl_salv_list   TYPE REF TO     cl_salv_table,
                ctl_salv_exc    TYPE REF TO     cx_salv_msg.
ENDCLASS.                    "test_class DEFINITION

*&---------------------------------------------------------------------*
*& Class Test Implementation
*&---------------------------------------------------------------------*

CLASS test_class IMPLEMENTATION.

*&---------------------------------------------------------------------*
*& Method read_data
*&---------------------------------------------------------------------*
  METHOD read_data.
    SELECT tabelle2~field2 tabelle2~field3 tabelle1~field1
       FROM tabelle2
          INNER JOIN tabelle1
            ON tabelle2~field3 = tabelle1~field3
            INTO CORRESPONDING FIELDS OF TABLE it_out_table1
              WHERE    tabelle1~field1 = l_field1
              AND      tabelle2~field2 = l_field2
              ORDER BY tabelle2~field3.

        CALL METHOD fill_list.
  ENDMETHOD.                    "read_data
*&---------------------------------------------------------------------*
*& Method fill_list
*&---------------------------------------------------------------------*
  METHOD fill_list.
    TRY.
      cl_salv_table=>factory(
        EXPORTING
          list_display = 'X'
        IMPORTING
          r_salv_table = ctl_salv_list
        CHANGING
          t_table      = it_out_table1
                             ).

                  ctl_salv_list->display( ).

    CATCH cx_salv_msg INTO ctl_salv_exc.
      MESSAGE ctl_salv_exc TYPE 'I'
        DISPLAY LIKE 'E'.
    ENDTRY.
  ENDMETHOD.

ENDCLASS.                    "test_class IMPLEMENTATION

START-OF-SELECTION.
  test_class=>read_data( ).

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


Re: welcher Baustein für mein Vorhaben

Beitrag von .marc. (ForumUser / 20 / 1 / 0 ) »
muss ich da so einen feldkatalog anlegen, bzw. geht das überhaupt in cl_salv_table? ich lese das immer nur im zusammenhang mit anderen bausteinen... aber ich glaube das ist das was ich benötige.. ja oder nein?

hat keiner eine antwort dazu? :\ komme echt nicht weiter... oder ihr sagt ich muss weg von cl_salv_table... hin zu.. keine ahnung (das is mein problem...)

Re: welcher Baustein für mein Vorhaben

Beitrag von NoodyHD (ForumUser / 11 / 0 / 1 ) »
Schau dir mal die Klasse cl_gui_alv_grid an, hier ein kleines Beispiel für ein ALV-Grid mit dieser Klasse:

Code: Alles auswählen.

DATA: lr_custom_container TYPE REF TO cl_gui_custom_container,
	glr_grid  TYPE REF TO cl_gui_alv_grid.

IF lr_custom_container IS INITIAL.
    CREATE OBJECT lr_custom_container
      EXPORTING
        CONTAINER_NAME = 'C_CONTAINER'.
    CREATE OBJECT lr_grid
      EXPORTING
        I_PARENT = lr_custom_container.
  ENDIF.

 CALL METHOD lr_grid->set_table_for_first_display
    EXPORTING
*      I_STRUCTURE_NAME = STRUCTURE_NAME'

      IS_LAYOUT        = ls_layout
    CHANGING
      IT_OUTTAB        = gt_outtab
      it_fieldcatalog = lt_fcat.


  call METHOD cl_gui_cfw=>flush.
GT_OUTTAB ist die Tabelle, die die anzuzeigenden Daten enthält.
IS_Layout ist optional.
Wenn du die Struktur direkt mitgibts (I_STRUCTURE_NAME), dann brauchst du keinen Feldkatalog (it_fieldcat), ansonsten erstelle dir einen Feldkatalog mit:

Code: Alles auswählen.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
   EXPORTING
*     I_BUFFER_ACTIVE              =
      I_STRUCTURE_NAME             = 'Structure_Name'
*     I_CLIENT_NEVER_DISPLAY       = 'X'
*     I_BYPASSING_BUFFER           =
*     I_INTERNAL_TABNAME           =
    CHANGING
      CT_FIELDCAT                  = lt_fcat
   EXCEPTIONS
     INCONSISTENT_INTERFACE       = 1
     PROGRAM_ERROR                = 2
     OTHERS                       = 3
            .

Seite 1 von 1

Vergleichbare Themen

0
Antw.
1848
Views
Baustein ALM_ME_ORDER_USERSTATUS_CHANGE
von JensDA » 21.03.2011 13:32 • Verfasst in ABAP® Core
4
Antw.
7653
Views
Frage zu Funk. - Baustein
von Mark33 » 15.06.2012 07:40 • Verfasst in ABAP® für Anfänger
0
Antw.
6951
Views
NetWeaver: Generierung C-Programm zu RFC-Baustein?
von Jufo » 12.11.2007 12:33 • Verfasst in Exchange Infrastructure
5
Antw.
3408
Views
Call Transaktion über Baustein
von dkast » 06.03.2018 15:27 • 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

BAPI zur ABSO?
Gestern von DeathAndPain 2 / 415
Materialstammerweiterung: Neuer Reiter
vor einer Woche von DeathAndPain gelöst 4 / 1046
Ermittlung der Arbeitstage (Mosid)
vor einer Woche von Radinator 11 / 46722
LSMW-Problem
vor 3 Wochen von DeathAndPain gelöst 6 / 4611

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

BAPI zur ABSO?
Gestern von DeathAndPain 2 / 415
Materialstammerweiterung: Neuer Reiter
vor einer Woche von DeathAndPain gelöst 4 / 1046
Ermittlung der Arbeitstage (Mosid)
vor einer Woche von Radinator 11 / 46722
LSMW-Problem
vor 3 Wochen von DeathAndPain gelöst 6 / 4611