Zelleninhalt im GRID ausblenden

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

Zelleninhalt im GRID ausblenden

Beitrag von Kojak (ForumUser / 63 / 0 / 0 ) »
Hi,

hab ich die Möglichkeit wie in Excel bestimmte Zelleninhalte ausblenden zu lassen?
ICh habe eine Menge Spalten von denen ich zur Laufzeit weiß, welchen Wert die jeweiligen Zellen haben - alles Integerwerte.

In jeder Spalte gibt es mindestens eine Zelle die einen Wert hat (z.B. 4711) und die meisten anderen sind 0. Kann ich nun alle Nullen von Spalte x - Spalt y ausblenden lassen, so dass kein Wert drinnen steht? Wäre um einiges übersichtlicher!

Danke im Voraus!

Ciao Kojak

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


Beitrag von made (ForumUser / 49 / 0 / 0 ) »
Hi!
Du musst erstmal einen Fieldcatalog anlegen mit dem FB 'REUSE_ALV_FIELDCATALOG_MERGE' und eine interne Tabelle dafür definieren, also so:

Code: Alles auswählen.

 
DATA:        gt_fieldcat TYPE slis_t_fieldcat_alv .
FIELD-SYMBOLS: <fs_slis> TYPE slis_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
   EXPORTING
     i_program_name               = 'PROGRAMMNAME'
*   I_INTERNAL_TABNAME           =
     i_structure_name             = 'STRUKTURNAME'
*   I_CLIENT_NEVER_DISPLAY       = 'X'
*   I_INCLNAME                   =
   i_bypassing_buffer           = 'X'
*   I_BUFFER_ACTIVE              =
    CHANGING
      ct_fieldcat                  = gt_fieldcat
 EXCEPTIONS
   inconsistent_interface       = 1
   program_error                = 2
   OTHERS                       = 3.

  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
Danach musst du den ganzen Feldern, bei denen du etwas anders haben willst, z.B. keine Nullen anzeigen, über einem Loop dieses mitteilen:

Code: Alles auswählen.

 
LOOP AT gt_fieldcat   ASSIGNING <fs_slis>.
    CASE <fs_slis>-fieldname.
      WHEN 'FELD1'.
*------- Feld1(Spalte1)
        <fs_slis>-no_zero         = 'X'.
      WHEN 'FELD2'.
*------- Feld2(Spalte2)
        <fs_slis>-no_zero         = 'X'.
      WHEN 'FELD3'.
*------- Feld3(Spalte3)
        <fs_slis>-no_zero         = 'X'.
      WHEN 'FELD4'.
*------- Feld4(Spalte4)
        <fs_slis>-no_zero         = 'X'.
      WHEN 'FELD5'.
*------- Feld5(Spalte5)
        <fs_slis>-no_zero         = 'X'.
      WHEN 'FELD6'.
*------- Feld6(Spalte6) wird nicht ausgegeben
        <fs_slis>-no_out       = 'X'.
      WHEN OTHERS.
    ENDCASE.
  ENDLOOP.

Also mit no_zero werden keine Nullen ausgegeben und mit no_out wird die ganze Spalte nicht ausgegeben. Bei Feld1, Feld2 etc musst du den Feld- bzw. Spaltennamen eintragen.

So, nachdem du das gemacht hast, schreibst du den Aufruf deines ALV-Grids und gibst diesem den Fieldcatalog mit und natürlich die Ausgabetabelle (im beispiel gt_ausg).

Code: Alles auswählen.

    
  DATA: g_repid LIKE sy-repid.
  DATA: ls_variant TYPE disvariant.
  g_repid = sy-repid.
  ls_variant-report = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
     EXPORTING
*   I_INTERFACE_CHECK             = ' '
      i_bypassing_buffer          = 'X'
*   I_BUFFER_ACTIVE               = ' '
      i_callback_program          = g_repid
      i_structure_name            = 'STRUKTURNAME
*   I_BACKGROUND_ID               = ' '
*   I_GRID_TITLE                  =
*   I_GRID_SETTINGS               =
*     is_layout                   =  ' '
      it_fieldcat                 = gt_fieldcat
*     it_sort                     = ' '
      i_save                      = 'U'
      is_variant                  = ls_variant
     TABLES
      t_outtab                    = gt_ausg
     EXCEPTIONS
      program_error               = 1
      OTHERS                      = 2.

    IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
Das müsste es dann gewesen sein und schon siehst du keine Nullen mehr in deinem ALV-Grid. 8)
Hoffe es hilft dir ein wenig!
Grüße Made

Beitrag von Kojak (ForumUser / 63 / 0 / 0 ) »
Danke made, funktioniert einwandfrei ... :D

Da ich allerdings schon einen Fieldcat hatte, müsste ich nur noch ls_fieldcat-no_zero = 'X' setzen und es funktioniert klasse! Auf das no_zero bin ich leider nicht gekommen, bzw. habe es nicht gefunden ... :wink:

Ciao Kojak

Seite 1 von 1

Vergleichbare Themen

9
Antw.
25077
Views
Toolbarelemente im ALV-Grid ausblenden
von Jens Rommel » 13.06.2008 09:49 • Verfasst in ABAP Objects®
1
Antw.
7101
Views
ABAP OO | Spalte ausblenden bei ALV Grid
von holderda » 13.06.2014 09:36 • Verfasst in ABAP Objects®
6
Antw.
6075
Views
ALV GRID einzelne Zellen ausblenden
von ek53 » 06.04.2017 15:41 • Verfasst in ABAP® für Anfänger
3
Antw.
4937
Views
ALV-Grid ausblenden einzelner Zellen
von SAP_ENTWICKLER » 31.01.2014 07:19 • Verfasst in ABAP® Core
0
Antw.
2184
Views

Über diesen Beitrag


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

Aktuelle Forenbeiträge

LSMW-Problem
vor einer Woche von DeathAndPain gelöst 6 / 3692
SFP (Adobe Forms) QR-Code wird nicht angezeigt
vor einer Woche von Sebastian82 gelöst 4 / 2211

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.