Comportamiento raro "Quitar ficha de la lista"


([N1] aztecmexico) #1

Buen día a todos,

Primero ver la posibilidad de quizás y si así lo juzga conveniente Velneo, la inclusión de un nuevo comando que sería algo así como “Quitar fichas de la lista” o “Limpiar la lista en curso”.

Ahora el porqué:

En un formulario tengo un campo de edición enlazado a maestro, al perder el foco dicho campo dispara una búsqueda de una tabla no relacionada con la de origen del formulario, el resultado lo muestro en la rejilla correspondiente en el formulario.

Si antes de continuar con cualesquiera otra acción, el usuario vuelve a editar el contenido del campo de edición y en consecuencia dispara de nuevo la búsqueda, para ejemplificar seleccionó un registro de maestro cuya resultado de la búsqueda es 0 registros, la rejilla donde se muestran los datos sigue con los datos de la búsqueda original.

Aqui comienza el problema, deseo que por cada búsqueda la rejilla se limpie completamente, toda vez que los resultados pueden variar.

Busqué en los comandos actuales, y lo único que pudiera utilizar es recorrer lista eliminando fichas, pero no lo uso porque en lugar de solo limpiar la lista que tengo en memoria, me borra los registros de la BD.

Bueno, con un poco de estudio del caso y utilizando el comando Interfaz: Procesar (rejilla_resultado, Todas), obtengo el tamaño de la lista en curso que tiene la rejilla.

A continuación genero un ciclo for en donde simplemente tengo la instrucción Quitar Ficha de la lista (I).

Pues bien, esto no funciona, ya que aunque cumple el ciclo y los valores se incrementan correctamente (de I), únicamente quita el último registro de la lista.

Por alguna extraña razón se me ocurrió poner (syslistsize) en lugar de (I), y, funcionó.

Por eso el título del post, yo esperaba que me fuera eliminando uno por uno los registros de acuerdo a la posición en la lista, la cual es controlada por I, sin embargo me doy cuenta que no funciona así, y al utilizar Syslistsize va eliminando el último registro, y en cada ciclo va actualizando el tamaño de la lista y borrando el último, ahí si funciona, pero si lo intento de nuevo en orden, o sea, del primer al último elemento, no funciona.

Bueno, para evitar este choro creo, si así lo consideran conveniente que se podría agregar el nuevo comando ya anteriormente mencionado, el cual complementaría a los ya existentes.

Saludos cordiales a todos.

Martín Ibarra.

P.D. Y sin embargo, funciona.


([N4] master) #2

Hola,

Para limpiar una lista puedes usar la instrucción:

Cortar lista 0, 1

Un saludo,
Joaquín.


([N1] aztecmexico) #3

Muchas gracias Joaquín, tan sencillo el asunto y no lo lograba ver.

Saludos.

Martin Ibarra.