Files
MBS/PROYECTO/ipdir/ipprrp054.4gl
T
jpegueroandClaude Sonnet 5.5 fc2fa7acac Corrige ipprrp054 (Revision de Conduces con y sin Archivo)
- Registra ipfmrp054.4fd y la dependencia FUNCIONESREPORT en mbsERP.4pw
- seleccionarsalida() -> selectOutputSimple()
- Rescata ipprrp054.4rp del respaldo PROYECTOS/bin (ipdir/ y bin/)
- El reporte arrancaba aunque la consulta no devolviera filas y el motor
  fallaba (Failed to find value for the look ahead input-variables);
  ahora START REPORT se ejecuta con la primera fila y, si no hay datos,
  muestra "NO EXISTEN REGISTROS"
- Titulo de ventana corregido

Verificado: 05/01/2026 a 10/15/2026 genera 100 paginas en pantalla y PDF.
Nota: las fechas de este formulario se capturan en formato mm/dd/yyyy
(campo Edit sin selector), comportamiento original del programa.
Excel no probado.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-15 13:16:11 -04:00

110 lines
3.7 KiB
Plaintext

{
-------------------------------------------------------------------------------
PROGRAMA : IPPRRP018
OBJETIVO : Reporte Conduces Firmados
PROGRAMADOR : Ing. Luis Soto
FECHA REALIZACION : Marzo 2025
DESCRIPCION : Busqueda de Conduces Firmados
MODIFICADO POR : Luis Soto
-------------------------------------------------------------------------------
}
GLOBALS "ipprgb000.4gl"
DEFINE fecha2 DATE
DEFINE co RECORD
num_doc,cod_sp,cod_sp_sec,cod_mov INT,
nombre,v_estado CHAR(80),fecha DATETIME YEAR TO SECOND
END record
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT TO "smarmotech" USER usuarios USING clave
SELECT * INTO p_companias.* FROM companias
CALL ipprrp054()
END MAIN
FUNCTION ipprrp054()
OPTIONS
FORM LINE 8,
ERROR LINE 23,
COMMENT LINE 21
OPEN FORM ipfmrp054 FROM "ipfmrp054"
DISPLAY FORM ipfmrp054
CALL ui.Window.getCurrent().setText("Conduces con y sin Archivo")
INPUT BY NAME fecha1,fecha2
BEFORE INPUT
AFTER INPUT
LET selec=" select unique a.num_doc,a.cod_sp,a.cod_sp_sec,a.cod_mov,b.nombre,",
" CASE ",
" WHEN c.num_doc IS NULL THEN 'NO TIENE ARCHIVO' ",
" ELSE 'TIENE ARCHIVO' ",
" END,c.fech_crea ",
" from iptb00006 a JOIN vetb00004 b ON a.cod_sp = b.tipo_cliente AND a.cod_sp_sec = b.sec_cliente ",
" JOIN iptb00005 d ON a.cod_mov = d.cod_mov LEFT JOIN prtb00029 c ON a.num_doc = c.num_doc and a.bodega=c.bodega AND c.tipo_file = 'CO'",
" where a.fecha between ? and ? and a.cod_mov in (30,31,38,55,56) ",
" group by a.cod_mov,a.num_doc,a.cod_sp,a.cod_sp_sec,b.nombre,c.num_doc,c.fech_crea",
" order by a.cod_mov"
LET r_filename = "ipprrp054.4rp"
PREPARE comando FROM selec
DECLARE busca CURSOR FOR comando
OPEN busca USING fecha1,fecha2
LET idx = 0
FOREACH busca INTO co.*
IF idx = 0 THEN
CALL selectOutputSimple() RETURNING r_output
IF fgl_report_loadCurrentSettings(r_filename) THEN
LET preview = 1
CALL fgl_report_selectDevice(r_output)
CALL fgl_report_selectPreview(preview)
LET handler = fgl_report_commitCurrentSettings()
ELSE
EXIT PROGRAM
END IF
START REPORT prt_co TO XML HANDLER HANDLER
LET idx = 1
END IF
OUTPUT TO REPORT prt_co(co.*)
END FOREACH
IF idx = 1 THEN
FINISH REPORT prt_co
ELSE
CALL fgl_winmessage("INFO", "NO EXISTEN REGISTROS", "INFO")
END IF
END INPUT
END FUNCTION
REPORT prt_co(x)
DEFINE x RECORD
num_doc,cod_sp,cod_sp_sec,cod_mov INT,
nombre,v_estado CHAR(80),fecha DATETIME YEAR TO second
END RECORD,fecht DATE,descrip_mov,titulo_mov CHAR(80)
FORMAT
FIRST PAGE HEADER
LET fecht =today
BEFORE GROUP OF x.cod_mov
SELECT a.descrip_mov
INTO descrip_mov
FROM iptb00005 a
WHERE a.cod_mov = x.cod_mov
LET titulo_mov =
"Movimiento: ", x.cod_mov, " ", descrip_mov CLIPPED
PRINTX titulo_mov
ON EVERY ROW
PRINTX x.cod_sp,x.cod_sp_sec,x.nombre,x.num_doc,p_companias.nombre,fecht,x.v_estado,fecha1,fecha2,x.fecha
END REPORT