ALV Grid mit bestimmten Daten erstellen.

Getting started ... Alles für einen gelungenen Start.
17 Beiträge • Seite 1 von 2 (current) Nächste
17 Beiträge Seite 1 von 2 (current) Nächste

ALV Grid mit bestimmten Daten erstellen.

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Seit einer Woche muss ich nun ABAP lernen (den BC400 und 405 im Crashkurs bekommen)und habe nun meine erste Aufgabe.

Ich soll eine Kostenstelle mit Bezeichnung, Hierarchie mit Bezeichnung und Kosten fix (glaube das hieß so), in einem ALV GRID ausgeben.
Habe mir dann alles zurecht gebastelt, funktioniert auch wunderbar.
Zum Testen der Daten habe ich ein SELECT * gemacht auf die Tabelle csks (wo Kostenstelle etc. hinterlegt sind), um zu sehen, ob das ALV auch funktioniert. Aber die Aufgabe lautet u.a. die Bezeichnung der Kostenstelle mit auszugeben, die ja in der cskt steht.
In einer normalen List Ausgabe habe ich es hinbekommen, dass mir dann nach Angabe der Kostenstelle, Buchungskreis, Sprache und Datum, die Kostenstelle mit Bezeichnung ausgegeben wird.
In der ALV Grid bekomm ich es aber nicht hin.
Habe da wohl ein Knoten im Kopf. Ich gebe ja an, dass mir in der ALV dann die Tabelle dann die Tabelel csks ausgegeben wird, in der ja aber nicht die Bezeichnung steht.
Wie bekomme ich die in die Liste bzw. kann ich mir die Liste so anpassen, dass nur Kostenstelle mit Bezeichnung in der ALV ausgegeben wird?

Danke schon mal!

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


Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
Hallo,

versuch es mal mit get / set fieldcatalog. Bsp:

call method grid1->get_frontend_fieldcatalog "Übergabe der gewünschten Felder an Feldkatalog
importing
et_fieldcatalog = gt_feldcatalog.

delete gt_feldcatalog where fieldname = 'GUID'. "Löschen des Feldes

call method grid1->set_frontend_fieldcatalog "Setzen des Feldkatalogs
exporting
it_fieldcatalog = gt_feldcatalog.
call method grid1->refresh_table_display


Hoffe das hilft dir.

grüße coco

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Danke für deine Antwort.

Bei mir sieht das so aus

CALL METHOD alv_grid->set_table_for_first_display
EXPORTING
i_structure_name = 'cskt'
i_save = 'A'
is_variant = gt_variant
CHANGING
it_outtab = it_uebung.

Unter i_structure_name wird ja angegeben, welche Struktur ausgegebn werden soll (in diesem Falle wäre das die cskt).
Ich will aber eine Struktur, in der von mir bestimmte Werte drin sind.
Also habe ich mir eine Struktur erstellt (entsprechend dann das i_structure_name angepasst), aber dann geht mir das SIng auf die Bretter.
Die STructur habe ich wie folgt angelegt.

TYPES: BEGIN OF st_codata,
kostl TYPE csks-kostl,
ktext TYPE cskt-ktext,
khinr TYPE csks-khinr,
END OF st_codata.

DATA: it_uebung TYPE STANDARD TABLE OF st_codata.

In der Struktur sollen die Daten rein, die ich aus verschiedenen anderen Tabellen herholen muss.

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
HAbe mich was durch die Hilfe gewühlt und bin über den Funktionsbaustein lvc_t_fcat gestoßen, über den ich dann was ausblebden möchte

CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'KOKS'.
wa_fieldcat-no_out = 'X'.
APPEND wa_fieldcat TO gt_fieldcat.

Die Spalte wird auch wunderbar ausgeblendet.

Wie kann ich nun Daten aus anderen Tabellen in diese Feldleiste schreiben?

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Du willst einen eigenen Feldkatalog erstellen. Da kannst du dir dann Feld für Feld aussuchen, welche du drin haben willst und welche nicht.

