FoxPro/Visual FoxPro Avanzado - Filtrar registros con combobox y grid
Por favor,
estoy tratando de crear un formulario donde mediante uno de los combobox selecciono un cliente de mi tabla y automaticamente el grid se refresca y solo muestra los registros de ese cliente, pero tengo dos problemas 1) a pesar de haber definido un set default a veces me sale q no encuentra una de las tablas en la ruta. 2) no logro hacer la conexion con el grid, he probado varias cosas pero me salen errores, y eso q parti de un ejemplo de una busqueda pero con un textbox... habra algo q me hace falta hacer. El programa inicia desde el formulario, es decir defino los sets en el formulario. tendra algo q ver?. No soy programador de visual fox, yo me quede en el foxpro para DOS. Ojala alguien tenga un programa de ejemplito para analizarlo. Gracias de antemano por la ayuda... ...Edwin
recuerda que antes de que le cambies el recordsource a un grid o el rowsource a un combo debes incializarlos
ThisForm.Grid1.RecordSource = '' ThisForm.Combo.RowSource = '' en el combobox en la propiedad rowsource type utiliza 6(Fields) mediante un cusor mandale al combo el origen de datos.. es decir genera un cursor con los clientes ThisForm.Combo.RowSource = '' ThisForm.Combo.RowSource = 'CursorCliente.Nombre' cuando selecciones un cliente el puntero se movera al cliente selccionado dentro del cursor CusorCliente y en el interactivechange del combo programas para filtrar el grid ejemplo: ThisForm.Grid1.RecordSourceType = '1' ThisForm.Grid1.RecordSource = '' Select * From Pagos Where Pagos.CampoCliente==CursorCliente.Clave InTo Cursor TempPagos ThisForm.Grid1.RecordSource = 'TempPagos' ThisForm.Grid1.Colum1.ControlSource = 'MiCampo' repites esto ultimo por cada campo que vas a mostrar en el grid ThisForm.Refresh espero te ayude suerte
Excelente respuesta, me sirvió bastante
Muchas gracias por la ayuda Edgar,
yo pense que se trataba de un select, un set filter o algo asi q tenia q hacer para luego cargarlo en alguna de las propiedades del grid... pero creo q el uso del cursor es diferente a lo q estaba tratando de hacer al modificar un ejemplito de busqueda q encontre. Estoy tratando de hacer un formulario de orden de compra simple con las tablas cliente, vendedor, orden_cabecera, orden_detalle, articulos y una tabla temporal... se supone q deberia ser sensilla!! he tratado de hacer lo q me dijiste pero creo q algo esta faltando, xq no me sale... quizas es xq sigo modificando en el codigo anterior, no se!. No tendras un ejemplito de lo q me explicaste q me puedas enviar por mail para revisarlo?... pense q el VFP no seria muy complicado, pero me mareo con tantas propiedades y ventanas por objeto. Gracias de todas maneras por darte el tiempo de explicarme... ...Edwin
se me hace mas facil que me envies lo que tienes y te digo donde esta mal
saludos
como filtrar datos en un grid a traves de un textbox, yo tengo el texbox y digito un numero que es 2010909, quiero que el grid me devuelva los registros coincidan con este dato
prueba esto:
en el evento valid del combo select mitabla set filter to mitabla.codigo=combo thisform.refresh
Hola... vi q tienes un problema para la ruta de tu base de dato.... Para q no pongas set defaul to por todos lados te aconsejo lo siguiente.... En el project manager elige la opción de codigo, despues la opcion de programa y agrega uno nuevo... En ese programa vas a poner lo siguiente
SET DEFAULT TO 'aqui va la ubicacion de tu base de datos' SET PATH to 'aqui va la ubicacion de tus formularios' OPEN DATABASE nombre de tu base de datos SET DELETED ON DO FORM 'aqui el nombre del formulario que quieras como principal' READ events lo guardas con el nombre que quieras y despues de eso, le das clic dereche y eliges "Poner como principal" y ahora cuando corras la aplicacion elige ese y ya no tendras problemas con lo de la ubicación.
YA TE JODISTE PAPA
Hola amigois ante todo gracias por observar mi problema: es que estoy empezando a estudir fox y me veo en el dilema de cuadro combinado, quiero filtrar los datos de ingreso del combbox: es decir si yo ingreso una "C" que me muestren las marcas del producto con esa letra, estoy trabajando con dos tablas, uno se llama marca y el otro producto
desde ya agradesco me respondan recorrer registros Para Plinio,..el lo entenderá |