Anuncio

Colapsar
No hay anuncio todavía.

como funciona un select-option

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • como funciona un select-option

    buenas tardes, yo se que esto puede ser uns estupidez pero no entiendo como se utiliza esta instrucción ya que en las paginas que he leido lo unico que han hecho es confundirme, alguien que me pudiera explicar y darme un ejemplo sencillo para entender como y cuando se usa, se lo agradecere eternamente


    gracias por su atención

  • #2
    Hola!

    El SELECT-OPTION te sirve para especificar parámetros de entrada a tu programa.
    A diferencia de PARAMETER, te permite introducir desde uno a más de un valor y hasta rangos.
    Así que si quieres que el usuario pueda introducir más de un valor, usa el SELECT-OPTION, sino, usa el PARAMETER.

    El SELECT-OPTION siempre se declara como:
    SELECT-OPTION: (nombre variable) FOR (campo de tabla o estructura)

    Ejemplo:
    SELECT-OPTION: sdate FOR mseg-augdt.

    Dato importate: La tabla usada al declarar el SELECT-OPTION debe estar declarada al inicio con TABLES, de lo contrario te marcará un error al activarlo.

    TABLES: mseg.

    SELECT-OPTION: sdate FOR mseg-augdt.


    Veamos un ejemplo, digamos que tienes un SELECT-OPTION para una fecha.
    Entonces, el usuario podría introducir valores como lo siguientes, suponiendo que cada línea es un valor introducido en cada ejecución del programa:
    Igual a 01.08.2011
    Mayor a 01.08.2011
    Igual a 01.08.2011, a 01.09.2011 y a 01.10.2011.
    Entre 01.08.2011 y 31.08.2011
    Entre 01.08.2011 y 10.08.2011; también entre 15.08.2011 y 20.08.2011
    Que no sea entre 01.08.2011 y 31.08.2011

    En cambio el parameter sólo te permite un valor:
    Igual a 01.08.2011
    Mayor a 01.08.2011
    Menor a 01.08.2011
    Diferente de 01.08.2011

    El SELECT-OPTION por default te coloca dos cuadros de texto en donde el primero indica el rango inicial y el segundo el final.
    Si sólo se introduce un valor, se deberá colocar en el primero, si especificas un rango, el valor inicial en el primero y el final en el segundo.
    También tiene un botón adicional a la derecha de cada cuadro de texto para poder indicar varios valores o rangos de valores.

    A nivel código, el SELECT-OPTION se comporta como una tabla interna que tiene los siguientes campos:
    SIGN = que indica si se incluye o excluye (I o E)
    OPTION = que indica el tipo de comparación que se hará (EQ, GT, LT, LE, GE, NE, BT...)
    LOW = que representa al cuadro de la izquierda y se usa para valores individuales o como valor iniical de un rango
    HIGH = que representa al cuadro de la derecha y se usa como valor final de un rango

    El significado de los valores en OPTION:
    EQ = Igual (equal), GT = Mayor que (greater than), LT = Menor que (less than), GE = Mayor o igual (greater or equal)... (disculpa mi inglés si alguno está mal )


    Si quisiéramos interpetar los ejemplos arriba indicados con la fecha, la tabla del SELECT-OPTION se vería así:

    Igual a 01.08.2011
    Un registro:
    SIGN = 'I', OPTION = 'EQ', LOW = '20110801', HIGH = vacío.

    Mayor a 01.08.2011
    Un registro:
    SIGN = 'I', OPTION = 'GT', LOW = '20110801', HIGH = vacío.

    Igual a 01.08.2011, a 01.09.2011 y a 01.10.2011.
    Tres registros:
    SIGN = 'I', OPTION = 'EQ', LOW = '20110801', HIGH = vacío.
    SIGN = 'I', OPTION = 'EQ', LOW = '20110901', HIGH = vacío.
    SIGN = 'I', OPTION = 'EQ', LOW = '20111001', HIGH = vacío.

    Entre 01.08.2011 y 31.08.2011
    Un registro:
    SIGN = 'I', OPTION = 'BT', LOW = '20110801', HIGH = '20110831'. (Obseva que OPTION es BT: Between, entre)

    Entre 01.08.2011 y 10.08.2011; también entre 15.08.2011 y 20.08.2011
    Dos registros:
    SIGN = 'I', OPTION = 'BT', LOW = '20110801', HIGH = '20110810'
    SIGN = 'I', OPTION = 'BT', LOW = '20110815', HIGH = '20110820'

    Diferente de 01.08.2011
    Un registro:
    SIGN = 'E', OPTION = 'EQ', LOW = '20110801', HIGH = vacío (Aquí SIGN es 'E', que excluya)


    Un dato importante es que el SELECT-OPTION se usa con el operador IN al usarse en un SELECT o un IF a diferencia que el PARAMETER se usa el EQ o '='.

    Por ejemplo, suponiendo que la variable SELECT-OPTION se llame SDATE:
    SELECT campo1 campo2 campo3
    INTO TABLE it_tabla
    FROM db_tabla
    WHERE datum IN sdate.

    En cambio si fuese un PARAMETER, sería:
    SELECT campo1 campo2 campo3
    INTO TABLE it_tabla
    FROM db_tabla
    WHERE datum = sdate.

    Si fuese un IF:
    IF l_fecha IN sdate.

    ENDIF.

    El parameter:
    IF l_fecha = sdate.

    ENDIF.



    En resúmen.
    Un SELECT-OPTION te permitirá más de un valor y rangos. Un PARAMETER sólo uno.
    Un SELECT-OPTION se representa como una tabla interna con los campos SIGN, OPTION, LOW y HIGH.
    El SELECT-OPTION se usa con el operador IN en un SELECT al igual que en una condición IF.

    En programa puedes crear una variable similar a un SELECT-OPTION, una varialbe tipo rango:
    DATA: r_fecha TYPE RANGE OF sy-datum.

    Entonces, R_FECHA será una tabla con los mismos campos: SIGN, OPTION, LOW y HIGH y podrás usarlo como si fuese un SELECT-OPTION.

    En la ayuda del SELECT-OPTION encontrarás diversas opciones que te permitirán personalizarlo.
    Por ejemplo, si colocas NO INTERVALS (o NO-INTERVALS, no recuerdo bien cuál es) sólo aparecerá el campo de texto de la izquierda y no podrás introducir rangos. Aunque si presionas el botón para introducir más valores, aparecerá la pestaña de rangos.

    Espero haberte ayudado y no haberte confundido más
    Editado por última vez por julgarso; 18/08/2011, 12:57:56. Razón: Perdón, al final puse "Espero haberte ayudado y haberte confundido más", quise decir "y no haberte confundido más"

    Comentario


    • #3
      gracias!!!!

      mil gracias me quedo más claro!!!!!!!!

      Comentario

      Trabajando...
      X