Ver Mensaje Individual
  #1  
Viejo 28/07/16, 13:48:43
fagarcia fagarcia is offline
Junior Member
 
Fecha de Ingreso: jul 2014
Mensajes: 4
Ayuda en creacion de programa.

Hola, he seguido mucho este foro con las diferentes dudas que se me han presentado y encontrado la mayoria de respuesta. En el caso actual estoy aprendiendo un poco de abap y creando un programa el cual no podido lograr resolver el problema.

Estoy tratando de realizar un programa que busque los datos y lo inserte en una tabla interna y luego de buscar los datos de la función spell_amount actualizar en la tabla interna en su campo correspondiente.

El problema esta en llenar el campo ITAB01-IMPORTE_TEXTO

Ver codigo del progama:
*&---------------------------------------------------------------------*
*& Report Z_IMPRESION_ORDEN_PAGO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT Z_IMPRESION_ORDEN_PAGO.

TABLES : RBKP, LFA1, LFBK, BNKA.

DATA: monto_en_letras TYPE spell, "VARIABLES PARA FUNCIONES"
texto type string. "VARIABLES PARA FUNCIONES"

DATA: BEGIN OF ITAB01 OCCURS 0,
BELNR LIKE RBKP-BELNR , " Numero de Factura
XBLNR LIKE RBKP-XBLNR , " Referencia
RMWWR LIKE RBKP-RMWWR, " IMPORTE EN MONEDA BRUTO"
WAERS LIKE RBKP-WAERS, "MONEDA DE DOCUMENTO
ZZNUMFISC LIKE RBKP-ZZNUMFISC, " NUMERO DE COMPROBANTES FISCALES
LIFNR LIKE LFA1-LIFNR, "NO DE ACREEDOR
NAME1 LIKE LFA1-NAME1, " NOMBRE DE ACREEDOR
STCD1 LIKE LFA1-STCD1," RNC O CEDULA
ORT01 like LFA1-ORT01, " POBLACION
ORT02 LIKE LFA1-ORT02, " DISTRITO
STRAS LIKE LFA1-STRAS, "CALLE
KOINH like LFBK-KOINH, " TITULAR DE LA CUENTA
BANKN LIKE LFBK-BANKN, " CUENTA CONTABLE
BANKA LIKE BNKA-BANKA, "NOMBRE DE BANCO
ZZPERSONAFISICA LIKE BUT000-ZZPERSONAFISICA, " TIPO DE EMPRESA
TIPO_PROPIEDAD LIKE ZBP_PERSONAFISIC-TIPO_PROPIEDAD,
SOLICT LIKE LFA1-NAME1, "SOLICITADOR
APROBA LIKE LFA1-NAME1, "APROBADO
IMPORTE_TEXTO TYPE string, " IMPORTE EN VERSION TEXTO
END OF ITAB01.

DATA ITAB01_wa LIKE ITAB01.

SELECTION-SCREEN BEGIN OF BLOCK blk1.


PARAMETERS: P_FACT TYPE RBKP-BELNR OBLIGATORY,
P_EJE TYPE RBKP-GJAHR OBLIGATORY,
P_SOC TYPE RBKP-BUKRS OBLIGATORY,
P_CONC TYPE BUT000-ZZDESC_ACTIV OBLIGATORY,
P_SOLT TYPE LFA1-NAME1 OBLIGATORY,
P_APR TYPE LFA1-NAME1 OBLIGATORY.

SELECTION-SCREEN END OF BLOCK blk1.



START-OF-SELECTION.


SELECT SINGLE
RBKP~BELNR
RBKP~XBLNR
RBKP~RMWWR
RBKP~WAERS
RBKP~ZZNUMFISC
LFA1~LIFNR
LFA1~NAME1
LFA1~STCD1
LFA1~ORT01
LFA1~ORT02
LFBK~KOINH
LFBK~BANKN
BNKA~BANKA
but000~ZZPERSONAFISICA
INTO CORRESPONDING FIELDS OF ITAB01
from RBKP LEFT JOIN LFA1 ON RBKP~LIFNR = LFA1~LIFNR JOIN BUT000 ON LFA1~LIFNR = BUT000~PARTNER JOIN LFBK ON BUT000~PARTNER = LFBK~LIFNR JOIN BNKA ON BNKA~BANKL = LFBK~BANKL
WHERE RBKP~BELNR = P_FACT AND RBKP~GJAHR = P_EJE AND RBKP~BUKRS = P_SOC.


SELECT SINGLE TIPO_PROPIEDAD INTO ITAB01-TIPO_PROPIEDAD FROM ZBP_PERSONAFISIC
WHERE COD_PERSONAFISICA = ITAB01-ZZPERSONAFISICA.

CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
amount = ITAB01-RMWWR "Importe (valor) a convertir
currency = 'X'
filler = ' '
language = sy-langu
IMPORTING
in_words = monto_en_letras. "Cantidad o importe en letras

"Ejemplo de como leer el importe en letras
concatenate monto_en_letras-word 'con'
monto_en_letras-decimal(2) '/100' " 'decimales'
into texto separated by space.


loop at itab01.
CASE ITAB01-BELNR.
WHEN P_FACT.
ITAB01-IMPORTE_TEXTO = texto.
WHEN OTHERS.
ENDCASE.
MODIFY ITAB01.
ENDLOOP.


WRITE: / 'IMPORTE' , ITAB01-RMWWR.
WRITE: / 'REFERENCIA:' , ITAB01-XBLNR.
WRITE: / 'MONEDA:' , ITAB01-WAERS.
WRITE: / 'COMPROBANTE' , ITAB01-ZZNUMFISC.
WRITE: / 'ACREEDOR' , ITAB01-LIFNR.
WRITE: / 'NOMBRE' , ITAB01-NAME1.
WRITE: / 'RNC' , ITAB01-STCD1.
WRITE: / 'DISTRITO' , ITAB01-ORT01.
WRITE: / 'POBLACION' , ITAB01-ORT02.
WRITE: / 'CALLE ' , ITAB01-STRAS.
WRITE: / 'TITULAR' , ITAB01-KOINH.
WRITE: / 'NUMERO DE CUENTA',ITAB01-BANKN.
WRITE: / 'BANCO', ITAB01-BANKA.
WRITE: / 'PERSONA FISICA', ITAB01-ZZPERSONAFISICA.
WRITE: / 'TIPO DE PROPIEDAD', ITAB01-TIPO_PROPIEDAD.
WRITE: / 'IMPORTE TEXTO: ', ITAB01-IMPORTE_TEXTO.
WRITE: / 'IMPORTE TEXTO: ', texto .
Responder Con Cita