Consultas de grid

Hola antes que nada gracias por la atención que tienen hacia los que consultamos!
Tratare de explicar mi problema:
Tengo un formulario con cuadros de texto y un grid, al ejecutarlo me muestra en el grid todos los datos que tiene mi tabla, mediante un botón buscar pido un dato y me los devuelve en los diferentes cuadros de texto sin ningún problema solo que el grid se vuelve en blanco y ya no me muestra nada.
Lo que quiero es que al buscar me los siga mostrando en los cuadros de texto y a la vez en el grid solo que en el grid que me indique con el cursor el dato... Y también como jalo diferentes tablas quiero combinar campos de cada una de ellas dentro de un mismo grid.
No se si esto sea posible, agradeceré mucho su ayuda

1 respuesta

Respuesta
1
Bueno para lo primero pásame el código para ver como estas mostrando la inf en los texbox supongo cuando hacen click en el grid .
Para lo segundo se recomienda crear cursores en base a consultas sql como por ejemplo tienes alumnos y padres en una tabla la inf del alumno y en la otra inf del padre te paso una consulta que unirá las dos obviamente debe haber un campo en común llamado llave.
Selec a.*, b.* from alumnos a inner join padres b on a.padre=b.cod_padre into cursor consulta
alli pasa todos los registros de alumnos y padres en uno si quiers solo algunos campos olo basta mencionarlos separados por comas el alias a representa aalumnos y el alias b a padres como puedes ver es facil definirlos siempre y cuando hay un campo llave q los relaciona
Este es mi código mediante el que consulto un dato y lo visualizo en los cuadrso de texto, ahí menciono las tablas que utilizo... ahora quiero en un grig visualizar estos mismos campos
Close Databases All
use datoscortes
locate for control_interno = val(thisform.Datobusca.value)
IF FOUND()
thisform.txtcliente.Value=datoscortes.cliente
thisform.txtcorte.value=datoscortes.corte
thisform.txtmodelo.value=datoscortes.modelo
thisform.txttipo.value=datoscortes.tipo
thisform.txtdescripcion.value=datoscortes.descripcion
thisform.txtpomo.value=datoscortes.po_o_mo
thisform.txttelacolor.value=datoscortes.tela_color
thisform.txtcantidad.value=datoscortes.cant_solicitada
thisform.txtlinea.value=datoscortes.linea
thisform.txtentrega.value=datoscortes.entrega
thisform.txtsaldo.value=datoscortes.saldo
thisform.talla1.value=datoscortes.talla1
thisform.talla2.value=datoscortes.talla2
thisform.talla3.value=datoscortes.talla3
thisform.talla4.value=datoscortes.talla4
Thisform.talla5.value=datoscortes.talla5
thisform.talla6.value=datoscortes.talla6
thisform.talla7.value=datoscortes.talla7
thisform.talla8.value=datoscortes.talla8
thisform.talla9.value=datoscortes.talla9
thisform.talla10.value=datoscortes.talla10
thisform.cantidad1.value=datoscortes.t_talla1
thisform.cantidad2.value=datoscortes.t_talla2
thisform.cantidad3.value=datoscortes.t_talla3
thisform.cantidad4.value=datoscortes.t_talla4
thisform.cantidad5.value=datoscortes.t_talla5
thisform.cantidad6.value=datoscortes.t_talla6
thisform.cantidad7.value=datoscortes.t_talla7
thisform.cantidad8.value=datoscortes.t_talla8
thisform.cantidad9.value=datoscortes.t_talla9
thisform.cantidad10.value=datoscortes.t_talla10
USE deptofoleo
LOCATE FOR deptofoleo.control_interno=VAL(thisform.Datobusca.value)
IF FOUND()
thisform.txtcorteinterno.value=deptofoleo.control_interno
thisform.Text33.value=deptofoleo.dia1
thisform.Text34.value=deptofoleo.t_global
ENDIF
USE deptocorte
LOCATE FOR deptocorte.control_interno=VAL(thisform.Datobusca.value)
IF FOUND()
thisform.txtcorteinterno.value=deptocorte.control_interno
thisform.Text35.value=deptocorte.dia1
thisform.Text36.value=deptocorte.t_global
ENDIF
USE deptocostura
LOCATE FOR deptocostura.control_interno=VAL(thisform.Datobusca.value)
IF FOUND()
thisform.txtcorteinterno.value=deptocostura.control_interno
thisform.Text37.value=deptocostura.dia1
thisform.Text38.value=deptocostura.total_global
ENDIF
USE deptodeshebrado
LOCATE FOR deptodeshebrado.control_interno=VAL(thisform.Datobusca.value)
IF FOUND()
thisform.txtcorteinterno.value=deptodeshebrado.control_interno
thisform.Text39.value=deptodeshebrado.dia1
thisform.Text40.value=deptodeshebrado.total_global
ENDIF
USE deptoplanchas
LOCATE FOR deptoplanchas.control_interno=VAL(thisform.Datobusca.value)
IF FOUND()
thisform.txtcorteinterno.value=deptoplanchas.control_interno
thisform.Text41.value=deptoplanchas.dia1
thisform.Text42.value=deptoplanchas.total_global
ENDIF
USE deptoempaque
LOCATE FOR deptoempaque.control_interno=VAL(thisform.Datobusca.value)
IF FOUND()
thisform.txtcorteinterno.value=deptoempque.control_interno
thisform.Text43.value=deptoempaque.dia1
thisform.Text44.value=deptoempaque.total_global
ENDIF
USE deptoautoclave
LOCATE FOR deptoautoclave.control_interno=VAL(thisform.Datobusca.value)
IF FOUND()
thisform.txtcorteinterno.value=deptoautoclave.control_interno
thisform.Text45.value=deptoautoclave.dia1
thisform.Text46.value=deptoautoclave.total_global
ENDIF
?
ELSE
messagebox (" ...DATO NO EXISTENTE ")
endif
thisform.Buscar.enabled=.t.
thisform.Datobusca.setfocus
thisform.Datobusca.Value=" "
USE
Me podrías dar un ejemplo de como viaualisarlos en el grid ya con datos reales
Muchas gracias
Primero que nada el locate esta fuera de uso si es una tabla muy grande sera lenta la búsqueda deberías indexar cada tabla por el dato que quieras buscar y usar seek
para poner en una tabla todo podrías usar el siguiente código
selec a.*, b.control_interno as ctr_tofo, b.dia1 as diatofo, t_global as gobtofo, c.control_interno as ctl_corte, c. dia1 as diacorte, c.t_global as globcorte from datoscortes a inner join deptofoleo b on a.control_interno=b.control_interno inner join deptocorte c on a.control_interno=c.control_interno where a.control_interno=val(thisform.datobusca.value) into cursor consulta
bueno eso se supone q unira las tres tablas primeras si te das cuenta uso una letra como alias para cada tabla para q la consulta no sea larga tambien cambio de nombre a los campos q estan repedidos en las diferentes tablas con as.
Bueno con un poco de paciencia podrás terminar la consulta con todas las tablas que necesitas.
Gracias la verdad que soy novata y estoy aprendiendo a prueba error y no se me da mucho pero haré un esfuerzo, buscare el uso del seek y la forma de indexar las tablas si me pudieras solo mandar una sintaxis de ello ... y estaré checando también lo del grid
Mi correo es [email protected] seria bueno me escribieras en el para no perder tu contacto... gracias
Agrégame al msn [email protected] Finaliza tu pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas