Aquí te adjunto un ejemplo en rpg. Espero te sirva.
Saludos,
hector

De: [email protected] 
[mailto:[email protected]] En nombre de Peñaherrera, Mauro
Enviado el: Martes, 17 de Marzo de 2009 05:37 p.m.
Para: forum.help400
Asunto: rutina conversión

Compañeros del foro:

Tengo una rutina para convertir un numero en letras (se utiliza para la 
impresión en los cheques) está en COBOL 400, pero se requiere hacer unos 
cambios, no soy muy bueno en COBOL, quería ver si alguien tiene una rutina en 
RPG, RPGLE o diferente de COBOL que me pueda facilitar o si conocen de alguna 
dirección electrónica donde pueda revisar.

Gracias.

Saludos
Mauro Peñaherrera Ruiz
Departamento de Tecnología
' (593-2) 2981-300
*: [email protected]
[cid:[email protected]]


________________________________
Nota de descargo: La información contenida en este e - mail y sus anexos es 
confidencial y sólo puede ser utilizada por el destinatario del mismo. Esta 
información no debe ser distribuida, ni copiada total o parcialmente por ningún 
medio sin la autorización de DINERS/INTERDIN. Además, DINERS/INTERDIN no asume 
responsabilidad sobre información, opiniones o criterios contenidos en este 
e-mail.

Disclaimer: The information contained in this e-mail and its attached files are 
confidential and intended only for the use of the person to which it is 
addressed. This information can not be totally or partially distributed nor 
copied by any media without the authorization from DINERS/INTERDIN. In 
addition, DINERS/INTERDIN does not assume responsibility about this 
information, opinions or criteria contented in this e-mail.

________________________________
Este mensaje se transmite exclusivamente para el uso del destinatario previsto 
y puede contener información que es PRIVILEGIADA y/o CONFIDENCIAL. Dicha 
información no expresa la posición de la compañía. Si usted no es el 
destinatario previsto, se le notifica por este medio, que cualquier uso, 
difusión, acceso o copia de esta comunicación está prohibida terminantemente. 
Si usted ha recibido esta comunicación por error, destruya por favor todas las 
copias de este mensaje y sus adjuntos y notifíquenos inmediatamente.

This message is sent exclusively for the use of the intended recipient and may 
contain information that is PRIVILEGED and/or CONFIDENTIAL. This information do 
not express the position of the company. If you are not the intended recipient, 
you are hereby notified that any use, dissemination, disclosure or copying of 
this communication is strictly prohibited. If you have received this 
communication by mistake, please destroy all copies of this message and its 
attachments and notify us immediately

"Bienvenido a la Vida, Bienvenido a InVita"

<<inline: image001.jpg>>

     E*---------------- RUTINA DE MONTO ESCRITO -----------------------
     E*
     E*  CONVIERTE UN IMPORTE DE HASTA 14,2 DE LONGITUD EN LETRAS.
     E*  EL TEXTO PUEDE SER DIVIDO HASTA EN 3 LINEAS DE IMPRESION DE
     E*  DISTINTA LONGITUD CADA UNA.
     E*  LA RUTINA ENTREGA EL TEXTO EN UN SOLO CAMPO QUE DEBERA SER
     E*  DIVIDIDO EN LAS LINEAS DESEADAS EN EL PROGRAMA PRINCIPAL.
     E*  TENGA EN CUENTA QUE EL IMPORTE EN LETRAS MAS LARGO OCUPA
     E*  156 POSICIONES.
     E*  AL FINAL DEL CAMPO SE RELLENAN LAS POSICIONES NO OCUPADAS
     E*  POR TEXTO CON '='.
     E*
     E*  DATOS DE ENTRADA: @MONTO (14,2) = IMPORTE A TRADUCIR.
     E*  ----------------  @L1 (3,0) = LONGITUD DE LA 1RA.LINEA.
     E*                                MINIMO 20, MAXIMO 80.
     E*                    @L2 (3,0) = LONGITUD DE LA 2DA.LINEA.
     E*                                MINIMO 20, MAXIMO 80.
     E*                    @LET = CAMPO DE 240 POS. EN BLANCO
     E*                    @DES = CAMPO DE 20 POS. SI VIENE EN
     E*                           BLANCO LA RUTINA NO LO USA.
     E*                           SI VIENE LA DESCRIPCION DE LA
     E*                           MONEDA LA RUTINA LO PONE AL FINAL.
     E*
     E*  DATOS DE SALIDA:  @LET = CONTIENE EL IMPORTE EN LETRAS CORTADO
     E*  ---------------   A LA LONGITUD DE @L1 Y @L2.
     E*                    LA LONGITUD DE LA 3RA.LINEA SALE POR DIFE-
     E*                    RENCIA DE 240 - (@L1 + @L2).
     E*
     E*  06/05/2003        JULIO DESPOSORIO     NO FUNCIONABA 1000XX.YY
     E*----------------------------------------------------------------
     E*
     E                    @NOM1  80 225  1
     E                    @NOM2  80 225  1
     E                    @NOM3   1   2 80
     E                    @NOM      225  1
     E                    @TX       280  1
