Zreporte Orden Prueba
Zreporte Orden Prueba
Zreporte Orden Prueba
*& Report ZPRUEBA_REPORTE_ORDEN_VR2
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZREPORTE_ORDEN_PRUEBA.
*DATA
INCLUDE ZREPORTE_ORDEN_VR2_PRUEBA_TOP.
*INCLUDE ZREPORTE_ORDEN_VR2_TOP.
"Declaración de variables"
INCLUDE ZREPORTE_ORDEN_VR2_PRUEBA_F01.
*INCLUDE ZREPORTE_ORDEN_VR2_F01.
*&---------------------------------------------------------------------*
*& Include ZPRUEBA_REPORTE_ORDEN_VR2_TOP
*&---------------------------------------------------------------------*
TABLES: COEP,
AUFK,
MAKT,
COBK,
CSKU,
* AUFM,
* AFVC,
* CRHD,
* EBAN,
MCKALKW,
COST,
AFKO,
* ZCOFI,
* EIPA,
COKL,
* CSLA,
PLPO,
* EKPO,
* KAKO.
AUAK.
DATA: VL_OBJNR TYPE c LENGTH 15,
VL_KSTAR TYPE c LENGTH 10,
VL_MATNR TYPE c LENGTH 20,
VL_GKONT TYPE c LENGTH 10,
VL_STD TYPE P LENGTH 8 DECIMALS 2,
VL_VMI TYPE P LENGTH 8 DECIMALS 2,
VL_VAR TYPE P LENGTH 8 DECIMALS 2,
VL_DIF TYPE P LENGTH 8 DECIMALS 2,
VL_WOGBTR TYPE P LENGTH 8 DECIMALS 2,
VL_MBGBTR TYPE P LENGTH 8 DECIMALS 2,
VL_TKF001 TYPE P LENGTH 8 DECIMALS 2,
VL_PRUEBA TYPE P LENGTH 8 DECIMALS 2,
VL_RES TYPE P LENGTH 8 DECIMALS 2.
TYPES: BEGIN OF T_COEP,
AUFNR LIKE AUFK-AUFNR,
OBJNR LIKE AUFK-OBJNR,
GJAHR LIKE COEP-GJAHR,
PERIO LIKE COEP-PERIO,
WERKS LIKE COEP-WERKS,
KSTAR LIKE COEP-KSTAR,
MCTXT LIKE CSKU-MCTXT,
LSTAR LIKE CSLT-LSTAR,
BUDAT LIKE COBK-BUDAT,
CPUDT LIKE COBK-CPUDT,
BLTXT LIKE COBK-BLTXT,
ARBPL LIKE MCKALKW-ARBPL,
TKF001 LIKE COST-TKF001,
MATNR LIKE COEP-MATNR,
MAKTX LIKE MAKT-MAKTX,
MBGBTR LIKE COEP-MBGBTR,
WOGBTR LIKE COEP-WOGBTR,
MEINB LIKE COEP-MEINB,
GKOAR LIKE COEP-GKOAR,
GKONT LIKE COEP-GKONT,
USNAM LIKE COBK-USNAM,
VGW03 LIKE PLPO-VGW03,
VGW04 LIKE PLPO-VGW04,
ANZMA LIKE PLPO-ANZMA,
OP_STD TYPE P LENGTH 8 DECIMALS 2,
OP_VMI TYPE P LENGTH 8 DECIMALS 2,
OP_VAR TYPE P LENGTH 8 DECIMALS 2,
OP_DIF TYPE P LENGTH 8 DECIMALS 2,
OP_RES TYPE P LENGTH 8 DECIMALS 2,
END OF T_COEP,
BEGIN OF TY_AUFK,
AUFNR TYPE AUFK-AUFNR,
OBJNR TYPE AUFK-OBJNR,
END OF TY_AUFK.
*BEGIN OF TY_COEP,
* GJAHR TYPE COEP-GJAHR,
* END OF TY_COEP.
DATA: TG_AUFK TYPE STANDARD TABLE OF TY_AUFK,
* TG_COEP TYPE STANDARD TABLE OF TY_COEP,
SG_AUFK TYPE TY_AUFK.
*Estructura para la consulta de las tablas
DATA: IT_COEP TYPE STANDARD TABLE OF T_COEP,
WA_COEP TYPE T_COEP.
DATA: IT_MAKT TYPE STANDARD TABLE OF MAKT,
WA_MAKT TYPE MAKT.
DATA: IT_MCKALKW TYPE STANDARD TABLE OF MCKALKW,
WA_MCKALKW TYPE MCKALKW.
DATA: IT_COKL TYPE STANDARD TABLE OF COKL,
WA_COKL TYPE COKL.
*Type Pool donde vienen definidas todas las estructuras y tablas
TYPE-POOLS: slis.
*Deaclaración para ALV
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
IT_TOPHEADER TYPE SLIS_T_LISTHEADER,
WA_TOP LIKE LINE OF IT_TOPHEADER,
WA_TOP2 LIKE LINE OF IT_TOPHEADER,
WA_TOP3 LIKE LINE OF IT_TOPHEADER,
gd_repid like sy-repid,
it_sort TYPE slis_t_sortinfo_alv, "Se agrego
wa_sort TYPE slis_sortinfo_alv. "Se agrego
*Declaración de parametros
SELECT-OPTIONS: P_ORDEN FOR AUFK-AUFNR OBLIGATORY, " "TIPO DE DATO DEL N
OMBRE DEL CAMPO DE LA TABLA"
P_ANO FOR COEP-GJAHR, "OBLIGATORY,
P_PERIO FOR COEP-PERIO.
*SELECT-OPTIONS: P_ANO FOR COEP-GJAHR OBLIGATORY.
*SELECT-OPTIONS: S_OBJ FOR COEP-OBJNR.
*
START-OF-SELECTION.
**IF P_ORDEN EQ AUFK-AUFNR. "IS NOT INITIAL.
**
** PERFORM F1000_CONSULTA.
**==
** ELSEIF P_ORDEN NE AUFK-AUFNR.
**
**ENDIF.
IF P_ORDEN IS NOT INITIAL.
PERFORM F1000_CONSULTA.
ENDIF.
*&---------------------------------------------------------------------*
*& Include Z_PROGRAMA5_CURSO_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form F1000_CONSULTA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
PERFORM ALV_GRID.
PERFORM build_layout.
PERFORM display_alv_report.
FORM top_of_page.
REFRESH it_topheader.
* Título del reporte
MOVE: 'H' TO wa_top-typ,
'Reporte de Ordenes: Real/Plan/Desviación' TO wa_top-info.
APPEND wa_top TO it_topheader.
* Clientes
MOVE: 'S' TO wa_top-typ,
p_orden-low TO wa_top-info,
'Orden:' TO wa_top-key,
'S' TO wa_top2-typ,
p_ano-low TO wa_top2-info,
'Año:' TO wa_top2-key,
'S' TO wa_top3-typ,
p_perio-low TO wa_top3-info,
'Periodo:' TO wa_top3-key.
APPEND wa_top TO it_topheader.
APPEND wa_top2 TO it_topheader.
APPEND wa_top3 TO it_topheader.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_topheader
i_logo = 'ZLOGO_LGT256'.
ENDFORM. "top_of_page
FORM F1000_CONSULTA.
SELECT
L~AUFNR
L~OBJNR
X~GJAHR
X~GJAHR
X~PERIO
X~WERKS
X~KSTAR
F~MCTXT
******* J~LSTAR
Z~BUDAT
Z~CPUDT
Z~BLTXT
******* A~ARBPL
S~ANZMA
S~VGW03
S~VGW04
* O~TKF001
X~MATNR
******* Y~MAKTX
X~MBGBTR
X~WOGBTR
X~MEINB
X~GKOAR
X~GKONT
Z~USNAM
INTO CORRESPONDING FIELDS OF TABLE IT_COEP
FROM AUFK AS L
INNER JOIN COEP AS X
ON L~OBJNR EQ X~OBJNR
AND L~KOKRS EQ X~KOKRS
LEFT OUTER JOIN CSKU AS F
ON X~KSTAR EQ F~KSTAR
LEFT OUTER JOIN AFKO AS R "INNER
ON L~AUFNR EQ R~AUFNR
INNER JOIN PLPO AS S
ON R~PLNNR EQ S~PLNNR
AND R~PLNTY EQ S~PLNTY
AND R~ZAEHL EQ S~ZAEHL
AND L~WERKS EQ S~WERKS
LEFT OUTER JOIN COBK AS Z
ON X~BELNR EQ Z~BELNR
AND X~KOKRS EQ Z~KOKRS
WHERE L~AUFNR IN P_ORDEN
AND X~GJAHR IN P_ANO
AND X~PERIO IN P_PERIO.
SORT IT_COEP BY AUFNR GJAHR KSTAR PERIO. "BUDAT MATNR ARBPL MBGBTR TKF001
WOGBTR." Se agrego GJAHR, BUDAT, TKF001 y WOGBTR
*SORT IT_COEP BY AUFNR GJAHR KSTAR BUDAT MATNR ARBPL MBGBTR TKF001 WOGBTR
." Se agrego GJAHR, BUDAT, TKF001 y WOGBTR
* DELETE ADJACENT DUPLICATES FROM IT_COEP. "COMPARING ARBPL TKF001 MATNR.
"COMPARING KSTAR ARBPL TKF001 MATNR MBGBTR.
**********************************DATOS MAKT*****************************
*************
SELECT *
INTO CORRESPONDING FIELDS OF TABLE IT_MAKT"-MAKTX
FROM MAKT FOR ALL ENTRIES IN IT_COEP
WHERE MATNR = IT_COEP-MATNR.
LOOP AT IT_COEP INTO WA_COEP.
READ TABLE IT_MAKT INTO WA_MAKT
WITH KEY MATNR = WA_COEP-MATNR.
IF SY-SUBRC = 0.
WA_COEP-MAKTX = WA_MAKT-MAKTX.
MODIFY IT_COEP FROM WA_COEP.
ENDIF.
ENDLOOP.
*************************************************************************
*************
**********************************LLLENAR CAMPO LSTAR********************
**********************
LOOP AT IT_COEP INTO WA_COEP.
IF WA_COEP-MCTXT = 'MANO DE OBRA'.
WA_COEP-LSTAR = 'MOD'.
MODIFY IT_COEP FROM WA_COEP.
ENDIF.
IF WA_COEP-MCTXT = 'GASTOS IND FABRICACI'.
WA_COEP-LSTAR = 'GIF'.
MODIFY IT_COEP FROM WA_COEP..
ENDIF.
IF WA_COEP-MCTXT = 'TIEMPO SETUP'.
WA_COEP-LSTAR = 'SETUP'.
MODIFY IT_COEP FROM WA_COEP..
ENDIF.
* ENDIF.
ENDLOOP.
*************************************************************************
**********************
**********************************DATOS MCKALKW**************************
****************
SELECT *
INTO CORRESPONDING FIELDS OF TABLE IT_MCKALKW
FROM MCKALKW FOR ALL ENTRIES IN IT_COEP
WHERE AUFNR = IT_COEP-AUFNR.
LOOP AT IT_COEP INTO WA_COEP.
READ TABLE IT_MCKALKW INTO WA_MCKALKW
WITH KEY AUFNR = WA_COEP-AUFNR
KSTAR = WA_COEP-KSTAR
MATNR = WA_COEP-MATNR.
IF SY-SUBRC = 0.
WA_COEP-ARBPL = WA_MCKALKW-ARBPL.
MODIFY IT_COEP FROM WA_COEP.
ENDIF.
ENDLOOP.
***********************************************************************
***************DATOS PARA EL CAMPO TKF001***************
SELECT *
INTO CORRESPONDING FIELDS OF TABLE IT_COKL
FROM COKL FOR ALL ENTRIES IN IT_COEP
WHERE VKSTA = IT_COEP-KSTAR
AND GJAHR = IT_COEP-GJAHR.
SORT IT_COKL BY VKSTA.
********************************************************
*WHERE OBJNR IN P_ORDEN.
LOOP AT IT_COEP INTO WA_COEP.
VL_OBJNR = WA_COEP-AUFNR+5(7).
WA_COEP-AUFNR = VL_OBJNR.
VL_KSTAR = WA_COEP-KSTAR+2(8).
WA_COEP-KSTAR = VL_KSTAR.
VL_MATNR = WA_COEP-MATNR+12(6).
WA_COEP-MATNR = VL_MATNR.
IF WA_COEP-VGW04 NE 0.
VL_STD = WA_COEP-VGW04.
ELSE.
VL_STD = WA_COEP-VGW03 * WA_COEP-ANZMA.
ENDIF.
* VL_STD = VL_RES. "77.
WA_COEP-OP_STD = VL_STD.
VL_TKF001 = WA_COEP-TKF001.
VL_VMI = VL_STD * VL_TKF001.
WA_COEP-OP_VMI = VL_VMI.
VL_MBGBTR = WA_COEP-MBGBTR.
VL_VAR = VL_STD - VL_MBGBTR.
WA_COEP-OP_VAR = VL_VAR.
VL_WOGBTR = WA_COEP-WOGBTR.
VL_DIF = VL_VMI - VL_WOGBTR.
WA_COEP-OP_DIF = VL_DIF.
*QUITAR CEROS
VL_GKONT = WA_COEP-GKONT+2(8).
WA_COEP-GKONT = VL_GKONT.
MODIFY IT_COEP FROM WA_COEP.
ENDLOOP.
ENDFORM.
*CATALOGO
FORM ALV_GRID.
fieldcatalog-fieldname = 'AUFNR'.
fieldcatalog-seltext_m = 'Orden'.
fieldcatalog-col_pos = 1.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
* fieldcatalog-fieldname = 'BUGJAHR'.
fieldcatalog-fieldname = 'GJAHR'.
fieldcatalog-seltext_m = 'Año'.
fieldcatalog-col_pos = 2.
fieldcatalog-outputlen = '4'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PERIO'.
fieldcatalog-seltext_m = 'Periodo'.
fieldcatalog-col_pos = 3.
fieldcatalog-outputlen = '7'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'WERKS'.
fieldcatalog-seltext_m = 'Centro'.
fieldcatalog-col_pos = 4.
fieldcatalog-outputlen = '10'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'KSTAR'.
fieldcatalog-seltext_m = 'Cuenta Contable'.
fieldcatalog-col_pos = 5.
fieldcatalog-outputlen = '10'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MCTXT'.
fieldcatalog-seltext_m = 'Denom. de la cuenta'.
fieldcatalog-col_pos = 6.
fieldcatalog-outputlen = '15'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'LSTAR'.
fieldcatalog-seltext_m = 'Clase de act.'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = '15'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'BUDAT'.
fieldcatalog-seltext_m = 'Fecha contable'.
fieldcatalog-col_pos = 8.
fieldcatalog-outputlen = '10'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'CPUDT'.
fieldcatalog-seltext_m = 'Fecha registro'.
fieldcatalog-col_pos = 9.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'BLTXT'.
fieldcatalog-seltext_m = 'Texto doc.'.
fieldcatalog-col_pos = 10.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'ARBPL'.
fieldcatalog-seltext_m = 'Recurso'.
fieldcatalog-col_pos = 11.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'ANZMA'.
fieldcatalog-seltext_m = 'Cantidad empleados'.
fieldcatalog-col_pos = 12.
fieldcatalog-outputlen = '10'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'VGW03'.
fieldcatalog-seltext_m = 'GIF'.
fieldcatalog-col_pos = 13.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'VGW04'.
fieldcatalog-seltext_m = 'MOD'.
fieldcatalog-col_pos = 14.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'OP_STD'.
fieldcatalog-seltext_m = 'STD'.
fieldcatalog-col_pos = 15.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'TKF001'.
fieldcatalog-seltext_m = 'Tarifa/Costo STD'.
fieldcatalog-col_pos = 16.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'OP_VMI'.
fieldcatalog-seltext_m = 'Val./MI Estándar'.
fieldcatalog-col_pos = 17.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material'.
fieldcatalog-col_pos = 18.
fieldcatalog-outputlen = '20'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MAKTX'.
fieldcatalog-seltext_m = 'Descrip. material'.
fieldcatalog-col_pos = 19.
fieldcatalog-outputlen = '24'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MBGBTR'.
fieldcatalog-seltext_m = 'Cantidad Registrada'.
fieldcatalog-col_pos = 20.
fieldcatalog-outputlen = '12'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'WOGBTR'.
fieldcatalog-seltext_m = 'Valores'.
fieldcatalog-col_pos = 21.
fieldcatalog-outputlen = '10'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'OP_VAR'.
fieldcatalog-seltext_m = 'Cantidad/Tiempo'.
fieldcatalog-col_pos = 22.
fieldcatalog-outputlen = '5'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'OP_DIF'.
fieldcatalog-seltext_m = 'Dif $'.
fieldcatalog-col_pos = 23.
fieldcatalog-outputlen = '5'.
fieldcatalog-emphasize = 'X'.
fieldcatalog-do_sum = 'X'. "Se agrego para total
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINB'.
fieldcatalog-seltext_m = 'UCC'.
fieldcatalog-col_pos = 24.
fieldcatalog-outputlen = '5'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'GKOAR'.
fieldcatalog-seltext_m = 'CCTACP'.
fieldcatalog-col_pos = 25.
fieldcatalog-outputlen = '8'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'GKONT'.
fieldcatalog-seltext_m = 'CTA. CP'.
fieldcatalog-col_pos = 26.
fieldcatalog-outputlen = '10'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'USNAM'.
fieldcatalog-seltext_m = 'Usuario'.
fieldcatalog-col_pos = 27.
fieldcatalog-outputlen = '10'.
fieldcatalog-emphasize = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
"Se agrego para los subtotales
wa_sort-spos = 1.
wa_sort-fieldname = 'MCTXT'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
append wa_sort TO it_sort.
ENDFORM. " BUILD_FIELDCATALOG
*Estructura del diseño de GRID
FORM build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-confirmation_prompt = 'X'.
* gd_layout-totals_text = 'Totals'(201).
gd_layout-header_text = 'helllllo'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
* Display report using ALV grid
*----------------------------------------------------------------------*
FORM display_alv_report.
gd_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
I_BUFFER_ACTIVE = 'X'
is_layout = gd_layout
i_callback_top_of_page = 'TOP_OF_PAGE'
it_fieldcat = fieldcatalog[]
i_save = 'X'
it_sort = it_sort "Se agrego
TABLES
t_outtab = it_COEP
EXCEPTIONS
program_error = 1
others = 2.
if sy-subrc <> 0.
endif.
ENDFORM.