REPORT ZSAPeiros.
* Declarar a tabela do seu Select-Options
* Obs.: Existem outras maneiras, mas esta é a mais prática
TABLES j_1bnfstx.
* Declarar os tipos necessários para eliminar as abas do select-options
TYPE-POOLS: sscr, sedi.
* Declare seu select-options
SELECT-OPTIONS: s_type FOR j_1bnfstx-taxtyp.
* O código deve ficar logo que se inicializa o programa
INITIALIZATION.
* Declarações necessárias para a função SELECT_OPTIONS_RESTRICT
* a qual é responsável pela restrinção do select-options
DATA:
ls_opt_list TYPE sscr_opt_list, "Option List
ls_restrict TYPE sscr_restrict, "Option Restrict
ls_ass TYPE sscr_ass. "Screen Object
* Limpe a estrutura sempre que for populá-la
CLEAR ls_opt_list.
* Preencha o Option List
ls_opt_list-name = 'OBJECTKEY1'.
ls_opt_list-options-bt = space.
ls_opt_list-options-cp = space.
ls_opt_list-options-eq = 'X'.
ls_opt_list-options-ge = space.
ls_opt_list-options-gt = space.
ls_opt_list-options-le = space.
ls_opt_list-options-lt = space.
ls_opt_list-options-nb = space.
ls_opt_list-options-ne = space.
ls_opt_list-options-np = space.
* Adicione os dados da estrutura no Option Restrict-opt_list_tab
APPEND ls_opt_list TO ls_restrict-opt_list_tab.
* Limpe a estrutura sempre que for populá-la
CLEAR ls_ass.
* Preencha o Screen Object
ls_ass-kind = 'S'.
ls_ass-name = 'S_TYPE'.
ls_ass-sg_main = 'I'.
ls_ass-sg_addy = space.
ls_ass-op_main = 'OBJECTKEY1'.
* Adicione os dados da estrutura no Option Restrict-ass_tab
APPEND ls_ass TO ls_restrict-ass_tab.
* Chame a função que faz tal procedimento
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
program = sy-repid
restriction = ls_restrict
EXCEPTIONS
too_late = 1
repeated = 2
selopt_without_options = 3
selopt_without_signs = 4
invalid_sign = 5
empty_option_list = 6
invalid_kind = 7
repeated_kind_a = 8
OTHERS = 9.
IF sy-subrc IS NOT INITIAL.
MESSAGE 'Erro ao restringir abas do parâmetro de seleção!' TYPE 'E'.
ENDIF.
Conteúdo
Eliminar abas de-ate do Select-Options
Quando você precisa que um parâmetro tenha mais opções, mas que não pode ter a condição DE-ATÉ, ou seja, pode adicionar N opções, mas apenas na parte DE, não basta colocar NO INTERVALS no seu select-options, mas também é necessário restringir as abas DE-ATE quando clicar para adicionar novas opções.