Code: Alles auswählen.
TABLES: pernr,
pa9024,
hrp1000.
DATA: stat TYPE i VALUE 2.
DATA: BEGIN OF ausgabe OCCURS 0,
stats LIKE pa9024-stats,
vorna LIKE pa0002-vorna,
nachn LIKE pa0002-nachn,
pernr LIKE pa0002-pernr,
begda LIKE pa9024-begda,
endda LIKE pa9024-endda,
END OF ausgabe.
DATA: wa_ausgabe LIKE LINE OF ausgabe.
SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
* Starting EE
PARAMETERS: p_start TYPE persno.
PARAMETERS: p_year TYPE zp_pyear OBLIGATORY.
PARAMETERS: p_status TYPE pa9024-stats DEFAULT 2.
SELECTION-SCREEN END OF BLOCK block1.
START-OF-SELECTION.
SELECT *
FROM pa9024
INNER JOIN pa0002 ON pa9024~pernr = pa0002~pernr
INTO CORRESPONDING FIELDS OF TABLE AUSGABE
WHERE pa9024~stats = p_status
AND pa9024~begda(4) = p_year.
LOOP AT ausgabe INTO wa_ausgabe.
WRITE: /
wa_ausgabe-pernr,
wa_ausgabe-vorna,
wa_ausgabe-nachn,
wa_ausgabe-stats.
ENDLOOP.
Code: Alles auswählen.
CONCATENATE
p_year
'%' "Wildcard für SQL
INTO l_begda.
SELECT *
FROM pa9024
INNER JOIN pa0002 ON pa9024~pernr = pa0002~pernr
INTO CORRESPONDING FIELDS OF TABLE AUSGABE
WHERE pa9024~stats = p_status
AND pa9024~begda LIKE l_begda. "SQL-Pattern-Vergleich
Code: Alles auswählen.
DATA:
lr_begda TYPE RANGE OF begda.
FIELD-SYMBOLS:
<lr_begda> LIKE LINE OF lr_begda.
* leere Zeile in Range-Tabelle einfügen und Feldsymbol darauf setzen
INSERT INITIAL LINE INTO TABLE lr_begda
ASSIGNING <lr_begda>.
* Daten vervollständigen
<lr_begda>-sign = 'I'.
<lr_begda>-option = 'CP'.
CONCATENATE
p_year
'*' "Wildcard für SQL
INTO <lr_begda>-low.
SELECT *
FROM pa9024
INNER JOIN pa0002 ON pa9024~pernr = pa0002~pernr
INTO CORRESPONDING FIELDS OF TABLE AUSGABE
WHERE pa9024~stats = p_status
AND pa9024~begda IN lr_begda. "ACHTUNG: IN-Operator
Code: Alles auswählen.
DATA
: g_0101 TYPE d
, g_3112 TYPE d
.
g_0101 = p_jahr & '0101'.
g_3112 = p_jahr & '1231'.
SELECT
(...)
WHERE begda BETWEEN g_0101 AND g_3112.