Parameters Filter funktioniert nicht

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

Parameters Filter funktioniert nicht

Beitrag von Albert_schoen (ForumUser / 2 / 0 / 0 ) »
Hallo zusammen, ich arbeite gerade an einer ABAP-Bibliothekssoftware und stoße auf Schwierigkeiten bei der Implementierung von Filtermöglichkeiten. Speziell die Parameter für Titel und Autor (p_titel, p_autor) bereiten mir Probleme. Während die Filterung nach Buch-ID und Erscheinungsjahr bereits funktioniert, habe ich Schwierigkeiten, Select-Options korrekt einzusetzen, um auch nach Titel und Autor filtern zu können. Ich bekomme bei den Select-Options immer wieder Datentyp-Fehler. Ziel ist es, dass der Benutzer flexibel nach verschiedenen Kriterien wie Titel, Autor, ISBN und Erscheinungsjahr suchen kann." Mit Parameters funktioniert zum teil, ich habe den Tipp erhalten eine Range Tabelle zu erstellen. Aber ich kann mir gerade nicht helfen.


Die Klasse: : ZMK_BUCHEREI_CLASS
Ich habe eine Methode : get_book
DB-Tabelle : zmk_buch
Programm : zmk_buecherei_entwurf

zmk_buecherei_entwurf:
REPORT zmk_bucherei_entwurf.



TYPES: BEGIN OF ty_zmk_buch,
mandt TYPE zmk_buch-mandt,
buchid TYPE zmk_buch-buchid,
titel TYPE zmk_buch-titel,
autor TYPE zmk_buch-autor,
isbn TYPE zmk_buch-isbn,
erschein_jahr TYPE zmk_buch-ersch_jahr,
anzahl_exemplare TYPE zmk_buch-anzahl_exemplare,
verfuegbar TYPE zmk_buch-verfuegbar,
bild TYPE zmk_buch-bild,
END OF ty_zmk_buch.

DATA: gt_buecher TYPE STANDARD TABLE OF ty_zmk_buch WITH HEADER LINE,
gs_buecher TYPE ty_zmk_buch,
go_buch TYPE REF TO zmk_bucherei_class.


SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_buchid TYPE ty_zmk_buch-buchid,
p_titel TYPE ty_zmk_buch-titel,
p_autor TYPE ty_zmk_buch-autor,
p_erschj TYPE ty_zmk_buch-erschein_jahr.
*SELECT-OPTIONS:
* s_autor FOR zmk_buch-autor,
* s_titel FOR zmk_buch-titel,
* s_buchid FOR zmk_buch-buchid,
* s_ersch_jahr FOR zmk_buch-ersch_jahr.
SELECTION-SCREEN END OF BLOCK blk1.


START-OF-SELECTION.

CREATE OBJECT go_buch.

go_buch->get_book(
EXPORTING
iv_buchid = p_buchid " Buch ID
iv_isbn = " Buch ISBN
iv_author = p_autor " Buch Autor
iv_year = p_erschj " Buch Erscheinungs Jahr
iv_title = p_titel " Buch Titel
IMPORTING
ev_buch = gt_buecher " Buch Tabelle
).

Die get_book Methode:
METHOD get_book.
DATA: gt_buch TYPE TABLE OF zmk_buch,
go_salv TYPE REF TO cl_salv_table.


IF iv_buchid IS NOT INITIAL.
SELECT * FROM zmk_buch INTO TABLE gt_buch
WHERE buchid = iv_buchid.
ELSEIF iv_isbn IS NOT INITIAL.
SELECT * FROM zmk_buch INTO TABLE gt_buch
WHERE isbn = iv_isbn.
ELSEIF iv_year IS NOT INITIAL.
SELECT * FROM zmk_buch INTO TABLE gt_buch
WHERE ersch_jahr = iv_year.
ELSE.
SELECT * FROM zmk_buch INTO TABLE gt_buch.
ENDIF.


cl_salv_table=>factory(
IMPORTING
r_salv_table = go_salv " Basisklasse einfache ALV Tabellen
CHANGING
t_table = gt_buch
).

Auf Verbesserungsvorschläge bin ich offen, ich lerne gerade :)

Vielen Lieben Dank im Voraus!
Albert

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


Re: Parameters Filter funktioniert nicht

Beitrag von PeterPaletti (Specialist / 348 / 32 / 97 ) »
Na, dann verfolge doch den Tipp eine oder mehrere Range-Tabelle(n) zu erstellen. Die füllst du dann mit den Werten aus den Parametern und machst bequem eine SELECT-Abfrage mit IN my_range1 AND IN my_range2 etc. anstelle des IF-ELSEIF-Konstrukts.

Re: Parameters Filter funktioniert nicht

Beitrag von Murdock (Specialist / 123 / 58 / 10 ) »
Was für Fehler bekommst Du denn konkret bei den Select-Options? Die Fehlermeldung aus deinem Screenshot wird es ja nicht mehr sein, da Du in deinem Coding diese Select-Option bereits angepasst hast:

Code: Alles auswählen.

*SELECT-OPTIONS:
* s_autor FOR zmk_buch-autor,
Es ist übrigens etwas verwirrend, dass der Screenshot nicht zu dem geposteten Code Block passt.

Ein Problem hier ist, dass der Anwender nicht nach mehreren Kriterien suchen kann. Alle Bücher eines Autors aus einem bestimmten Jahr würde z.B. nicht gehen (bei dem Programm bisher sowieso nicht, da kein Select mit dem Autor als Selektionskriterium gemacht wird).

Mal so als Tipp: Man kann mehrere Bedingungen hinter dem WHERE haben. Wenn eine Select-Options Tabelle da dann leer ist, wird sie ignoriert...

Re: Parameters Filter funktioniert nicht

Beitrag von Albert_schoen (ForumUser / 2 / 0 / 0 ) »
Bei *SELECT-OPTIONS:
* s_autor FOR zmk_buch-autor, erhalte ich die Fehlermeldung siehe 1. Screenshot. Stimmt Autor ist nicht im Select Kriterium. Ich versuche eine Range Tabelle zu erstellen genau so wie mein ZMK_Buch ?
Ich bin sehr neu im Programmieren, im Unternehmen bin ich als First und Second Support. Aber ich möchte unbedingt programmieren. Wenn ihr Tipps für mich habt, gerne!

Gruß
Albert.
Danke.

Re: Parameters Filter funktioniert nicht

Beitrag von Murdock (Specialist / 123 / 58 / 10 ) »
Ersetz bei bei deiner Deklaration der select-options das zmk_buch durch gs_buecher, dann funktioniert es.

Interne Tabellen mit Kopfzeile benutzt mal heutzutage nicht mehr, das "with header line" kannst Du entfernen.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
2198
Views
ALV-Filter-Kriterium mit Leerzeichen funktioniert nicht
von Otscho » 09.05.2008 10:56 • Verfasst in ABAP® Core
13
Antw.
1781
Views
ALV-GRID Standard Filter funktioniert nicht nach Kundenaktion
von Prego » 16.07.2024 08:44 • Verfasst in ABAP® Core
2
Antw.
10637
Views
Parameters-Name ändern
von aaaarrrggh » 10.10.2006 11:58 • Verfasst in ABAP® für Anfänger
3
Antw.
1948
Views
SET PARAMETERS tut nicht so wie ich will
von Ralph » 25.08.2005 16:25 • Verfasst in ABAP® Core
3
Antw.
1113
Views
F4-Hilfe bei Parameters
von L0w-RiDer » 12.12.2019 18:34 • Verfasst in ABAP® für Anfänger

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.