Corregir ipprrp002 (Catalogo Productos Terminados) y registrar assets de ipprrp002_1/ipprrp052

- Rescatar de un backup viejo (PROYECTOS/bin) los .4rp que faltaban en el
  repo: ipprrp002.4rp, ipprrp002_1.4rp, ipprrp002_2.4rp e ipprrp052.4rp.
  Sin ellos el reporte nunca podia generarse (fgl_report_loadCurrentSettings
  fallaba y el programa hacia EXIT PROGRAM).
- Registrar en mbsERP.4pw los formularios ipfmrp002.4fd, ipfmrp002_1.4fd
  e ipfmrp052.4fd, y los .4rp anteriores: existian en el repo pero nunca
  se habian agregado al proyecto.
- ipprrp002.4gl: cambiar `cuenta` de SMALLINT a INTEGER, causaba
  "Value too large to fit in a SMALLINT" al generar el catalogo completo
  (43,796 productos sin filtro).
- ipprrp002.4gl: envolver el flujo de captura/reporte en un WHILE para
  permitir buscar de nuevo sin cerrar el programa, y para que Cancelar
  termine limpio (antes, al terminar de generar el reporte el programa
  quedaba colgado y habia que forzar el cierre).

Verificado con producto 29-668-1403-6952 (1 pagina, ciclo buscar-reporte-
cerrar limpio) y catalogo completo sin filtro (43,796 productos, 1093
paginas, generacion correcta).

Nota aparte (sin corregir): sin filtro de codigo el programa genera el
catalogo completo (43,796 productos) sin ninguna advertencia; evaluar si
deberia exigir un filtro minimo. Campo "Anio" en pantalla sin uso en el
codigo. ipprrp002_1 e ipprrp052 tienen sus assets registrados pero aun
no se han probado funcionalmente.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-22 12:58:06 -04:00
co-authored by Claude Sonnet 5
parent 7bda7659a6
commit c00ba4b920
10 changed files with 935 additions and 16 deletions
+14 -16
View File
@@ -12,7 +12,8 @@ GLOBALS "ipprgb000.4gl"
DEFINE tipo_info VARCHAR(30),
formato VARCHAR(3),
cuenta,cod_lista SMALLINT,
cuenta INTEGER,
cod_lista SMALLINT,
selec_cta STRING
MAIN
DEFER INTERRUPT
@@ -54,28 +55,27 @@ FUNCTION ipprrp002()
DISPLAY "ipprrp002" AT 4,3
DISPLAY "Catalogo Productos " AT 6,33
WHILE TRUE
LET progreso = 0
DISPLAY progreso TO progreso
INPUT BY NAME decide,tipo_info,formato,cod_lista
AFTER INPUT
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
EXIT WHILE
END IF
END INPUT
LET nombre_ant = "E"
CONSTRUCT criterio ON a.cod_cia,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec
FROM cod_cia,cod_n,cod_grupo,cod_tipo,cod_sec
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
EXIT WHILE
END IF
IF decide = "A" THEN
@@ -119,10 +119,8 @@ ELSE
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
LET int_flag = FALSE
RETURN
EXIT WHILE
END IF
@@ -145,7 +143,7 @@ END IF
EXIT PROGRAM
END IF
#LET handler= fgl_report_createProcessLevelDataFile("datos.xml")
#LET handler= fgl_report_createProcessLevelDataFile("datos.xml")
--run the report
IF handler IS NOT NULL THEN -- report engine was configured ok
@@ -197,8 +195,8 @@ IF handler IS NOT NULL THEN -- report engine was configured ok
ELSE
FINISH REPORT catalogo
END IF
END IF
END IF
END WHILE
END FUNCTION
REPORT catalogo(x)