ipprmt020: aviso de item repetido a prueba de valores nulos (el texto salia en blanco)

Arma el mensaje por partes, omitiendo las vacias, y usa ASCII 10 para los saltos.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-22 17:01:47 -04:00
co-authored by Claude Sonnet 5.5
parent 6dac9550c1
commit 4a8d31d9d0
+26 -17
View File
@@ -509,8 +509,7 @@ FUNCTION entradas()
IF descRepetido IS NOT NULL THEN IF descRepetido IS NOT NULL THEN
CALL fgl_winmessage( CALL fgl_winmessage(
"Item repetido", "Item repetido",
"No se puede repetir el item: "No se puede repetir el item:" || ASCII 10 || descRepetido CLIPPED,
" || descRepetido CLIPPED,
"stop") "stop")
CONTINUE DIALOG CONTINUE DIALOG
END IF END IF
@@ -795,23 +794,33 @@ END FUNCTION
# Aviso corto de item repetido (codigo y descripcion recortada). # Aviso corto de item repetido (codigo y descripcion recortada).
FUNCTION avisoRepetido(p) FUNCTION avisoRepetido(p)
DEFINE p INT DEFINE p INT
DEFINE texto, desc STRING DEFINE texto, descr, msj STRING
LET desc = arr_iptb58[p].descripcion CLIPPED LET descr = arr_iptb58[p].descripcion CLIPPED
IF desc.getLength() > 35 THEN IF descr IS NULL THEN
LET desc = desc.subString(1, 35) LET descr = ""
END IF END IF
LET texto = arr_iptb58[p].cod_n USING "&&&&", "-", IF descr.getLength() > 35 THEN
arr_iptb58[p].cod_grupo USING "&&&&", "-", LET descr = descr.subString(1, 35)
arr_iptb58[p].cod_tipo USING "&&&&", "-", END IF
arr_iptb58[p].cod_sec USING "&&&&&&" LET texto = ""
CALL fgl_winmessage( IF arr_iptb58[p].cod_n IS NOT NULL THEN
"Item repetido", LET texto = texto || (arr_iptb58[p].cod_n USING "&&&&")
"Este item ya esta en el detalle: END IF
" || texto || " IF arr_iptb58[p].cod_grupo IS NOT NULL THEN
" LET texto = texto || "-" || (arr_iptb58[p].cod_grupo USING "&&&&")
|| desc, END IF
"stop") IF arr_iptb58[p].cod_tipo IS NOT NULL THEN
LET texto = texto || "-" || (arr_iptb58[p].cod_tipo USING "&&&&")
END IF
IF arr_iptb58[p].cod_sec IS NOT NULL THEN
LET texto = texto || "-" || (arr_iptb58[p].cod_sec USING "&&&&&&")
END IF
LET msj = "Este item ya esta en el detalle:" || ASCII 10 || texto
IF descr.getLength() > 0 THEN
LET msj = msj || ASCII 10 || descr
END IF
CALL fgl_winmessage("Item repetido", msj, "stop")
END FUNCTION END FUNCTION
# Deja la fila p sin item para volver a escribirlo. # Deja la fila p sin item para volver a escribirlo.