Está en la página 1de 6

*&---------------------------------------------------------------------*

*& Report Z_NOTAS_ALUMNO


*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z_notas_alumno.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE TEXT-b01.


SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF BLOCK block5 WITH FRAME TITLE TEXT-b05.

*Tipo proceso - CRUD (crear, leer, actualizar, borrar y modificar)


PARAMETERS: p_create RADIOBUTTON GROUP crud,
p_read RADIOBUTTON GROUP crud,
p_upda RADIOBUTTON GROUP crud,
p_dele RADIOBUTTON GROUP crud,
p_modi RADIOBUTTON GROUP crud.

SELECTION-SCREEN END OF BLOCK block5.

*Datos Básicos Alumno


SELECTION-SCREEN BEGIN OF BLOCK block2 WITH FRAME TITLE TEXT-b02.
SELECTION-SCREEN SKIP.

PARAMETERS: p_ape1 TYPE c LENGTH 20, "Apellido 1


p_ape2 TYPE c LENGTH 20, "Apellido 2
p_nombre TYPE c LENGTH 20, "Nombre
p_rut TYPE c LENGTH 15 OBLIGATORY, "Rut
p_fechar TYPE sydatum. "Fecha registro

SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK block2.

*Curso
SELECTION-SCREEN BEGIN OF BLOCK block3 WITH FRAME TITLE TEXT-b03.
SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF LINE.


PARAMETERS: p_pri TYPE c AS CHECKBOX.
SELECTION-SCREEN COMMENT (20) c_pri.

PARAMETERS: p_seg TYPE c AS CHECKBOX.


SELECTION-SCREEN COMMENT (20) c_seg.

PARAMETERS: p_ter TYPE c AS CHECKBOX.


SELECTION-SCREEN COMMENT (20) c_ter.
SELECTION-SCREEN END OF LINE. .

SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK block3.

*Notas Alumno
SELECTION-SCREEN BEGIN OF BLOCK block4 WITH FRAME TITLE TEXT-b04.
SELECTION-SCREEN SKIP.

PARAMETERS: nota_1 TYPE p LENGTH 4 DECIMALS 1,


nota_2 TYPE p LENGTH 4 DECIMALS 1,
nota_3 TYPE p LENGTH 4 DECIMALS 1.

SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK block4.

SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK block1.

DATA: resultado TYPE p LENGTH 4 DECIMALS 1.

resultado = nota_1 + nota_2 + nota_3.


DIVIDE resultado BY 3.

*IF variable Datos Básicos Alumno


AT SELECTION-SCREEN ON p_ape1.
IF p_ape1 CA '0123456789'.
MESSAGE e000(zmm1).
ENDIF.

AT SELECTION-SCREEN ON p_ape2.
IF p_ape2 CA '0123456789'.
MESSAGE e000(zmm1).
ENDIF.

AT SELECTION-SCREEN ON p_nombre.
IF p_nombre CA '0123456789'.
MESSAGE e000(zmm1).
ENDIF.

*inicializar variables
INITIALIZATION.
p_fechar = sy-datum.
c_pri = TEXT-c01.
c_seg = TEXT-c02.
c_ter = TEXT-c03.

START-OF-SELECTION.
DATA gwa_nota TYPE znotas.

*&---------------------------------------------------------------------*
*& ACCIONES CRUD (Create, Read, Update, Delete)
*&---------------------------------------------------------------------*

IF p_read EQ abap_true OR
p_upda EQ abap_true OR
p_dele EQ abap_true.

SELECT SINGLE * FROM znotas


INTO gwa_nota
WHERE rut EQ p_rut.

ENDIF.
*Acciones CRUD (CREAR)
CASE abap_true.
WHEN p_create. "Crear Registro

gwa_nota-rut = p_rut.
gwa_nota-p_ape1 = p_ape1.
gwa_nota-p_ape2 = p_ape2.
gwa_nota-p_nombre = p_nombre.
gwa_nota-p_fechar = p_fechar.
gwa_nota-nota_1 = nota_1.
gwa_nota-nota_2 = nota_2.
gwa_nota-nota_3 = nota_3.
gwa_nota-resultado = resultado.

INSERT znotas FROM gwa_nota.

IF sy-subrc EQ 0.
MESSAGE i003(zmm1).
WRITE: / 'Su promedio de notas es:',resultado.
ELSE.
MESSAGE i004(zmm1).
ENDIF.

*Acciones CRUD (VISUALIZAR)


WHEN p_read. "Visualizar Registro

IF sy-subrc EQ 0.
WRITE: /'Rut:',gwa_nota-rut,
/'Primer Apellido:',gwa_nota-p_ape1,
/'Segundo Apellido:',gwa_nota-p_ape2,
/'Nombre:',gwa_nota-p_nombre,
/'Fecha Registro:',gwa_nota-p_fechar,
/'Nota 1:',gwa_nota-nota_1,
/'Nota 2:',gwa_nota-nota_2,
/'Nota 3:',gwa_nota-nota_3,
/'Resultado:',gwa_nota-resultado.
ELSE.
MESSAGE i005(zmm1).
ENDIF.

*Acciones CRUD (ACTUALIZAR)


WHEN p_upda."Actualizar Registro

IF sy-subrc EQ 0.
gwa_nota-p_nombre = p_nombre.
gwa_nota-p_ape1 = p_ape1.

UPDATE znotas FROM gwa_nota.

IF sy-subrc EQ 0.
MESSAGE i006(zmm1).
ELSE.
MESSAGE i007(zmm1).
ENDIF.

ELSE.
MESSAGE i005(zmm1).

ENDIF.
WHEN p_dele. "Eliminar Registro
IF sy-subrc EQ 0.
DELETE znotas FROM gwa_nota.

IF sy-subrc EQ 0.
MESSAGE i008(zmm1).
ELSE.
MESSAGE i009(zmm1).
ENDIF.

ENDIF.

*Acciones CRUD (MODIFICAR)


WHEN p_modi."Modificar Registro

gwa_nota-rut = p_rut.
gwa_nota-p_ape1 = p_ape1.
gwa_nota-p_ape2 = p_ape2.
gwa_nota-p_nombre = p_nombre.
gwa_nota-p_fechar = p_fechar.
gwa_nota-nota_1 = nota_1.
gwa_nota-nota_2 = nota_2.
gwa_nota-nota_3 = nota_3.

MODIFY znotas FROM gwa_nota.


IF sy-subrc EQ 0.
MESSAGE i010(zmm1).
ELSE.
MESSAGE i011(zmm1).
ENDIF.

ENDCASE.

También podría gustarte