PDA

Ver la Versión Completa : [Componente] Filtro de búsqueda en Combobox


jmeza
13 de mayo de 2017, 03:43
Hola, necesito la ayuda de ustedes nuevamente

Tengo un Combobox de búsqueda en un Form, funciona ok
pero necesito programar la búsqueda ingresando un par de letras para hacer la búsqueda mas rápida.
¿ como lo puede hacer
¿ debo configurar algo en las propiedades

Saludos

jotica
13 de mayo de 2017, 17:54
Definelo como DropDown en propiedades

jmeza
14 de mayo de 2017, 03:36
En propiedades realice la definición como DropDown pero no me funciona,
El CmCombo1 muestra ok la lista de información que es el código y nombre

Cuando digito un par de letras para reducir la búsqueda, al dar enter me queda en blanco la lista sin lograr el objetivo.

Algo estoy haciendo mal, o me falta
esta es la rutina que tengo, si la pueden revisar

ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DATOS.
02 CODIGO PIC 9(3).
02 FILLER PIC X VALUE " ".
02 NOMBRE PIC X(35).
PROCEDURE DIVISION.
INVOKE CMCOMBO1 "CLEARLIST".
OPEN INPUT REGLABOR.
PROCESO.
MOVE LOW-VALUE TO AL1-NOM.
START REGLABOR KEY NOT < AL1-NOM INVALID GO TO FIN.

* MOVE LOW-VALUE TO KEY-LAB
* START REGLABOR KEY NOT < KEY-LAB INVALID GO TO FIN.

LEE. READ REGLABOR NEXT AT END GO FIN.
MOVE REG-CODLAB TO CODIGO.
MOVE REG-NOMLABOR TO NOMBRE.
INVOKE CMCOMBO1 "ADDSTRING" USING DATOS.
GO LEE.
FIN.
CLOSE REGLABOR.
EXIT PROGRAM.

Kuk
14 de mayo de 2017, 09:47
jmeza, usa el resalto de sintaxis.

En cuanto a tu problema, creo que es un bug y no funciona.
Puedes hacerlo de otra manera: [Aporte] Ejemplo de Filtro de búsqueda (Type ahead search) - COBOL Foro (http://cobolforo.es/showthread.php?t=224&highlight=type+ahead)

jotica
14 de mayo de 2017, 18:27
Jmeza

Prueba moviendo una coma (,) en DATOS entre CODIGO y NOMBRE y lo defines como CSV Format en File Type en la propiedad File

En la propiedad File en "CurFieldNo" defines 1 si vas a buscar por CODIGO o 2 si lo haras por NOMBRE


Una forma muy sencilla que uso yo es crear un "archivo tabla" tipo texto, con los campos separados por una coma (,) lo defino como CSV Format y lo encadeno con el FileName y con la opcion de AutoLoadFile

---------- Post añadido : 11:27 ---------- Post anterior : 11:19 ----------

Utiliza el Evento SelChange para obtener el dato seleccionado

jmeza
23 de mayo de 2017, 02:08
Hola les comento, que el problema planteado quedo resuelto
Hacer la búsqueda ingresando un par de letras, esto se soluciono cambiando el orden de los Datos en la WORKING, primero el nombre y después el código.
Con las definiciones en las propiedades como me recomendaron.

Saludos

jotica
2 de junio de 2017, 14:40
Jmeza
No se hace necesario cambiar el orden de los datos, con solo haber asignado el numero del campo a utilizar hubiera bastado
No es requicito que el primer dato sea el de busqueda, para eso esta la propiedad CurFieldNo, para definir el dato correspondiente