Klasse cl_gui_alv_grid benutzen

Getting started ... Alles für einen gelungenen Start.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Klasse cl_gui_alv_grid benutzen

Beitrag von Gekomo (ForumUser / 10 / 4 / 0 ) »
Hallo,

ich habe bisher folgendes Programm:

TABLES: mara, makt, marc.

SELECT-OPTIONS:
so_matnr FOR mara-matnr,
so_mtart FOR mara-mtart,
so_maktx FOR makt-maktx.

START-OF-SELECTION.

TYPES: BEGIN OF lt_material.
TYPES: matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
created_at_time TYPE mara-created_at_time,
ernam TYPE mara-ernam,
laeda TYPE mara-laeda,
aenam TYPE mara-aenam,
vpsta TYPE mara-vpsta,
pstat TYPE mara-pstat,
lvorm TYPE mara-lvorm,
mtart TYPE mara-mtart,
maktx TYPE makt-maktx,
werks TYPE marc-werks,
END OF lt_material,
lt_materials TYPE STANDARD TABLE OF lt_material WITH EMPTY KEY.



DATA: lr_table TYPE REF TO cl_salv_table,
lt_materialundText TYPE lt_materials.

SELECT mara~matnr, mara~ersda, mara~created_at_time, mara~ernam, mara~laeda, mara~aenam, mara~vpsta, mara~pstat, mara~lvorm, mara~mtart, makt~maktx, marc~werks
FROM mara
LEFT OUTER JOIN makt
ON makt~matnr = mara~matnr
AND makt~spras = @sy-langu
INNER JOIN marc
ON marc~matnr = mara~matnr
WHERE mara~matnr IN @so_matnr AND mtart IN @so_mtart
INTO CORRESPONDING FIELDS OF TABLE @lt_materialundText.



cl_salv_table=>factory(
IMPORTING r_salv_table = lr_table
CHANGING t_table = lt_materialundText
).



LOOP AT lt_materialundText ASSIGNING FIELD-SYMBOL(<ls_test>).
<ls_test>-aenam = 'Test'.
ENDLOOP.

lr_table->display( ).

--------------------------------------------------------------------------------------

Ich habe also die Selektionsbildschirme, verbinde die ersten 10 Spalten der Tabelle Mara mit den entsprechenden Spalten der makt und der marc und gebe das dann mit Hilfe der Klasse cl_salv_table aus. Nun muss ich auch die Klasse cl_gui_alv_grid in das Programm einbauen und zwar so, dass ich später mit radio buttons zwischen der cl_salv_table und der cl_gui_alv_grid wechseln kann. Könnte mir da jemand weiterhelfen? Ich wollte die cl_gui_alv_grid ähnlich einbauen wie die cl_salv_table aber es klappt nicht wirklich.

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


Re: Klasse cl_gui_alv_grid benutzen

Beitrag von qyurryus (Specialist / 112 / 85 / 45 ) »
Moin,
was genau ist denn konkret das Problem? Du hast hier nur deinen aktuellen Quellcode + deine Aufgabenstellung gepostet. Sieht fast so aus als ob du einfach eine Lösung haben willst!

---- BEGIN PREDIGT-----
Teil deine Aufgabe doch in Teilaufgaben ein. Dann kannst du dich Schrittweise herantasten.
1. Radiobuttons einbauen. Kann man einfach in der ABAP Hilfe suchen, wie das geht. Oder im Internetz!
2. cl_gui_alv_grid - kommentier deinen aktuel SALV Code vielleicht aus und versuche deine Tabelle mit cl_gui_alv_grid darzustellen. Dazu gibt es im Internet unzählige Tutorials.
3. Vereinigen: Logik aufbauen, die Abhängig vom Radio-Button Wert etwas tut. Was brauchst du dafür? Ich vermute ein IF-Konstrukt! (auch hier: ABAP Hilfe für zB "IF").

Wenn du da konkret Probleme hast, kannst du hier wieder posten.
Den Weg des geringsten Widerstands zu gehen (sprich: hier deine Aufgabenstellung zu posten) wird dir auf lange Sicht nicht helfen. Du kopierst den Code dann einfach, ohne wirklich zu verstehen, was du da tust.
Ich kann dir nur sehr ans Herz liegen, dir so viel wie möglich selbstständig anzueignen. Die Aufgabe in Teilprobleme aufzuteilen + ABAP-Hilfe + das Internet sind dein Freund.

---- END PREDIGT-----

Folgende Benutzer bedankten sich beim Autor qyurryus für den Beitrag:
PeterPaletti


Re: Klasse cl_gui_alv_grid benutzen

Beitrag von Gekomo (ForumUser / 10 / 4 / 0 ) »
Ja qyurryus, du hast Recht, ich habe mein Problem nicht genau genug formuliert. Ich habe inzwischen die Radio Buttons erstellt und auch In die erste Hälfte des IF-Konstrukt die cl_salv_table eingesetzt wenn der entsprechende Button ausgewählt wird, aber ich habe Probleme damit die cl_gui_alv_grid in die zweite Hälfte einzubauen. Ich finde zwar Beispiele dazu im Internet, aber es fällt mir schwer das auf meinen Fall zu übertragen

Re: Klasse cl_gui_alv_grid benutzen

Beitrag von LeMinion (ForumUser / 20 / 1 / 6 ) »
Zeig doch mal her, was Du im ELSE-Fall bislang hast.

