Select wenn X

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

Select wenn X

Beitrag von BMWi801 (ForumUser / 20 / 3 / 0 ) »
Guten Morgen, ich möchte eine Ausgabe machen, dass wenn jemand bestimmte nummern aus einer Tabelle aussucht und bei denen in einer bestimmten Spalte kein X steht, er einen Fehler ausgibt, ansonsten soll er die Daten selektieren, damit ich sie später ausgeben kann. Wie kann ich das umsetzen?

Code: Alles auswählen.

TOP-OF-PAGE.

  Data: gs_bsis type skb1.

  SELECT-OPTIONS: bukrs FOR gs_bsis.
  SELECT-OPTIONS: sachk FOR gs_bsis .
  SELECT-OPTIONS: gjahr FOR gs_bsis.
  SELECT-OPTIONS: bdtm FOR gs_bsis.

START-OF-SELECTION.

  TYPES: BEGIN OF gt_tab1.
  TYPES: opost TYPE bsis-dmbtr,
         belnr TYPE bsis-belnr,
         bukrs TYPE bsis-bukrs,
         bldat TYPE bsis-bldat,
         budat TYPE bsis-budat,
         gjahr TYPE bsis-gjahr,
         xkres type skb1-xkres,
        saknr type skb1-saknr
         END OF gt_tab1.

  Data: gt_tabverarbeitung type table of gt_tab1.

  SELECT xkres saknr
    INTO CORRESPONDING FIELDS OF TABLE gt_tabverarbeitung
    FROM skb1.

  IF gt_tabverarbeitung-xkres = 'X'.
    WRITE: 'Fehler!'.
  ELSE.
  SELECT dmbtr
         hkont
         belnr
         bukrs
         bldat
         budat
         gjahr
         bukrs
        INTO CORRESPONDING FIELDS OF TABLE gt_tabverarbeitung
        WHERE hkont = gt_tabverarbeitung-saknr
        FROM  bsis.
  ENDIF.

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


Re: Select wenn X

Beitrag von schick (ForumUser / 52 / 5 / 15 ) »
Hi,

deine Abfrage

Code: Alles auswählen.

IF gt_tabverarbeitung-xkres = 'X'.
wird so nicht funktionieren, da gt_tabverarbeitung eine Tabelle ist.
Da sollte ein Fehler "gt_tabverarbeitung ist eine Tabelle ohne Kopfzeile und besitzt keine Komponente mit Name xkres." kommen.

Um die Abfrage durchzuführen könntest du das ganze in einen LOOP packen und die einzelnen Zeilen auf xkres = 'X' prüfen.
Also vor der IF-Anweisung ein

Code: Alles auswählen.

LOOP AT gt_tabverarbeitung INTO gs_tabverarbeitung
einfügen und dann im Anschluss auf gs_tabverarbeitung-xkres = 'X' abfragen.
In dem folgenden Select muss natürlich aus gt_tabverarbeitung ebenfalls gs_tabverarbeitung gemacht werden.

Re: Select wenn X

Beitrag von lausek (ForumUser / 64 / 2 / 20 ) »
Dein Coding vermittelt mir gerade irgendwie, dass der Fehler kommen soll, wenn ein Eintrag in der Tabelle ein X enthält. Dafür würde das reichen:

Code: Alles auswählen.

READ TABLE gt_tabverarbeitung WITH KEY xkres = 'X' TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
" Fehler.
ELSE.
...

Re: Select wenn X

Beitrag von Wann (ForumUser / 57 / 3 / 15 ) »
DATA: gs_bsis TYPE skb1. => DATA: gs_skb1 TYPE skb1.
DATA: gt_skb1 TYPE TABLE OF skb1.

Beschränke Dich erst einmal auf eine Selektionsoption, die Du dann auch nutzt.

SELECT-OPTIONS: sachk FOR gs_bsis . => SELECT-OPTIONS: s_saknr FOR gs_skb1-saknr .


SELECT xkres saknr
INTO CORRESPONDING FIELDS OF TABLE gt_skb1
FROM skb1 WHERE saknr IN s_saknr.

Beim zweiten Select fehlt Dir for all entries.

SELECT dmbtr
hkont " !! ändern bei Deiner Deklaration - saknr TYPE skb1-saknr => hkont TYPE skb1-saknr
belnr
bukrs
bldat
budat
gjahr
bukrs
INTO CORRESPONDING FIELDS OF TABLE gt_tabverarbeitung
FROM bsis FOR ALL ENTRIES IN gt_skb1
WHERE hkont = gt_skb1-saknr .


Für die Ausgabe vielleicht zum Anfang mal folgendes:

cl_demo_output=>display( gt_tabverarbeitung ).

Und dann näherst Du Dich Schritt für Schritt Deinem Wunsch. xkres ist z.B. noch nicht berücksichtigt. Es gibt einige Möglichkeiten zum Ziel zu kommen.

Seite 1 von 1

Vergleichbare Themen

10
Antw.
5796
Views
2 Select-Options zu einem für Select zusammenfügen
von manuk » 23.03.2005 11:02 • Verfasst in ABAP® Core
8
Antw.
2165
Views
SELECT SINGLE oder SELECT UP TO 1 ROWS?
von nickname8 » 12.04.2021 10:38 • Verfasst in ABAP® für Anfänger
4
Antw.
17908
Views
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37 • Verfasst in ABAP® für Anfänger
4
Antw.
8995
Views
Performance: SELECT UP TO 1 ROWS vs. SELECT SINGLE
von roman1983 » 04.09.2008 14:29 • Verfasst in ABAP® für Anfänger
2
Antw.
2336
Views
Select * und Select von einzelnen Werten zugleich
von StefanJue » 04.10.2006 18:10 • Verfasst in ABAP® für Anfänger

Ü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.