Tengo un formulario con una vista de datos y muchas búsquedas, pero ahora lo que no consigo es que realizando una búsqueda por código se me posicione en ese registro, es decir que si pongo por ejemplo el registro 500 al darle a un botón que debe lanzar un manejador de evento y se coloque en el registro nº 500 pero no me oculte ningún registro.
Cuenta cómo lo has logrado ya que no es una tarea trivial en Velneo y habrá varias formas de resolverlo.
Me refiero a localizar un ID en la Tabla e iluminar la fila correspondiente de la Rejilla.
Sí, esa sería la forma correcta de hacerlo, pero estaría mejor que se pudiera hacer con código Velneo.
En Velneo solo tenenos el comando Seleccionar Ficha por Posición, que yo sepa.
Esto nos obliga a ejecutar un Recorrer lista.
Rem ( NID es el ID que estamos buscando en la Rejilla. )
Set ( NCONTADOR, 0 )
Interfaz: Procesar ( CTR_LISTA, Todas )
Recorrer lista sólo lectura
Set ( NCONTADOR, NCONTADOR + 1 )
If ( #ID = NID )
Set ( NPOS, NCONTADOR )
Rem ( aquí deberiamos cancelar el Recorrer Lista, pero es imposibol )
Seleccionar ficha por posición ( NPOS )
La lista se recorre entera siempre, ya que no podemos cancelar un Recorrer Lista.
Tenemos que usar NCONTADOR porque la variable sysListPos todavía no sé que rayos hace en Velneo.
Yo lo he creado mediante un manejador de objetos que carga una busqueda y una vez ejecutudo el manejador, lo que tengo es un seleccionar ficha por posición y luego un leer ficha seleccionada.
Hola, Paco.
Estaba buscando cómo (sin usar javascript) salir de un bucle “Recorrer lista solo lectura” en el momento necesario pero ya he visto que no hay forma y toca seguir hasta el final. Da igual si son un millón de registros o tan solo diez.
Seguro que después de 8 años habrás despejado la duda sobre la utilidad de la variable del sistema sysListPos y sería bueno que su utilidad fuese señalar la posición de la lista que se está procesando, pero no. Tiene otra utilidad muy práctica:
1- Cargas una lista
2- Seleccionas ficha por posición(6) (por ejemplo)
3- y voilá, ahí tienes la utilidad de sysListPos: sysListPos = 6
Esto sería útil si después pudieses hacer moveNext o movePrev pero como no es el caso y Dios no quiso darme mejores luces que las que actualmente me alumbran, sigo sin saber la utilidad práctica de sysListPos.
En todo el vERP no se usa ni una sola vez. No sé si alguien lo usó jamás.
La variable de sistema sysListPos está tan ignorada por Velneo que incluso si usas el botón Buscar de la documentación no encontrará nada.
La única utilidad que le encontré fue la comentada en el siguiente hilo, es decir, guardar la posición en una Lista para recuperarla posteriormente y seleccionar la misma fila de la Rejilla. Evidentemente hay que aclarar que se selecciona la misma fila de la Lista, no el mismo registro de la Tabla.