El programa ignora algunas sentencias <NEXT FIELD>
Publicado por Sahib Salazar (4 intervenciones) el 28/11/2014 22:55:42
Hola.
Tengo un programa 4gl que hice en Informix 7.30.UC6 en el cual hay un formulario al que debo validarle los campos. Por ello, hay un <AFTER FIELD> para cada campo. Si los datos ingresados en un campo no son válidos, debe permanecer el cursor allí y para lograrlo utilizo la sentencia <NEXT FIELD>. El programa funciona perfectamente.
La compañía actualizó los servidores y por ende, la versión del Informix a la 7.51.FC1. Ese mismo programa (luego de compilar todo, por supuesto), solo tiene en cuenta el primer <NEXT FIELD> encontrado, los demás son ignorados literalmente.... como si no estuvieran.
Extraigo una porción del programa:
A alguien le ha sucedido?
No entiendo el porqué. Agradezco la ayuda.
Tengo un programa 4gl que hice en Informix 7.30.UC6 en el cual hay un formulario al que debo validarle los campos. Por ello, hay un <AFTER FIELD> para cada campo. Si los datos ingresados en un campo no son válidos, debe permanecer el cursor allí y para lograrlo utilizo la sentencia <NEXT FIELD>. El programa funciona perfectamente.
La compañía actualizó los servidores y por ende, la versión del Informix a la 7.51.FC1. Ese mismo programa (luego de compilar todo, por supuesto), solo tiene en cuenta el primer <NEXT FIELD> encontrado, los demás son ignorados literalmente.... como si no estuvieran.
Extraigo una porción del programa:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
AFTER FIELD codigou
if val_coduser(s_cambio_clave.codigou) then # Si existe el código del usuario
let e_usuario = 's'
let s_cambio_clave.nombre = pusuarios.nom_user
message ""
display by name s_cambio_clave.nombre # Muestro el nombre del usuario
else # Si no existe el código del usuario
let e_usuario = 'n'
let s_cambio_clave.nombre = ""
message "El usuario <", s_cambio_clave.codigou clipped,
"> no existe." attribute(yellow)
# Volver al campo
NEXT FIELD codigou -------------------------------> Esta sentencia si la tiene en cuenta
end if
AFTER FIELD clave_a
if s_cambio_clave.clave_a is null or
s_cambio_clave.clave_a = "" then
message "Campo nulo o vacio..." attribute(yellow)
sleep 2
message ""
NEXT FIELD clave_a -------------------------------> Esta sentencia es ignorada
else
if s_cambio_clave.clave_a <> pusuarios.cod_clav then
message "Clave incorrecta." attribute(red)
sleep 2
message ""
let s_cambio_clave.clave_a = ""
NEXT FIELD clave_a -----------------------------> Esta sentencia es ignorada... y las que siguen
end if
end if
A alguien le ha sucedido?
No entiendo el porqué. Agradezco la ayuda.
Valora esta pregunta
0