PDA

Ver la Versión Completa : Ranges


CLAUDIA CARDENAS
10/01/07, 18:06:39
hola!

tengo dos inconvenientes
1. al tratar de hacer un range, cuando lo hago con un select-option, aparece por lo menos algo en pantalla, pero al pasarlo a ranges, no me funciona.
2. quiere calcular la edad del usuario de acuerdo a la fecha de nacimiento que este me ingresa, se supone que tengo que cambiar el formato, lo he intentado hacer con un call function, pero no me sale nada o pues bien, no he visto que me haga, pues la verdad no he entendido muy bien como es que se trabaja este.
además he tratado de hacer el calculo de la edad con un form, obviamente no me sale sino un *, pues por el formato del dato me imagino.

anexo el codigo.

gracias de antemano, perdonaran lo lentica!.

REPORT YACSAP0001.

* DEFINICION DE LAS VARIABLES

PARAMETERS: Nombre(30) TYPE c OBLIGATORY,
FechaNac TYPE d OBLIGATORY.

DATA: FechaAct TYPE d,
edad TYPE C.
*-----------------------------------------------------
* MANEJO DE MATERIALES CON SELECTION-OPTION
*-----------------------------------------------------
* TABLES: MARA.
* SELECT-OPTIONS: MTNR FOR MARA-MATNR.
* INITIALIZATION.
* MTNR-LOW = 1000. " VALOR MINIMO
* MTNR-HIGH = 2000. " VALOR MAXIMO
* MTNR-OPTION = 'EQ'. " IGUAL
* MTNR-SIGN = 'I'. " INCLUDE

* APPEND MTNR.
*------------------------------------------------------
*
* SELECT *
* FROM MARA
* WHERE MATNR IN MTNR.
* WRITE : / MARA-MATNR.
* ENDSELECT.
* ----------------------------------------------------


*------------------------------------------------------
* MANEJOD DE MATERIALES CON RANGES
*------------------------------------------------------
TABLES: MARA.

RANGES: MATERIALES FOR MARA-MATNR.

MATERIALES-SIGN = 'I'. " inlcude
MATERIALES-OPTION = 'EQ'.
MATERIALES-LOW = 1000.
MATERIALES-HIGH = 2000.

APPEND MATERIALES.
*-------------------------------------------------------
*
* SELECT *
* FROM MARA
* WHERE MATNR IN MTNR.
* WRITE : / MARA-MATNR.
* ENDSELECT.
*
*------------------------------------------------------

* DEFINICION DE LA LISTA DE JOB
TYPE-POOLS: VRM.

DATA: NAME TYPE VRM_ID,
LIST TYPE VRM_VALUES,
VALUE LIKE LINE OF LIST.

PARAMETERS: JOB(10) AS LISTBOX VISIBLE LENGTH 10 OBLIGATORY.

AT SELECTION-SCREEN OUTPUT.

NAME = 'JOB'.

* inclusion de los temas de la lista

VALUE-KEY = 'NADAR'.
VALUE-TEXT = 'NATACION'.
APPEND VALUE TO LIST.

VALUE-KEY = 'PATINAR'.
VALUE-TEXT = 'PATINAJE'.
APPEND VALUE TO LIST.

VALUE-KEY = 'VER TV'.
VALUE-TEXT = 'TV'.
APPEND VALUE TO LIST.

VALUE-KEY = 'NINGUNO'.
VALUE-TEXT = 'NINGUNO'.
APPEND VALUE TO LIST.

CALL FUNCTION 'VRM_SET_VALUES' EXPORTING ID = NAME VALUES = LIST.

*-------------------------------------------------------------------------------
* START-OF-SELECTION.
*--------------------------------------------------------------------------------
START-OF-SELECTION.
WRITE:/ 'REPORT YACSAP001',' '.
WRITE:/ 'NOMBRE :',Nombre.
WRITE:/ 'FECHA NAC :',FechaNac.
PERFORM EDAD.
WRITE:/ 'JOB :',JOB.
PERFORM VALIDAR.
*-------------RANGES
*LOOP AT MATNR.
*WRITE: / MATNR-SIGN,
* MATNR-OPTION,
* MATNR-LOW,
* MATNR-HIGH.
*ENDLOOP.
END-OF-SELECTION.

* DEFINICION DEL RADIOBUTTON PARA INDICAR SI ES O NO EMPLEADO

*WRITE:/ 'ES UD EMPLEADO?: '.

SELECTION-SCREEN BEGIN OF BLOCK empl WITH FRAME TITLE est_emp.
PARAMETERS: SI RADIOBUTTON GROUP ee, " ee estado del empleado, empleado o desempleado
NO RADIOBUTTON GROUP ee.
SELECTION-SCREEN END OF BLOCK empl.

* AT SELECTION-SCREEN OUTPUT.

* validacion del radiobutton
FORM VALIDAR.
IF SI = 'X'.
WRITE:/ 'EMPLEADO'.
ELSE.
WRITE:/ 'DESEMPLEADO'.
ENDIF.
ENDFORM.

* calculo de la edad
FORM EDAD.
FechaAct = sy-datum.
edad = FechaAct - FechaNac.
* output_format = '01'.
WRITE:/ 'EDAD :',FechaAct.
ENDFORM.