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 <noreply@anthropic.com>
This commit is contained in:
Abel López
2026-10-21 10:00:54 -04:00
co-authored by Claude Opus 5.5
parent 9bc9170788
commit c8743d85c8
+10 -16
View File
@@ -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