Re: Klasse cl_gui_alv_grid benutzen

Beitrag von Gekomo (ForumUser / 10 / 4 / 0 ) »
IF salv = 'X'.
cl_salv_table=>factory(
IMPORTING r_salv_table = lr_table
CHANGING t_table = lt_materialundText
).
ELSEIF alv_grid = 'X'.
go_grid->set_table_for_first_display(

).
ENDIF.

Ich muss halt meine Tabelle noch übergeben, aber die muss global definiert sein, meine ist lokal. Daran hänge ich grade.

Re: Klasse cl_gui_alv_grid benutzen

Beitrag von LeMinion (ForumUser / 20 / 1 / 6 ) »
Also, wesentliche Teile, die zum vollständigen Verständnis Deines konkreten Problems hilfreich wären, läßt Du einfach weg. Was steht denn derzeit zwischen den Klammern, wo Du beim Aufruf der Grid-Methode einfach nur einen Leerraum gelassen hast? Wie sieht Deine Deklaration der betroffenen Variablen aus?
Ich kann allem, was gyurryus zuvor geschrieben hat, nur beipflichten. Vielleicht solltest Du ein Coding, das Dir Probleme bereitet, zunächst in weiten Teilen selbst schon gebaut haben, unter Zuhilfenahme der genannten Ressourcen, die es für ABAP wahrlich zuhauf gibt. Sobald Du dann ein konkretes Problem ausgemacht hast, das in diesem Coding auftritt, solltest Du das Coding vollständig oder wenigstens ausreichend (!) für die Problemstellung in Deine Frage inkludieren. Ein bißchen fühlt es sich gerade wie Raterei an, auf was Du letztenendes hinaus willst oder sollst.

Wie genau lautet denn die Aufgabenstellung, die Du erhalten hast? Ich für meinen Teil verstehe überhaupt nicht, wozu es gut sein soll, zwischen den beiden Varianten hin- und herschalten zu können. Entweder man nutzt das Grid, das ingesamt flexibler und mächtiger ist, oder man benutzt die Quick-Variante, die Du ja über CL_ALV_TABLE schon zuvor erfolgreich genutzt hast. Wo kommt (plötzlich?) diese (für mich merkwürdige) Anforderung her, das Ergebnis auch mal in einem Grid anzeigen zu können? Versteh mich nicht falsch, ich will Dir auch nicht zu nahe treten, aber zumindest für mich ist eine zu gebende Hilfestellung umso leichter, desto Kontext mir bekannt ist. Wenigstens hinreichend sollte die Seiteninfo sein. Das Gefühl habe ich aber bei Deiner Frage hier nicht so wirklich. Vielleicht geht es ja nur mir so.

Folgende Benutzer bedankten sich beim Autor LeMinion für den Beitrag:
PeterPaletti


Re: Klasse cl_gui_alv_grid benutzen

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Ich stimme qyurryus und LeMinion im vollen Umfang zu.
Das sieht auch für mich fast so aus, als ob du deine Anforderungen postest und wir deine Übungsaufgaben lösen sollen.
Für die Verwendung von cl_gui_alv_grid gibt es im Internet zahlreiche Vorlagen, so zum Beispiel diese hier:
https://www.berater-wiki.de/ALV-Vorlage_CL_GUI_ALV_GRID. Da denke ich, ist man nicht überfordert, den angebotenen Code zu übernehmen und für seine Zwecke anzupassen.
Du solltest den Weg gehen, den hier qyurryus vorgeschlagen hat. Erstmal den Zweig mit dem SALV weglassen (auskommentieren) und die Lösung mit einem ALV-Grid implementieren. Wenn das läuft, dann kannst du im Nachgang die IF Abfrage und das SALV wieder einbauen.
Wenn es Probleme gibt, kannst du dich gerne wieder melden, dein Coding in einem ausreichenden Maße posten und das Problem klar darstellen. Dann hilft man dir sicher gerne.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
2489
Views
Lokale Klasse autom. in globale Klasse ändern
von JohnLocklay » 09.01.2019 09:10 • Verfasst in ABAP Objects®
5
Antw.
3586
Views
Klasse soll Typdefinition von anderer Klasse nutzen
von debianfan » 24.05.2017 11:30 • Verfasst in ABAP Objects®
1
Antw.
1636
Views
Eingabetaste benutzen
von Gast » 27.09.2005 09:30 • Verfasst in ABAP® für Anfänger
7
Antw.
4399
Views
Bausteine benutzen?
von bohne » 03.01.2005 16:11 • Verfasst in ABAP® für Anfänger
4
Antw.
19570
Views
Welche Benutzer benutzen Transaktion XY
von jspranz » 26.02.2009 10:11 • Verfasst in SAP - Allgemeines

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 5 Stunden von Bright4.5 3 / 1476
Regex in where
vor 6 Stunden von tar 6 / 143
Programm anlegen mit Vorlage
vor 21 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 22 Stunden von DeathAndPain 2 / 355

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

Daten an Tabelle binden
vor 5 Stunden von Bright4.5 3 / 1476
Regex in where
vor 6 Stunden von tar 6 / 143
Programm anlegen mit Vorlage
vor 21 Stunden von DeathAndPain 2 / 126
IT0024 Qualifikationen CP-ID
vor 22 Stunden von DeathAndPain 2 / 355

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821