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