1100 lines
33 KiB
Plaintext
1100 lines
33 KiB
Plaintext
{
|
|
------------------------------------------------------------------------
|
|
FORMULARIO : NOPRRP008
|
|
OBJETIVO : Reporte para imprimir volantes
|
|
PROGRAMADOR : Ing. Juan Soto.
|
|
FECHA REALIZACION : Noviembre 5, 1993
|
|
------------------------------------------------------------------------
|
|
}
|
|
DATABASE marmotech
|
|
GLOBALS
|
|
|
|
DEFINE cheque_ini,cheque_fin,no_cheque,emp_ant INTEGER
|
|
DEFINE idx_40,idx_x,k,l,t,i,idx,numero_msg SMALLINT
|
|
DEFINE meses ARRAY[12] OF CHAR(15)
|
|
DEFINE valor_letras CHAR(90)
|
|
DEFINE unidades1 ARRAY[19] OF CHAR(10)
|
|
DEFINE decenas ARRAY[81] OF CHAR(20)
|
|
DEFINE centenas ARRAY[10] OF CHAR(20)
|
|
DEFINE miles ARRAY[9] OF CHAR(2)
|
|
DEFINE salir,cuarta CHAR(1)
|
|
DEFINE selec21,selec20,selec10 CHAR(500)
|
|
DEFINE criterio10 CHAR(200)
|
|
DEFINE segunda,primera,siguie CHAR(1)
|
|
DEFINE p_valor DECIMAL(12,2),
|
|
formulario CHAR(70)
|
|
|
|
DEFINE emp_neto RECORD
|
|
num_emp SMALLINT,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
DEFINE arr_mov ARRAY[24] OF RECORD
|
|
num_emp INTEGER,
|
|
cod_mov1 SMALLINT,
|
|
descrip1 CHAR(10),
|
|
cantidad1 DECIMAL(8,2),
|
|
valor1 DECIMAL(8,2),
|
|
acumulado1 DECIMAL(10,2),
|
|
cod_mov2 SMALLINT,
|
|
descrip2 CHAR(10),
|
|
cantidad2 DECIMAL(8,2),
|
|
valor2 DECIMAL(8,2),
|
|
acumulado2 DECIMAL(10,2),
|
|
cod_mov3 SMALLINT,
|
|
descrip3 CHAR(10),
|
|
cantidad3 DECIMAL(8,2),
|
|
valor3 DECIMAL(8,2),
|
|
acumulado3 DECIMAL(10,2)
|
|
END RECORD
|
|
|
|
DEFINE c_entra RECORD
|
|
num_nomi INTEGER,
|
|
tipo_emp CHAR(1),
|
|
nombre_tipo CHAR(20)
|
|
END RECORD
|
|
|
|
DEFINE datos_peri RECORD
|
|
tipo_emp CHAR(1),
|
|
fecha_d DATE,
|
|
fecha_a DATE
|
|
END RECORD
|
|
|
|
DEFINE cientos ARRAY[9] OF CHAR(20)
|
|
DEFINE decimas ARRAY[99] OF CHAR(20)
|
|
|
|
END GLOBALS
|
|
|
|
FUNCTION noprrp008()
|
|
DEFINE acumula RECORD
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
num_emp LIKE notb00008.num_emp,
|
|
valor DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
DEFINE datos_cheque RECORD
|
|
num_emp LIKE adtb00003.num_emp,
|
|
departamento LIKE adtb00003.departamento,
|
|
nivel_emp LIKE adtb00003.nivel_emp,
|
|
cod_puesto LIKE adtb00003.cod_puesto,
|
|
nom1_emp LIKE adtb00003.nom1_emp,
|
|
apell1_emp LIKE adtb00003.nom1_emp,
|
|
nom2_emp LIKE adtb00003.nom1_emp,
|
|
apell2_emp LIKE adtb00003.nom1_emp,
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
descrip_mov LIKE notb00002.segundo_enc,
|
|
tipo_d CHAR(1),
|
|
cantidad LIKE notb00008.cantidad,
|
|
valor LIKE notb00008.valor,
|
|
nombre CHAR(80),
|
|
numero INTEGER,
|
|
fecha DATE,
|
|
acumulado DECIMAL(12,2),
|
|
neto DECIMAL(12,2)
|
|
END RECORD
|
|
OPTIONS
|
|
FORM LINE 9,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 22
|
|
|
|
# Desplegue de pantalla y de formulario para la captura de informacion
|
|
CALL pantalla()
|
|
OPEN FORM nofmrp008 FROM "nofmrp008"
|
|
DISPLAY FORM nofmrp008
|
|
DISPLAY "noprrp008" AT 4,2
|
|
DISPLAY "Cheques de Nomina" AT 6,31
|
|
|
|
INITIALIZE c_entra TO null
|
|
|
|
#Captura de informacion para el reporte: banco,numero de nomina,cheque_no
|
|
INPUT BY NAME c_entra.*
|
|
AFTER FIELD tipo_emp
|
|
IF c_entra.tipo_emp = "Q" THEN
|
|
LET c_entra.nombre_tipo = "QUINCENAL"
|
|
END IF
|
|
IF c_entra.tipo_emp = "S" THEN
|
|
LET c_entra.nombre_tipo = "SEMANAL"
|
|
END IF
|
|
IF c_entra.tipo_emp = "V" THEN
|
|
LET c_entra.nombre_tipo = "VENDEDORES"
|
|
END IF
|
|
|
|
DISPLAY BY NAME c_entra.nombre_tipo ATTRIBUTE (BOLD)
|
|
SELECT tipo_emp,fecha_del,fecha_al INTO datos_peri.* FROM notb00010
|
|
WHERE num_nomi = c_entra.num_nomi and
|
|
tipo_emp = c_entra.tipo_emp and
|
|
status_t is null
|
|
|
|
IF status = notfound THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD tipo_emp
|
|
END IF
|
|
DISPLAY BY NAME datos_peri.* ATTRIBUTE(BOLD)
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
EXIT INPUT
|
|
END INPUT
|
|
CONSTRUCT BY NAME criterio10 ON a.departamento,a.num_emp
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
DISPLAY "Busqueda Neto... Espere Por Favor" AT 19,14
|
|
ATTRIBUTE(REVERSE,BOLD)
|
|
{
|
|
DISPLAY "Busqueda Acumulados... Espere Por Favor" AT 19,14
|
|
ATTRIBUTE(REVERSE,BOLD)
|
|
LET selec20 =
|
|
"SELECT a.cod_mov,a.num_emp,sum(a.valor) FROM notb00008 a ",
|
|
" WHERE a.fecha <= ? and ",criterio10 clipped,
|
|
" GROUP BY 1,2 ",
|
|
" ORDER BY 2,1 "
|
|
|
|
PREPARE comando30 FROM selec20
|
|
DECLARE busca20 SCROLL CURSOR FOR comando30
|
|
OPEN busca20 USING datos_peri.fecha_a
|
|
}
|
|
|
|
LET selec10 =
|
|
"SELECT a.num_emp,a.departamento,a.nivel_emp,a.cod_puesto, ",
|
|
"a.nom1_emp,a.apell1_emp,a.nom2_emp,a.apell2_emp, ",
|
|
"b.cod_mov,c.ch_encabeza,b.clase_mov,b.cantidad,b.valor ",
|
|
"FROM adtb00003 a,notb00008 b, notb00002 c ",
|
|
"WHERE a.num_emp = b.num_emp and ",
|
|
"b.num_nomi = ? and ",
|
|
"b.tipo_emp = ? and ",
|
|
"b.cod_mov = c.cod_mov and ",
|
|
criterio10 clipped,
|
|
"ORDER BY 2,1,9"
|
|
|
|
PREPARE comando FROM selec10
|
|
DECLARE busca CURSOR FOR comando
|
|
OPEN busca USING c_entra.num_nomi,c_entra.tipo_emp
|
|
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
START REPORT cheque TO "C:\\archivo"
|
|
DISPLAY "Cheques Generandose... Espere Por Favor" AT 19,14
|
|
ATTRIBUTE(REVERSE,BOLD)
|
|
LET i = 1
|
|
LET idx = 1
|
|
LET siguie = "S"
|
|
LET emp_ant = 0
|
|
LET cuarta = "N"
|
|
|
|
CALL arr_letras()
|
|
|
|
WHILE STATUS != NOTFOUND
|
|
FETCH busca INTO datos_cheque.*
|
|
IF status = notfound THEN
|
|
EXIT WHILE
|
|
END IF
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = false
|
|
RETURN
|
|
END IF
|
|
|
|
LET datos_cheque.nombre = datos_cheque.nom1_emp clipped," ",
|
|
datos_cheque.nom2_emp clipped," ",
|
|
datos_cheque.apell1_emp clipped," ",
|
|
datos_cheque.apell2_emp clipped
|
|
|
|
LET datos_cheque.acumulado = 0
|
|
|
|
# Busqueda de acumulados
|
|
|
|
SELECT sum(valor) INTO datos_cheque.acumulado FROM notb00008
|
|
WHERE num_emp = datos_cheque.num_emp and
|
|
cod_mov = datos_cheque.cod_mov and
|
|
fecha <= datos_peri.fecha_a
|
|
{
|
|
LET salir = "N"
|
|
LET idx_x = 1
|
|
WHILE salir != "S"
|
|
FETCH ABSOLUTE idx_x busca20 INTO acumula.*
|
|
IF status = notfound THEN
|
|
LET idx_x = 1
|
|
EXIT WHILE
|
|
END IF
|
|
|
|
LET idx_x = idx_x + 1
|
|
|
|
IF datos_cheque.cod_mov = acumula.cod_mov and
|
|
datos_cheque.num_emp = acumula.num_emp THEN
|
|
|
|
LET datos_cheque.acumulado = acumula.valor
|
|
LET idx_x = 1
|
|
EXIT WHILE
|
|
|
|
END IF
|
|
END WHILE
|
|
}
|
|
IF datos_cheque.cod_mov = 12 THEN
|
|
SELECT valor INTO p_valor FROM notb00008
|
|
WHERE num_nomi = c_entra.num_nomi and tipo_emp = c_entra.tipo_emp and
|
|
num_emp = datos_cheque.num_emp and
|
|
cod_mov = 110
|
|
LET datos_cheque.valor = datos_cheque.valor + p_valor
|
|
END IF
|
|
|
|
# Busque del valor neto del empleado para que el programa tenga la oportunidad
|
|
# de buscar el valor en letras del cheque
|
|
|
|
SELECT sum(a.valor) INTO datos_cheque.neto FROM notb00008 a
|
|
WHERE
|
|
a.num_nomi = c_entra.num_nomi and
|
|
a.tipo_emp = c_entra.tipo_emp and
|
|
a.cod_mov not in (100,101,102,50) and
|
|
a.num_emp = datos_cheque.num_emp and
|
|
a.departamento = datos_cheque.departamento
|
|
|
|
#-------------------------------------------------------------------------
|
|
OUTPUT TO REPORT cheque(datos_cheque.*)
|
|
LET siguie = "N"
|
|
END WHILE
|
|
FINISH REPORT cheque
|
|
RUN "type C:\\archivo > %USPRINT%"
|
|
END FUNCTION
|
|
|
|
REPORT cheque(x)
|
|
|
|
DEFINE x RECORD
|
|
num_emp LIKE adtb00003.num_emp,
|
|
departamento LIKE adtb00003.departamento,
|
|
nivel_emp LIKE adtb00003.nivel_emp,
|
|
cod_puesto LIKE adtb00003.cod_puesto,
|
|
nom1_emp LIKE adtb00003.nom1_emp,
|
|
apell1_emp LIKE adtb00003.nom1_emp,
|
|
nom2_emp LIKE adtb00003.nom1_emp,
|
|
apell2_emp LIKE adtb00003.nom1_emp,
|
|
cod_mov LIKE notb00008.cod_mov,
|
|
descrip_mov LIKE notb00002.segundo_enc,
|
|
tipo_d CHAR(1),
|
|
cantidad LIKE notb00008.cantidad,
|
|
valor LIKE notb00008.valor,
|
|
nombre CHAR(80),
|
|
numero INTEGER,
|
|
fecha DATE,
|
|
acumulado DECIMAL(12,2),
|
|
neto DECIMAL(12,2)
|
|
END RECORD,
|
|
pp SMALLINT
|
|
|
|
DEFINE col1,col2,col3,segunda,imp CHAR(1)
|
|
DEFINE ano CHAR(4)
|
|
DEFINE nombre_mes CHAR(10)
|
|
DEFINE orden,fact CHAR(30)
|
|
DEFINE subraya_on,subraya_off CHAR(3)
|
|
DEFINE comp_on,comp_off,negrillas_on,negrillas_off,italica,
|
|
italica_of,doce_on,doce_of CHAR(2)
|
|
DEFINE l,k,in_mes INTEGER,
|
|
t_monto,t_desc,p_monto DECIMAL(12,2)
|
|
|
|
OUTPUT
|
|
TOP MARGIN 1
|
|
LEFT MARGIN 0
|
|
PAGE LENGTH 22
|
|
|
|
FORMAT
|
|
|
|
BEFORE GROUP OF x.num_emp
|
|
LET doce_on = ASCII 27, ASCII 77
|
|
LET doce_of = ASCII 27, ASCII 80
|
|
LET italica = ASCII 27, ASCII 52
|
|
LET italica_of = ASCII 27, ASCII 53
|
|
LET negrillas_on = ASCII 27, ASCII 71
|
|
LET negrillas_off = ASCII 27, ASCII 72
|
|
LET comp_on = ASCII 15
|
|
LET comp_off = ASCII 18
|
|
LET subraya_on = ASCII 27, ASCII 45, ASCII 1
|
|
LET subraya_off = ASCII 27, ASCII 45, ASCII 0
|
|
LET t_desc = 0
|
|
LET t_monto = 0
|
|
LET in_mes = month(today)
|
|
CALL busca_mes()
|
|
LET nombre_mes = meses[in_mes]
|
|
PRINT COLUMN 1, comp_on,negrillas_on,
|
|
COLUMN 5, "Nomina: ",negrillas_off,c_entra.num_nomi
|
|
USING "<<<<"," ",c_entra.nombre_tipo,
|
|
COLUMN 70, "del ",datos_peri.fecha_d using "dd/mm/yy"
|
|
PRINT COLUMN 1,negrillas_on,
|
|
COLUMN 5, "Empleado: ",negrillas_off,
|
|
"(",x.num_emp using "&&&",")",
|
|
x.nombre[1,30],
|
|
COLUMN 70, "al ",datos_peri.fecha_a using "dd/mm/yy",
|
|
comp_off
|
|
{
|
|
# Determina el valor neto del empleado, se hizo asi porque los datos estan
|
|
# almacenado de forma codificada por movimiento y el valor neto del
|
|
# empleado no se determinaria si no se buscan todos sus movimientos
|
|
SELECT SUM(valor) INTO p_monto FROM notb00008
|
|
WHERE num_emp = x.num_emp and
|
|
num_nomi = c_entra.num_nomi and
|
|
cod_mov not in(100,101,102)
|
|
}
|
|
LET p_monto = x.neto
|
|
LET ano = year(today) using "&&&&"
|
|
PRINT COLUMN 3,
|
|
"|------ INGRESOS ----------|",
|
|
"|----------- DESCUENTOS -----------|"
|
|
|
|
PRINT COLUMN 5, comp_on,"COD",
|
|
COLUMN 18, "HORAS",
|
|
COLUMN 25, "MONTO",
|
|
COLUMN 40, "ACUMULADO",
|
|
COLUMN 53, "COD",
|
|
COLUMN 64, "MONTO",
|
|
COLUMN 77, "ACUMULADO",
|
|
negrillas_off
|
|
LET imp = "N"
|
|
LET k = 0
|
|
SKIP 1 LINES
|
|
|
|
ON EVERY ROW
|
|
IF x.tipo_d = "I" or x.tipo_d = "P" or
|
|
x.tipo_d = "E" THEN
|
|
IF idx > 1 THEN
|
|
FOR k = 1 TO 9
|
|
IF arr_mov[k].cod_mov1 is null or
|
|
arr_mov[k].cod_mov1 = 0 THEN
|
|
LET i = k
|
|
EXIT FOR
|
|
END IF
|
|
END FOR
|
|
END IF
|
|
LET arr_mov[i].num_emp = x.num_emp
|
|
LET arr_mov[i].cod_mov1 = x.cod_mov
|
|
LET arr_mov[i].descrip1 = x.descrip_mov
|
|
LET arr_mov[i].cantidad1 = x.cantidad
|
|
LET arr_mov[i].valor1 = x.valor
|
|
LET arr_mov[i].acumulado1 = x.acumulado
|
|
LET i = i + 1
|
|
LET primera = "S"
|
|
END IF
|
|
|
|
IF x.tipo_d = "S" or
|
|
x.tipo_d = "R" or
|
|
x.tipo_d = "D" THEN
|
|
IF idx <= 12 THEN
|
|
IF primera = "S" THEN
|
|
LET primera = "N"
|
|
LET i = 1
|
|
END IF
|
|
FOR k = 1 TO 9
|
|
IF arr_mov[k].cod_mov2 is null or
|
|
arr_mov[k].cod_mov2 = 0 THEN
|
|
LET i = k
|
|
EXIT FOR
|
|
END IF
|
|
END FOR
|
|
|
|
LET arr_mov[i].num_emp = x.num_emp
|
|
LET arr_mov[i].cod_mov2 = x.cod_mov
|
|
LET arr_mov[i].descrip2 = x.descrip_mov
|
|
LET arr_mov[i].cantidad2 = null
|
|
LET arr_mov[i].valor2 = x.valor
|
|
LET arr_mov[i].acumulado2 = x.acumulado
|
|
LET i = i + 1
|
|
LET segunda = "S"
|
|
END IF
|
|
|
|
IF idx > 12 THEN
|
|
IF segunda = "S" THEN
|
|
LET segunda = "N"
|
|
LET i = 1
|
|
END IF
|
|
FOR k = 1 TO 9
|
|
IF arr_mov[k].cod_mov3 is null or
|
|
arr_mov[k].cod_mov3 = 0 THEN
|
|
LET i = k
|
|
EXIT FOR
|
|
END IF
|
|
END FOR
|
|
|
|
LET arr_mov[i].num_emp = x.num_emp
|
|
LET arr_mov[i].cod_mov3 = x.cod_mov
|
|
LET arr_mov[i].descrip3 = x.descrip_mov
|
|
LET arr_mov[i].cantidad3 = null
|
|
LET arr_mov[i].valor3 = x.valor
|
|
LET arr_mov[i].acumulado3 = x.acumulado
|
|
LET i = i + 1
|
|
END IF
|
|
END IF
|
|
LET idx = idx + 1
|
|
|
|
AFTER GROUP OF x.num_emp
|
|
LET col1 = "S"
|
|
LET l = 5
|
|
LET k = 0
|
|
FOR i = 1 TO idx
|
|
#-----------------------------------------------------------------------------
|
|
# Impresion de movimientos en columnas
|
|
#------------------------------------------------------------------------------
|
|
IF arr_mov[i].cod_mov2 != 0 or
|
|
arr_mov[i].cod_mov1 != 0 or
|
|
arr_mov[i].cod_mov3 != 0 THEN
|
|
LET k = k + 1
|
|
IF arr_mov[i].cod_mov1 = 0 THEN
|
|
LET arr_mov[i].cod_mov1 = null
|
|
END IF
|
|
IF arr_mov[i].cod_mov3 = 0 THEN
|
|
LET arr_mov[i].cod_mov3 = null
|
|
END IF
|
|
IF arr_mov[i].cod_mov2 = 0 THEN
|
|
LET arr_mov[i].cod_mov2 = null
|
|
END IF
|
|
|
|
PRINT COLUMN l, arr_mov[i].cod_mov1 using "&&",
|
|
COLUMN l+3, arr_mov[i].descrip1,
|
|
COLUMN l+11, arr_mov[i].cantidad1 using "###.##",
|
|
COLUMN l+20, arr_mov[i].valor1 using "##,###.##",
|
|
COLUMN l+36, arr_mov[i].acumulado1 using "###,###.##","|",
|
|
|
|
COLUMN l+39, arr_mov[i].cod_mov2 using "&&",
|
|
COLUMN l+42, arr_mov[i].descrip2,
|
|
#COLUMN l+52, arr_mov[i].cantidad2 using "###.##",
|
|
COLUMN l+51, arr_mov[i].valor2 using "##,###.##",
|
|
COLUMN l+74, arr_mov[i].acumulado2 using "##,###.##","|",
|
|
|
|
COLUMN l+78, arr_mov[i].cod_mov3 using "&&",
|
|
COLUMN l+81, arr_mov[i].descrip3 ,
|
|
#COLUMN l+91, arr_mov[i].cantidad3 using "###.##",
|
|
COLUMN l+91, arr_mov[i].valor3 using "#,###.##",
|
|
COLUMN l+104, arr_mov[i].acumulado3 using "##,###.##"
|
|
|
|
IF imp = "S" THEN
|
|
LET l = 5
|
|
END IF
|
|
{
|
|
IF imp = "N" THEN
|
|
LET imp = "S"
|
|
PRINT COLUMN 1, comp_off,
|
|
COLUMN 19, x.nombre[1,35],
|
|
COLUMN 54, p_monto using "$$$,$$#.##",
|
|
COLUMN 64, comp_on;
|
|
LET l = l - 42
|
|
END IF
|
|
}
|
|
{
|
|
IF k = 3 THEN
|
|
CALL conv_numero(p_monto)
|
|
PRINT COLUMN 2,comp_off, valor_letras[1,56],
|
|
COLUMN 60, comp_on;
|
|
LET l = l - 39
|
|
END IF
|
|
}
|
|
# Totaliza los ingresos
|
|
IF arr_mov[i].valor1 > 0 THEN
|
|
LET t_monto = t_monto + arr_mov[i].valor1
|
|
END IF
|
|
|
|
IF arr_mov[i].valor2 > 0 THEN
|
|
LET t_monto = t_monto + arr_mov[i].valor2
|
|
END IF
|
|
|
|
IF arr_mov[i].valor3 > 0 THEN
|
|
LET t_monto = t_monto + arr_mov[i].valor3
|
|
END IF
|
|
|
|
# Totaliza los descuentos
|
|
IF arr_mov[i].valor1 < 0 THEN
|
|
LET t_desc = t_Desc + arr_mov[i].valor1
|
|
END IF
|
|
IF arr_mov[i].valor2 < 0 THEN
|
|
LET t_desc = t_desc + arr_mov[i].valor2
|
|
END IF
|
|
IF arr_mov[i].valor3 < 0 THEN
|
|
LET t_desc = t_desc + arr_mov[i].valor3
|
|
END IF
|
|
END IF
|
|
END FOR
|
|
{
|
|
IF k = 1 THEN
|
|
SKIP 2 LINE
|
|
CALL conv_numero(p_monto)
|
|
PRINT COLUMN 2,comp_off, valor_letras[1,50],comp_on," "
|
|
END IF
|
|
IF k = 2 THEN
|
|
SKIP 1 LINE
|
|
CALL conv_numero(p_monto)
|
|
PRINT COLUMN 2,comp_off, valor_letras[1,50],comp_on," "
|
|
END IF
|
|
}
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 5, "Ingresos: ", t_monto using "$$$,$$#.##",
|
|
COLUMN 58, "Descuentos: ", t_desc using "$$$,$$#.##",
|
|
COLUMN 90, "A Cobrar : ", p_monto using "$$$,$$#.##",comp_off
|
|
|
|
# Limpieza del arreglo
|
|
FOR i = 1 TO idx
|
|
LET arr_mov[i].cod_mov1 = null
|
|
LET arr_mov[i].descrip1 = null
|
|
LET arr_mov[i].cantidad1 = null
|
|
LET arr_mov[i].valor1 = null
|
|
LET arr_mov[i].acumulado1 = null
|
|
LET arr_mov[i].cod_mov2 = null
|
|
LET arr_mov[i].descrip2 = null
|
|
LET arr_mov[i].cantidad2 = null
|
|
LET arr_mov[i].valor2 = null
|
|
LET arr_mov[i].acumulado2 = null
|
|
LET arr_mov[i].cod_mov3 = null
|
|
LET arr_mov[i].descrip3 = null
|
|
LET arr_mov[i].cantidad3 = null
|
|
LET arr_mov[i].valor3 = null
|
|
LET arr_mov[i].acumulado3 = null
|
|
END FOR
|
|
LET i = 1
|
|
LET idx = 1
|
|
FOR pp = 1 TO 80
|
|
PRINT "-";
|
|
END FOR
|
|
PRINT "-"
|
|
SKIP TO TOP OF PAGE
|
|
|
|
END REPORT
|
|
|
|
# Funcion para convertir de valor a letras
|
|
FUNCTION convierte(valor_origen)
|
|
DEFINE valor_origen DECIMAL(12,2)
|
|
DEFINE consegui CHAR(1)
|
|
DEFINE p,miles,m,k,a,b,d,c,entero,unidades_mi,unidades_m,unidad,mil,millon,
|
|
unid_c,u INTEGER
|
|
DEFINE cheles DECIMAL (7,2)
|
|
CALL letras()
|
|
LET valor_letras = null
|
|
LET consegui = "N"
|
|
LET entero = valor_origen
|
|
LET cheles = (valor_origen - entero) * 100
|
|
LET unidad = entero / 100
|
|
LET unidad = entero - (unidad * 100)
|
|
LET a = entero / 1000
|
|
LET a = entero - (a * 1000)
|
|
LET d = entero - 19
|
|
|
|
IF d >= 82 THEN
|
|
|
|
LET c = entero / 100
|
|
|
|
# Para Controlar los miles y los cientos
|
|
|
|
IF c <= 9 THEN
|
|
LET valor_letras = valor_letras clipped," ",centenas[c] clipped
|
|
ELSE
|
|
LET c = entero / 1000
|
|
LET b = entero / 1000000
|
|
END IF
|
|
|
|
IF d > 19 THEN
|
|
LET d = unidad - 19
|
|
END IF
|
|
|
|
IF unidad > 0 and unidad < 20 THEN
|
|
LET d = unidad
|
|
LET valor_letras = valor_letras clipped," ",unidades1[d] clipped
|
|
LET consegui = "S"
|
|
END IF
|
|
|
|
ELSE
|
|
IF d > 0 AND d <= 81 THEN
|
|
LET valor_letras = valor_letras clipped," ",decenas[d] clipped
|
|
LET consegui = "S"
|
|
END IF
|
|
END IF
|
|
|
|
# Para controlar los miles
|
|
|
|
IF entero > 999 THEN
|
|
LET unidades_m = a / 100
|
|
LET unidades_m = a - (unidades_m * 100)
|
|
LET valor_letras = null
|
|
|
|
IF c = 1 THEN
|
|
LET valor_letras = "MIL"
|
|
END IF
|
|
|
|
IF c > 1 and c <= 19 THEN
|
|
LET valor_letras = valor_letras clipped," ",unidades1[c] clipped," ","MIL"
|
|
END IF
|
|
|
|
IF c >= 20 and c <= 999 THEN
|
|
|
|
IF c < 82 THEN
|
|
LET c = c - 19
|
|
LET valor_letras = valor_letras clipped," ",decenas[c] clipped
|
|
ELSE
|
|
LET k = c / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[k] clipped
|
|
LET unid_c = c - (k * 100)
|
|
|
|
IF unid_c >= 20 THEN
|
|
LET unid_c = unid_c - 19
|
|
LET valor_letras = valor_letras clipped," ",decenas[unid_c] clipped
|
|
END IF
|
|
END IF
|
|
LET valor_letras = valor_letras clipped," ","MIL"
|
|
END IF
|
|
|
|
LET c = a
|
|
IF c > 100 THEN
|
|
LET c = c / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[c] clipped
|
|
END IF
|
|
|
|
IF c = 100 THEN
|
|
LET valor_letras = valor_letras clipped," ",decenas[81] clipped
|
|
END IF
|
|
|
|
IF unidades_m > 0 and unidades_m <= 19 THEN
|
|
LET a = unidades_m
|
|
LET valor_letras = valor_letras clipped, " ",unidades1[a] clipped
|
|
{ ELSE
|
|
LET a = unidades_m - 19
|
|
LET valor_letras = valor_letras clipped, " ",unidades1[a] clipped}
|
|
END IF
|
|
END IF
|
|
|
|
# Para Controlar cantidades en millones
|
|
|
|
IF entero > 999999 THEN
|
|
LET c = 0
|
|
LET miles = entero - 1000000
|
|
LET m = miles / 1000
|
|
LET p = miles - (m * 1000)
|
|
LET u = m / 100
|
|
LET u = m - (u * 100)
|
|
LET unidades_mi = p
|
|
LET unidades_mi = unidades_mi / 100
|
|
LET unidades_mi = p - (unidades_mi * 100)
|
|
LET valor_letras = null
|
|
|
|
IF b = 1 THEN
|
|
LET valor_letras = "UN MILLON"
|
|
END IF
|
|
|
|
IF b > 1 and b <= 19 THEN
|
|
LET valor_letras = valor_letras clipped," ",unidades1[b] clipped," ",
|
|
"MILLONES"
|
|
END IF
|
|
|
|
IF b >= 20 and b <= 999999 THEN
|
|
IF b < 82 THEN
|
|
LET b = b - 19
|
|
LET valor_letras = valor_letras clipped," ",decenas[b] clipped," ",
|
|
"MILLONES"
|
|
ELSE
|
|
LET k = b / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[k] clipped," ",
|
|
"MILLONES"
|
|
END IF
|
|
END IF
|
|
|
|
LET b = m
|
|
IF b > 100 THEN
|
|
LET b = b / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[b] clipped
|
|
|
|
IF u > 0 and u <= 19 THEN
|
|
|
|
IF u = 1 THEN
|
|
LET unidades1[1] = "UN"
|
|
END IF
|
|
|
|
LET valor_letras = valor_letras clipped," ",unidades1[u] clipped
|
|
END IF
|
|
LET valor_letras = valor_letras clipped," ","MIL"
|
|
END IF
|
|
|
|
IF p > 100 THEN
|
|
LET p = p / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[p] clipped
|
|
END IF
|
|
|
|
IF unidades_mi > 0 and unidades_mi < 19 THEN
|
|
LET m = unidades_mi
|
|
LET valor_letras = valor_letras clipped, " ",unidades1[m] clipped
|
|
END IF
|
|
|
|
END IF
|
|
|
|
IF unidad > 0 and unidad < 20 AND consegui = "N" THEN
|
|
LET d = unidad
|
|
LET valor_letras = valor_letras clipped," ",unidades1[d] clipped
|
|
END IF
|
|
|
|
IF unidad >= 20 AND d <= 81 AND consegui = "N" THEN
|
|
LET valor_letras = valor_letras clipped," ",decenas[d] clipped
|
|
END IF
|
|
LET valor_letras = valor_letras clipped," ","CON"," ",
|
|
cheles using "&&", "/100"
|
|
END FUNCTION
|
|
|
|
FUNCTION letras()
|
|
|
|
LET unidades1[1] = "UNO"
|
|
LET unidades1[2] = "DOS"
|
|
LET unidades1[3] = "TRES"
|
|
LET unidades1[4] = "CUATRO"
|
|
LET unidades1[5] = "CINCO"
|
|
LET unidades1[6] = "SEIS"
|
|
LET unidades1[7] = "SIETE"
|
|
LET unidades1[8] = "OCHO"
|
|
LET unidades1[9] = "NUEVE"
|
|
LET unidades1[10] = "DIEZ"
|
|
LET unidades1[11] = "ONCE"
|
|
LET unidades1[12] = "DOCE"
|
|
LET unidades1[13] = "TRECE"
|
|
LET unidades1[14] = "CATORCE"
|
|
LET unidades1[15] = "QUINCE"
|
|
LET unidades1[16] = "DIESISEIS"
|
|
LET unidades1[17] = "DIESISIETE"
|
|
LET unidades1[18] = "DIESIOCHO"
|
|
LET unidades1[19] = "DIESINUEVE"
|
|
|
|
|
|
LET decenas[1] = "VEINTE"
|
|
LET decenas[2] = "VEINTE Y UNO"
|
|
LET decenas[3] = "VEINTE Y DOS"
|
|
LET decenas[4] = "VEINTE Y TRES"
|
|
LET decenas[5] = "VEINTE Y CUATRO"
|
|
LET decenas[6] = "VEINTE Y CINCO"
|
|
LET decenas[7] = "VEINTE Y SEIS"
|
|
LET decenas[8] = "VEINTE Y SIETE"
|
|
LET decenas[9] = "VEINTE Y OCHO"
|
|
LET decenas[10] = "VEINTE Y NUEVE"
|
|
LET decenas[11] = "TREINTA"
|
|
LET decenas[12] = "TREINTA Y UNO"
|
|
LET decenas[13] = "TREINTA Y DOS"
|
|
LET decenas[14] = "TREINTA Y TRES"
|
|
LET decenas[15] = "TREINTA Y CUATRO"
|
|
LET decenas[16] = "TREINTA Y CINCO"
|
|
LET decenas[17] = "TREINTA Y SEIS"
|
|
LET decenas[18] = "TREINTA Y SIETE"
|
|
LET decenas[19] = "TREINTA Y OCHO"
|
|
LET decenas[20] = "TREINTA Y NUEVE"
|
|
LET decenas[21] = "CUARENTA"
|
|
LET decenas[22] = "CUARENTA Y UNO"
|
|
LET decenas[23] = "CUARENTA Y DOS"
|
|
LET decenas[24] = "CUARENTA Y TRES"
|
|
LET decenas[25] = "CUARENTA Y CUATRO"
|
|
LET decenas[26] = "CUARENTA Y CINCO"
|
|
LET decenas[27] = "CUARENTA Y SEIS"
|
|
LET decenas[28] = "CUARENTA Y SIETE"
|
|
LET decenas[29] = "CUARENTA Y OCHO"
|
|
LET decenas[30] = "CUARENTA Y NUEVE"
|
|
LET decenas[31] = "CINCUENTA"
|
|
LET decenas[32] = "CINCUENTA Y UNO"
|
|
LET decenas[33] = "CINCUENTA Y DOS"
|
|
LET decenas[34] = "CINCUENTA Y TRES"
|
|
LET decenas[35] = "CINCUENTA Y CUATRO"
|
|
LET decenas[36] = "CINCUENTA Y CINCO"
|
|
LET decenas[37] = "CINCUENTA Y SEIS"
|
|
LET decenas[38] = "CINCUENTA Y SIETE"
|
|
LET decenas[39] = "CINCUENTA Y OCHO"
|
|
LET decenas[40] = "CINCUENTA Y NUEVE"
|
|
LET decenas[41] = "SESENTA"
|
|
LET decenas[42] = "SESENTA Y UNO"
|
|
LET decenas[43] = "SESENTA Y DOS"
|
|
LET decenas[44] = "SESENTA Y TRES"
|
|
LET decenas[45] = "SESENTA Y CUATRO"
|
|
LET decenas[46] = "SESENTA Y CINCO"
|
|
LET decenas[47] = "SESENTA Y SEIS"
|
|
LET decenas[48] = "SESENTA Y SIETE"
|
|
LET decenas[49] = "SESENTA Y OCHO"
|
|
LET decenas[50] = "SESENTA Y NUEVE"
|
|
LET decenas[51] = "SETENTA"
|
|
LET decenas[52] = "SETENTA Y UNO"
|
|
LET decenas[53] = "SETENTA Y DOS"
|
|
LET decenas[54] = "SETENTA Y TRES"
|
|
LET decenas[55] = "SETENTA Y CUATRO"
|
|
LET decenas[56] = "SETENTA Y CINCO"
|
|
LET decenas[57] = "SETENTA Y SEIS"
|
|
LET decenas[58] = "SETENTA Y SIETE"
|
|
LET decenas[59] = "SETENTA Y OCHO"
|
|
LET decenas[60] = "SETENTA Y NUEVE"
|
|
LET decenas[61] = "OCHENTA"
|
|
LET decenas[62] = "OCHENTA Y UNO"
|
|
LET decenas[63] = "OCHENTA Y DOS"
|
|
LET decenas[64] = "OCHENTA Y TRES"
|
|
LET decenas[65] = "OCHENTA Y CUATRO"
|
|
LET decenas[66] = "OCHENTA Y CINCO"
|
|
LET decenas[67] = "OCHENTA Y SEIS"
|
|
LET decenas[68] = "OCHENTA Y SIETE"
|
|
LET decenas[69] = "OCHENTA Y OCHO"
|
|
LET decenas[70] = "OCHENTA Y NUEVE"
|
|
LET decenas[71] = "NOVENTA"
|
|
LET decenas[72] = "NOVENTA Y UNO"
|
|
LET decenas[73] = "NOVENTA Y DOS"
|
|
LET decenas[74] = "NOVENTA Y TRES"
|
|
LET decenas[75] = "NOVENTA Y CUATRO"
|
|
LET decenas[76] = "NOVENTA Y CINCO"
|
|
LET decenas[77] = "NOVENTA Y SEIS"
|
|
LET decenas[78] = "NOVENTA Y SIETE"
|
|
LET decenas[79] = "NOVENTA Y OCHO"
|
|
LET decenas[80] = "NOVENTA Y NUEVE"
|
|
LET decenas[81] = "CIEN"
|
|
|
|
LET centenas[1] = "CIENTO"
|
|
LET centenas[2] = "DOCIENTOS"
|
|
LET centenas[3] = "TRESCIENTOS"
|
|
LET centenas[4] = "CUATROCIENTOS"
|
|
LET centenas[5] = "QUINIENTOS"
|
|
LET centenas[6] = "SEISCIENTOS"
|
|
LET centenas[7] = "SETECIENTOS"
|
|
LET centenas[8] = "OCHOCIENTOS"
|
|
LET centenas[9] = "NOVECIENTOS"
|
|
|
|
END FUNCTION
|
|
FUNCTION busca_mes()
|
|
LET meses[1] = "ENERO"
|
|
LET meses[2] = "FEBRERO"
|
|
LET meses[3] = "MARZO"
|
|
LET meses[4] = "ABRIL"
|
|
LET meses[5] = "MAYO"
|
|
LET meses[6] = "JUNIO"
|
|
LET meses[7] = "JULIO"
|
|
LET meses[8] = "AGOSTO"
|
|
LET meses[9] = "SEPTIEMBRE"
|
|
LET meses[10] = "OCTUBRE"
|
|
LET meses[11] = "NOVIEMBRE"
|
|
LET meses[12] = "DICIEMBRE"
|
|
END FUNCTION
|
|
|
|
#--------------------------------------------------------------------
|
|
# Rutina para convertir de numeros a letras. Abner Montalvo
|
|
#--------------------------------------------------------------------
|
|
FUNCTION conv_numero(numero)
|
|
DEFINE numero DECIMAL(12,2)
|
|
DEFINE millon, cmillon, udmillon INTEGER
|
|
DEFINE mil, cmil, udmil, cheles INTEGER
|
|
DEFINE centena, ccentena, udcentena INTEGER
|
|
|
|
#-----------------------------------------------------------
|
|
# Separacion del Numero
|
|
#-----------------------------------------------------------
|
|
LET millon = numero / 1000000
|
|
LET cmillon = millon / 100
|
|
LET udmillon = millon - cmillon * 100
|
|
|
|
LET mil = numero - millon * 1000000
|
|
LET mil = mil / 1000
|
|
LET cmil = mil / 100
|
|
LET udmil = mil - cmil * 100
|
|
|
|
LET centena = numero - (millon*1000000 + mil*1000)
|
|
LET ccentena = centena / 100
|
|
LET udcentena = centena - ccentena * 100
|
|
|
|
LET cheles = (numero - (millon*1000000 + mil*1000 + centena)) * 100
|
|
|
|
LET valor_letras = null
|
|
|
|
#-----------------------------------------------------------
|
|
# Conversion de Millones
|
|
#-----------------------------------------------------------
|
|
IF cmillon > 0 THEN
|
|
LET valor_letras = cientos[cmillon] CLIPPED
|
|
IF cmillon = 1 AND udmillon <> 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED,"TO "
|
|
END IF
|
|
|
|
IF udmillon = 0 THEN
|
|
IF cmillon = 1 THEN
|
|
LET valor_letras = valor_letras CLIPPED," MILLON "
|
|
ELSE
|
|
LET valor_letras = valor_letras CLIPPED," MILLONES "
|
|
END IF
|
|
END IF
|
|
END IF
|
|
|
|
IF udmillon > 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED," ",decimas[udmillon] CLIPPED
|
|
IF udmillon = 1 THEN
|
|
LET valor_letras = valor_letras CLIPPED," MILLON "
|
|
ELSE
|
|
LET valor_letras = valor_letras CLIPPED," MILLONES "
|
|
END IF
|
|
END IF
|
|
|
|
#-----------------------------------------------------------
|
|
# Conversion de Miles
|
|
#-----------------------------------------------------------
|
|
IF cmil > 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED," ",cientos[cmil] CLIPPED
|
|
IF cmil = 1 AND udmil <> 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED,"TO "
|
|
END IF
|
|
END IF
|
|
|
|
IF udmil > 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED," ",decimas[udmil] CLIPPED
|
|
END IF
|
|
|
|
IF cmil > 0 OR udmil > 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED," MIL "
|
|
END IF
|
|
|
|
#-----------------------------------------------------------
|
|
# Conversion de Centenas y Decenas
|
|
#-----------------------------------------------------------
|
|
IF ccentena > 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED," ",cientos[ccentena] CLIPPED
|
|
IF ccentena = 1 AND udcentena <> 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED,"TO "
|
|
END IF
|
|
END IF
|
|
|
|
IF udcentena > 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED," ",decimas[udcentena] CLIPPED
|
|
END IF
|
|
|
|
IF cmillon > 0 OR udmillon > 0 OR
|
|
cmil > 0 OR udmil > 0 OR
|
|
ccentena > 0 OR udcentena > 0 THEN
|
|
LET valor_letras = valor_letras CLIPPED," CON ",cheles USING "&&","/100"
|
|
END IF
|
|
|
|
#DISPLAY numero USING "###,###,##&.&&" AT 11,1
|
|
#DISPLAY valor_letras AT 12,1
|
|
#SLEEP 3
|
|
END FUNCTION
|
|
|
|
FUNCTION arr_letras()
|
|
#-----------------------------------------------------------
|
|
# Asignacion de Valores a los arreglos
|
|
#-----------------------------------------------------------
|
|
LET cientos[1] = "CIEN"
|
|
LET cientos[2] = "DOSCIENTOS"
|
|
LET cientos[3] = "TRESCIENTOS"
|
|
LET cientos[4] = "CUATROCIENTOS"
|
|
LET cientos[5] = "QUINIENTOS"
|
|
LET cientos[6] = "SEISCIENTOS"
|
|
LET cientos[7] = "SETECIENTOS"
|
|
LET cientos[8] = "OCHOCIENTOS"
|
|
LET cientos[9] = "NOVECIENTOS"
|
|
|
|
LET decimas[1] = "UN"
|
|
LET decimas[2] = "DOS"
|
|
LET decimas[3] = "TRES"
|
|
LET decimas[4] = "CUATRO"
|
|
LET decimas[5] = "CINCO"
|
|
LET decimas[6] = "SEIS"
|
|
LET decimas[7] = "SIETE"
|
|
LET decimas[8] = "OCHO"
|
|
LET decimas[9] = "NUEVE"
|
|
|
|
LET decimas[10] = "DIEZ"
|
|
LET decimas[11] = "ONCE"
|
|
LET decimas[12] = "DOCE"
|
|
LET decimas[13] = "TRECE"
|
|
LET decimas[14] = "CATORCE"
|
|
LET decimas[15] = "QUINCE"
|
|
LET decimas[16] = "DIECISEIS"
|
|
LET decimas[17] = "DIECISIETE"
|
|
LET decimas[18] = "DIECIOCHO"
|
|
LET decimas[19] = "DIECINUEVE"
|
|
|
|
LET decimas[20] = "VEINTE"
|
|
LET decimas[21] = "VEINTE Y UNO"
|
|
LET decimas[22] = "VEINTE Y DOS"
|
|
LET decimas[23] = "VEINTE Y TRES"
|
|
LET decimas[24] = "VEINTE Y CUATRO"
|
|
LET decimas[25] = "VEINTE Y CINCO"
|
|
LET decimas[26] = "VEINTE Y SEIS"
|
|
LET decimas[27] = "VEINTE Y SIETE"
|
|
LET decimas[28] = "VEINTE Y OCHO"
|
|
LET decimas[29] = "VEINTE Y NUEVE"
|
|
|
|
LET decimas[30] = "TREINTA"
|
|
LET decimas[31] = "TREINTA Y UNO"
|
|
LET decimas[32] = "TREINTA Y DOS"
|
|
LET decimas[33] = "TREINTA Y TRES"
|
|
LET decimas[34] = "TREINTA Y CUATRO"
|
|
LET decimas[35] = "TREINTA Y CINCO"
|
|
LET decimas[36] = "TREINTA Y SEIS"
|
|
LET decimas[37] = "TREINTA Y SIETE"
|
|
LET decimas[38] = "TREINTA Y OCHO"
|
|
LET decimas[39] = "TREINTA Y NUEVE"
|
|
|
|
LET decimas[40] = "CUARENTA"
|
|
LET decimas[41] = "CUARENTA Y UNO"
|
|
LET decimas[42] = "CUARENTA Y DOS"
|
|
LET decimas[43] = "CUARENTA Y TRES"
|
|
LET decimas[44] = "CUARENTA Y CUATRO"
|
|
LET decimas[45] = "CUARENTA Y CINCO"
|
|
LET decimas[46] = "CUARENTA Y SEIS"
|
|
LET decimas[47] = "CUARENTA Y SIETE"
|
|
LET decimas[48] = "CUARENTA Y OCHO"
|
|
LET decimas[49] = "CUARENTA Y NUEVE"
|
|
|
|
LET decimas[50] = "CINCUENTA"
|
|
LET decimas[51] = "CINCUENTA Y UNO"
|
|
LET decimas[52] = "CINCUENTA Y DOS"
|
|
LET decimas[53] = "CINCUENTA Y TRES"
|
|
LET decimas[54] = "CINCUENTA Y CUATRO"
|
|
LET decimas[55] = "CINCUENTA Y CINCO"
|
|
LET decimas[56] = "CINCUENTA Y SEIS"
|
|
LET decimas[57] = "CINCUENTA Y SIETE"
|
|
LET decimas[58] = "CINCUENTA Y OCHO"
|
|
LET decimas[59] = "CINCUENTA Y NUEVE"
|
|
|
|
LET decimas[60] = "SESENTA"
|
|
LET decimas[61] = "SESENTA Y UNO"
|
|
LET decimas[62] = "SESENTA Y DOS"
|
|
LET decimas[63] = "SESENTA Y TRES"
|
|
LET decimas[64] = "SESENTA Y CUATRO"
|
|
LET decimas[65] = "SESENTA Y CINCO"
|
|
LET decimas[66] = "SESENTA Y SEIS"
|
|
LET decimas[67] = "SESENTA Y SIETE"
|
|
LET decimas[68] = "SESENTA Y OCHO"
|
|
LET decimas[69] = "SESENTA Y NUEVE"
|
|
|
|
LET decimas[70] = "SETENTA"
|
|
LET decimas[71] = "SETENTA Y UNO"
|
|
LET decimas[72] = "SETENTA Y DOS"
|
|
LET decimas[73] = "SETENTA Y TRES"
|
|
LET decimas[74] = "SETENTA Y CUATRO"
|
|
LET decimas[75] = "SETENTA Y CINCO"
|
|
LET decimas[76] = "SETENTA Y SEIS"
|
|
LET decimas[77] = "SETENTA Y SIETE"
|
|
LET decimas[78] = "SETENTA Y OCHO"
|
|
LET decimas[79] = "SETENTA Y NUEVE"
|
|
|
|
LET decimas[80] = "OCHENTA"
|
|
LET decimas[81] = "OCHENTA Y UNO"
|
|
LET decimas[82] = "OCHENTA Y DOS"
|
|
LET decimas[83] = "OCHENTA Y TRES"
|
|
LET decimas[84] = "OCHENTA Y CUATRO"
|
|
LET decimas[85] = "OCHENTA Y CINCO"
|
|
LET decimas[86] = "OCHENTA Y SEIS"
|
|
LET decimas[87] = "OCHENTA Y SIETE"
|
|
LET decimas[88] = "OCHENTA Y OCHO"
|
|
LET decimas[89] = "OCHENTA Y NUEVE"
|
|
|
|
LET decimas[90] = "NOVENTA"
|
|
LET decimas[91] = "NOVENTA Y UNO"
|
|
LET decimas[92] = "NOVENTA Y DOS"
|
|
LET decimas[93] = "NOVENTA Y TRES"
|
|
LET decimas[94] = "NOVENTA Y CUATRO"
|
|
LET decimas[95] = "NOVENTA Y CINCO"
|
|
LET decimas[96] = "NOVENTA Y SEIS"
|
|
LET decimas[97] = "NOVENTA Y SIETE"
|
|
LET decimas[98] = "NOVENTA Y OCHO"
|
|
LET decimas[99] = "NOVENTA Y NUEVE"
|
|
END FUNCTION
|
|
|