Sugerencias en cuadro de edición

Hola, tengo la duda de como hacer un cuadro de captura de texto que me muestre “sugerencias” mientras escribo, tal y como lo hace una captura de texto de un campo enlazado a otra tabla.
Explico, me gustaría tener la mayor homogeneidad posible en los textos que capture el usuario para ese campo, pero sin la necesidad de utilizar una segunda tabla (evitar que por error de dedo meta un valor que realmente ya existe). Tener todos los valores únicos ya capturados en ese campos y hacer las sugerencias según vaya escribiendo el usuario.
Como lo menciono al inicio, se que esto se puede hacer haciendo una segunda tabla, pero esto implicaría el ABC de esta tabla (Tabla estática descartada por que no tengo definidos todos los valores posibles) y quisiera que la captura fuera lo más dinámica posible en una sola pantalla.
¿Se puede o estoy pidiendo demasiado?
Cualquier ayuda se agradece.

Hola marco_rangel.

Simular el comportamiento del campo vinculado a Maestro es complicado con código nativo ya que el control de Velneo es un Widget escrito en C++. Tendrías que controlar muchas cosas como la posición del cursor después de pegar la sugerencia, poner en gris la parte de texto sugerida que todavía no ha tecleado el usuario, etc …

Lo mejor es que uses una tabla, en este caso temporal, con los textos sugeridos. Indexas la columna para poder hacer búsquedas.

Yo hice hace años un ejercicio de “Búsqueda incremental” parecido a lo que quieres.

Échale un vistazo y quizás puedas adaptarlo a tus necesidades.

Saludos
Paco Satué

1 me gusta

Como siempre, muchas gracias por tu apoyo Paco, si estuve pensando en usar una segunda tabla, pero que se llene al momento de abrir la pantalla de captura. Voy a ver que tal me va con eso.
Saludos!!

Hola marco_rangel.

Hoy usando la aplicación 0PS_MiApi del cloud me he topado con la clase VComboBox del API.

En nativo no podemos hacer editable el control ComboBox, pero desde el API sí poniendo a true la propiedad VComboBox.editable.

Así que podemos usar esta clase desde javascript para dejar al Usuario que introduzca texto y al mismo tiempo tendrá textos sugeridos desde la lista del Combo, ya que el autocompletado funciona por defecto en el ComboBox.

El siguiente código lo puedes probar en 0PS_MiApi en la rama
Controles de formulario > VComboBox - Editable

oCbo.clear()
oCbo.editable = true
// El texto introducido nuevo no se inserta en la Lista de Items
oCbo.insertPolicy = VComboBox.NoInsert
// Lista de sugerencias
oCbo.addItem("Alquiler de vehículo")
oCbo.addItem("Alquiler de vehículo con conductor")
oCbo.addItem("Bancos con cajero automático")
oCbo.addItem("Gasolineras con autoservicio y taller")
oCbo.addItem("Gasolineras con restaurante")
oCbo.addItem("Hospital cercano")
oCbo.addItem("Hospital de urgencia")
oCbo.addItem("Transporte de cercanías")
oCbo.addItem("Transporte de mercancías")
oCbo.addItem("Comercio de cercanía")
oCbo.addItem("Comercio detallista")
oCbo.addItem("Comercio mayorista")
oCbo.addItem("Turismo de monumentos")
oCbo.addItem("Turismo de viajes")
oCbo.addItem("Turismo del vino")
// Vaciamos la edición de texto
oCbo.clearEditText()
oCbo.setFocus()

Saludos
Paco Satué

2 Me gusta

WOOOOW!!!
Mil gracias Paco. Solo una pregunta referente a esto. El código que compartes, ¿se puede usar en cualquier versión de Velneo? (aún estoy en la 27.1). Si no es así, para tener un motivo más para migrar mi servidor.

Hola marco_rangel.

Sí, el código es compatible con la 27, no hay problema.
El ComboBox no ha evolucionado desde hace tiempo.

Saludos
Paco Satué

Muchas gracias Paco!