#6
|
|||
|
|||
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 |
Herramientas | Buscar en Tema |
Desplegado | |
|
|