Filterung im ALV nur bis Länge 10 möglich

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
8 Beiträge • Seite 1 von 1
8 Beiträge Seite 1 von 1

Filterung im ALV nur bis Länge 10 möglich

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

mir ist ein Fehlverhalten in der Filterfunktionalität der ALV-Ausgabe aufgefallen und ich weiß nicht, wie man ihn am Besten ausmerzen kann.
Folgendes Problem:
Ich habe mit dem FuBa 'REUSE_ALV_GRID_DISPLAY' eine Tabelle aufgebaut und mit den entsprechenden Einträge befüllt. Nun ist in der Tabelle ein Feld mit CHAR 40 hinterlegt und er benötigt auch diese Länge. Die Ausgabe funktioniert einwandfrei und es wird auch der ganze Name ausgegeben. Wenn ich nun in dieser Tabelle das Standardfiltersymbol verwende, werden auch alle unterschiedlichen Einträge angezeigt, wähle ich dann allerdings einen Eintrag mit Länger größer 10 aus, ist die angezeigte Tabelle leer, obwohl sich in ihr Einträge befinden, da er beim filtern nach dem 10 Zeichen abbricht und somit kein Eintrag den entsprechenden Kriterien entspreicht.
Beispiel.
Tabelleneintrag '1234567890123'
Wähle ich nun diesen Eintrag zum Filtern aus, schneidet er ihn nach der 0 ab und filtert somit nach '1234567890', für das es keinen Eintrag in der Tabelle gibt und diese demzufolge leer ist.
Wähle ich einen Eintrag bei der Filterung kleiner gleich 10 aus, filtert mir der FuBa richtig.

Wie kann ich dem Filter sagen: "Hey, du sollst nach dem ganzen Eintrag filtern?"

Danke für eure Antworten! Ihr seid echt klasse!

Ciao Kojak

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


Beitrag von airwaver (Specialist / 134 / 0 / 1 ) »
Hört sich ziemlich dubios an. Ich habe eben auch mal nen Programm angeschaut, das den REUSE-Baustein benutzt. Habe dann mal einige Felder die alle länger als 10Zeichen sind nach einem der Inhalte gefiltert. Es hat einwandfrei funktioniert.
Kann es sein, dass du vielleicht im Feldkatalog was falsch eingestellt hast?

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

danke für deine Antwort. Ich habe mir den Feldkatalog mal angesehen, finde aber keinen Fehler ... anbei poste ich ihn mal:

Code: Alles auswählen.

* Tabelle mit allen Fertigungsaufgaben
DATA: BEGIN OF i_tab OCCURS 1,
...
        status(20),                       " Status
...
END OF i_tab.

Code: Alles auswählen.

*   Fieldcatalog erzeugen
    PERFORM fieldcat_init USING fieldcat[].

Code: Alles auswählen.

FORM fieldcat_init USING f_fieldcat TYPE slis_t_fieldcat_alv.

  DATA: ls_fieldcat TYPE slis_fieldcat_alv.

  REFRESH f_fieldcat.
  CLEAR ls_fieldcat.

...

  CLEAR ls_fieldcat.
  ls_fieldcat-tabname       = tabname.
  ls_fieldcat-fieldname     = 'STATUS'.
  ls_fieldcat-reptext_ddic  = 'Status'.
  APPEND ls_fieldcat TO f_fieldcat.

...

ENDFORM.                    " fieldcat_init
Dieser Feldkatalog wird dann dem FuBa mitgegeben. Es funktioniert wie gesagt auch alles einwandfrei, wenn jetzt aber in i_tab-status = 'Status gesetzt' drinnen steht, lässt sich nicht danacj filtern, weil er nach 'Status ges' filtert und logischerweise nix findet. Komisch komisch!

Ciao Kojak

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Hallo,

da es sich wohl um ein Feld einer internen Tabelle handelt, die Du manuell aufbaust, musst Du wahrscheinlich (eine entsprechende Anweisung sehe ich nicht) im Feldkatalog die Länge (hier 20) mitgeben, damit das FrontEnd-Control auch Kenntnisse von der effektiven Länge des Feldes hat.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

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

habe das Problem aber nicht nur bei "eigenen" Feldern z.B. status(20), sondern auch bei TYPE-Anweisungen, z.B. a TYPE b-c und b-c ist vom Typ Char 40. In diesem Fall ist der Filter auch auf Länge 10 beschränkt ...

Das mit der Länge habe ich ausprobiert und es ändert sich überhaupt nichts.

Code: Alles auswählen.

...
  ls_fieldcat-outputlen = 20.
...
Ich bin grad am verzweifeln ...

Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Normalerweis sollte man immer eine Refferenz mitgeben, entweder auf ein DDIC-Feld oder direckt angeben.
Also net outputlen sondern intlen (oder so ähnlich, hab das Feld grad net im Kopf)

Beitrag von Kojak (ForumUser / 63 / 0 / 0 ) »
Danke für eure schnellen Antworten!

Hab nun jede möglich Kombination von
intlen, outputlen und ddic_outputlen ausprobiert. 20 ohne Anführungszeichen oder mit '20', intlen alleine, zusammen mit outputlen, dann mal mit ddic_outputlen ... etc. haut alles nicht hin! ARGH!

Beitrag von Kojak (ForumUser / 63 / 0 / 0 ) »
Guten morgen zusammen,

so, jetzt hab ich dann doch noch die Lösung gefunden! Es hatte auch was mit outputlen zu tun, aber das war nicht das Einzigste! Beim Filtern hat der Funktionsbaustein "freundlicherweise" ALLE Zeichen auf groß gesetzt und danach gefiltert. Supersache! Jetzt musste ich die Kleinschreibung zulassen und dann hat er es gemacht.

Danke für eure Tipps, ohne diese wäre ich auch nicht ans Ziel gekommen!

Code: Alles auswählen.

... 
* nächsten beiden Zeilen wichtig für das Filtern
  ls_fieldcat-lowercase     = 'X'.
  ls_fieldcat-outputlen     = 40.
...
Ciao Kojak

Seite 1 von 1

Vergleichbare Themen

1
Antw.
3075
Views
Konvertierug vom datentyp char der länge 4 in char der länge
von ratoshuan » 28.06.2006 11:33 • Verfasst in ABAP® Core
6
Antw.
2346
Views
Filterung von Daten mit VKORG
von holderda » 04.04.2014 08:54 • Verfasst in ABAP® für Anfänger
4
Antw.
2640
Views
ALV Grid OO fehlerhafte Filterung
von erich86 » 20.02.2014 00:07 • Verfasst in ABAP® für Anfänger
3
Antw.
2422
Views
ALV Grid - Sortierung und Filterung entfernen
von der_neuling » 29.01.2021 12:28 • Verfasst in ABAP® für Anfänger
2
Antw.
4719
Views
F4-Suchhilfeexit mit Filterung über SELOPT
von sapdepp » 01.07.2015 16:07 • Verfasst in ABAP® Core

Über diesen Beitrag


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

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.