From d4eb103454319fc12ae9ea9c508b7622045651b0 Mon Sep 17 00:00:00 2001 From: Jeilyn Peguero Date: Mon, 14 Sep 2026 15:03:03 -0400 Subject: [PATCH] Registrar y corregir ipprcs002 (Consulta Maestra de Productos) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Registrar formulario ipfmcs002.per (faltaba) - Extraer la funcion pantalla() de ipmn00000.4gl (programa de menu con su propio MAIN) a un archivo compartido nuevo (otrodir/pantalla_ip.4gl) para poder reutilizarla sin conflicto de MAIN duplicado - Bug corregido: el programa nunca tenia CONNECT TO, dependia de heredar una conexion de otro programa que nunca lo invoca en este contexto de prueba - se agrego ARG_VAL + CONNECT TO "smarmotech" como en el resto de los programas - Bug corregido: el arreglo global "prod" (usado solo por este programa) era de tamaƱo fijo ARRAY[200], causaba error -1326 con mas de 200 resultados - convertido a DYNAMIC ARRAY, y se agrego prod.clear() antes de repoblarlo - Agregado titulo a la ventana (usaba "screen size" clasico sin TITLE) Pendiente de decision de Johnny: la pantalla no exige ningun filtro de busqueda y hace una consulta SQL adicional por cada producto encontrado (calculo de existencia) - sin filtro intenta traer todo el catalogo y tarda mas de una hora antes de fallar. Se probo exitosamente usando siempre un codigo de producto completo (clase-grupo-tipo-secuencia). Co-Authored-By: Claude Sonnet 5 --- PROYECTO/ipdir/ipfmcs002.per | 2 +- PROYECTO/ipdir/ipprcs002.4gl | 7 ++++++- PROYECTO/ipdir/ipprgb000.4gl | 2 +- PROYECTO/mbsERP.4pw | 2 ++ PROYECTO/otrodir/pantalla_ip.4gl | 18 ++++++++++++++++++ 5 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 PROYECTO/otrodir/pantalla_ip.4gl diff --git a/PROYECTO/ipdir/ipfmcs002.per b/PROYECTO/ipdir/ipfmcs002.per index 7c65b3e..753bde9 100644 --- a/PROYECTO/ipdir/ipfmcs002.per +++ b/PROYECTO/ipdir/ipfmcs002.per @@ -1,5 +1,5 @@ database smarmotech -screen size 24 by 80 +screen size 24 by 80 title "Consulta Maestra de Productos" { Producto Terminado [a ]-[b ]-[c ]-[d ] [a1 ] diff --git a/PROYECTO/ipdir/ipprcs002.4gl b/PROYECTO/ipdir/ipprcs002.4gl index e00e828..ee0257f 100644 --- a/PROYECTO/ipdir/ipprcs002.4gl +++ b/PROYECTO/ipdir/ipprcs002.4gl @@ -9,8 +9,12 @@ DIRECTOR PROYECTO : JOSE ALFREDO PAULINO ALEJO } GLOBALS "ipprgb000.4gl" -MAIN +MAIN DEFER INTERRUPT + CALL ARG_VAL(1) RETURNING usuarios + CALL ARG_VAL(2) RETURNING clave + + CONNECT TO "smarmotech" USER usuarios USING clave SELECT * INTO p_companias.* FROM companias CALL ipprcs002() END MAIN @@ -55,6 +59,7 @@ LET SELEC = ## Busca los registros con la condicion dada y verifica si el producto terminado ## existe en el catalogo de bienes y servicios. + CALL prod.clear() LET idx = 1 FOREACH accion INTO prod[idx].*,descrip1 IF int_flag THEN diff --git a/PROYECTO/ipdir/ipprgb000.4gl b/PROYECTO/ipdir/ipprgb000.4gl index 34a8d37..450a857 100644 --- a/PROYECTO/ipdir/ipprgb000.4gl +++ b/PROYECTO/ipdir/ipprgb000.4gl @@ -328,7 +328,7 @@ DEFINE prod11 DYNAMIC ARRAY OF RECORD fecha_ordenada DATE END RECORD -DEFINE prod ARRAY[200] OF RECORD +DEFINE prod DYNAMIC ARRAY OF RECORD cod_n1 SMALLINT, cod_grupo1 SMALLINT, cod_tipo1 SMALLINT, diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index 75baef8..63a1a2c 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -516,6 +516,7 @@ + @@ -530,6 +531,7 @@ + diff --git a/PROYECTO/otrodir/pantalla_ip.4gl b/PROYECTO/otrodir/pantalla_ip.4gl new file mode 100644 index 0000000..d749e14 --- /dev/null +++ b/PROYECTO/otrodir/pantalla_ip.4gl @@ -0,0 +1,18 @@ +GLOBALS "../ipdir/ipprgb000.4gl" + +FUNCTION pantalla() + DEFINE fecha CHAR(8), + hora char(5), + l SMALLINT + SELECT UNIQUE a.* INTO p_companias.* FROM companias a + LET fecha = today USING "dd/mm/yy" + LET hora = time + LET l = (80 - LENGTH(p_companias.nombre CLIPPED))/2 + DISPLAY p_companias.nombre CLIPPED AT 4,l ATTRIBUTE (REVERSE,BLUE) + DISPLAY fecha AT 4,70 ATTRIBUTE (BLUE) + DISPLAY "Sistema Inventario de Productos" AT 5,25 + DISPLAY hora AT 6,73 ATTRIBUTE(BLUE) + + CALL fgl_drawbox(5,79,3,1) + CALL fgl_drawbox(1,79,22,1) +END FUNCTION