Professional Documents
Culture Documents
DATA: ls_color TYPE lvc_s_scol, "Variable interna para el color de una celda
iv_cont TYPE I,
v_lines(3) type c.
*Seleccionar Datos
CLEAR: ti_zekpo, v_lines.
REFRESH ti_zekpo.
SELECT * UP TO 50 ROWS
FROM Zekpo
INTO CORRESPONDING FIELDS OF TABLE ti_zekpo.
******Pintar Filas***
*********************
*** LOOP AT ti_zekpo INTO wa_zekpo.
*** IF wa_zekpo-menge GE 20.
*** wa_zekpo-icono_estado = '@08@'. " Icono Verde
**** Asignamos un color a una fila
*** wa_zekpo-color = 'C510'. "Color de la Fila. "C100 = Azul, C300 = Amarillo,
C400 = Verde Claro, C500 = Verde Medio, C600 = Rojo Medio, C700 = Rojo Claro, C200
= Gris Claro C800 = Gris Medio
*** MODIFY ti_zekpo FROM wa_zekpo TRANSPORTING color icono_estado WHERE EBELN
EQ wa_zekpo-ebeln AND EBELP EQ wa_zekpo-ebelp.
*** ELSE.
*** wa_zekpo-icono_estado = '@0A@'. " Icono Rojo
*** CLEAR ls_color.
*** ls_color-fname = 'EBELN'.
*** ls_color-color-col = '1'. "Color de la celda ('6' = ROJO, '3' = AMARILLO,
'1' = AZUL, '2' = Gris, '5' = Verde, '7' Naranja)
*** ls_color-color-int = '1'. "('1' = INTENSO, '0' = OPACO)
*** ls_color-color-inv = '0'. "( 0 = Color Celda, 1 = Color Letras)
*** APPEND ls_color TO wa_zekpo-cellcolors.
*** MODIFY ti_zekpo FROM wa_zekpo TRANSPORTING cellcolors icono_estado WHERE
EBELN EQ wa_zekpo-ebeln AND EBELP EQ wa_zekpo-ebelp.
*** ENDIF.
*** ENDLOOP.
*********************
ENDFORM.
*&---------------------------------------------------------------------*
*& Form LAYOUT_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM LAYOUT_ALV .
*Configuramos el layout
CLEAR st_layout.
st_layout-grid_title = 'Reporte'. "Titulo Ventana Principal
st_layout-zebra = 'X'. "Emite patron de rayas
st_layout-cwidth_opt = 'X'. "Si es 'X' todas los anchos de las columnas
son optimizados.
st_layout-info_fname = 'COLOR'. "Pintar lineas
st_layout-ctab_fname = 'CELLCOLORS'. "Pintar Celda especifica
* st_layout-no_headers = 'X'. "Si es 'X' no muestra la columna de
cabecera.
* st_layout-no_toolbar = 'X'. "Si es 'X' esconde la barra de
herramientas.
* st_layout-totals_bef = 'X'. "Si es 'X' muestra los totales antes de la
primera l�nea.
st_layout-edit = 'X'. "Filas editables
st_layout-stylefname = 'CELLTAB'. "Celdas editables
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ARMAR_CATALOGO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ARMAR_CATALOGO .
clear ls_fieldcat.
ls_fieldcat-tabname = 'IT_EKPO'. "Tabla usada
* ls_fieldcat-ref_tabname = 'EKPO'. "Tabla estandar para cabecera
automatica
ls_fieldcat-fieldname = 'EBELN'. "Campo de la tabla (Siempre
en May�sculas)
* ls_fieldcat-do_sum = ' '. "Sumar campo para subtotal
(Valor X)
* ls_fieldcat-key = 'X'. "Columna clave
ls_fieldcat-scrtext_s = 'DOC.COMPRAS'. "Descripci�n corta Cabecera
ls_fieldcat-scrtext_m = 'DOCUMENTOS COMPRAS'. "Descripci�n media Cabecera
ls_fieldcat-scrtext_l = 'DOCUMENTOS DE COMPRAS'. "Descripci�n larga Cabecera
ls_fieldcat-outputlen = 15. "Ancho de la columna
ls_fieldcat-just = 'C'. "Alineaci�n
* ls_fieldcat-emphasize = 'C700'. "Color de la Fila. "C100 =
Azul, C300 = Amarillo, C400 = Verde Claro, C500 = Verde Medio, C600 = Rojo Medio,
C700 = Rojo Claro, C200 = Gris Claro C800 = Gris Medio
* ls_fieldcat-col_pos = 1. "Posici�n de salida en la
tabla
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-tabname = 'IT_EKPO'.
ls_fieldcat-fieldname = 'EBELP'.
* ls_fieldcat-do_sum = ' '.
* ls_fieldcat-key = ' '.
ls_fieldcat-scrtext_s = 'POSICI�N'.
ls_fieldcat-scrtext_m = 'POSICI�N'.
ls_fieldcat-scrtext_l = 'POSICI�N'.
ls_fieldcat-outputlen = 20.
* ls_fieldcat-just = 'L'.
* ls_fieldcat-emphasize = 'C300'.
* ls_fieldcat-col_pos = 1.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-tabname = 'IT_EKPO'.
ls_fieldcat-fieldname = 'KTMNG'.
* ls_fieldcat-do_sum = 'X'.
ls_fieldcat-scrtext_s = 'CTD. PREVISTA'.
ls_fieldcat-scrtext_m = 'CTD. PREVISTA'.
ls_fieldcat-scrtext_l = 'CTD. PREVISTA'.
ls_fieldcat-outputlen = 20.
* ls_fieldcat-just = 'R'.
* ls_fieldcat-emphasize = 'C300'.
* ls_fieldcat-col_pos = 1.
append ls_fieldcat to lt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-tabname = 'IT_EKPO'.
ls_fieldcat-fieldname = 'MENGE'.
* ls_fieldcat-do_sum = 'X'.
ls_fieldcat-scrtext_s = 'PEDIDO'.
ls_fieldcat-scrtext_m = 'CANTIDAD PEDIDO'.
ls_fieldcat-scrtext_l = 'CANTIDAD PEDIDO'.
ls_fieldcat-outputlen = 20.
* ls_fieldcat-just = 'R'.
* ls_fieldcat-emphasize = 'C300'.
* ls_fieldcat-col_pos = 1.
append ls_fieldcat to lt_fieldcat.
* clear ls_fieldcat.
* ls_fieldcat-tabname = 'IT_EKPO'.
* ls_fieldcat-fieldname = 'ICONO_ESTADO'.
** ls_fieldcat-do_sum = 'X'.
* ls_fieldcat-scrtext_s = 'ESTADO'.
* ls_fieldcat-scrtext_m = 'ESTADO'.
* ls_fieldcat-scrtext_l = 'ESTADO'.
* ls_fieldcat-outputlen = 20.
** ls_fieldcat-just = 'R'.
** ls_fieldcat-emphasize = 'C300'.
** ls_fieldcat-col_pos = 1.
* append ls_fieldcat to lt_fieldcat.
*************************
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CREATE_SORT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CREATE_SORT .
*Ordenar tabla de salida
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CREATE_EXCLUDE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CREATE_EXCLUDE .
CLEAR lt_exclude.
REFRESH lt_exclude.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form EJECUTAR_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM EJECUTAR_ALV .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SWITCH_EDIT_MODE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SWITCH_EDIT_MODE .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SAVE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SAVE_DATA .
CLEAR l_valid.
call method o_grilla->check_changed_data
importing
e_valid = l_valid.
if l_valid is initial.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form UPDATE_DATABASE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM UPDATE_DATABASE.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SALIR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM SALIR .
LEAVE PROGRAM.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CELDAS_EDIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CELDAS_EDIT .
wa_zekpo-celltab = lt_celltab.
MODIFY ti_zekpo FROM wa_zekpo TRANSPORTING celltab WHERE EBELN EQ wa_zekpo-
ebeln AND EBELP EQ wa_zekpo-ebelp.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FILL_CELLTAB
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_0559 text
* <--P_LT_CELLTAB text
*----------------------------------------------------------------------*
FORM FILL_CELLTAB USING VALUE(p_mode)
CHANGING pt_celltab TYPE lvc_t_styl.
* Bloquear / Desbloquear
IF p_mode EQ 'RW'.
***Campos de la tabla***
ls_celltab-fieldname = 'MATNR'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
ls_celltab-fieldname = 'EBELN'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
ls_celltab-fieldname = 'EBELP'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
ls_celltab-fieldname = 'KTMNG'.
ls_celltab-style = l_mode. " Propiedad para Bloquear/Desbloquear Celda
* ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
ls_celltab-fieldname = 'MENGE'.
ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
INSERT ls_celltab INTO TABLE pt_celltab.
************************
ENDFORM.