ALV Filter Spalte definieren

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

ALV Filter Spalte definieren

Beitrag von SvenL (ForumUser / 7 / 0 / 0 ) »
Hallo zusammen,

ich bau en ALV über REUSE_ALV_GRID_DISPLAY auf und möchte nun über einen eigenen Button (der im Dynpro-Status definiert ist) zunächst die Spalte per Programm markieren und dann die Standartfunktion für Filter nutzen. Also quasie nur erreichen, dass die Anwender die Spalte nicht selber markieren müssen.

Ich habe das so versucht:

wa_cols-fieldname = 'TYPBZ'.
APPEND wa_cols TO cols.

CALL METHOD e_grid->set_selected_columns
EXPORTING
it_col_table = cols
is_keep_other_selections = ''.

h_ucomm = '&ILT'.
CALL METHOD e_grid->set_function_code
CHANGING
c_ucomm = h_ucomm.


Wenn ich nun im Programm den entpsrechenden Button drück kommt nun aber das Popup in der man die Spalte für den Filter auswählen soll.
Man kann aber im eigentlichen ALV hintendran sehen, dass die gewünschte Spalte tatsächlich markiert ist, nur der Filter hat das wohl nicht mitbekommen. Breche ich ab und drück den Button gleichnochmal, dann hat er die Spaltenmakrierung richtig.

Irgendwie scheint ja na "eine kleiner Tritt" zu fehlen.
Wenn jemand eine Idee hat, wäre es Klasse. Vielen Dank schonmal.

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


Re: ALV Filter Spalte definieren

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Wie hast Du den "e_grid" deklariert und wie rufst Du den Fuba REUSE_ALV_GRID_DISPLAY auf?

Re: ALV Filter Spalte definieren

Beitrag von SvenL (ForumUser / 7 / 0 / 0 ) »
DATA : e_grid TYPE REF TO cl_gui_alv_grid.

g_repid = sy-repid.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'REAKTION_AUF_USER'
i_grid_title = 'Geräte-Einweisungen gm. MPG'
i_save = 'A'
i_structure_name = '/anfman/equi_ein'
is_layout = gs_layout
TABLES
t_outtab = equi_ein_tab_all.

Re: ALV Filter Spalte definieren

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
SvenL hat geschrieben:Irgendwie scheint ja na "eine kleiner Tritt" zu fehlen.
Hast du mal versucht den ALV Grid vor dem neuen USER-COMMAND zu refreshen (e_grid->REFRESH_TABLE_DISPLAY)?
Gruß Hendrik

Re: ALV Filter Spalte definieren

Beitrag von SvenL (ForumUser / 7 / 0 / 0 ) »
hab ich gemacht, dann ist die Spaltenmarkierung sogar ganz weg

Re: ALV Filter Spalte definieren

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Wo besteht den eine Verbindung zwischen der Klasse "DATA : e_grid TYPE REF TO cl_gui_alv_grid." und dem FuBa 'REUSE_ALV_GRID_DISPLAY'.

Da hat das eine "cl_gui_alv_grid" mit dem anderen 'REUSE_ALV_GRID_DISPLAY' doch gar nichts zu tun?!?!?

Ehrlich gesagt verstehe ich auch die Anforderung nicht ganz und finde sie etwas seltsam.
Das ist so eine halbe Sache fuer mich. Vielleicht gibt es ja User die wollen die Selektion/Filter der Spalte gar nicht.

Ziemlicher Aufwand um eine Standardfunktion "halb" auszufuehren.

Re: ALV Filter Spalte definieren

Beitrag von SvenL (ForumUser / 7 / 0 / 0 ) »
Was ALV und Methoden etc. angeht fehlt es mir an Erfahrung und steig da auch nich nicht so ganz durch.

Aber "irgendeinen" Zusammenhang scheint es ja doch zu haben? Die Spalte ansich ist ja markiert, nur weiss der Filter im ersten Anlauf nichts davon.

Die Standartfilterfunktion steht den Anwender natürlich auch zur Verfügung.

Die bisherige Anwendung war ohne ALV und es gab eben verschiedenen vordefinierte Auswahlmöglichkeiten und der Keyuser ist der Meinung, die Anwender kommen mit den normalen Filter nicht klar, wenn Sie selber erst eine Spalte markieren müssen. Somit soll es also für bestimmte Spalten einen eigenen Filterknopf geben.

Re: ALV Filter Spalte definieren

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
SvenL hat geschrieben:Was ALV und Methoden etc. angeht fehlt es mir an Erfahrung und steig da auch nich nicht so ganz durch.

Aber "irgendeinen" Zusammenhang scheint es ja doch zu haben? Die Spalte ansich ist ja markiert, nur weiss der Filter im ersten Anlauf nichts davon.
Da bin ich mir nicht so sicher. Das koennt auch ein "Bedienungsfehler" sein.
SvenL hat geschrieben: Die Standartfilterfunktion steht den Anwender natürlich auch zur Verfügung.

