Ver Mensaje Individual
  #5  
Viejo 09/03/10, 09:04:46
Neo_25 Neo_25 is offline
Member
 
Fecha de Ingreso: jun 2009
Mensajes: 51
Lo tuyo kedaría:

no lo puedo probar porque hay cosas q no tengo.

* Tipo línea para crear estructuras
TYPES: BEGIN OF ty_tyl_resimp,
keycto TYPE char6,
textcto TYPE char50,
impuesto LIKE ZPSCD_VLRSATRIB-VALOR,
restaimp LIKE ZPSCD_VLRSATRIB-VALOR,
indcto TYPE char1,
END OF ty_tyl_resimp.
* Tipo línea para crear tablas
TYPES: ty_tab_resimp TYPE STANDARD TABLE OF ty_tyl_resimp.

* Tabla
DATA: t_resimp TYPE ty_tab_resimp.
* Estructura
DATA: w_resimp TYPE ty_tyl_resimp.
* Field-Symbols
FIELD-SYMBOLS: <fs_resimp> TYPE ty_tyl_resimp.

*---------------------------------------------------------------------*
* Calcula valores a mostrar en resumen
*---------------------------------------------------------------------*
FORM calcula-valores.
READ TABLE t_resimp ASSIGNING <fs_resimp> WITH KEY keycto = topera.
IF sy-subrc = 0.
IF sumres = '+'.
wvalor = t_resimp-impuesto + t_detimp-valor.
<fs_resimp>-impuesto = wvalor.
* Ya no hace falta el modify
* porque el field-symbol lo modifuca solo
* MODIFY t_resimp TRANSPORTING IMPUESTO WHERE KEYCTO = TOPERA.

ELSE.
wvalor = t_resimp-restaimp + t_detimp-valor.
<fs_resimp>-restaimp = wvalor.
* MODIFY t_resimp TRANSPORTING RESTAIMP WHERE KEYCTO = TOPERA.
ENDIF.

ELSE.
<fs_resimp>-keycto = topera.
<fs_resimp>-textcto = dopera.
<fs_resimp>-indcto = sumres.
CLEAR <fs_resimp>-impuesto.
CLEAR <fs_resimp>-restaimp.

IF sumres = '+'.
<fs_resimp>-impuesto = t_detimp-valor.
ELSE.
<fs_resimp>-restaimp = t_detimp-valor.
ENDIF.
APPEND <fs_resimp> TO t_resimp.
ENDIF.
ENDFORM. "CALCULA-VALORES
Responder Con Cita