2018 Aug 27 5:41 PM
I'm currently writing a program, where you can select a database-tabel and two date-fields. After that, report looks for inconsistency.
example:
parameters:
database: ZTIME
1.date: FROM
2.date: TO
Now the report searches for every entry in ZTIME, where TO(2.date) has a bigger value than 1.date(FROM).
I'm struggeling to build a where-conditon, because it has to be dynamic.
*----------------------------------------------------------------------*
* D E K L A R A T I O N *
*----------------------------------------------------------------------*
DATA: lv_tabexist TYPE c,
lv_v1exist TYPE c,
lv_v2exist TYPE c,
o_ref TYPE REF TO data,
lv_ab TYPE string,
lv_bis TYPE string.
* Selektion
SELECTION-SCREEN: BEGIN OF BLOCK w_block_sel
WITH FRAME TITLE text-sel.
PARAMETERS: pa_tab TYPE string,
pa_ab TYPE string,
pa_bis TYPE string.
SELECTION-SCREEN END OF BLOCK w_block_sel.
*----------------------------------------------------------------------*
* D Y N A M I C - I T A B *
*----------------------------------------------------------------------*
DATA: dref TYPE REF TO data.
FIELD-SYMBOLS:
<itab> TYPE STANDARD TABLE, "Dyn. Int. Table
<wa> TYPE any.
* Datenreferenz für die interne Tabelle
CREATE DATA dref TYPE STANDARD TABLE OF (pa_tab).
* De-referenzieren der Datenreferenzvariabel
ASSIGN dref->* TO <itab>.
CLEAR dref.
*----------------------------------------------------------------------*
* GET DATA *
*----------------------------------------------------------------------*
FORM getdata USING pa_tab lv_ab lv_bis itab.
DATA: lv_cond TYPE string.
SELECT * FROM (pa_tab) INTO CORRESPONDING FIELDS OF TABLE <itab> WHERE (lv_cond).
* Daten aussortieren
LOOP AT <itab> ASSIGNING FIELD-SYMBOL(<pos_data>).
ENDLOOP.
ENDFORM.