Die bisherige Anwendung war ohne ALV und es gab eben verschiedenen vordefinierte Auswahlmöglichkeiten und der Keyuser ist der Meinung, die Anwender kommen mit den normalen Filter nicht klar, wenn Sie selber erst eine Spalte markieren müssen. Somit soll es also für bestimmte Spalten einen eigenen Filterknopf geben.
Man sollte dem Keyuser klar machen, dass die Anwender viel mehr davon profitieren, wenn sie den ALV bedienen koennen, also geschult werden.
Ansonsten wird es so kommen, dass Du jedes Programm, obwohl Du den ALV als Ausgabe benutzt, "Anwendergerecht" anpassen musst.
Der Aufwand kann immens werden.

Uebrigens kannst Du die vordefinierten Auswahlmoeglichkeiten auch als Varianten abspeichern und im Selektionsbildschirm anbieten (oder auch nicht) und den ALV direkt mit der Variante aufrufen und ausfuehren. Du kannst auch die Filterfunktion programmieren und beim Aufruf des ALV im Programm mitgeben.

Re: ALV Filter Spalte definieren

Beitrag von SvenL (ForumUser / 7 / 0 / 0 ) »
Also so wie ich d.as verstanden habe wird die logische Verbindung von "e_grid" und "REUSE_ALV_GRID_DISPLAY'
durch

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = e_grid

hergestellt.

Sinn oder Unsinn Anwendern dieses Service zu bieten ist ein anderes Thema :wink:
Aber es soll halt so sein.......

Als Variante geht nicht, da ich ja nicht den Wert nach dem gefiltert werden soll vorbelegn soll, sondern nur die Spalte in der gefiltert werden soll.
Der Filterwert ist ja jedesmal eine anderer.

Re: ALV Filter Spalte definieren

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
SvenL hat geschrieben:Also so wie ich d.as verstanden habe wird die logische Verbindung von "e_grid" und "REUSE_ALV_GRID_DISPLAY'
durch

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = e_grid

hergestellt.
Den Aufruf muss ich in den vorherigen Postings uebersehen haben, sorry.
SvenL hat geschrieben: Sinn oder Unsinn Anwendern dieses Service zu bieten ist ein anderes Thema :wink:
Aber es soll halt so sein.......
Ist fuer mich persoenlich kein Service. Eher Unwissenheit des Keyusers oder das "dummhalten" anderer. Was nach und nach zu Frustration fuehrt.
SvenL hat geschrieben: Als Variante geht nicht, da ich ja nicht den Wert nach dem gefiltert werden soll vorbelegn soll, sondern nur die Spalte in der gefiltert werden soll.
Der Filterwert ist ja jedesmal eine anderer.
Woher weisst Du den die Spalte die gefilter werden soll? Wenn jemand die Spalte angibt, kann er auch gleich den Filterwert angeben.

Zusatz: Lange Rede .... Ich weiss nicht wie es geht, was Du und Deine Keyuser vorhast.

Noch ein Zusatz: Hier ist ein Beispiel http://www.tricktresor.de/content/index ... 14&aID=632 vielleicht kannst Du dort etwas ableiten, warum es nicht funktioniert, wie es funktionieren soll:\

Der Baustein REUSE_ALV_GRID_DISPLAY dient eigentlich dazu, eine Tabelle auf einfachste Art und Weise anzuzeigen. Manchmal möchte man aber doch auf die verwendete Klasse CL_GUI_ALV_GRID zugreifen können da bestimmte Funktionen nur hier und nicht im REUSE-Baustein möglich sind.

Re: ALV Filter Spalte definieren

Beitrag von SvenL (ForumUser / 7 / 0 / 0 ) »
Glaub mir das hat so durchaus seinen Sinn, das sind Anwender die im Schnitt vielleicht einmal im Monat kurz was im System nachschauen müssen.

Tricktresor etc. hatte ich vor meinem Posting auch schon geschaut.. sowie natürlich SAp-Hilfe-Themen und auch gegoogelt.

Aber Danke für die Mühe :up:

Re: ALV Filter Spalte definieren

Beitrag von SvenL (ForumUser / 7 / 0 / 0 ) »
sodele bin doch noch fündig geworden, falls jemand mal auf ähnliche Ideen kommt, der Vollständigkeit halber:

nach dem Setzen der Spaltenmarkierung über die Methode "set_selected_columns"

hab ich jetzt noch dem Aufruf

CALL FUNCTION 'AC_FLUSH_CALL'
EXPORTING
system_flush = ' '
IMPORTING
message_nr = rc
message_text = msgli.

eingebaut, danach weiss dann die Filterfunktion von der markierten Spalte.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1574
Views
TableView Filter
von axcoma » 13.10.2005 11:18 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
1646
Views
Filter bei ALV-Funktion
von ibo » 18.11.2016 13:29 • Verfasst in ABAP® für Anfänger
0
Antw.
947
Views
ADT Debugger Filter
von SaskuAc » 20.09.2018 13:17 • Verfasst in ABAP® Core
5
Antw.
3148
Views
REUSE ALV und Filter
von Google » 06.06.2007 16:12 • Verfasst in ABAP® Core
2
Antw.
3066
Views
Filter CL_SALV_TABLE
von jensschladitz » 18.12.2013 08:01 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 72
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141