Seleccionar Registro

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.

Gracias

Bueno ya he conseguido realizarlo.

Hola marianoyana.

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.

Saludos
Paco Satué

Buenas Paco,
no lo he probado pero, prueba con esto
http://velneo.es/info_v7_715_es/velneo_vdevelop_v7/scripts/clases/vabstractlistdataview/#setCurrentSelect

Entiendo que envías el registro y a la lista y queda seleccionado.

Hola Manuel.

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.

¿Hay más maneras de hacerlo?

Saludos
Paco Satué

1 me gusta

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.

Saludos

B_NUM_REGISTRO.pdf (16.5 KB)

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.

Hola carlosan.

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.

Saludos
Paco Satué

Hola

En estos casos yo hago un bucle for

n = sysListSize

for x=1; x < n; 1
seleccionar ficha por posicion (x)
leer ficha seleccionada
if id = id-buscado
set x = n + 1

Saludos
Carlos Juega

Pero así no leerá el último registro, ¿no?

Sí, tienes razón. lo escribí mal.
El bucle debe ser mientras x < (n+1)

1 me gusta