Compare commits

..
7 Commits
Author SHA1 Message Date
Abel López 6a72dad748 Merge branch 'main' of https://git.fulldetord.com/jsoto/mbs 2026-10-26 16:44:23 -04:00
Abel LópezandClaude Opus 5.5 afc4fd5f04 cpprrp001: exportacion a PDF/Excel con el cuadro de formato
- defecto()/START REPORT TO archivo reemplazado por
  seleccionarsalida()/configureoutput() (salida XML HANDLER).
- Se quita RUN imprime (era para la impresora matricial).
- Codigos de impresora en NULL (salian como basura en PDF/Excel).
- RIGHT MARGIN 138 para que no se recorten las columnas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 16:43:22 -04:00
Abel LópezandClaude Opus 5.5 4762e8c10d coprrp007: exportacion a Excel/PDF con el cuadro de formato
- La salida escribia un XML directo en FGLSPOOL; se vuelve a
  seleccionarsalida()/configureoutput() como en la version 3.20.
- RIGHT MARGIN 148 para que no se recorten las columnas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 16:42:33 -04:00
Abel LópezandClaude Opus 5.5 316496520b coprrp019: exportacion a PDF/Excel sin codigos de impresora
- Codigos de impresora matricial en NULL (salian como basura en PDF/Excel).
- PRINT antes de la raya de cierre: la ultima linea de detalle termina en ";"
  y la raya se pegaba a ella, saliendose de la pagina.
- nom_pt CLIPPED para que Flete/Gastos queden en sus columnas.
- RIGHT MARGIN 165 (el reporte usa hasta la columna 163).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 13:37:23 -04:00
Abel LópezandClaude Opus 5.5 f48618a23c coprrp004 (Cronologico de Ordenes): 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 quitan dos ESC P (ASCII 27, ASCII 80) de impresora matricial que el
  reporte imprimia directo y salian como basura en PDF/Excel.
Verificado contra la BD .250 (tipo 01, 01/08/2026 al 15/08/2026): PDF y Excel
generados; 4 ordenes, monto = productos + flete + otros gastos, total
1,515,154.88 = SQL. Build OK con gsmake.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 11:36:31 -04:00
Abel LópezandClaude Opus 5.5 1d6a2556e5 coprrp001 (Catalogo de Suplidores): exportacion a PDF/Excel/pantalla
- La salida escribia un XML crudo en FGLSPOOL (no era PDF ni Excel); se
  restaura el codigo de 3.20: ventana seleccionarSalida() (EXCEL / PDF /
  SCREEN) con el diseno bin/coprrp001.4rp (fgl_report_loadCurrentSettings).
Verificado contra la BD .250 (22-1 a 22-10, orden numerico): PDF y Excel
generados; 9 suplidores = SQL (22-7 anulado). Build OK con gsmake.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 11:31:33 -04:00
Abel LópezandClaude Opus 5.5 5841de1da3 Repo: PROYECTO/bin deja de versionarse, salvo los disenos .4rp
- .gitignore: se ignora todo PROYECTO/bin (compilados, imagenes, estilos,
  xml/js de ejecucion, ejecutables, certificados) excepto *.4rp, que son
  fuentes registradas en mbsERP.4pw. Reemplaza las reglas anteriores de
  bin/IMAGENES y bin/*.TXT.
- Se quitan del repositorio (git rm --cached) los 459 archivos de bin que no
  son .4rp; siguen en el disco de cada PC. Se conservan los 205 .4rp.
Nota: bin/cert/*.pem quedan en el historial de git; si son llaves reales
deben cambiarse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 09:58:12 -04:00
6 changed files with 46 additions and 65 deletions
+5 -12
View File
@@ -34,7 +34,6 @@ mydatabase.db
# ── Logs de ejecución ──
*.log
*.err
PROYECTO/bin/*.TXT
# ── Spool de reportes (salida temporal de impresión) ──
PROYECTO/spool/
@@ -53,17 +52,11 @@ desktop.ini
# -- Paquetes GAR: se generan en el build (gsmake -t mbs mbsERP.4pw), no van al repo --
*.gar
# -- bin/IMAGENES: solo las imagenes que usan los programas/reportes --
# (lo demas son fotos, temporales y archivos subidos en ejecucion, p.ej. comprobantes)
PROYECTO/bin/IMAGENES/**
!PROYECTO/bin/IMAGENES/Logo.png
!PROYECTO/bin/IMAGENES/Logo_DCM.png
!PROYECTO/bin/IMAGENES/genero_logo.png
!PROYECTO/bin/IMAGENES/LOGO.JPG
!PROYECTO/bin/IMAGENES/logo1.png
!PROYECTO/bin/IMAGENES/EMPLEADOS/
PROYECTO/bin/IMAGENES/EMPLEADOS/*
!PROYECTO/bin/IMAGENES/EMPLEADOS/.gitkeep
# -- PROYECTO/bin: no se versiona (compilados, imagenes, ejecutables, datos de ejecucion) --
# salvo los disenos de reporte .4rp, que son fuentes registradas en mbsERP.4pw.
PROYECTO/bin/**
!PROYECTO/bin/**/
!PROYECTO/bin/**/*.4rp
# -- Llaves y certificados: NUNCA en el repo (se entregan aparte a quien los necesite) --
*.jks
+7 -5
View File
@@ -144,11 +144,13 @@ FUNCTION coprrp001()
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 usar la plantilla .4rp con vista previa.
LET r_filename = FGL_GETENV("FGLSPOOL"), "/coprrp001_catalogo.xml"
LET handler = om.XmlWriter.createFileWriter(r_filename)
LET r_filename = 'coprrp001.4rp'
CALL seleccionarSalida() RETURNING r_output
IF fgl_report_loadCurrentSettings(r_filename) THEN
CALL fgl_report_selectDevice(r_output)
CALL fgl_report_selectPreview(TRUE)
LET handler = fgl_report_commitCurrentSettings()
END IF
START REPORT catalogo2 TO XML HANDLER handler
#### Enviando la informacion al registro del reporte
+4 -9
View File
@@ -117,13 +117,8 @@ END IF
# doce,normal,archivo,copia
-- La API de configuracion de reportes (fgl_report_*) no esta
-- disponible en este FGL; seleccionarsalida()/configureoutput()
-- tampoco estan definidas en este programa. Se escribe el XML
-- directo a un archivo en FGLSPOOL en lugar de usar la plantilla
-- .4rp con vista previa.
LET r_filename = FGL_GETENV("FGLSPOOL"), "/coprrp004_cronologico.xml"
LET handler = om.XmlWriter.createFileWriter(r_filename)
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT cronologico TO XML HANDLER handler
@@ -194,7 +189,7 @@ REPORT cronologico(x)
LET bandera1 = "N"
LET hora = time
LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 3, ASCII 27, ASCII 80,comp_off, negrillas_on
PRINT COLUMN 3, comp_off, negrillas_on # sin ESC P (codigo de impresora matricial)
PRINT COLUMN 1, "coprrp004",
COLUMN l, p_companias.nombre CLIPPED,
COLUMN 73, "Pag. ",pageno using "###"
@@ -259,7 +254,7 @@ REPORT cronologico(x)
SKIP 1 LINES
ON LAST ROW
PRINT COLUMN 2, "Total Registros Impresos = ", count(*) USING "<<<<"
PRINT COLUMN 2, ASCII 27, ASCII 80
PRINT COLUMN 2, "" # sin ESC P (codigo de impresora matricial)
PRINT COLUMN 1, "==================================================",
"============================="
END REPORT
+3 -7
View File
@@ -164,13 +164,8 @@ LET idx = 1
END IF
IF idx = 1 THEN
-- La API de configuracion de reportes (fgl_report_*) no esta
-- disponible en este FGL; seleccionarsalida()/configureoutput()
-- tampoco estan definidas en este programa. Se escribe el XML
-- directo a un archivo en FGLSPOOL en lugar de usar la plantilla
-- .4rp con vista previa.
LET r_filename = FGL_GETENV("FGLSPOOL"), "/coprrp007_organiza.xml"
LET handler = om.XmlWriter.createFileWriter(r_filename)
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT organiza TO XML HANDLER handler
END IF
@@ -221,6 +216,7 @@ LET idx = 1
DEFINE hora CHAR(5)
OUTPUT
RIGHT MARGIN 148
TOP MARGIN 0
LEFT MARGIN 0
+13 -16
View File
@@ -105,13 +105,8 @@ FUNCTION coprrp019()
DECLARE ent_curs SCROLL CURSOR FOR busca_entrega
OPEN ent_curs
-- La API de configuracion de reportes (fgl_report_*) no esta
-- disponible en este FGL; seleccionarsalida()/configureoutput()
-- tampoco estan definidas en este programa. Se escribe el XML
-- directo a un archivo en FGLSPOOL en lugar de usar la plantilla
-- .4rp con vista previa.
LET r_filename = FGL_GETENV("FGLSPOOL"), "/coprrp019_documento.xml"
LET handler = om.XmlWriter.createFileWriter(r_filename)
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT documento TO XML HANDLER handler
@@ -249,6 +244,7 @@ FUNCTION coprrp019()
DEFINE valor DECIMAL(12,2)
DEFINE p_base DECIMAL(10,2)
OUTPUT
RIGHT MARGIN 165
TOP MARGIN 0
LEFT MARGIN 0
BOTTOM MARGIN 2
@@ -256,15 +252,15 @@ FUNCTION coprrp019()
ORDER BY x.tipo,x.num_oc,z.codigo
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 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 imp = "T"
LET doce = ASCII 27, ASCII 77
LET normal = ASCII 27, ASCII 80
LET doce = NULL -- sin codigos de impresora (salida PDF/Excel)
LET normal = NULL -- sin codigos de impresora (salida PDF/Excel)
LET hora = time
LET l = (162 - LENGTH(p_companias.nombre CLIPPED))/2
@@ -357,7 +353,7 @@ FUNCTION coprrp019()
PRINT COLUMN 2,negrillas_on,
"Puerto: ",negrillas_off,
" ","(",x.cod_pt clipped,")"," ",x.nom_pt,
" ","(",x.cod_pt clipped,")"," ",x.nom_pt CLIPPED,
COLUMN 48, negrillas_on,"Flete: ",negrillas_off,
x.c_flete using "##,###,###.##",
COLUMN 80, negrillas_on,"Gastos: ",negrillas_off,
@@ -391,6 +387,7 @@ FUNCTION coprrp019()
COLUMN 101, valor using "##,###,###.##";
AFTER GROUP OF x.num_oc
PRINT -- cierra la ultima linea de detalle (termina en ";")
PRINT COLUMN 1, "__________________________________________________",
"__________________________________________________",
"__________________________________________________",
+14 -16
View File
@@ -94,12 +94,9 @@ END MAIN
RETURN
END IF
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
doble_on,doble_off,comp_on,comp_off,
doce,normal,archivo,copia
START REPORT impreso_mvto TO archivo
CALL seleccionarsalida() RETURNING r_output
CALL configureoutput(r_output) RETURNING handler
START REPORT impreso_mvto TO XML HANDLER handler
LET selec = "SELECT a.tipo_doc,a.num_doc,a.cod_sp,a.cod_sp_sec, ",
"b.nom_sp,a.fecha_orig,a.aplica_a,a.detalle,a.valor ",
@@ -145,7 +142,7 @@ END MAIN
OUTPUT TO REPORT impreso_mvto(prt_mvto.*,mvto.fecha_in,mvto.fecha_fi)
END WHILE
FINISH REPORT impreso_mvto
RUN imprime
-- RUN imprime: era para la impresora matricial; ahora sale por PDF/Excel/pantalla
END FUNCTION
REPORT impreso_mvto(x,fecha1,fecha2)
@@ -174,7 +171,8 @@ END MAIN
negrillas_off CHAR(6),
hora CHAR(5)
OUTPUT
OUTPUT
RIGHT MARGIN 138
LEFT MARGIN 0
TOP MARGIN 1
BOTTOM MARGIN 4
@@ -182,14 +180,14 @@ END MAIN
ORDER BY x.num_doc
FORMAT
PAGE HEADER
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET doble_on = ASCII 14
LET doble_off = ASCII 20
LET comprimido_on = ASCII 15
LET comprimido_off = ASCII 18
LET comprimido_12_on = ASCII 27, ASCII 77
LET comprimido_12_off = ASCII 27, ASCII 80
LET negrillas_on = NULL -- sin codigos de impresora (salida PDF/Excel)
LET negrillas_off = NULL -- sin codigos de impresora (salida PDF/Excel)
LET doble_on = NULL -- sin codigos de impresora (salida PDF/Excel)
LET doble_off = NULL -- sin codigos de impresora (salida PDF/Excel)
LET comprimido_on = NULL -- sin codigos de impresora (salida PDF/Excel)
LET comprimido_off = NULL -- sin codigos de impresora (salida PDF/Excel)
LET comprimido_12_on = NULL -- sin codigos de impresora (salida PDF/Excel)
LET comprimido_12_off = NULL -- sin codigos de impresora (salida PDF/Excel)
LET hora = time
LET lj = (131 - LENGTH(p_companias.nombre CLIPPED))/2
PRINT COLUMN 1,comprimido_on,negrillas_on