SPAN {font-family: "Courier New";font-size: 10pt;color: #000000;background: #FFFFFF;}.L0S31 {font-style: italic;color: #808080;}.L0S32 {color: #3399FF;}.L0S33 {color: #4DA619;}.L0S52 {color: #0000FF;}.L0S55 {color: #800080;}.L0S70 {color: #808080;}REPORT valores_de_dominios.* Fala Pessoal, estou desenvolvendo um relatorio que ira trabalhar com* informacoes de requests do ambiente, para um controle mais detalhado* para a gerencia tecnica e os mesmos me pediram pra colocar tudo sobre* as requests e objetos incluindo os status deles, como na maioria dos* textos sempre ficam em tabela separada conforme exemplo* ( Ex1. MARA( Material ) -> MAKT ( Textos Material )* Ex2. J_1BDOCTYPES ( Tipo de documento ) -> J_1BDOCTYPEST ( Textos ... )* Visualizando as tabelas pela transacao SE16N e possivel ver a tabela de* Textos referente a tabela consultada.* Isso facilita muito pegar os textos, mas as vezes os textos nao estao em* tabelas, estao implicitas dentro do dominio.* Perceba que na imagem acima nao esta informado o campo 'Tab. Valores'* onde estaria a tabela dos possiveis textos, alem disso, os textos descritivos* estao diretamente no dominio.* Pra conseguir reservar essas informacoes que estao no dominio e so usar* a funcao do titulo do post e pronto, rsrs.* Segue um codigo que fiz como exemplo onde alimento a tabela com* informacoes de dois dominios, para que voces percebam que a tabela* de retorno e a mesma e dentro da mesma e definido uma chave (DOMNAME), * assim facilitando a busca.DATA : gt_domvalues TYPE TABLE OF dd07v, ls_domvalues LIKE LINE OF gt_domvalues.START-OF-SELECTION.* Tipos da ordem/tarefa PERFORM get_domain_values TABLES gt_domvalues USING 'TRFUNCTION'.* Status da ordem/da tarefa PERFORM get_domain_values TABLES gt_domvalues USING 'TRSTATUS'.* Exibicao dos valores dos dominios. LOOP AT gt_domvalues INTO ls_domvalues. WRITE / ls_domvalues. ENDLOOP.*&---------------------------------------------------------------------**& Form GET_DOMAIN_VALUES*&---------------------------------------------------------------------*FORM get_domain_values TABLES dd07v TYPE STANDARD TABLE USING domname TYPE dd07l-domname. DATA : lt_dd07v TYPE TABLE OF dd07v. CALL FUNCTION 'DD_DOMVALUES_GET' EXPORTING domname = domname text = abap_true langu = sy-langu TABLES dd07v_tab = lt_dd07v EXCEPTIONS wrong_textflag = 1 OTHERS = 2. IF lt_dd07v[] IS NOT INITIAL. APPEND LINES OF lt_dd07v TO dd07v. ENDIF.ENDFORM. REPORT zrestringindo_select_options.*--------------------------------------------------------------------** Fala galera, hoje vou mostrar a usar uma funcao que faz restricao nos* select-options, muito das vezes os funcionais pedem para que nao deixemos* o usuario colocar qualquer coisa, ou nos mesmos percebemos que certas* informacoes podem dar dump em um select ou processos.* Ai estais a salvacao.A Ideia e ficar igual aimagem.* Estruturas e tabelas internas.DATA : lt_saplane TYPE TABLE OF saplane, ls_saplane LIKE LINE OF lt_saplane .* Parametros de selecaoSELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.SELECT-OPTIONS : so_plane FOR ls_saplane-planetype NO INTERVALS .SELECTION-SCREEN END OF BLOCK b1.* PBOAT SELECTION-SCREEN OUTPUT. PERFORM restricao_campos.*&---------------------------------------------------------------------**& Form RESTRICAO_CAMPOS*&---------------------------------------------------------------------*FORM restricao_campos .* Se voce perceber os campos a serem alimentados sao bem percepciveis,* para habilitar as opcoes e so 'Flagar' na estrutura que ja tem os campos* pre definidos,.... para facilitar coloquei todos as opcoes e algumas que* eu nao sei o que faz rsrs.* Para um bom teste, interessante era descomentar alguns.* Observacao importante e que ele e usado no 'AT SELECTION-SCREEN OUTPUT'. DATA: ls_restrict TYPE sscr_restrict, ls_opt_list TYPE sscr_opt_list, ls_association TYPE sscr_ass. BREAK-POINT. ls_opt_list-name = 'RESTRICT'.* ls_opt_list-options-bt = abap_true. " Libera a aba para "Intervalos"* ls_opt_list-options-cp =