Ver Mensaje Individual
  #11  
Viejo 30/10/07, 11:09:10
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671

El problema lo tienes en el form de tu report, los parametros no se pasan como si fueran parametros normales, aqui te dejo un ejemplo

FORM calcular_descuento_linea TABLES in_par STRUCTURE itcsy
out_par STRUCTURE itcsy.

DATA: lv_ebeln LIKE ekko-ebeln,
lv_ebelp LIKE ekpo-ebelp,
lv_aux LIKE konp-kbetr,
lv_bruto(17),
lv_descu(17).

DATA: BEGIN OF lt_konp OCCURS 0,

kschl LIKE konp-kschl,
kbetr LIKE konp-kbetr,
konwa LIKE konp-konwa,
kpein LIKE konp-kpein,
kmein LIKE konp-kmein,

END OF lt_konp.

CLEAR in_par.

READ TABLE in_par INDEX 1.
lv_ebeln = in_par-value.

READ TABLE in_par INDEX 2.
lv_ebelp = in_par-value.

SELECT SINGLE *
INTO a016
FROM a016
WHERE kappl = gc_m
AND kschl = gc_pb00
AND evrtn = lv_ebeln
AND evrtp = lv_ebelp.

IF sy-subrc = 0.

SELECT kschl kbetr konwa kpein kmein
INTO TABLE lt_konp
FROM konp
WHERE knumh = a016-knumh.

READ TABLE lt_konp WITH KEY kschl = gc_pb00.

IF sy-subrc = 0.
lv_aux = lt_konp-kbetr.
ENDIF.

WRITE lv_aux TO lv_bruto.

READ TABLE lt_konp WITH KEY kschl = gc_ra01.

IF sy-subrc = 0.
lv_aux = lt_konp-kbetr / 10.
ENDIF.

WRITE lv_aux TO lv_descu NO-SIGN.



CLEAR out_par.

LOOP AT out_par WHERE name = 'BRUTO'.
out_par-value = lv_bruto.
MODIFY out_par INDEX sy-tabix.
EXIT.
ENDLOOP.

CLEAR out_par.

LOOP AT out_par WHERE name = 'DESCUENTO'.
out_par-value = lv_descu.
MODIFY out_par INDEX sy-tabix..
EXIT.
ENDLOOP.

ENDIF.

ENDFORM. " calcular_descuento_linea

La manera de llamarlo en tu sapsript es:

/: DEFINE &FORM& = 'CALCULAR_DESCUENTO_LINEA'
/: DEFINE &PROGRAMA& = 'ZMEDRUCK_PEDAB'
/: DEFINE &DESCUENTO& = ''
/: DEFINE &BRUTO& = ''
/: DEFINE &SIMBOLO& = '%'
/: PERFORM &FORM& IN PROGRAM &PROGRAMA&
/: USING &EKKO-EBELN&
/: USING &EKPO-EBELP&
/: CHANGING &DESCUENTO&
/: CHANGING &BRUTO&
/: ENDPERFORM
Responder Con Cita