Eine in I_STRUCTURE genannte Struktur muss auf dem DDIC existieren, funktioniert also nicht mit programminternen Strukturen.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Das habe ich auch gemerkt und mir eine neue Struktur und Feldkatalog angelegt. Jetzt sieht die ALV Liste aus, wie sie soll (nachdem ich 'C14T_ALV_REFRESH_DISPLAY' eingebaut habe, auch ohen sch zu Wundern, warum Sachen in der Liste fehlen9.

Jetzt nur noch die Daten aus den Tabellen holen. Hoffe das bekomme ich hin.

Danke sehr.

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
errorist hat geschrieben:Jetzt nur noch die Daten aus den Tabellen holen. Hoffe das bekomme ich hin.
Wo genau ist da dein Problem? Poste doch mal dein Programm


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Bis jetzt gibt es kein Problem, habe alles so hinbekommen, wie ich soll.
Morgen dann nur noch den Doppelklick auf die Liste mit Detailinformationen.

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Bekomme das mit dem Select nicht hin.
Ich muss die Bezeichnung zu einem Hierarchieknoten ausgeben, der ja abhängig von der Kostenstelle ist.

Die Bezeichnung liegt in der Tabelle setheadert mit dem Feldnamen DESCRIPT
Der Hierarchiknoten liegt in CSKS (khinr) und die Kostenstelle auch (kostl).

Irgendwie habe ich einen Knoten im Kopf

SELECT setheadert~descript csks~khinr FROM setheadert INNER JOIN csks
ON setheadert~descript = csks~khinr
INTO CORRESPONDING FIELDS OF TABLE it_uebung
WHERE spras = sy-langu.

Da findet der keine Daten. Wo ist mein Fehler?

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
errorist hat geschrieben:ON setheadert~descript = csks~khinr
Das meinst du nicht ernsthaft SO, oder?


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Nein, war wohl nich nicht wach.

SELECT descript FROM setheadert INTO wa_uebung2-descript
WHERE langu = sy-langu
AND setname = wa_uebung2-khinr.
ENDSELECT.

Vergiss den letzten Post

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
Ok, und wo war jetzt noch dein Problem?


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Das Problem ist, dass die Daten, wenn alle gemeinsam gelesen werden sollen, nicht mehr stimmen.
Eine Spalte stimmt nie. Vielleicht kann man was aus dem Select entnehmen.
Leider ist er auch sehr unperformant. Tipps, wie das schneller geht?
Danke für eure Mühe!

* Lesen der Daten
* Lesen des Hierarchieknotens, Kostenstelle + Bezeichnung
SELECT csks~khinr csks~kostl cskt~ktext FROM csks
INNER JOIN cskt
ON csks~kostl = cskt~kostl
INTO CORRESPONDING FIELDS OF wa_uebung2
WHERE csks~kostl = pa_kostl.

ENDSELECT.
* Lesen der Beschreibung zu Kostenart
SELECT SINGLE descript FROM setheadert INTO wa_uebung2-descript
WHERE langu = sy-langu
AND setname = wa_uebung2-khinr.

* Lesen der Leistungseinheit
SELECT leinh FROM csla INTO CORRESPONDING FIELDS OF wa_uebung2
WHERE datbi = pa_datbi
AND kokrs = pa_kokrs.
ENDSELECT.

*Lesen der Leistungsart
SELECT lstar objnr FROM onrkl INTO CORRESPONDING FIELDS OF wa_uebung2
WHERE kokrs = pa_kokrs
AND kostl = pa_kostl.

APPEND wa_uebung2 TO it_uebung.
ENDSELECT.

* Lesen der Fixkosten
SELECT cost~tkf001 cost~tkf002 cost~tkf003 cost~tkf004 cost~tkf005 cost~tkf006 cost~tkf007
cost~tkf008 cost~tkf009 cost~tkf010 cost~tkf011 cost~tkf012 cost~tkf013 cost~tkf014
cost~tkf015 cost~tkf016
FROM cost INNER JOIN onrkl
ON cost~objnr = onrkl~objnr
INTO CORRESPONDING FIELDS OF wa_uebung2
WHERE gjahr = pa_gjahr.
ENDSELECT.

Beitrag von errorist (ForumUser / 43 / 0 / 1 ) »
Habe mir da smal ausgedruckt und den Fehler gefunden.
So klappt das alles wunderbar. AM Bildschirm habe ich das so nicht gesehen

SELECT csks~khinr csks~kostl cskt~ktext FROM csks
INNER JOIN cskt
ON csks~kostl = cskt~kostl
INTO CORRESPONDING FIELDS OF wa_uebung2
WHERE csks~kostl = pa_kostl.

* Lesen der Beschreibung zu Kostenart
SELECT SINGLE descript FROM setheadert INTO wa_uebung2-descript
WHERE langu = sy-langu
AND setname = wa_uebung2-khinr.

* Lesen der Leistungseinheit
SELECT SINGLE leinh FROM csla INTO CORRESPONDING FIELDS OF wa_uebung2
WHERE datbi = pa_datbi
AND kokrs = pa_kokrs.

*Lesen der Leistungsart
SELECT SINGLE lstar objnr FROM onrkl INTO CORRESPONDING FIELDS OF wa_uebung2
WHERE kokrs = pa_kokrs
AND kostl = pa_kostl.

* Lesen der Fixkosten
SELECT SINGLE objnr FROM onrkl
INTO wa_uebung2-objnr
WHERE kostl = pa_kostl
AND kokrs = pa_kokrs
AND lstar = wa_uebung2-lstar.

SELECT SINGLE cost~tkf001 cost~tkf002 cost~tkf003 cost~tkf004 cost~tkf005 cost~tkf006 cost~tkf007
cost~tkf008 cost~tkf009 cost~tkf010 cost~tkf011 cost~tkf012 cost~tkf013 cost~tkf014
cost~tkf015 cost~tkf016
FROM cost
INTO CORRESPONDING FIELDS OF wa_uebung2
WHERE gjahr = pa_gjahr
AND objnr = wa_uebung2-objnr.
APPEND wa_uebung2 TO it_uebung.

IF sy-subrc <> 0.
WRITE text-001.
EXIT.
ENDIF.
ENDSELECT.

Jetzt nur noch was performanter machen.

Beitrag von ralf.wenzel (Top Expert / 3935 / 200 / 281 ) »
errorist hat geschrieben:Jetzt nur noch was performanter machen.
Am besten durch Weglassen von INTO CORRESPONDING FIELDS - stattdessen sollten die Zielfelder entsprechend deklariert sein. Dann achte drauf ob die Schlüsselfelder auch in ihrer vorhandenen Reihenfolge in der WHERE-Bedingung stehen und nicht etwa in einer anderen.

Das sind die ersten beiden Sachen dir mir ganz spontan eingefallen sind.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Vergleichbare Themen

2
Antw.
1722
Views
ALV-Grid-FuBau: Seitenumbruch unter bestimmten Bedingungen
von ralf.wenzel » 29.06.2008 12:43 • Verfasst in ABAP® Core
5
Antw.
4371
Views
3
Antw.
6923
Views
ALV-Grid: Wo sind die Daten?
von OliTe » 11.07.2005 11:36 • Verfasst in ABAP® für Anfänger
6
Antw.
3766
Views
Solved - ALV GRID mit Daten füllen
von sp89 » 08.06.2009 09:12 • Verfasst in ABAP® für Anfänger
3
Antw.
12780
Views
ALV Grid Daten ändern und speichern.
von vvu » 27.03.2008 10: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

Regex in where
vor 8 Minuten von tar 8 / 171
Daten an Tabelle binden
vor 23 Stunden von Bright4.5 3 / 1487

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

Regex in where
vor 8 Minuten von tar 8 / 171
Daten an Tabelle binden
vor 23 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

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