Beruflich Dokumente
Kultur Dokumente
TABLES: MARA, MAKT, MVKE, C003, TVKMT, T687T, T023T, SKAT, C901.
DATA: descrip(40).
SELECTION-SCREEN: skip 1.
SELECTION-SCREEN BEGIN OF BLOCK rango3 WITH FRAME TITLE text-003.
SELECT-OPTIONS: MATNR FOR MARA-MATNR,
MTART FOR MARA-MTART.
SELECTION-SCREEN: skip 1.
select-options: VTWEG FOR MVKE-VTWEG default '00',
MATKL FOR MARA-MATKL,
KTGRM FOR C003-KTGRM,
KONTS FOR C003-sakn1.
SELECTION-SCREEN END OF BLOCK rango3.
SELECTION-SCREEN END OF BLOCK rango1.
SELECTION-SCREEN: skip 1.
SELECTION-SCREEN BEGIN OF BLOCK rango2 WITH FRAME TITLE text-002.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK rango2.
INITIALIZATION.
* CALL FUNCTION 'Z_PROGRAMAS_EXEC'
* EXCEPTIONS
* OTHERS = 1.
*
* AUTHORITY-CHECK OBJECT 'ZAUT_ABAP'
* ID 'BEGRU' FIELD 'ECCO'.
* IF SY-SUBRC NE 0.
* AUTHORITY-CHECK OBJECT 'ZAUT_ABAP'
* ID 'BEGRU' FIELD 'ECCB'.
* IF SY-SUBRC NE 0.
* MESSAGE E008(ZSISTEMAS) WITH 'No dispone de autorizacion para'
* 'ejecutar el programa' SY-REPID.
* ENDIF.
* ENDIF.
repname = sy-repid.
PERFORM initialize_fieldcat USING fieldtab[].
PERFORM build_eventtab USING events[].
PERFORM initialize_variant.
AT SELECTION-SCREEN.
PERFORM pai_of_selection_screen.
END-OF-SELECTION.
* Selecciono de la tabla MBEW donde se definen las categorias valorac.
REFRESH TABLA.
CLEAR TABLA.
SELECT * FROM MVKE
WHERE MATNR IN MATNR
AND VKORG = VKORG
AND VTWEG in VTWEG.
CLEAR TABLA.
TABLA-MATNR = MVKE-MATNR. "Material
TABLA-MAKTX = MAKT-MAKTX.
TABLA-MTART = MARA-MTART.
TABLA-MATKL = MARA-MATKL.
TABLA-WGBEZ = T023T-WGBEZ.
TABLA-VTWEG = MVKE-VTWEG. "Canal
TABLA-KTGRM = MVKE-KTGRM. "Grupo Imputacion
TABLA-VTEXT = TVKMT-VTEXT. "Descrip grupo imputacion
TABLA-KSCHL = C901-KSCHL. "Ventas o abono
if c901-kschl = 'KOFI'.
tabla-desti = 'Ventas'.
elseif c003-kschl = 'KOFK'.
tabla-desti = 'Costes'.
endif.
TABLA-KVSL1 = c901-kvsl1. "Tipo operacion
tabla-desop = T687T-VTEXT. "Descrip tipo operacion
************************************************************************
* Funciones comunes para las ALV. Independientes de la estructura a vis.
************************************************************************
FORM build_eventtab USING p_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events.
READ TABLE p_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE formname_top_of_page TO ls_event-form.
APPEND ls_event TO p_events.
ENDIF.
ENDFORM. " BUILD_EVENTTAB
*---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = heading.
ENDFORM. "TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form INITIALIZE_VARIANT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM initialize_variant.
g_save = 'A'.
CLEAR g_variant.
g_variant-report = repname.
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
ENDFORM. " INITIALIZE_VARIANT
*&---------------------------------------------------------------------*
*& Form F4_FOR_VARIANT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f4_for_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
is_variant = g_variant
i_save = g_save
IMPORTING
e_exit = g_exit
es_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 2.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF g_exit = space.
p_vari = gx_variant-variant.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
*&---------------------------------------------------------------------*
*& Form PAI_OF_SELECTION_SCREEN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM pai_of_selection_screen.
*
IF NOT p_vari IS INITIAL.
MOVE g_variant TO gx_variant.
MOVE p_vari TO gx_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant.
g_variant = gx_variant.
ELSE.
PERFORM initialize_variant.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LAYOUT text *
*----------------------------------------------------------------------*
FORM build_layout USING p_layout TYPE slis_layout_alv.
p_layout-f2code = f2code.
p_layout-zebra = 'X'.
p_layout-detail_popup = 'X'.
p_layout-no_keyfix = 'X'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form WRITE_OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM write_output.
DATA: l_fieldcat TYPE slis_fieldcat_alv.
refresh fieldtab.
PERFORM initialize_fieldcat using fieldtab.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = repname
it_fieldcat = fieldtab
i_save = g_save
is_variant = g_variant
TABLES
t_outtab = tabla.
IF sy-subrc <> 0.
WRITE: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. " WRITE_OUTPUT
*&---------------------------------------------------------------------*
*& Form INITIALIZE_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FIELDTAB[] text *
*----------------------------------------------------------------------*
FORM initialize_fieldcat USING p_fieldtab TYPE slis_t_fieldcat_alv.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'MAKTX'.
l_fieldcat-col_pos = 2.
l_fieldcat-seltext_m = 'Desc.Material'.
l_fieldcat-seltext_s = 'Desc.Material'.
l_fieldcat-seltext_l = 'Desc-Material'.
l_fieldcat-outputlen = 25.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'MTART'.
l_fieldcat-col_pos = 3.
l_fieldcat-seltext_m = 'Tipo M.'.
l_fieldcat-seltext_s = 'Tipo M.'.
l_fieldcat-seltext_l = 'Tipo M.'.
l_fieldcat-outputlen = 7.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'MATKL'.
l_fieldcat-col_pos = 4.
l_fieldcat-seltext_m = 'Grupo M.'.
l_fieldcat-seltext_s = 'Grupo M.'.
l_fieldcat-seltext_l = 'Grupo M.'.
l_fieldcat-outputlen = 7.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'WGBEZ'.
l_fieldcat-col_pos = 5.
l_fieldcat-seltext_m = 'Desc.Grupo M.'.
l_fieldcat-seltext_s = 'Desc.Grupo M.'.
l_fieldcat-seltext_l = 'Desc.Grupo M.'.
l_fieldcat-outputlen = 15.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'VTWEG'.
l_fieldcat-col_pos = 6.
l_fieldcat-seltext_m = 'Canal'.
l_fieldcat-seltext_s = 'Canal'.
l_fieldcat-seltext_l = 'Canal'.
l_fieldcat-outputlen = 5.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'KTGRM'. "Grupo Imputacion
l_fieldcat-col_pos = 7.
l_fieldcat-seltext_m = 'Gr.Imput.'.
l_fieldcat-seltext_s = 'Gr.Imput.'.
l_fieldcat-seltext_l = 'Gr.Imput.'.
l_fieldcat-outputlen = 8.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'VTEXT'. "Descrip Grupo Imputacion
l_fieldcat-seltext_m = 'Desc.Gr.Imput'.
l_fieldcat-seltext_s = 'Desc.Gr.Imput'.
l_fieldcat-seltext_l = 'Desc.Gr.Imput'.
l_fieldcat-col_pos = 8.
l_fieldcat-outputlen = 12.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'KSCHL'. "Ventas o Abono
l_fieldcat-seltext_m = 'Tipo Vta'.
l_fieldcat-seltext_s = 'Tipo Vta'.
l_fieldcat-seltext_l = 'Tipo Vta'.
l_fieldcat-col_pos = 9.
l_fieldcat-outputlen = 8.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'DESTI'.
l_fieldcat-col_pos = 10.
l_fieldcat-seltext_m = 'Desc.Tipo Vta'.
l_fieldcat-seltext_s = 'Desc.Tipo Vta'.
l_fieldcat-seltext_l = 'Desc.Tipo Vta'.
l_fieldcat-outputlen = 12.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'KVSL1'. "Tipo Operacion: ingresos,reduc.
l_fieldcat-seltext_m = 'Tipo Oper'.
l_fieldcat-seltext_s = 'Tipo Oper'.
l_fieldcat-seltext_l = 'Tipo Oper'.
l_fieldcat-col_pos = 11.
l_fieldcat-outputlen = 8.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'DESOP'.
l_fieldcat-seltext_m = 'Desc.Tipo Oper'.
l_fieldcat-seltext_s = 'Desc.Tipo Oper'.
l_fieldcat-seltext_l = 'Desc.Tipo Oper'.
l_fieldcat-col_pos = 12.
l_fieldcat-outputlen = 12.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'SAKN1'.
l_fieldcat-col_pos = 13.
l_fieldcat-no_zero = 'X'.
l_fieldcat-seltext_m = 'Cuenta'.
l_fieldcat-seltext_s = 'Cuenta'.
l_fieldcat-seltext_l = 'Cuenta'.
l_fieldcat-outputlen = 10.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'DESCRIP'.
l_fieldcat-col_pos = 14.
l_fieldcat-seltext_m = 'Desc.Cuenta'.
l_fieldcat-seltext_s = 'Desc.Cuenta'.
l_fieldcat-seltext_l = 'Desc.Cuenta'.
l_fieldcat-outputlen = 20.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'SAKN2'.
l_fieldcat-col_pos = 15.
l_fieldcat-no_zero = 'X'.
l_fieldcat-seltext_m = 'Cuenta2'.
l_fieldcat-seltext_s = 'Cuenta2'.
l_fieldcat-seltext_l = 'Cuenta2'.
l_fieldcat-outputlen = 10.
APPEND l_fieldcat TO p_fieldtab.
CLEAR l_fieldcat.
l_fieldcat-fieldname = 'DESCRIP2'.
l_fieldcat-col_pos = 16.
l_fieldcat-seltext_m = 'Desc.Cuenta2'.
l_fieldcat-seltext_s = 'Desc.Cuenta2'.
l_fieldcat-seltext_l = 'Desc.Cuenta2'.
l_fieldcat-outputlen = 20.
APPEND l_fieldcat TO p_fieldtab.