Ejemplo - Abap Con Adobe Forms
Ejemplo - Abap Con Adobe Forms
************************************************************************
** NOMBRE
: ZCO_FICHA_COSTES
**
** DESCRIPCIN : Ficha de costes
**
** AUTOR
: Eduardo Campos (Sapas)
**
** FECHA
: 09.10.2013
**
************************************************************************
** MODIFICACION 1
**
**
Fecha
: 30-10-2014
**
**
Id
: JMM-301014
**
**
Autor
: Josep Martn (SAPAS)
**
**
Descripcin: INCMCM0005 :
**
Los campos "Producto"/"GR/M2(Gramaje)", tienen los siguientes
**
problemas en el Listado:
**
**
- Campo "Producto": El problema es que ls desc.del producto
**
est en "Ingls" y deber de estar siempre en "Espaol".
**
**
- Campo "GR/M2(Gramaje)": El Problema que el Gramaje que est
**
mostrando no es correcto se deber de verificar de donde
**
saca el Gramaje y corregir el Error.
**
************************************************************************
REPORT zco_ficha_costes.
*----------------------------------------------------------------------*
*
DEFINICIN DE TABLAS
*----------------------------------------------------------------------*
TABLES: ckis.
*----------------------------------------------------------------------*
*
DEFINICIN DE INCLUDES
*----------------------------------------------------------------------*
*INCLUDE zut01.
*----------------------------------------------------------------------*
*
DEFINICIN DE TIPOS
*----------------------------------------------------------------------*
TYPES: BEGIN OF tp_tab,
kostl TYPE ckis-kostl,
matnr TYPE ckis-matnr,
meeht TYPE ckis-meeht,
menge TYPE ckis-menge,
gpreis TYPE ckis-gpreis,
peinh TYPE ckis-peinh,
pmeht TYPE ckis-pmeht,
wertn TYPE ckis-wertn,
lstar TYPE ckis-lstar,
maktx TYPE makt-maktx,
werks TYPE ckis-werks,
typps TYPE ckis-typps,
arbid TYPE ckis-arbid,
END OF tp_tab.
TYPES: BEGIN OF tp_lista,
kostl TYPE ckis-kostl,
matnr TYPE ckis-matnr,
meeht TYPE ckis-meeht,
menge TYPE ckis-menge,
gpreis TYPE ckis-gpreis,
peinh TYPE ckis-peinh,
pmeht TYPE ckis-pmeht,
wertn TYPE ckis-wertn,
baugr TYPE ckis-baugr,
ukaln TYPE ckis-ukaln,
Pag. 1 de 29
DATA: gt_keko
DATA: gt_cabecera
TYPE zco_tt_ficha_coste_cabecera,
gt_bloque01
TYPE zco_tt_ficha_coste_bloque01,
gt_bloque02
TYPE zco_tt_ficha_coste_bloque02,
gt_bloque02_tmp TYPE zco_tt_ficha_coste_bloque02,
gt_prods
TYPE TABLE OF tp_prods,
gt_recorte
TYPE TABLE OF tp_recorte,
gt_matnr
TYPE TABLE OF mara-matnr,
gt_ficha_coste TYPE zco_tt_ficha_coste,
gt_explo
TYPE TABLE OF tp_lista.
Pag. 2 de 29
*----------------------------------------------------------------------*
*
DEFINICIN DE CONSTANTES
*
*----------------------------------------------------------------------*
DATA: c_desglose
TYPE tdltypnam VALUE '01_DESGLOSE',
c_abonorecorte TYPE tdltypnam VALUE '02_ABONORECORTE',
c_acumulado
TYPE tdltypnam VALUE '03_ACUMULADO',
c_recalculomerma TYPE tdltypnam VALUE '04_RECALCULOMERMA',
c_totalrecorte TYPE tdltypnam VALUE '99_TOTALRECORTE',
c_primerregistro TYPE i
VALUE 1.
*----------------------------------------------------------------------*
*
DEFINICIN DE RANGES
*----------------------------------------------------------------------*
RANGES: rg_bklas
FOR mbew-bklas,
rg_matpri
FOR mbew-bklas,
rg_matnr
FOR mbew-bklas,
rg_energia
FOR ckis-lstar,
rg_valora
FOR ckis-lstar,
rg_recorte
FOR mbew-bklas.
*----------------------------------------------------------------------*
*
DEFINICIN DE FIELD SYMBOLS
*----------------------------------------------------------------------*
*field-symbols: <fs_xxxx>.
"Descripcin
*----------------------------------------------------------------------*
Pag. 3 de 29
*----------------------------------------------------------------------*
*
DEFINICIN DE LA PANTALLA DE SELECCIN
*
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS: so_matnr FOR ckis-matnr OBLIGATORY. "Material
PARAMETERS: p_werks TYPE keko-werks OBLIGATORY, "Centro
p_klvar TYPE keko-klvar OBLIGATORY, "Variante clc.coste
p_tvers TYPE keko-tvers OBLIGATORY DEFAULT '1',"Versin CC
p_fecha TYPE keko-kadat OBLIGATORY. "Fecha CC
SELECTION-SCREEN END OF BLOCK bl1.
************************************************************************
*
PROGRAMA PRINCIPAL
*
************************************************************************
*----------------------------------------------------------------------*
*---------INITIALIZATION
----------*
*----------------------------------------------------------------------*
INITIALIZATION.
* repname = sy-repid.
*----------------------------------------------------------------------*
*---------AT SELECTION-SCREEN
----------*
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
* Validacin autorizacin Centro.
AUTHORITY-CHECK OBJECT 'ZSD1_03'
ID 'WERKS' FIELD p_werks
ID 'ACTVT' FIELD '03'.
* Si hay falta, mostramos un error.
IF sy-subrc NE 0.
MESSAGE s004(zco) WITH p_werks DISPLAY LIKE 'E'.
gv_error = 'X'.
ELSE.
gv_error = ''.
ENDIF.
*----------------------------------------------------------------------*
*---------START OF SELECTION
-----------*
*----------------------------------------------------------------------*
START-OF-SELECTION.
CHECK gv_error = ''.
* Preparamos los rangos que utilizaremos para filtrar.
PERFORM preparar_rangos.
* Seleccionamos los materiales.
PERFORM seleccion_materiales.
CHECK gt_matnr[] IS NOT INITIAL.
Pag. 4 de 29
Mostramos el formulario.
PERFORM generar_pagina_formulario.
ENDIF.
ENDLOOP.
*----------------------------------------------------------------------*
*---------END OF SELECTION
-----------*
*----------------------------------------------------------------------*
END-OF-SELECTION.
CHECK gv_error = ''.
CHECK gt_matnr[] IS NOT INITIAL.
* Cerramos el formulario.
PERFORM cerrar_formulario.
*
*
*
*
*
*
*
*
*
*
*
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM
PERFORM
************************************************************************
**************
SUBRUTINAS
*******************
************************************************************************
*&---------------------------------------------------------------------*
*&
Form SELECCION_DATOS
*&---------------------------------------------------------------------*
*
text
Pag. 5 de 29
" SELECCION_DATOS
*&---------------------------------------------------------------------*
*&
Form OBTENER_LISTA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_GS_KEKO text
*
-->P_GT_LISTA text
*----------------------------------------------------------------------*
FORM obtener_lista TABLES pt_tab TYPE tt_tab
USING pi_kalnr pi_kadky pi_kalka pi_matnr
pi_werks pi_tlote pi_menge pi_peinh.
DATA: ls_lista TYPE tp_lista,
lt_lista TYPE tt_lista,
ls_tab TYPE tp_tab,
l_kostl TYPE ckis-kostl,
lt_conjunto TYPE tt_tab,
lv_losgr TYPE keko-losgr,
lv_kosar TYPE csks-kosar.
CLEAR lt_lista[].
* Obtenemos los datos de la lista de componentes.
SELECT *
FROM ckis
INTO CORRESPONDING FIELDS OF TABLE lt_lista
WHERE kalnr = pi_kalnr
AND kalka = pi_kalka
AND kadky = pi_kadky.
CLEAR l_kostl.
* Cogemos un registro que tenga el Ceco informado.
LOOP AT lt_lista INTO ls_lista WHERE kostl <> ''.
* Nos guardamos el registro.
l_kostl = ls_lista-kostl.
EXIT.
ENDLOOP.
* Productividades
CLEAR: gs_prods.
* Seleccionamos la productividad y la merma.
SELECT SINGLE zproduct zmerma
FROM zpp_product
INTO (gs_prods-prod, gs_prods-merma)
WHERE matnr = pi_matnr
AND werks = pi_werks.
CLEAR lv_kosar.
* Obtenemos el indicador de turno.
SELECT SINGLE kosar
INTO lv_kosar
FROM csks
WHERE kostl EQ l_kostl
AND datbi GE pi_kadky.
* Modificamos la produccin segn los criterios siguientes.
Pag. 7 de 29
ENDLOOP.
ENDIF.
" OBTENER_LISTA
*&---------------------------------------------------------------------*
*&
Form GENERAR_PAGINA_FORMULARIO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM generar_pagina_formulario .
CALL FUNCTION gv_fm_name
EXPORTING
* /1BCDWB/DOCPARAMS
=
*
t_cabecera
= gt_cabecera
*
t_bloque01
= gt_bloque01
*
t_bloque02
= gt_bloque02
t_ficha
= gt_ficha_coste
* IMPORTING
* /1BCDWB/FORMOUTPUT
=
EXCEPTIONS
usage_error
=1
system_error
=2
internal_error
=3
OTHERS
=4
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
" GENERAR_PAGINA_FORMULARIO
*&---------------------------------------------------------------------*
*&
Form PREPARAR_RANGOS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM preparar_rangos .
DATA: ls_datos TYPE zco_fcoste_datos.
Pag. 9 de 29
" PREPARAR_RANGOS
*&---------------------------------------------------------------------*
*&
Form TRATAR_DATOS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM tratar_datos .
Pag. 10 de 29
IF gs_itab-matnr = ''.
Texto de la lnea.
SELECT SINGLE ktext INTO gs_itab-maktx
FROM cslt
WHERE spras = 'S'
"Mod.JMM-301014
AND kokrs = '001'
"Mod.JMM-301014
AND lstar = gs_itab-lstar.
ELSE.
Texto del maestro de materiales.
SELECT SINGLE maktx INTO gs_itab-maktx
FROM makt
WHERE spras = 'S'
"Mod.JMM-301014
AND matnr = gs_itab-matnr.
ENDIF.
Si lo encontramos.
IF sy-subrc = 0.
Buscamos el texto.
SELECT SINGLE maktx FROM makt
INTO lv_maktx
WHERE spras = 'S'
"Mod.JMM-301014
AND matnr = gs_explo-matnr.
Grabamos el registro.
APPEND gs_bloque01 TO gt_bloque01.
ENDIF.
CLEAR: gs_bloque01, v_bklas.
gs_bloque01-kostl = gs_itab-kostl.
* Campos genricos.
gs_bloque01-un_necesarias = gs_itab-menge.
gs_bloque01-precio_unit = gs_itab-gpreis.
gs_bloque01-total_eur
= gs_itab-wertn.
* Comprobamos si la categora de valoracin del registro corresponde
* a la de los acumulados.
SELECT SINGLE bklas
FROM mbew
INTO v_bklas
WHERE matnr = gs_itab-matnr
AND bwkey = gs_itab-werks
AND bklas IN rg_bklas.
* Si est dentro de las categoras de acumulados.
IF sy-subrc = 0.
gs_bloque01-umb = '*'.
*
* Si no.
ELSE.
gs_bloque01-umb = gs_itab-meeht.
Pag. 12 de 29
Grabamos el registro.
APPEND gs_bloque01 TO gt_bloque01.
ENDIF.
Materia prima.
IF v_bklas IN rg_matpri.
gs_bloque02-mat_prima = gs_itab-wertn.
Materiales.
ELSEIF v_bklas IN rg_matnr.
gs_bloque02-materiales = gs_itab-wertn.
Abono recorte.
ELSEIF v_bklas IN rg_recorte.
*
*
Si es positivo.
IF gs_itab-menge > 0.
Se considera materia prima.
gs_bloque02-mat_prima = gs_itab-wertn.
ELSE.
gs_recorte-ceco
= gs_bloque02-ceco.
SHIFT gs_recorte-ceco LEFT DELETING LEADING '0'.
gs_recorte-mat_prima = gs_itab-wertn.
gs_recorte-produccion = gs_itab-menge.
gs_recorte-um
= gs_itab-meeht.
COLLECT gs_recorte INTO gt_recorte.
Seguimos con el siguiente registro.
CONTINUE.
ENDIF.
ENDIF.
WHEN 'E'. "Valor aadido y Energia.
Energia.
IF gs_itab-lstar IN rg_energia.
Pag. 13 de 29
Valor aadido.
ELSEIF gs_itab-lstar IN rg_valora.
gs_bloque02-valor_a = gs_itab-wertn.
ENDIF.
WHEN OTHERS.
ENDCASE.
* Grabamos el registro.
COLLECT gs_bloque02 INTO gt_bloque02_tmp.
CLEAR gs_itab.
ENDLOOP.
CLEAR gv_numlin.
*** Desglose y Abono recorte *******************************************
LOOP AT gt_bloque02_tmp INTO gs_bloque02.
* Contador de nmero de lnea.
gv_numlin
= gv_numlin + 1.
gs_bloque02-numlin = gv_numlin.
gs_bloque02-tipolinea = c_desglose. "Tipo desglose
* Si el ceco est en blanco.
IF gs_bloque02-ceco IS INITIAL.
*
Movemos el ceco que hemos guardado previamente.
gs_bloque02-kostl = lv_ceco.
* Si no.
ELSE.
*
Asignamos el ceco de la lnea al bloque y a la variable local.
gs_bloque02-kostl = gs_bloque02-ceco.
lv_ceco = gs_bloque02-ceco.
ENDIF.
CLEAR gs_prods.
* Recuperamos la productividad y la merma.
READ TABLE gt_prods INTO gs_prods WITH KEY kostl = gs_bloque02-ceco.
IF sy-subrc = 0.
gs_bloque02-produccion = gs_prods-prod.
gs_bloque02-turno
= gs_prods-turno.
*
Coste unitario.
gs_bloque02-coste_unitario = gs_bloque02-produccion *
gs_bloque02-valor_a /
Pag. 14 de 29
gs_prods-tlote.
ENDIF.
CLEAR lv_ktext.
* Obtenemos la denominacin del ceco.
SELECT SINGLE ktext
INTO lv_ktext
FROM cskt
WHERE spras = 'S'
AND kokrs = gs_keko-kokrs
AND kostl = gs_bloque02-ceco
AND datbi >= p_fecha.
CLEAR txt_ceco.
WRITE gs_bloque02-ceco TO txt_ceco NO-ZERO NO-GAP.
SHIFT txt_ceco LEFT DELETING LEADING space.
* Movemos la denominacin del material.
CONCATENATE txt_ceco lv_ktext
INTO gs_bloque02-ceco
SEPARATED BY space.
* Total de ceco
gs_bloque02-total_ceco = gs_bloque02-materiales +
gs_bloque02-mat_prima +
gs_bloque02-energia +
gs_bloque02-valor_a.
* Modificamos el registro.
APPEND gs_bloque02 TO gt_bloque02.
* Posicin de recorte.
CLEAR gs_recorte.
READ TABLE gt_recorte INTO gs_recorte
WITH KEY ceco = txt_ceco.
CLEAR gs_bloque02.
gs_bloque02-kostl
= lv_ceco.
gs_bloque02-numlin
= gv_numlin.
gs_bloque02-tipolinea = c_abonorecorte. "Abono Recorte
gs_bloque02-ceco
= 'Abono Recorte'.
gs_bloque02-produccion = gs_recorte-produccion.
gs_bloque02-mat_prima = gs_recorte-mat_prima.
gs_bloque02-total_ceco = gs_recorte-mat_prima.
gs_bloque02-turno
= gs_recorte-um.
* Aadimos el registro.
APPEND gs_bloque02 TO gt_bloque02.
ENDLOOP.
*** Recorte total ******************************************************
PERFORM calcular_recorte.
*** Total con merma ****************************************************
PERFORM acumulado_y_recalculo_merma.
* Ordenamos la tabla para que los registros de merma se ordenen.
SORT gt_bloque02.
*** Cabecera ***********************************************************
Pag. 15 de 29
" TRATAR_DATOS
*&---------------------------------------------------------------------*
*&
Form CALCULAR_RECORTE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM calcular_recorte .
DATA: ls_tot TYPE zco_ficha_coste_bloque02.
CLEAR ls_tot.
ls_tot-ceco = 'Tot. Recorte'.
Pag. 16 de 29
" CALCULAR_RECORTE
*&---------------------------------------------------------------------*
*&
Form CALCULAR_GRAMAJE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_GV_MATNR_EXP text
*
<--P_GS_CABECERA_GR_M2 text
*
<--P_GS_CABECERA_GR_LIB text
*----------------------------------------------------------------------*
FORM calcular_gramaje USING pi_matnr_exp pi_matnr_ini
CHANGING po_m2
po_lib.
CLEAR: po_lib, po_m2.
* Obtenemos la unidad de medida del material.
SELECT SINGLE meins
INTO gv_meins
FROM mara
WHERE matnr = pi_matnr_ini.
CHECK gv_meins IS NOT INITIAL.
* ecampos 27.01.2014 cambiamos los GR/LIB por LIB/CJT.
* Para libritos.
IF gv_meins = 'LIB'.
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
i_matnr
= pi_matnr_ini
i_in_me
= 'CS'
i_out_me
= 'LIB'
i_menge
=1
IMPORTING
e_menge
= po_lib
EXCEPTIONS
error_in_application = 1
error
=2
OTHERS
= 3.
ENDIF.
*----------------------------------------------------------* Para el resto.
*-----------------------------------------------------------
Pag. 17 de 29
ENDFORM.
" CALCULAR_GRAMAJE
Pag. 18 de 29
" SELECCION_MATERIALES
*&---------------------------------------------------------------------*
*&
Form ABRIR_FORMULARIO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM abrir_formulario .
CLEAR: docparams, formoutput, outputparams, gv_fm_name.
"Borrar tras salida (parmetros de impresin)
* outputparams-REQDEL = 'X'.
"Orden SPOOL nueva (parmetros de impresin)
outputparams-reqnew = 'X'.
"La orden SPOOL ha concluido
outputparams-reqfinal = 'X'.
IF sy-batch = ''.
"Salidas inmediatas (parmetros de impresin)
outputparams-reqimm = 'X'.
ELSE.
outputparams-reqimm = ''.
outputparams-dest = sy-pdest.
ENDIF.
CALL FUNCTION 'FP_JOB_OPEN'
CHANGING
ie_outputparams = outputparams
EXCEPTIONS
cancel
=1
usage_error
=2
system_error = 3
internal_error = 4
OTHERS
= 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Pag. 19 de 29
" ABRIR_FORMULARIO
*&---------------------------------------------------------------------*
*&
Form CERRAR_FORMULARIO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM cerrar_formulario .
CALL FUNCTION 'FP_JOB_CLOSE'
* IMPORTING
* E_RESULT =
EXCEPTIONS
usage_error = 1
system_error = 2
internal_error = 3
OTHERS = 4.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM.
" CERRAR_FORMULARIO
*&---------------------------------------------------------------------*
*&
Form MOSTRAR_PROGRESO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM mostrar_progreso .
* Slo lo mostramos en proceso online
CHECK sy-batch = ''.
CLEAR txt_matnr.
* Convertimos el material con los guiones.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
input = gv_matnr
IMPORTING
output = txt_matnr.
* Confeccionamos texto.
CONCATENATE 'Calculando material:' txt_matnr INTO txt_matnr
SEPARATED BY space.
Pag. 20 de 29
" MOSTRAR_PROGRESO
*&---------------------------------------------------------------------*
*&
Form LIMPIAR_DATOS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM limpiar_datos .
REFRESH: gt_lista, gt_keko, gt_cabecera, gt_bloque01, gt_bloque02,
gt_bloque02, gt_bloque02_tmp, gt_prods, gt_recorte, gt_explo.
CLEAR: gt_lista, gs_itab, gs_bloque01, gs_bloque02, gs_keko,
gs_cabecera, gs_prods, gs_recorte, gs_explo.
CLEAR: v_lines, v_bklas, v_ceco, txt_ceco, v_tabix, gv_matnr_exp,
txt_matnr, gv_porcen.
ENDFORM.
" LIMPIAR_DATOS
*&---------------------------------------------------------------------*
*&
Form PREPARAR_PAGINAS_FORMULARIO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM preparar_paginas_formulario .
DATA: lv_tabix_bl1 TYPE sy-tabix,
lv_tabix_bl2 TYPE sy-tabix,
lv_tabix_ficha TYPE sy-tabix,
lv_lin_bl1 TYPE sy-tabix,
lv_lin_bl2 TYPE sy-tabix,
lv_tot_bl1 TYPE sy-tabix,
lv_tot_bl2 TYPE sy-tabix,
lv_numpag TYPE sy-tabix.
CLEAR: gs_ficha_coste, lv_tabix_bl1, lv_tabix_bl2, lv_tot_bl1,
lv_tot_bl2.
REFRESH: gt_ficha_coste.
DESCRIBE TABLE gt_bloque01 LINES lv_tot_bl1.
DESCRIBE TABLE gt_bloque02 LINES lv_tot_bl2.
Pag. 21 de 29
Leemos la cabecera.
READ TABLE gt_cabecera INTO gs_cabecera INDEX 1.
La grabamos.
APPEND gs_cabecera TO gs_ficha_coste-cabecera.
*
*
ENDFORM.
" PREPARAR_PAGINAS_FORMULARIO
*&---------------------------------------------------------------------*
*&
Form ACUMULADO_Y_RECALCULO_MERMA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM acumulado_y_recalculo_merma.
DATA: ls_recalculoant TYPE zco_ficha_coste_bloque02,
ls_abonorecorte TYPE zco_ficha_coste_bloque02,
ls_desglose
TYPE zco_ficha_coste_bloque02,
ls_sigdesglose TYPE zco_ficha_coste_bloque02,
ls_acumulado TYPE zco_ficha_coste_bloque02,
ls_recalculo TYPE zco_ficha_coste_bloque02.
DATA: l_lineaant TYPE i,
l_lineapost TYPE i,
l_matnr TYPE mara-matnr.
Pag. 23 de 29
Acumulado de ceco.
ls_recalculo-total_ceco = ls_recalculo-mat_prima +
ls_recalculo-energia +
ls_recalculo-valor_a +
ls_recalculo-materiales.
" ACUMULADO_Y_RECALCULO_MERMA
Pag. 26 de 29
Pag. 27 de 29
Pag. 28 de 29
Pag. 29 de 29