Posible bug en función isempty() y comentario drag&drop


([N4] Fran) #1

Buenas tardes:

 

Sigo haciendo pruebas y estoy observando un comportamiento extraño de la función isempty(). Si la utilizo con un campo alfabético, funciona bien.

Pero si la uso para ver si un campo numérico, enlazado a maestro, está vacío o no siempre devuelve que NO.

 

En la imagen que adjunto, ambos mensajes devuelven 0. Es decir, el cliente es 0 y el campo vacío también es 0 (cuando debería ser 1, ya que no hay cliente asignado).

Este proceso lo uso en un drop de una rejilla, pero lo he repetido en otro proceso disparado desde un botón de un formulario y observo el mismo comportamiento.

 

Por otra lado, como también se puede ver en la imagen, al posicionar el cursor en el subproceso de la instrucción que procesa la ficha drop el proceso no muestra la tabla a la que pertenece la ficha.

Como consecuencia, al utilizar el asistente de fórmulas para capturar el campo, no se presenta la lista de campos.

Si embargo, al escribirlo manualmente si funciona aparentemente bien.

 

Un saludo,

 

Fran.

[attachment=2309,233]


([N4] fgutierrez.velneo) #2

De momento puedes comprobar en los numéricos si está vacío simplemente sin hacer uso de isEmpty(), comprobando que sea distinto de cero (!#CAMPO). Por el momento, la función isEmpty() devuelve 1 si lo que pasamos como parámetro no es nulo. Es decir, si le pasamos 0 considera que no es nulo y devuelve uno. Este es un funcionamiento heredado de las librerías QT que usamos como base, y estamos valorando/deliberando si modificamos ese funcionamiento o dejamos que continúe de esa forma.

 

En cuanto al cálculo del origen de la ficha drop, como comentas ahora no se realiza y has de incluir en la fórmula de forma manual los campos. Lo normal será simplemente recuperar el código para luego trabajar con la ficha, recuperándola con ayuda de cargar lista. Para la próxima versión verás que ya se calcula, es algo que ya tenemos corregido. El origen de esa ficha se calculará en base a la salida del proceso de drop, que ha de coincidir con el de la rejilla.

Un saludo.