From c8743d85c80858fcc71ec08c4936e42965da0be0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20L=C3=B3pez?= Date: Wed, 21 Oct 2026 10:00:54 -0400 Subject: [PATCH] cpprrp003 (Mayor Auxiliar): exportacion a PDF/Excel/pantalla - La salida escribia un XML crudo en FGLSPOOL (no era PDF ni Excel); vuelve a configureOutput() (modo compatibilidad de GRE, como en 3.20) con la ventana comun seleccionarsalida() (EXCEL / PDF / SCREEN). - Se dejan vacios los codigos de impresora matricial (ASCII 14/15/20, ESC E/F/M/P) del encabezado, que salian como basura en PDF/Excel. Verificado contra la BD .250 (grupo 22, del 01/08/2026 al 15/08/2026): PDF, Excel y pantalla generados; balance inicial, debitos, creditos, balance y total general (credito 62,868.52, balance 105,394.28) cuadran con SQL. Build OK con gsmake. Co-Authored-By: Claude Opus 5.5 --- PROYECTO/cpdir/cpprrp003.4gl | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/PROYECTO/cpdir/cpprrp003.4gl b/PROYECTO/cpdir/cpprrp003.4gl index 0fe0c83..f553287 100644 --- a/PROYECTO/cpdir/cpprrp003.4gl +++ b/PROYECTO/cpdir/cpprrp003.4gl @@ -15,7 +15,6 @@ GLOBALS "cpprgb000.4gl" DEFINE salir, salir1, salir3, tipo_venta CHAR(1) DEFINE selec5, selec6 CHAR(1500) DEFINE cod_sp SMALLINT - DEFINE p_reportfile STRING DEFINE tot_gen1 RECORD totald DECIMAL(10,2), @@ -147,13 +146,8 @@ FUNCTION cpprrp003() # doce,normal,archivo,copia - -- La API de configuracion de reportes (fgl_report_*) no esta - -- disponible en este FGL; se escribe el XML directo a un archivo - -- en FGLSPOOL en lugar de la vista previa SVG. - -- (usa STRING, no "archivo" CHAR(80): la ruta del proyecto supera - -- los 80 caracteres y se truncaba) - LET p_reportfile = FGL_GETENV("FGLSPOOL"), "/cpprrp003_mayor.xml" - LET handler = om.XmlWriter.createFileWriter(p_reportfile) + CALL seleccionarsalida() RETURNING r_output + CALL configureoutput(r_output) RETURNING handler START REPORT reporte61 TO XML HANDLER handler LET selec5 = @@ -256,14 +250,14 @@ END FUNCTION 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 + LET doble_on = NULL -- sin codigos de impresora (salida PDF/Excel) + LET doble_off = NULL -- sin codigos de impresora (salida PDF/Excel) + LET negrillas_on = NULL -- sin codigos de impresora (salida PDF/Excel) + LET negrillas_off = NULL -- sin codigos de impresora (salida PDF/Excel) + LET comp_on = NULL -- sin codigos de impresora (salida PDF/Excel) + LET comp_off = NULL -- sin codigos de impresora (salida PDF/Excel) + LET doce = NULL -- sin codigos de impresora (salida PDF/Excel) + LET normal = NULL -- sin codigos de impresora (salida PDF/Excel) LET hora = time