Duda con Select-Option

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • gaos
    Member
    • oct
    • 98

    #1

    Duda con Select-Option

    Buen día a tod@s.

    Me piden hacer un reporte con una selección de materiales por rango para ser excluida, es decir, un select-option, mi duda es ¿Se puede restringir el rango de selección a solo exclusión? Lo que busco es que solo aparezcan las pestañas de exclusión que son las 2 últimas ¿Es posible hacer esto?

    Agradezco la ayuda brindada.
  • vanesamacri
    Senior Member
    • jun
    • 146

    #2
    Buenas tardes.

    En algún momento, he visto que es posible suprimir las pestañas de exclusión en un SELECT-OPTION. No te sabría precisar si es posible solamente mantener esas.

    Si al rango lo vas a utilizar como condición para filtrar en un SELECT, ¿por qué no usar lo siguiente?: WHERE campo NOT IN rango

    También podrías recuperar la totalidad de los registros (sin filtrar por este campo en particular) y luego borrar la tabla interna resultado de la forma: DELETE itab WHERE campo NOT IN rango.

    Un saludo.

    Comentario

    • gaos
      Member
      • oct
      • 98

      #3
      Gracias por la respuesta.

      Lo que me mencionas ya lo tengo en el código, lo que se busca son 2 cosas que solo sean visibles las pestañas de exclusión o inclusión y que sea mas fácil para el usuario.

      Actualmente lo tengo con NOT IN pero al usuario le causa confusión porque ve las 4 pestañas.

      Comentario

      • vanesamacri
        Senior Member
        • jun
        • 146

        #4
        En ese caso (respetando el NOT IN), probate la siguiente lógica:

        Código:
        REPORT YPRUEBA.
        
        
        TABLES: pernr.
        
        DATA: t_ass_tab   TYPE sscr_ass,        "Select-options a restringir
              t_opt_list  TYPE sscr_opt_list,   "Cada una de las opciones a controlar
              restrict    TYPE sscr_restrict.   "Estructura conteniendo las tablas anteriores
        
        
        
        * Pantalla de selección
        SELECT-OPTIONS: s_cocd FOR pernr-pernr.
        
        
        
        INITIALIZATION.
        * Crear una entrada en t_opt_list especificando las características de S_CoCd
        
          CLEAR t_opt_list.
          t_opt_list-name     = 'S_COCD'.  "Debe coincidir con ass_tab-op_main
          t_opt_list-options-bt   = 'X'.   "No permitir el BETWEEN
          t_opt_list-options-cp   = space.   "No permitir el MATCHES-PATTERN
          t_opt_list-options-eq   = 'X'.     "Si permitir el EQUALS
          t_opt_list-options-ge   = space.   "No permitir el GREATER-OR-EQUAL
          t_opt_list-options-gt   = space.   "No permitir el GREATER-THAN
          t_opt_list-options-le   = space.   "No permitir el LESS-OR-EQUAL
          t_opt_list-options-lt   = space.   "No permitir el LESS-THAN
          t_opt_list-options-nb   = space.   "No permitir el NOT-BETWEEN
          t_opt_list-options-ne   = 'X'.   "Si permitir el NOT-EQUAL
          t_opt_list-options-np   = space.   "No permitir el NO-PATTERN-MATCH
          APPEND t_opt_list TO restrict-opt_list_tab.
        
        
        * Crear una entrada t_ass_tab para habilitar la restricción en el select-option
        * S_CoCd.
        
          CLEAR t_ass_tab.
          t_ass_tab-kind    = 'S'.  "Aplicar solo a los Select-Options nombrados
          t_ass_tab-name    = 'S_COCD'. "Nombre del SELECT-OPTION a restringir
          t_ass_tab-sg_main   = 'I'.  "I = SOLO inclusiones; * = Ambas
          t_ass_tab-sg_addy   = space.
          t_ass_tab-op_main   = 'S_COCD'. "Debe coincidir con: opt_list-name
          APPEND t_ass_tab TO restrict-ass_tab.
        
        *  Llamar a la función para restringir las características del Select-Option.
          CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
            EXPORTING
              restriction            = 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 NE 0.
        *   Mensaje de error.
          ENDIF.
        En la pantalla de salida, lo vas a ver así:

        Comentario

        • gaos
          Member
          • oct
          • 98

          #5
          Duda con Select-Option [Solucionado] SELECT OPTIONS RESTRICT

          Gracias Funcionó muy bien.

          Solo falto un detalle, agregar el type-pool sscr. Y ya con eso funciona de maravilla , la deje con una sola opción, se puede jugar con las pestañas.

          Comentario

          Trabajando...