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
|