Suchanfrage aus Dynpro

Benutzeroberflächen in SAP®-Systemen.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Suchanfrage aus Dynpro

Beitrag von Oley (ForumUser / 2 / 0 / 0 ) »
Hallo Experten,
ich hätte mal eine Frage:
Ich habe eine Suchfunktion in einen Dynpro programmiert. Nun möchte ich mit diesen Parametern eine Datenabfrage gestalten. Diese soll jedoch leere Felder nicht matchen ich dachte das ginge folgendermaßen:

SELECT *
FROM yahausk
INTO CORRESPONDING FIELDS OF TABLE suchergebnis.
WHERE
name1 = suchparameter-name1 AND
name2 = suchparameter-name2 AND
stras = suchparameter-stras AND
pstlz = suchparameter-pstlz AND
ort01 = suchparameter-ort01 AND
regio = suchparameter-regio AND
land1 = suchparameter-land1.

Aber das geht sicherlich aufgrund der unterschiedlichen Interpretationsmöglichkeiten von Leerwerten in ABAP und der Datenbank nicht.

Habt ihr vielleicht eine mögliche Lösung?

Danke im Voraus!

Grüße,
Oley

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


Beitrag von GastX (Specialist / 283 / 4 / 19 ) »
Mir fallen unterschiedliche Ansätze ein, wobei ich von den hier dargestellten den zweiten bevorzugen würde... vielleicht hilft's ja.

1. Ansatz
Du definierst für jeden Parameter eine Range-Tabelle und füllst diese, falls der Parameter nicht initial ist.
Die kannst Du dann per "IN" abfragen. Also völlig manuell so etwas wie

Code: Alles auswählen.

REPORT  z_tmp.
PARAMETERS: p_carrid TYPE sflight-carrid,
            p_connid type sflight-connid.

DATA: r_carrid TYPE RANGE OF sflight-carrid,
      l_carrid LIKE LINE OF r_carrid.
DATA: r_connid TYPE RANGE OF sflight-carrid,
      l_connid LIKE LINE OF r_carrid.

DATA: zaehler TYPE i.

START-OF-SELECTION.
  IF NOT p_carrid IS INITIAL.
    l_carrid-sign = 'I'.
    l_carrid-option = 'EQ'.
    l_carrid-low = p_carrid.
    APPEND l_carrid TO r_carrid.
  ENDIF.
  IF NOT p_connid IS INITIAL.
    l_connid-sign = 'I'.
    l_connid-option = 'EQ'.
    l_connid-low = p_carrid.
    APPEND l_carrid TO r_carrid.
  ENDIF.

  SELECT COUNT( * ) FROM sflight INTO zaehler WHERE carrid IN r_carrid and
                                                    connid in r_connid.
  WRITE:/ zaehler..
2. Ansatz (gefällt mir schon besser)
Du baust die Where-Klausel dynamisch auf:

Code: Alles auswählen.

REPORT  z_hip_tmp_008.
PARAMETERS: p_carrid TYPE sflight-carrid,
            p_connid TYPE sflight-connid.

DATA: it_sel TYPE STANDARD TABLE OF char72,
      wa_sel TYPE char72.

DATA: zaehler TYPE i.

START-OF-SELECTION.
  IF NOT p_carrid IS INITIAL.
    wa_sel = 'CARRID = p_carrid'.
    APPEND wa_sel TO it_sel.
  ENDIF.
  IF NOT p_connid IS INITIAL.
    wa_sel = 'CONNID = p_connid'.
    APPEND wa_sel TO it_sel.
  ENDIF.

* richtig
  SELECT COUNT( * ) FROM sflight INTO zaehler WHERE (it_sel).
  WRITE:/ zaehler.

Beitrag von Oley (ForumUser / 2 / 0 / 0 ) »
Vielen Dank! Zweite Lösung hat top und sofort geklappt. Hast gerade große Respektsbekundungen in meiner SAP-runde hier bekommen ;)

Seite 1 von 1

Vergleichbare Themen

6
Antw.
10250
Views
Web-Dynpro: längeres Dynpro nicht sichtbar
von erzoo24 » 08.03.2017 11:33 • Verfasst in Web-Dynpro, BSP + BHTML
0
Antw.
4919
Views
4
Antw.
12649
Views
Web Dynpro ABAP vs. Web Dynpro JAVA
von PatrickJ » 21.06.2007 06:44 • Verfasst in Web Application Server
4
Antw.
4904
Views
Feld aus Dynpro A an Dynpro B übergeben
von SAPAlex » 06.03.2008 17:35 • Verfasst in ABAP® für Anfänger
0
Antw.
2473
Views
CSS in Web Dynpro
von bambuse » 16.07.2007 11:02 • Verfasst in Web Application Server

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Erweiterung in ME51N/ME52N:
vor 20 Stunden von ABAPlerv 1 / 34
Erweiterung in ME51N/ME52N:
vor 20 Stunden von ABAPlerv 1 / 22
DIN Norm Klassifizierung
Gestern von Radinator 2 / 2698
Login Daten Management
vor 2 Tagen von sap_enthusiast gelöst 5 / 874

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

Erweiterung in ME51N/ME52N:
vor 20 Stunden von ABAPlerv 1 / 34
Erweiterung in ME51N/ME52N:
vor 20 Stunden von ABAPlerv 1 / 22
DIN Norm Klassifizierung
Gestern von Radinator 2 / 2698
Login Daten Management
vor 2 Tagen von sap_enthusiast gelöst 5 / 874

Unbeantwortete Forenbeiträge

Erweiterung in ME51N/ME52N:
vor 20 Stunden von ABAPlerv 1 / 34
Erweiterung in ME51N/ME52N:
vor 20 Stunden von ABAPlerv 1 / 22