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.
9830
Views
Toolbarelemente im ALV-Grid ausblenden
von Jens Rommel » 13.06.2008 09:49 • Verfasst in ABAP Objects®
3
Antw.
3343
Views
ALV-Grid ausblenden einzelner Zellen
von SAP_ENTWICKLER » 31.01.2014 07:19 • Verfasst in ABAP® Core
6
Antw.
3914
Views
ALV GRID einzelne Zellen ausblenden
von ek53 » 06.04.2017 15:41 • Verfasst in ABAP® für Anfänger
1
Antw.
5629
Views
ABAP OO | Spalte ausblenden bei ALV Grid
von holderda » 13.06.2014 09:36 • Verfasst in ABAP Objects®
5
Antw.
12415
Views
ALV- Grid und Symbole in der Toolbar ausblenden
von Wolf_D » 27.06.2005 13:31 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
vor 23 Stunden von black_adept gelöst 8 / 1734
HR-Entgeltnachweis
Gestern von ChrisB 4 / 2290

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
vor 23 Stunden von black_adept gelöst 8 / 1734
HR-Entgeltnachweis
Gestern von ChrisB 4 / 2290

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 265
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 852
MS-Word als Editor
letzen Monat von tekko 1 / 4365