Filter abfragen in Ambulanzsicht 007 im KLAP

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

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Filter abfragen in Ambulanzsicht 007 im KLAP

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Hallo,

für die Ambulanzsicht 007 existiert das Badi N1_WP_LSTAMB mit der Methode EXIT_FUNCTION, wo man auf Funktionsbuttonklicks reagieren kann. Wir haben bei uns u. a. den Funktionsbutton Z_PRINT angelegt, der die aktuelle Ambulanzliste über SAPScript druckt. So weit, so gut.

Im Coding für Z_PRINT verwende ich den FuBa ISHMED_DP_LSTSTELLE_DATA_GET, um mir die Datenmenge passend zur Selektionsvariante I_SELECTION_CRITERIA zu holen und in den FuBa-Export-Parameter E_LSTSTELLE_LIST einzulesen. Passt auch. Nun aber hat ein böser Kollege von mir im Layout der Ambulanzliste noch weitere Filter gesetzt, die natürlich nicht in I_SELECTION_CRITERIA beachtet werden. Gibt es eine Möglichkeit, diese Filter auszulesen, um die Treffermenge noch nachhaltig zu ändern? Falls nicht, existiert ein FuBa/eine Methode, mit der ich die aktuelle Ansicht als Parameter für den Druck erhalte, nach dem Motto: "What you see is what you get."?

Bsp. Der FuBa liefert mir 143 Treffer. Durch die Filterung des Kollegen bleiben in der Ansicht 9 Treffer übrig. Und die will ich!

Das Badi wird auch in anderen Ambulanzumfeldern verwendet und muss schön dynamisch sein, deswegen die Umstände.

Besten Dank!

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


Re: Filter abfragen in Ambulanzsicht 007 im KLAP

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
ISHMED_READ_VIEW_DATA oder so ähnlich liefert alle aktuellen Informationen die im Rahmen der KLAP-Sicht aktuell verwendet werden.
Ob da die Filter (eigentlich Teil vom ALV-Grid) dabei sind, kann ich jetzt leider nicht mit Sicherheit sagen.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
sapdepp

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Filter abfragen in Ambulanzsicht 007 im KLAP

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Passt. FuBa ISHMED_VM_READ_VIEW_DATA. Im Changing-Parameter C_DISPFILTER bekomme ich eine ITAB der gesetzten Filter.

VD + vG
sapdepp

Re: Filter abfragen in Ambulanzsicht 007 im KLAP

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Hallo, ADT,

gibt es hier eingentlich die Möglichkeit, dynamische Spaltennamen zu loopen? LT_N1LSTAMB hat u. a. die Spalten LEITX, LSTSTATU und POSSTATU, die gefiltert werden. Die Tabelle LTR_FILTER enthält die Selektionen dazu. Ich will dem dynamischen Spaltennamen den Low-, High-, Option- und Sign-Wert verpassen.

Code: Alles auswählen.

    loop at ltr_filter ASSIGNING <lsr_filter>.
* bzw.
    loop at ltr_filter into lsr_filter.
 

      loop at LT_N1LSTAMB into LS_N1LSTAMB where <lsr_filter>-selname = lsr_filter-low.
* bzw.
      loop at LT_N1LSTAMB into LS_N1LSTAMB where (lsr_filter-selname) = lsr_filter-low.  
                

*      APPEND LS_N1LSTAMB ...

      endloop.

    endloop.
VD + vG
sapdepp

Re: Filter abfragen in Ambulanzsicht 007 im KLAP

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Hab mir mal was gebaut um die aktuelle Liste (nicht die selektierten Einträge) über einen Funktionsbutton ausdrucken zu können. Dabei sollten auch die vom benutzer gesetzten Filter angewendet werden.

ISHMED_DP_LSTSTELLE_GET - Ermitteln der aktuellen Werte im Grid (I_GET_NEW_LISTS = abap_false)
ISHMED_VM_READ_VIEW_DATA - Den aktuellen Filter auslesen
LVC_FILTER_APPLY - Den Filter auf die Tabelle anwenden und die betroffenen Zeilen ermitteln

In ET_FILTER_INDEX stehen dann die Zeilennummern die gelöscht werden müssen und in ET_FILTER_INDEX_INSIDE jene die übrigbleiben. Dannach muss man eigentlich nur noch die Zeilen löschen:

Code: Alles auswählen.

    DATA:
      lt_filter_index TYPE LVC_T_FIDX,
      lt_data         TYPE ISH_T_LSTSTELLE_LIST,
      lt_index        TYPE lvc_t_rows.

    FIELD-SYMBOLS:
      <ld_index>      TYPE int4.

* Man könnte es auch mit ET_FILTER_INDEX_INSIDE, dann würde man keine
* Umwandlungstabelle benötigen, aber es addieren sich auch die
* langen Zeilen der Ausgabetabelle.
* Daher ist es besser, die unnötigen Zeilen herauszulöschen als die gültigen
* zu kopieren.
    IF lt_filter_index IS NOT INITIAL.
* Leider lässt sich LVC_T_FIDX nicht umsortieren, daher müssen die
* Index-Werte zuerst umgewandelt werden.
      lt_index = lt_filter_index.
      CLEAR lt_filter_index.
      SORT lt_index DESCENDING.
* Jetzt kann ich der Reihe nach die Index-Einträge löschen
      LOOP AT lt_index ASSIGNING <ld_index>.
        DELETE lt_data INDEX <ld_index>.
      ENDLOOP.
    ENDIF.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Filter abfragen in Ambulanzsicht 007 im KLAP

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Okay... Das Coding scheint schon etwas älter zu sein.
Mittlerweile lässt es ABAP auch zu bei HASH-Tabellen die Sortierung zu ändern. Wenn das also bei dir funktioniert kannst du es auch so schreiben:

Code: Alles auswählen.

    DATA:
      lt_filter_index TYPE LVC_T_FIDX,
      lt_data         TYPE ISH_T_LSTSTELLE_LIST.

    FIELD-SYMBOLS:
      <ld_index>      TYPE int4.

    SORT lt_filter_index DESCENDING.
* Jetzt kann ich der Reihe nach die Index-Einträge löschen
    LOOP AT lt_filter_index ASSIGNING <ld_index>.
      DELETE lt_data INDEX <ld_index>.
    ENDLOOP.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Filter abfragen in Ambulanzsicht 007 im KLAP

Beitrag von sapdepp (Specialist / 210 / 35 / 2 ) »
Der FuBa LVC_FILTER_APPLY ist ja geil. ;-)

Klappt alles wie erhofft.

Thanks a lot

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1201
Views
Filter abfragen in Ambulanzsicht 007 KLAP
von sapdepp » 13.04.2016 16:45 • Verfasst in ABAP Objects®
6
Antw.
3907
Views
IS-H/KLAP Belegungssicht Bett Info
von stony007_de » 03.10.2017 11:10 • Verfasst in Sonstige Module
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
5
Antw.
3147
Views
REUSE ALV und Filter
von Google » 06.06.2007 16:12 • 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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140