URD  E                    @T1       280  1
URD  E                    @T2       280  1
URD  E                    @T3       280  1
     E                    @DIG        9  1 0
     E                    @MM        20  1
     C**---------------------------------------------------------------
     C           *ENTRY    PLIST
     C                     PARM           @MONTO 142
     C                     PARM           @L1     30
     C                     PARM           @L2     30
     C                     PARM           @LET  240
     C                     PARM           @DES   20
     C*
     C                     mo...@des      @MM
     C           '  '      SCAN @DES      ¥¥      30
     C                     Z-ADD1         @X      30
     C                     Z-ADD270       @FINR   30
     C                     mo...@monto    @MILL   60
     C                     MOVE @MILL     @UNO    10
   I1C           @MILL     IFNE 0
     C                     z-...@mill     @NETO   82
     C                     EXSR @NULET
   D2C           @PRU      DOUEQ'00/'
     C                     ADD  1         @N      30
     C                     mo...@tx,@N    @PRU    3
   D2C                     END
     C                     SUB  5         @N
   I2C           @MILL     IFEQ 1
     C                     SUB  1         @N
     C                     mo...@nom3,1   @TX,@N
     C           @N        ADD  9         @X
   X2C                     ELSE
   I3C           @UNO      IFEQ 1
     C                     SUB  1         @N
   E2C                     END
     C                     mo...@nom3,2   @TX,@N
     C           @N        ADD  12        @X
   E2C                     END
   E1C                     END
     C                     MOVE *BLANKS   @TX,@X
     C                     z-...@monto    @NETO
     C                     EXSR @NULET
     C*
     C           @L1       IFLT 20
     C           @L1       ORGT 80
     C                     Z-ADD80        @L1
     C                     END
     C           @L2       IFLT 20
     C           @L2       ORGT 80
     C                     Z-ADD80        @L2
     C                     END
     C           @L1       ADD  @L2       @L3     30
     C           240       SUB  @L3       @L3
     C*
     C                     Z-ADD0         @Y      30
     C                     Z-ADD0         @X
   D1C           @L1       do...@y
     C                     ADD  1         @X
     C                     ADD  1         @Y
   I2C           @TX,@X    IFNE '-'
     C                     MOVE @TX,@X    @T1,@Y
   I3C           @TX,@X    IFEQ ' '
     C                     z-...@x        @N
     C                     z-...@y        @Z
   E3C                     END
   X2C                     ELSE
     C                     z-...@x        @N
     C                     z-...@y        @Z
     C                     SUB  1         @Y
   E2C                     END
   D1C                     END
     C           @T1,@L1   COMP ' '                      99
     C  N99      @T1,@L1   COMP '-'                      99
     C   99                GOTO BIEN1
     C                     MOVE @TX,@N    @T1,@Z
     C                     ADD  1         @Z
     C                     MOVEA*BLANK    @T1,@Z
     C                     z-...@n        @X
     C*
     C           BIEN1     TAG
   I1C           @L2       IFNE 0
     C                     Z-ADD0         @Y
   D2C           @L2       do...@y
     C                     ADD  1         @X
     C                     ADD  1         @Y
   I3C           @TX,@X    IFNE '-'
     C                     MOVE @TX,@X    @T2,@Y
   I4C           @TX,@X    IFEQ ' '
     C                     z-...@x        @N
     C                     z-...@y        @Z
   E4C                     END
   X3C                     ELSE
     C                     z-...@x        @N
     C                     z-...@y        @Z
     C                     SUB  1         @Y
   E3C                     END
   D2C                     END
     C           @T2,@L2   COMP ' '                      99
     C  N99      @T2,@L2   COMP '-'                      99
     C   99                GOTO BIEN2
     C                     MOVE @TX,@N    @T2,@Z
     C                     ADD  1         @Z
     C                     MOVEA*BLANK    @T2,@Z
     C                     z-...@n        @X
   E1C                     END
     C*
     C           BIEN2     TAG
   I1C           @L3       IFNE 0
     C                     Z-ADD0         @Y
   D2C           @L3       do...@y
     C                     ADD  1         @X
     C                     ADD  1         @Y
   I3C           @TX,@X    IFNE '-'
     C                     MOVE @TX,@X    @T3,@Y
   I4C           @TX,@X    IFEQ ' '
     C                     z-...@x        @N
     C                     z-...@y        @Z
   E4C                     END
   X3C                     ELSE
     C                     z-...@x        @N
     C                     z-...@y        @Z
     C                     SUB  1         @Y
   E3C                     END
   D2C                     END
     C           @T3,@L3   COMP ' '                      99
     C  N99      @T3,@L3   COMP '-'                      99
     C   99                GOTO BIEN3
     C                     MOVE @TX,@N    @T3,@Z
     C                     ADD  1         @Z
     C                     MOVEA*BLANK    @T3,@Z
     C                     z-...@n        @X
   E1C                     END
     C           BIEN3     TAG
     C                     MOVE *ALL' '   @TX
     C                     mo...@t1       @TX
     C           @L1       ADD  1         @N
     C                     mo...@t2       @TX,@N
     C                     ADD  @L2       @N
     C                     mo...@t3       @TX,@N
     C                     Z-ADD1         @N
     C           '.'       lo...@tx,@N                   95
     C           *IN95     IFEQ '1'
     C                     ADD  1         @N
     C                     MOVEA*ALL'='   @TX,@N
     C                     END
     C                     mo...@tx       @LET
     C           @DES      IFNE ' '
     C                     Z-ADD1         @N
     C           '='       lo...@tx,@N                   95
     C           *IN95     IFEQ '1'
     C                     MOVE ' '       @TX,@N
     C                     DO   ¥¥        @I
     C                     ADD  1         @N
     C                     MOVE @MM,@I    @TX,@N
     C                     END
     C                     END
     C                     END
     C                     mo...@tx       @LET
     C                     SETON                     LR
     C**---------------------------------------------------------------
     C           @NULET    BEGSR
     C                     MOVE *BLANKS   @NOM
     C                     MLLZO'1'       @NETO
     C                     z-...@neto     @PESOS  60
     C                     z-...@neto     @CENTS  22
     C                     Z-ADD279       @TOPE   30
     C                     SETOF                     9495
     C                     SETOF                     9899
     C                     SETON                     92
     C                     Z-ADD0         @D      20
     C                     mo...@pesos    @TRES   3
     C                     MOVE @TRES     @DOS    2
     C                     mo...@tres     @DIG,1
     C                     mo...@dos      @DIG,2
     C                     MOVE @DOS      @DIG,3
     C                     MOVE @PESOS    @TRES
     C                     MOVE @TRES     @DOS
     C                     mo...@tres     @DIG,4
     C                     mo...@dos      @DIG,5
     C                     MOVE @DOS      @DIG,6
     C*
     C           @@01      TAG
     C                     Z-ADD1         @ORD    20
     C           @@02      TAG
     C                     ADD  1         @D
     C           @DIG,@D   COMP 0                    93
     C   93                GOTO @@05
     C           @ORD      COMP 2                    93
     C  N93                GOTO @@04
     C  N92                GOTO @@20
     C   95                GOTO @@21
     C           @@03      TAG
     C                     SETOF                     92
     C                     GOTO @@01
     C           @@04      TAG
     C                     ADD  1         @ORD
     C                     GOTO @@02
     C*
     C           @@05      TAG
     C                     SETON                     95     SE¥AL 'V'.
     C           @DIG,@D   COMP 2                    94  93
     C   93                GOTO @@10                        ES 2
     C   94                GOTO @@11                        ES DE 3 A 9
     C           @ORD      COMP 2                    9699
     C   99                GOTO @@12                        SE¥AL 'C'.
     C   96                GOTO @@13                        SE¥AL 'U'.
     C           @D        ADD  1         @Z      30
     C           @DIG,@Z   COMP 0                        94
     C   94                GOTO @@@14
     C                     Z-ADD3         @ORD
     C                     MOVE @Z        @D
     C           @DIG,@D   SUB  1         @I      30
     C                     MULT 13        @I
     C                     ADD  108       @I
     C                     MOVE @NOM2     @NOM
     C                     GOTO @@@15
     C*
     C           @@10      TAG
     C           @ORD      COMP 2                    9493
     C   94                GOTO @@13
     C   93                GOTO @@12
     C           @D        ADD  1         @Z
     C           @DIG,@Z   COMP 0                    98     SE¥AL 'I'.
     C                     GOTO @@@14
     C*
     C           @@11      TAG
     C           @ORD      COMP 2                    94  97 SE¥AL 'Y'.
     C   94                GOTO @@13
     C  N97                GOTO @@12
     C*
     C           @@@14     TAG
     C           @DIG,@D   SUB  1         @I                DECENAS
     C                     MULT 12        @I
     C                     MOVE @NOM2     @NOM
     C                     GOTO @@@15
     C           @@13      TAG
     C           @DIG,@D   SUB  1         @I                UNIDADES
     C                     MULT 8         @I
     C                     ADD  153       @I
     C                     MOVE @NOM1     @NOM
     C                     GOTO @@@15
     C           @@12      TAG
     C           @DIG,@D   SUB  1         @I                CENTENAS
     C                     MULT 17        @I
     C                     MOVE @NOM1     @NOM
     C*
     C           @@@15     TAG                              TRANSFIERE
     C                     ADD  1         @I                @NOM EN @TX
     C                     MOVE @NOM,@I   @TX,@X
     C           @NOM,@I   COMP '-'                    93
     C   93                GOTO @@06
     C                     ADD  1         @X
     C                     GOTO @@@15
     C           @@06      TAG
     C   96
     COR 98
     COR 99                GOTO @@09
     C           @X        ca...@finr     @@09         93
     C                     SUB  1         @TOPE
     C                     GOTO @@28
     C*
     C           @@09      TAG
     C                     ADD  1         @X
     C           @@28      TAG
     C   98                GOTO @@16
     C   99                GOTO @@17
     C   97                GOTO @@18
     C  N96                GOTO @@19
     C                     SETOF                     96
     C  N92                GOTO @@20
     C*
     C                     SUB  2         @X                CONVIERTE
     C                     MOVE ' '       @TX,@X            'UNO' EN 'UN'
     C                     ADD  1         @X
     C*
     C           @@21      TAG                              PONE 'MIL'
     C                     MOVEA'MIL'     @TX,@X
     C                     ADD  4         @X
     C                     GOTO @@03
     C*
     C           @@17      TAG                              CONVIERTE
     C           @D        ADD  1         @Z                'CIENTO' EN
     C           @DIG,@Z   COMP 0                        93 'CIEN'
     C   93                ADD  1         @Z
     C   93      @DIG,@Z   COMP 0                        93
     C  N93                GOTO @31
     C           @Z        IFEQ 7                           JD01
     C           *IN93     ANDEQ'1'                         JD01
     C                     ELSE                             JD01
     C                     SUB  3         @X
     C                     ENDIF                            JD01
     C                     MOVE ' '       @TX,@X
     C                     ADD  1         @X
     C                     MOVE @Z        @D
     C                     GOTO @@23
     C           @31       TAG
     C           @X        ca...@finr     @@22         93
     C                     SUB  2         @TOPE
     C                     GOTO @@22
     C*
     C           @@16      TAG                              CONVIERTE
     C                     SUB  2         @X                'VEINTE' EN
     C                     MOVE 'I'       @TX,@X            'VEINTI'
     C                     ADD  1         @X
     C*
     C           @@22      TAG
     C                     SETOF                     979899
     C           @@19      TAG
     C           @ORD      COMP 2                    93
     C   93                GOTO @@23
     C                     GOTO @@04
     C           @@18      TAG
     C*
     C           @D        ADD  1         @Z                PONE 'Y' SI
     C           @DIG,@Z   COMP 0                        94 ESTANDO EN DE-
     C   94                GOTO @@22                        CENAS UNIDADES
     C                     MOVE 'Y'       @TX,@X            NO ES CERO.
     C                     SETOF                     93
     C           @X        IFLT @FINR
     C                     ADD  2         @X
     C                     END
     C                     GOTO @@22
     C           @@23      TAG
     C   92                GOTO @@21
     C           @@20      TAG
     C*
     C           *IN95     IFEQ '1'                         HUBO PESOS
     C                     MOVEA'CON'     @TX,@X            PONE 'CON'
     C                     ADD  4         @X
     C                     END
     C                     mo...@cents    @TX,@X
     C                     ADD  1         @X
     C                     MOVE @CENTS    @TX,@X
     C           @X        IFLT @FINR
     C                     ADD  1         @X
     C                     END
     C                     MOVEA'/100.'   @TX,@X           PONE '/100.'
     C                     ADD  6         @X
     C                     ENDSR
     C**---------------------------------------------------------------
**   @NOM1
CIEN-TO          DOS-CIEN-TOS     TRES-CIEN-TOS    CUA-TRO-CIEN-TOS QUI-NIEN-TOS
     SEIS-CIEN-TOS    SETE-CIEN-TOS    OCHO-CIEN-TOS    NOVE-CIEN-TOS    UNO
 DOS     TRES    CUA-TRO CIN-CO  SEIS    SIE-TE  OCHO    NUE-VE
**   @NOM2
DIEZ        VEIN-TE     TREIN-TA    CUA-REN-TA  CIN-CUEN-TA SE-SEN-TA   SE-TEN-T
A   O-CHEN-TA   NO-VEN-TA   ONCE         DOCE         TRE-CE       CA-TOR-CE
QUIN-CE      DIE-CI-SEIS  DIE-CI-SIETE DIE-CI-OCHO  DIE-CI-NUEVE
**   @NOM3
 MI-LLON
 MI-LLO-NES

__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de ServerNEWS.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a