Corregir ipprmt017: columnas sin titulo, toolbar incompleto y checkbox Elimina

- Agregar titulo a columnas Unidad y Moneda, ocultar campo interno idrow
- Agregar a ToolBar1 los botones Busca Informacion, Limpia Screen,
  Conversion Moneda y Cancela operacion (estaban definidos como
  ActionDefault pero nunca agregados a la barra, por eso no se veian)
- Capturar el idrow generado al insertar un precio nuevo (antes quedaba
  NULL en memoria, rompiendo el eliminar de esa misma fila en la misma
  sesion)
- Corregir el checkbox "Elimina": el clic con mouse marcaba la casilla
  visualmente pero no actualizaba el valor real hasta perder el foco con
  Tab (bug de renderizado de GST). Se cambio el trigger de AFTER FIELD a
  ON CHANGE, que si sincroniza el valor de inmediato con clic de mouse

Pendiente: falta la prueba final completa del flujo eliminar en
ipprmt017 (se hizo hasta confirmar que ON CHANGE captura el valor
correctamente, falta probar el guardado + verificacion en BD)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-11 17:00:17 -04:00
co-authored by Claude Sonnet 5
parent 866778edfe
commit bb9d9a05a1
2 changed files with 13 additions and 4 deletions
+4
View File
@@ -36,6 +36,10 @@
</ActionDefaultList>
<ToolBar name="ToolBar1">
<ToolBarItem comment="ADMINISTRACION PRECIOS" image="money" name="nuevo" text="Precio"/>
<ToolBarItem image="find" name="buscalista" text="Busca Informacion"/>
<ToolBarItem image="clear" name="limpia" text="Limpia Screen"/>
<ToolBarItem image="dollar" name="conversion" text="Conversion Moneda"/>
<ToolBarItem image="stop" name="cancel" text="Cancela operacion"/>
<ToolBarSeparator name="ToolBarSeparator1"/>
<ToolBarItem image="quit" name="salir" text="Salir"/>
</ToolBar>
+9 -4
View File
@@ -87,7 +87,7 @@ FUNCTION ippcad017()
# WHENEVER ERROR CONTINUE
DEFINE noreg INT
DIALOG ATTRIBUTES (UNBUFFERED, FIELD ORDER FORM)
CONSTRUCT criterio ON iptb00002.cod_n,iptb00002.cod_grupo,iptb00002.cod_tipo,iptb00002.cod_sec,
iptb00002.descrip_esp,vetb00025.cod_lista,vetb00025.ventas
@@ -206,6 +206,9 @@ FUNCTION ippcad017()
LET listproduct[curr1].codlista = 1
DISPLAY listproduct[curr1].codlista TO lproducto2[scr_l].codlista
END IF
ON CHANGE elimina
LET curr1 = arr_curr()
LET listproduct[curr1].elimina = listproduct[curr1].elimina
AFTER FIELD seccliente
LET curr1 = arr_curr()
LET scr_l = scr_line()
@@ -353,7 +356,11 @@ FUNCTION ippcad017()
listproduct[idx].codtipo,listproduct[idx].codsec,listproduct[idx].tipocliente,
listproduct[idx].seccliente,listproduct[idx].pprecio,usuarios,GETDATE(),
listproduct[idx].codlista)
LET selec = "SELECT @@IDENTITY"
PREPARE getIdrow FROM selec
EXECUTE getIdrow INTO listproduct[idx].idrow
IF STATUS < 0 THEN
ROLLBACK WORK
CALL fgl_winmessage("Error","NO PUDE ACTUALIZAR INFORMACION","STOP")
@@ -386,8 +393,6 @@ FUNCTION ippcad017()
cod_sec = listproduct[idx].codsec
END IF
END IF
# CALL fgl_winmessage("o",listproduct[idx].elimina,"info")
DISPLAY "emilina ",listproduct[idx].elimina
IF listproduct[idx].elimina = "S" THEN
# CALL fgl_winmessage("o",listproduct[idx].idrow,"info")
INSERT INTO vetb00091 (cod_lista,cod_n,cod_Grupo,cod_tipo,