Compare commits

...
5 Commits
Author SHA1 Message Date
Abel López 4bfaea0a47 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-21 16:58:41 -04:00
Abel LópezandClaude Opus 5.5 3422acc241 cpprrp017 (Validacion de Facturas): exportacion a PDF/Excel y filtro que se cortaba
- La salida escribia un .txt en FGLSPOOL (no era PDF ni Excel); vuelve a
  configureOutput() con la ventana comun seleccionarsalida() (EXCEL / PDF /
  SCREEN), RIGHT MARGIN 142 y sin codigos de impresora matricial.
- BUG de la migracion: la consulta se armaba en selec CHAR(500); al cambiar
  rowid por ROW_NUMBER() el texto fijo paso a 463 caracteres y cualquier
  filtro de factura+suplidor o de fechas se cortaba (-4145). Ahora se arma
  en un STRING local.
Verificado contra la BD .250: factura 068-1AK05 de 22-770 (Debe = Haber =
1,253,019.91) y grupo 22 del 01/08/2026 al 15/08/2026 (4 facturas, total
3,834,979.72) cuadran con SQL; PDF y Excel generados. Build OK con gsmake.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 16:07:13 -04:00
Abel LópezandClaude Opus 5.5 65ad3fd68c cpprrp011 (Validacion Cuentas Afectadas en Facturacion): 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).
- RIGHT MARGIN 142: la linea llega a la columna 139 y con el ancho por
  defecto (132) se cortaba.
Verificado contra la BD .250 (grupo 22, 01/08/2026 al 15/08/2026, Afectar
Mayor = N): PDF y Excel generados; 4 facturas, valor 62,868.52, Debe = Haber
= 3,834,979.72 y totales por cuenta cuadran con SQL. Build OK con gsmake.
No probado: Afectar Mayor = S (graba en cgtb00004).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:43:25 -04:00
Abel LópezandClaude Opus 5.5 8ced6a5498 cpprrp004 (Estado de Cuenta): 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 quita defecto(): solo cargaba codigos de impresora matricial que, si
  el menu pasa una impresora, salian como basura en PDF/Excel.
Verificado contra la BD .250 (22-770, 01/08/2026 al 15/08/2026): PDF y Excel
generados; documentos y creditos (38,910.46) cuadran con SQL. Build OK con
gsmake. Sin cambios (igual que 3.20): 'Balance Al' sale .00 porque usa
cptb00001.tipo_doc_cp, vacia en todas las filas; hoja final vacia.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:34:10 -04:00
Abel LópezandClaude Opus 5.5 c8743d85c8 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>
2026-10-21 10:00:54 -04:00
4 changed files with 32 additions and 44 deletions
+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
+4 -9
View File
@@ -16,7 +16,6 @@ GLOBALS "cpprgb000.4gl"
DEFINE salir, salir2, salir1, salir3, tipo_venta CHAR(1)
DEFINE selec5, selec6 CHAR(1500)
DEFINE valor2,valor3 DECIMAL(18,2)
DEFINE p_reportfile STRING
DEFINE tot_gen1 RECORD
totald DECIMAL(10,2),
@@ -170,15 +169,11 @@ FUNCTION cpprrp004()
CONSTRUCT criterio ON a.cod_sp_sec FROM cod_sp_sec
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
-- defecto() solo cargaba codigos de la impresora matricial (comp_on, normal...);
-- en PDF/Excel salian como caracteres basura. La salida es por configureoutput().
-- 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.
LET p_reportfile = FGL_GETENV("FGLSPOOL"), "/cpprrp004_estcta.xml"
LET handler = om.XmlWriter.createFileWriter(p_reportfile)
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT report141 TO XML HANDLER handler
LET selec5 =
+4 -7
View File
@@ -18,7 +18,6 @@ GLOBALS
decide CHAR(1),
entrada CHAR(14),
detalle1 CHAR(30)
DEFINE p_reportfile STRING
DEFINE p_ref_chk CHAR(50)
DEFINE prt_mvto11 RECORD
@@ -123,11 +122,8 @@ display "DIAG DESPUES DE INPUT: [",entrada CLIPPED,"]"
RETURN
END IF
-- 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.
LET p_reportfile = FGL_GETENV("FGLSPOOL"), "/cpprrp011_cuentasft.xml"
LET handler = om.XmlWriter.createFileWriter(p_reportfile)
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT cuenta_ft TO XML HANDLER handler
DECLARE movto CURSOR FOR
@@ -214,7 +210,8 @@ display "DIAG DESPUES DE INPUT: [",entrada CLIPPED,"]"
negrillas_off CHAR(6),
hora CHAR(5)
OUTPUT
OUTPUT
RIGHT MARGIN 142
PAGE LENGTH 150
#ORDER BY x.cod_sp_sec,x.factura,x.cuenta_no,x.id
+14 -12
View File
@@ -10,7 +10,6 @@
GLOBALS
"cpprgb000.4gl"
DEFINE selec1 CHAR(500)
DEFINE p_reportfile STRING
DEFINE mvto RECORD
fecha_in DATE,
@@ -47,6 +46,9 @@ MAIN
END MAIN
FUNCTION cpprrp017()
-- La consulta se arma en STRING: con ROW_NUMBER() (en lugar de rowid) el texto
-- fijo ocupa 463 de los 500 caracteres de selec y el filtro se cortaba (-4145).
DEFINE l_selec STRING
CLEAR SCREEN
OPTIONS
FORM LINE 8
@@ -68,7 +70,7 @@ END MAIN
RETURN
END IF
LET selec =
LET l_selec =
"SELECT a.factura,a.cod_sp,a.cod_sp_sec,b.nom_sp,a.fecha,c.valor, ",
" a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc, ",
" a.debito,a.credito, ",
@@ -84,14 +86,13 @@ END MAIN
DISPLAY "<< Buscando Informacion .... Espere Por Favor. >>" AT 19,14
ATTRIBUTE(REVERSE,BOLD)
PREPARE comando FROM selec
PREPARE comando FROM l_selec
DECLARE movto CURSOR FOR comando
OPEN movto
-- La ruta original "C:\archivo" no es escribible sin privilegios de
-- administrador; se usa un archivo en FGLSPOOL en su lugar.
LET p_reportfile = FGL_GETENV("FGLSPOOL"), "/cpprrp017_valctas.txt"
START REPORT val_ctas TO p_reportfile
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT val_ctas TO XML HANDLER handler
DISPLAY "<< " AT 19,14
DISPLAY "<< Impresion En Proceso .... Espere Por Favor. >>" AT 19,14
@@ -149,7 +150,8 @@ END MAIN
negrillas_off CHAR(6),
hora CHAR(5)
OUTPUT
OUTPUT
RIGHT MARGIN 142
LEFT MARGIN 0
TOP MARGIN 1
BOTTOM MARGIN 4
@@ -157,10 +159,10 @@ END MAIN
ORDER BY x.cod_sp_sec,x.factura,x.cuenta_no,x.id
FORMAT
PAGE HEADER
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 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 hora = time
LET lj = (82 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1, comp_off,negrillas_on