giovedì 20 maggio 2021

Da range a clausola where

  TYPES: BEGIN OF ty_range,
           tablename LIKE rsdstabs-prim_tab,
           frange_t TYPE ty_frange_t,
         END OF ty_range.
  TYPES: ty_range_t TYPE STANDARD TABLE OF ty_range.
  TYPES: ty_fields TYPE STANDARD TABLE OF rsdsfields.
  
  DATA: it_fields TYPE ty_fields.
  DATA: it_ranges TYPE ty_range_t.
  DATA: lv_selid TYPE rsdynsel-selid.
  DATA: lt_tables TYPE STANDARD TABLE OF rsdstabs.
  DATA: lt_where TYPE rsds_twhere.

  CALL FUNCTION 'FREE_SELECTIONS_INIT'
    EXPORTING
      kind         = 'T'
    IMPORTING
      selection_id = lv_selid
    TABLES
      tables_tab   = lt_tables.

  CALL FUNCTION 'FREE_SELECTIONS_DIALOG'
    EXPORTING
      selection_id    = lv_selid
      title           = 'Select WHERE criteria'
      as_window       = 'X'
      start_row       = 7
      start_col       = 10
    IMPORTING
      field_ranges    = it_ranges
    TABLES
      fields_tab      = it_fields
    EXCEPTIONS
      internal_error  = 1
      no_action       = 2
      selid_not_found = 3
      illegal_status  = 4
      OTHERS          = 5.

  CALL FUNCTION 'FREE_SELECTIONS_RANGE_2_WHERE'
    EXPORTING
      field_ranges  = it_ranges
    IMPORTING
      where_clauses = lt_where.

Nessun commento: