From a37d0336b57020433fb50f7ea2366a3c2066e628 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20L=C3=B3pez?= Date: Fri, 28 Aug 2026 11:38:43 -0400 Subject: [PATCH 1/4] Agregar coprrp001 (Catalogo Suplidores) y corregir bugs en coprcs009 - Registrar coprrp001/cofmrp001 en mbsERP.4pw - Sustituir API fgl_report_* no disponible por XmlWriter en coprrp001.4gl - Ampliar cs_ordena.codigo a CHAR(20) en coprgb000.4gl - Corregir mascaras PICTURE de codigo en coprcs009.4gl - Ampliar campo c1 en cofmcs009.per para igualar el ancho de codigo - Corregir typo de base de datos en cofmwd016.per Co-Authored-By: Claude Sonnet 5 --- PROYECTO/codir/cofmcs009.per | 10 +++++----- PROYECTO/codir/cofmwd016.per | 2 +- PROYECTO/codir/coprcs009.4gl | 8 ++++---- PROYECTO/codir/coprgb000.4gl | 2 +- PROYECTO/codir/coprrp001.4gl | 18 +++++------------- PROYECTO/mbsERP.4pw | 16 ++++++++++++++++ 6 files changed, 32 insertions(+), 24 deletions(-) diff --git a/PROYECTO/codir/cofmcs009.per b/PROYECTO/codir/cofmcs009.per index 1074961..bfab385 100644 --- a/PROYECTO/codir/cofmcs009.per +++ b/PROYECTO/codir/cofmcs009.per @@ -1,4 +1,4 @@ -database marmotech +database smarmotech screen size 24 by 80 { @@ -9,10 +9,10 @@ screen size 24 by 80 \g-----------------------------------------------------------------------------\g Requi. Codigo Cantidad Precio Valor \g-----------------------------------------------------------------------------\g -[r1 ][c1 ][c2 ] [p1 ][v1 ] -[r1 ][c1 ][c2 ] [p1 ][v1 ] -[r1 ][c1 ][c2 ] [p1 ][v1 ] -[r1 ][c1 ][c2 ] [p1 ][v1 ] +[r1 ][c1 ][c2 ] [p1 ][v1 ] +[r1 ][c1 ][c2 ] [p1 ][v1 ] +[r1 ][c1 ][c2 ] [p1 ][v1 ] +[r1 ][c1 ][c2 ] [p1 ][v1 ] Descripcion [d1 ] } end diff --git a/PROYECTO/codir/cofmwd016.per b/PROYECTO/codir/cofmwd016.per index e1ecf05..7d9a03c 100644 --- a/PROYECTO/codir/cofmwd016.per +++ b/PROYECTO/codir/cofmwd016.per @@ -1,4 +1,4 @@ -DATABASE marmotech +DATABASE smarmotech screen { Ship To [st ] diff --git a/PROYECTO/codir/coprcs009.4gl b/PROYECTO/codir/coprcs009.4gl index 6b74395..165fdb5 100644 --- a/PROYECTO/codir/coprcs009.4gl +++ b/PROYECTO/codir/coprcs009.4gl @@ -243,10 +243,10 @@ LET idx = 1 FOREACH buscate INTO detalle1.* LET cs_ordena[idx].num_req = detalle1.num_req - LET cs_ordena[idx].codigo = detalle1.cod_n using "&","-", - detalle1.cod_grupo using "&","-", - detalle1.cod_tipo using "&&","-", - detalle1.cod_sec using "&&&" + LET cs_ordena[idx].codigo = detalle1.cod_n using "##","-", + detalle1.cod_grupo using "####","-", + detalle1.cod_tipo using "####","-", + detalle1.cod_sec using "#####" LET cs_ordena[idx].cantidad = detalle1.cantidad using "##########.##" LET cs_ordena[idx].precio = detalle1.precio using "##########.##" diff --git a/PROYECTO/codir/coprgb000.4gl b/PROYECTO/codir/coprgb000.4gl index e6594b9..0ac0822 100644 --- a/PROYECTO/codir/coprgb000.4gl +++ b/PROYECTO/codir/coprgb000.4gl @@ -27,7 +27,7 @@ GLOBALS DEFINE cs_ordena ARRAY [20] OF RECORD num_req INTEGER, - codigo CHAR(10), + codigo CHAR(20), cantidad CHAR(14), precio CHAR(13), valor CHAR(14) diff --git a/PROYECTO/codir/coprrp001.4gl b/PROYECTO/codir/coprrp001.4gl index b502198..6585f30 100644 --- a/PROYECTO/codir/coprrp001.4gl +++ b/PROYECTO/codir/coprrp001.4gl @@ -144,19 +144,11 @@ FUNCTION coprrp001() archivo, copia - LET r_filename = 'coprrp001.4rp' - CALL seleccionarSalida() RETURNING r_output - - LET preview = 1 - - IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file - - CALL fgl_report_selectDevice(r_output) -- changing default - CALL fgl_report_selectPreview(preview) -- changing default - - - LET handler = fgl_report_commitCurrentSettings() -- commit changes - 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 usar la plantilla .4rp con vista previa. + LET r_filename = FGL_GETENV("FGLSPOOL"), "/coprrp001_catalogo.xml" + LET handler = om.XmlWriter.createFileWriter(r_filename) START REPORT catalogo2 TO XML HANDLER handler #### Enviando la informacion al registro del reporte diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index 17cefc9..23a8f0c 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -191,6 +191,10 @@ + + + + @@ -220,6 +224,18 @@ + + + + + + + + + + + + From 91eeef199e641e9f204e2ea7e27e44274fad6213 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20L=C3=B3pez?= Date: Fri, 28 Aug 2026 16:06:50 -0400 Subject: [PATCH 2/4] Corregir campo bodega oculto en busqueda de coprmt009 El CONSTRUCT del criterio de busqueda y un DISPLAY BY NAME en escoge() referenciaban cotb00014.bodega/ordenes.bodega, que no existe como campo visible en cofmmt009 (combo oculto, ya excluido en el INPUT BY NAME de copcad009). Causaba "FORMS statement error -1102: Field (bodega) not found in form" al usar Buscar Ordenes de Compras. Co-Authored-By: Claude Sonnet 5 --- PROYECTO/codir/coprmt009.4gl | 12 +++++++----- PROYECTO/mbsERP.4pw | 4 +++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/PROYECTO/codir/coprmt009.4gl b/PROYECTO/codir/coprmt009.4gl index ff400f9..68d7db2 100644 --- a/PROYECTO/codir/coprmt009.4gl +++ b/PROYECTO/codir/coprmt009.4gl @@ -1037,6 +1037,9 @@ FUNCTION copcmf009() CALL lugarentregas() # Aqui se prepara para la captura del criterio de seleccion + -- cotb00014.bodega excluido: es el mismo combo oculto (tabIndex=-1) en + -- cofmmt009 que ya se excluye en copcad009(); el CONSTRUCT fallaba con + -- "Field (bodega) not found in form". CONSTRUCT criterio ON cotb00014.num_oc, cotb00014.tipo, @@ -1049,8 +1052,7 @@ FUNCTION copcmf009() cotb00014.fech_enviada, cotb00014.pago, cotb00014.fech_pago, - cotb00014.cierre, - cotb00014.bodega + cotb00014.cierre FROM num_oc, tipo, fech_oc, @@ -1062,8 +1064,7 @@ FUNCTION copcmf009() fech_enviada, pago, fech_pago, - cierre, - bodega + cierre IF int_flag THEN LET numero_msg = 2 @@ -2360,7 +2361,8 @@ FUNCTION escoge() ordenes.pago, ordenes.fech_pago - DISPLAY BY NAME ordenes.bodega + -- ordenes.bodega excluido (ver nota en copcad009()): no esta en el + -- formulario, DISPLAY BY NAME fallaba con "Field (bodega) not found in form". IF ordenes.cod_sp = 22 OR ordenes.cod_sp = 24 THEN LET flete1.total_1 = diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index 23a8f0c..28e03de 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -200,9 +200,10 @@ - + + @@ -235,6 +236,7 @@ + From 3df53ba483bfa34d6aeb0adcb073acfc458c1b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20L=C3=B3pez?= Date: Fri, 28 Aug 2026 16:48:04 -0400 Subject: [PATCH 3/4] Agregar coprrp004 (Cronologico de Ordenes) al proyecto - Registrar coprrp004 (usando cofmrp004.4fd, el .per carece del campo estado) en mbsERP.4pw - Sustituir seleccionarsalida()/configureoutput() (no definidas en este programa, misma API fgl_report_* no disponible) por om.XmlWriter.createFileWriter() hacia FGLSPOOL Co-Authored-By: Claude Sonnet 5 --- PROYECTO/codir/coprrp004.4gl | 13 ++++++++++--- PROYECTO/mbsERP.4pw | 7 ++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/PROYECTO/codir/coprrp004.4gl b/PROYECTO/codir/coprrp004.4gl index eeda8bf..f90f373 100644 --- a/PROYECTO/codir/coprrp004.4gl +++ b/PROYECTO/codir/coprrp004.4gl @@ -35,6 +35,8 @@ FUNCTION coprrp004() monto DECIMAL(12,2) END RECORD + DEFINE r_filename STRING + #WHENEVER ERROR CONTINUE OPTIONS @@ -115,9 +117,14 @@ END IF # doce,normal,archivo,copia - CALL seleccionarsalida() RETURNING salida - CALL configureoutput(salida) RETURNING HANDLER - + -- 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) + START REPORT cronologico TO XML HANDLER handler diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index 28e03de..079fa41 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -195,6 +195,7 @@ + @@ -233,11 +234,15 @@ - + + + + + From 052b80de34c3bc1a92c57a098eff5b3c9a615af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20L=C3=B3pez?= Date: Fri, 28 Aug 2026 16:56:29 -0400 Subject: [PATCH 4/4] Configurar FGLSPOOL en coprmt009 para que Imprime genere el reporte El Application node de coprmt009 no tenia la variable de entorno FGLSPOOL configurada (a diferencia de coprrp001/coprrp004/coprmt025). FGL_GETENV("FGLSPOOL") devolvia NULL, el handler de XmlWriter en orden() (coprorden.4gl) nunca se creaba, y "Imprime" fallaba silenciosamente sin generar el reporte ni mostrar error. Co-Authored-By: Claude Sonnet 5 --- PROYECTO/mbsERP.4pw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index 51f692e..cea8144 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -200,7 +200,7 @@ - +