Zeileninhalt nicht anzeigen cl_salv_table

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

Zeileninhalt nicht anzeigen cl_salv_table

Beitrag von abap_frischling (ForumUser / 31 / 12 / 0 ) »
Hallo miteinander,

eine kleine Frage: Ist es möglich in meiner ALV Liste, beim Einfügen neuer Zeilen, bestimmten Inhalt auszublenden? In meiner itab sind die ersten acht Zeilen immer gleich, was verändert wird, ist der Bestand und Zu-/Abgänge. Diese sollen beim INSERT weiterhin hinzugefügt werden, bloß ohne die ersten acht Zeilen. Geht das?

Code: Alles auswählen.

CLEAR lt_mbew.
SELECT matnr vprsv verpr stprs FROM mbew INTO CORRESPONDING FIELDS OF ls_preis
  WHERE matnr IN so_matnr
  AND bwkey IN so_werks.
  IF ls_preis-vprsv = 'S'.
    ls_preis-preis = ls_preis-stprs.
  ELSEIF ls_preis-vprsv = 'V'.
    ls_preis-preis = ls_preis-verpr.
  ENDIF.
  APPEND ls_preis TO lt_preis.
ENDSELECT.

CLEAR lt_outtab.
SELECT
  a~matnr,
  a~werks,
  a~ekgrp,
  b~matkl,
  b~mtart,
  b~meins,
  c~maktx,
  d~lbkum,
  f~preis
  FROM marc AS a
  INNER JOIN mara AS b
  ON a~matnr = b~matnr
  INNER JOIN makt AS c
  ON a~matnr = c~matnr
  INNER JOIN mbew AS d
  ON a~matnr = d~matnr
  AND a~werks = d~bwkey
  INNER JOIN @lt_preis AS f
  ON a~matnr = f~matnr
  WHERE a~matnr IN @so_matnr
  AND a~werks IN @so_werks
  AND a~ekgrp IN @so_ekgrp
  AND b~matkl IN @so_matkl
  AND b~mtart IN @so_mtart
  AND c~spras = @sy-langu
  INTO CORRESPONDING FIELDS OF TABLE @lt_outtab.

LOOP AT lt_outtab INTO ls_outtab.
  SELECT MAX( netpr ) INTO @DATA(lv_netpr)
    FROM ekpo
    WHERE matnr = @ls_outtab-matnr
    AND   werks = @ls_outtab-werks.
  ls_outtab-netpr = lv_netpr.
  SELECT SINGLE * FROM ekpo INTO ls_ekpo
    WHERE matnr = ls_outtab-matnr
    AND werks = ls_outtab-werks
    AND netpr = lv_netpr.
  ls_outtab-peinh = ls_ekpo-peinh.
  MODIFY lt_outtab FROM ls_outtab.
ENDLOOP.

LOOP AT lt_outtab INTO ls_outtab.
  SELECT SINGLE * INTO @DATA(ls_salk)
    FROM mbew
    WHERE matnr = @ls_outtab-matnr
    AND bwkey = @ls_outtab-werks.
  ls_outtab-salk3 = ls_salk-salk3.
  MODIFY lt_outtab FROM ls_outtab.
ENDLOOP.

LOOP AT lt_outtab INTO ls_outtab.
  LOOP AT lt_rdate INTO ls_rdate.
    CLEAR: lv_requr, lv_aquis, lv_eomstk, lv_salk.
    SELECT SINGLE * FROM mdkp INTO ls_mdkp
      WHERE matnr = ls_outtab-matnr
      AND plwrk = ls_outtab-werks.
    lv_dtnum = ls_mdkp-dtnum.
    PERFORM calculate-plumi.
    SELECT * INTO TABLE lt_mdkpdb FROM mdkpdb
      WHERE matnr = ls_outtab-matnr
      AND plwrk = ls_outtab-werks.
    LOOP AT lt_mdkpdb INTO ls_mdkpdb.
      lv_dtnum = ls_mdkpdb-dtnum.
      PERFORM calculate-plumi.
    ENDLOOP.
    ls_outtab-requr = lv_requr.
    ls_outtab-aquis = lv_aquis.
    PERFORM calculate_month_year.
    ls_outtab-period = lv_date.
    PERFORM get_eomstk.
    ls_outtab-eomstk = lv_eomstk.
    PERFORM salk.
    ls_outtab-salk3 = lv_salk.
    ls_outtab-lbkum = 0.
    INSERT ls_outtab INTO lt_outtab.
  ENDLOOP.
ENDLOOP.

SORT: lt_outtab BY matnr.


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


Re: Zeileninhalt nicht anzeigen cl_salv_table

Beitrag von sap_enthusiast (ForumUser / 95 / 25 / 23 ) »
Moin,

ich würde an deiner Stelle auch die restlichen loops so weit wie möglich vor dem großen loop machen und zwar mit Massendaten-Abfrage mit for all entries.
die performs würde ich auch ggf. auch mit statischen Methoden einer lokal definierten Klasse mit Import- und Return-Parametern ersetzen damit es übersichtlicher wird.

Letztens würde ich anstatt

Code: Alles auswählen.

INTO ls_outtab
eher folgende Version nehmen

Code: Alles auswählen.

LOOP AT lt_outtab ASSIGNING FIELD-SYMBOL(<fs_outtab>) 
Somit bleibt dir Modify am Ende erspart

Ansonsten könntest ja Zeilen anhängen wobei die nicht gebrauchten Felder leer wären müssten, dann ist aber der Zugriff auf diese Zeilen ziemlich schwer.

Re: Zeileninhalt nicht anzeigen cl_salv_table

Beitrag von Xilukarim (ForumUser / 58 / 11 / 5 ) »
>Ansonsten könntest ja Zeilen anhängen wobei die nicht gebrauchten Felder leer wären müssten, dann ist aber der Zugriff auf diese Zeilen ziemlich schwer.

Dann müssten die Schlüsselfelder für den Zugriff in der Tabelle gedoppelt und die doppelten grundsätzlich als Spalte nicht angezeigt werden (technische Spalte).

Und was wäre damit, nach den Spalten, deren Inhalt nicht angezeigt werden soll, zu sortieren? Dann wird doch standardmäßig nur in der obersten Zeile der Inhalt angezeigt und danach nicht mehr.
ECC 6.07
Netweaver 7.40

Seite 1 von 1

Vergleichbare Themen

2
Antw.
5159
Views
Salv Table - Layouts speichern
von JohnLocklay » 14.06.2019 11:33 • Verfasst in ABAP Objects®
2
Antw.
1939
Views
SALV Totalline Prozentuale Veränderung anzeigen
von Kowalski » 11.10.2012 13:56 • Verfasst in ABAP® Core
3
Antw.
3787
Views
Doku Button in SALV Toolbar anzeigen
von osama » 08.04.2020 10:00 • Verfasst in ABAP® für Anfänger
3
Antw.
2990
Views
GUI Status verhindert on click Event des SALV Table
von Pinguincommander » 05.02.2019 09:51 • Verfasst in ABAP® Core
1
Antw.
3692
Views
dynamic table in alv grid anzeigen
von kostonstyle » 07.08.2008 11:29 • Verfasst in ABAP® für Anfänger

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.