Registra noprrp015 (Prestamos Cooperativa) con reporte moderno
Se agrega noprrp015 al proyecto usando nofmrp015.per. A diferencia de noprrp009 (donde se opto por salida de archivo de texto), aqui se reescribio REPORT prestamo de PRINT COLUMN clasico a PRINTX, y se creo nodir/../bin/noprrp015.4rp (diseno Report Writer 2.0) para soportar pantalla/PDF/Excel, igual que noprrp002/003/039/ 043/044. configureOutput() en msgrp000.4gl sigue siendo un stub NULL (ver noprrp009), asi que se usa fgl_report_loadCurrentSettings + fgl_report_selectDevice/selectPreview/commitCurrentSettings directamente. Se corrige tambien el mismo problema de signo oculto en los montos (mascaras sin caracter de signo) que se encontro en noprrp009. Probado con empleado especifico y con varios empleados del mismo movimiento, verificado contra BD (valor, interes y balance). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
8ac18135e5
commit
80bd203be6
+48
-102
@@ -157,9 +157,19 @@ FUNCTION noprrp015()
|
||||
doce,normal,archivo,imprime
|
||||
|
||||
|
||||
CALL seleccionarsalida() RETURNING r_output
|
||||
CALL configureoutput(r_output) RETURNING handler
|
||||
START REPORT prestamo TO XML HANDLER handler
|
||||
LET r_filename = 'noprrp015.4rp'
|
||||
IF fgl_report_loadCurrentSettings(r_filename) THEN
|
||||
CALL seleccionarsalida() RETURNING r_output
|
||||
LET preview = 1
|
||||
CALL fgl_report_selectDevice(r_output)
|
||||
CALL fgl_report_selectPreview(preview)
|
||||
LET handler = fgl_report_commitCurrentSettings()
|
||||
END IF
|
||||
IF handler IS NOT NULL THEN
|
||||
START REPORT prestamo TO XML HANDLER handler
|
||||
ELSE
|
||||
EXIT PROGRAM
|
||||
END IF
|
||||
|
||||
## SE BUSCA LA INFORMACION DE LOS CAMPOS DEL REGISTRO PARA DARLE
|
||||
## SALIDA AL REPORTE
|
||||
@@ -221,105 +231,47 @@ END FUNCTION
|
||||
num_nomi LIKE notb00008.num_nomi,
|
||||
fecha_al LIKE notb00010.fecha_al
|
||||
END RECORD
|
||||
|
||||
## DEFINICION DE LAS VARIABLES DE IMPRESION
|
||||
|
||||
DEFINE t_interes,interes DECIMAL(8,2)
|
||||
DEFINE doble_on CHAR(2)
|
||||
DEFINE doble_off CHAR(2)
|
||||
DEFINE negrillas_on CHAR(2)
|
||||
DEFINE negrillas_off CHAR(2)
|
||||
DEFINE comp_on CHAR(2)
|
||||
DEFINE comp_off CHAR(2)
|
||||
DEFINE doce CHAR(2)
|
||||
DEFINE normal CHAR(2)
|
||||
DEFINE hora CHAR(5)
|
||||
DEFINE valor1,total,total1,balance DECIMAL(10,2)
|
||||
DEFINE l smallint
|
||||
DEFINE varia CHAR(30)
|
||||
DEFINE total,total1 DECIMAL(10,2)
|
||||
DEFINE codigo_emp VARCHAR(20)
|
||||
DEFINE nombre_completo VARCHAR(80)
|
||||
DEFINE fecha_al_ch VARCHAR(10)
|
||||
DEFINE nombre_cia VARCHAR(100)
|
||||
|
||||
OUTPUT
|
||||
ORDER BY x.cod_mov,x.num_emp
|
||||
|
||||
## DEFINICION DE LOS MARGENES DE IMPRESION
|
||||
TOP MARGIN 0
|
||||
LEFT MARGIN 0
|
||||
BOTTOM MARGIN 3
|
||||
PAGE LENGTH 100
|
||||
FORMAT
|
||||
PAGE HEADER
|
||||
LET doble_on = ASCII 14
|
||||
LET doble_off = ASCII 20
|
||||
LET negrillas_on = ASCII 27, ASCII 69
|
||||
LET negrillas_off = ASCII 27, ASCII 70
|
||||
LET comp_on = ASCII 15
|
||||
LET comp_off = ASCII 18
|
||||
LET doce = ASCII 27, ASCII 77
|
||||
LET normal = ASCII 27, ASCII 80
|
||||
FIRST PAGE HEADER
|
||||
LET hora = time
|
||||
LET varia = x.descrip_mov
|
||||
|
||||
## SE CALCULA LA LONGITUD DE LA VARIABLE -VARIA-
|
||||
LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2
|
||||
|
||||
## AQUI SE INDICA LA IMPRESION DE LOS ENCABEZADOS
|
||||
PRINT COLUMN 1, normal,negrillas_on
|
||||
PRINT COLUMN 1, "noprrp015",
|
||||
COLUMN l, p_companias.nombre CLIPPED,
|
||||
COLUMN 73, "Pag. ",pageno using "###"
|
||||
PRINT COLUMN 29, "Descuentos Cooperativa",
|
||||
COLUMN 73, today using "dd/mm/yy"
|
||||
LET l = (80 - LENGTH(varia CLIPPED))/2
|
||||
PRINT COLUMN l, varia CLIPPED,
|
||||
COLUMN 73, hora
|
||||
|
||||
SKIP 1 LINE
|
||||
## SE IMPRIME EL NUMERO DE NOMINA Y LA FECHA
|
||||
PRINT COLUMN 1, negrillas_on,
|
||||
COLUMN 4, "Nomina No.: ",x.num_nomi using "<<<<",
|
||||
" Al: ",x.fecha_al using "dd/mm/yy",
|
||||
negrillas_off
|
||||
LET fecha_al_ch = x.fecha_al USING "dd/mm/yy"
|
||||
LET nombre_cia = p_companias.nombre CLIPPED
|
||||
|
||||
## SE SELECCIONA EL TIPO DE NOMINA A IMPRIMIR
|
||||
IF x.tipo_emp = "Q" THEN
|
||||
LET descr = "QUINCENAL"
|
||||
ELSE
|
||||
IF x.tipo_emp = "V" THEN
|
||||
LET descr = "VENDEDOR"
|
||||
ELSE
|
||||
LET descr = "SEMANAL"
|
||||
END IF
|
||||
END IF
|
||||
IF x.tipo_emp = "Q" THEN
|
||||
LET descr = "QUINCENAL"
|
||||
ELSE
|
||||
IF x.tipo_emp = "V" THEN
|
||||
LET descr = "VENDEDOR"
|
||||
ELSE
|
||||
LET descr = "SEMANAL"
|
||||
END IF
|
||||
END IF
|
||||
|
||||
PRINT doce
|
||||
PRINT COLUMN 1, negrillas_on,
|
||||
COLUMN 4, descr,
|
||||
COLUMN 15, negrillas_off
|
||||
|
||||
PRINT COLUMN 2, "---------------------------------------------------",
|
||||
"-------------------------------------------"
|
||||
|
||||
PRINT COLUMN 4, "Codigo No.",
|
||||
COLUMN 23, "Nombre",
|
||||
COLUMN 53, "Valor",
|
||||
COLUMN 61, "Interes",
|
||||
COLUMN 74, "Balance"
|
||||
|
||||
PRINT COLUMN 2, "----------------------------------------------------",
|
||||
"------------------------------------------"
|
||||
PRINTX nombre_cia,hora,x.num_nomi,fecha_al_ch,descr
|
||||
|
||||
## SE INDICA EL SALTO DE PAGINA CUANDO SE IMPRIMEN TODOS LOS MOVIMIENTOS
|
||||
BEFORE GROUP OF x.cod_mov
|
||||
SKIP TO TOP OF PAGE
|
||||
LET total1 = 0
|
||||
LET total = 0
|
||||
LET t_interes = 0
|
||||
PRINTX x.descrip_mov
|
||||
|
||||
BEFORE GROUP OF x.num_emp
|
||||
LET balance = 0
|
||||
LET valor1 = 0
|
||||
BEFORE GROUP OF x.num_emp
|
||||
# Busca La cuota de la nomina aqui ya que en el SELECT principal se busca
|
||||
# pero no es confiable
|
||||
|
||||
SELECT valor INTO x.valor FROM notb00008
|
||||
SELECT valor INTO x.valor FROM notb00008
|
||||
WHERE num_emp = x.num_emp and num_nomi = x.num_nomi and
|
||||
tipo_emp = x.tipo_emp and cod_mov = x.cod_mov
|
||||
|
||||
@@ -331,7 +283,7 @@ END FUNCTION
|
||||
END IF
|
||||
# BUSQUEDA DEL INTERES COBRADO EN LA NOMINA ESPECIFICADA
|
||||
LET interes = 0
|
||||
SELECT valor INTO interes FROM notb00008
|
||||
SELECT valor INTO interes FROM notb00008
|
||||
WHERE num_emp = x.num_emp and num_nomi = x.num_nomi and
|
||||
tipo_emp = x.tipo_emp and cod_mov = 110
|
||||
|
||||
@@ -353,27 +305,21 @@ END FUNCTION
|
||||
END IF
|
||||
LET total = total + x.balance
|
||||
|
||||
LET codigo_emp = x.num_emp USING "&&&&","-",
|
||||
x.departamento USING "&&&&","-",
|
||||
x.nivel_emp USING "&&","-",
|
||||
x.cod_puesto USING "&&"
|
||||
LET nombre_completo = x.nom1_emp CLIPPED," ",x.apell1_emp CLIPPED
|
||||
|
||||
## AQUI COMIENZA LA IMPRESION DEL DETALLE
|
||||
IF x.valor != 0 OR x.balance > 0 THEN
|
||||
PRINT COLUMN 4, x.num_emp using "&&&&","-",
|
||||
x.departamento using "&&&&","-",
|
||||
x.nivel_emp using "&&","-", x.cod_puesto using "&&",
|
||||
" ",x.nom1_emp clipped," ",x.apell1_emp clipped,
|
||||
COLUMN 52, x.valor using "##,###.##",
|
||||
COLUMN 62, interes using "###.##",
|
||||
COLUMN 69, x.balance using "#,###,###.##"
|
||||
LET t_interes = t_interes + interes
|
||||
IF x.valor != 0 OR x.balance > 0 THEN
|
||||
LET t_interes = t_interes + interes
|
||||
PRINTX codigo_emp,nombre_completo,x.valor,interes,x.balance
|
||||
END IF
|
||||
|
||||
## AQUI SE IMPRIMEN LOS TOTALES GENERALES
|
||||
AFTER GROUP OF x.cod_mov
|
||||
SKIP 2 LINES
|
||||
PRINT COLUMN 1, negrillas_on,
|
||||
COLUMN 8, "TOTAL GENERAL",
|
||||
COLUMN 51, total1 using "###,###.##",
|
||||
COLUMN 62, t_interes using "###.##",
|
||||
COLUMN 69, total using "#,###,###.##"
|
||||
PRINT COLUMN 18, negrillas_off
|
||||
AFTER GROUP OF x.cod_mov
|
||||
PRINTX total1,t_interes,total
|
||||
|
||||
END REPORT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user