Hola amigo tengo una pregunta sobre consulta en foxpro
hola amigo me gustaría mucho que me ayude hice un form de facturación solo me falta poder extraer los datos del clientes y usarlo en mi form. Osea extraerlo de una consulta de los clientes que es creado y que pueda buscarlo en la consulta por descripción y por su código y elegir en cliente. Agradecería mucho tu ayuda gracias de antemano.
1 respuesta
Te puedo dar pistas sobre como hacerlo, debes tener un form de búsqueda con un grid, botón de aceptar, cancelar y un text para ingresar la descripción por la cual deseas buscar, ahora en el evento init puedes hacer
thisform.grid1.recordsource = ""
select * from clientes order by apellido into cursor cclientes
select cclientes
go top
thisform.grid1.recordsource = "cclientes"
Thisform. Grid1. Refresh
Con eso podrias empezar a armar tu form, no te puedo dar el codigo porque eso depende de como tu lo quieras hacer sin mencionar que no se la estructura de tus tablas, la idea es que tu lo hagas y asi aprendas, cualquier duda me comentas, suerte
amigo me puede aclarar un poco mas es que estoy empezando a programar.
en la consulta que cree. tengo un grid y un text1 para buscar por descripción en el text1 use este código por = ALLTRIM(this.Value)
thisform.grid11.recordsource = "select * from clientes where nomcli = por into cursor pro"
en el procedimiento interactive change. y en el grid en datos en record sourse escribí selec* from clientes into cursor pro.
en record sourse type seleccione sentencia sql.
ah mi tabla cliente esta compuesta por nomcli-codcli-telcli-dircli y cedcli.
disculpa tanta pregunta pero me podría decir como puedo hacer que me haga la búsqueda por ej si quiero consultar a pedro lopez que me lo encuentre escribiendo pedro o también lopez
Haber vamos por partes, quita todo el código que tengas y ve ubicando
en el evento init del form :
thisform.grid11.recordsource = ""
select codcli,cedcli,nomcli,telcli,dircli from clientes order by nomcli into cursor cclientes
select cclientes
go top
thisform.grid11.recordsource = "cclientes"
thisform.grid11.refresh
la propiedad recordsourcetype del grid debe ir en 6 - campos
en el evento keypress del text1 ubica lo siguiente
if nkeycode = 13
cnombre = alltrim(this.value)
thisform.grid11.recordsource = ""
select codcli,cedcli,nomcli,telcli,dircli from clientes where nomcli like "%cnombre%" order by nomcli into cursor cclientes
select cclientes
go top
thisform.grid11.recordsource = "cclientes"
Thisform. Grid11. Refresh
Endif
Veamos hasta ahi como te va y me comentas
buenos días amigo hice todo como me pediste. en la propiedad recordsourcetype del grid no me aparece la opción 6 campo como tu me indica solo me aparece hasta la no. 4. me aparecen esta opciones 0- tabla 1- alias 2- indicador 3- consulta (QPR) Y 4-secuencia SQL Y en recordsource lo deje en 0. Cuando ejecuto el formulario me presenta todos mis registro pero cuando intento escribir en el txt1 me presenta este error no se encuentra la instrucción PARAMETER luego que presiono ESC puedo escribir pero no me consulta.
gracias por tu ayuda de antemano
Si tienes razón la propiedad recordsourcetype debe ser 1 me confundí con el combobox, ¿ahora dime algo en que evento del txt1 escribiste el codigo que te indique?
Entonces no te debería dar ningún problema, me puedes indicar exactamente el código que ubicaste en el evento keypress
if nkeycode = 13
cnombre = alltrim(this.value)
thisform.grid11.recordsource = ""
select codcli,cedcli,nomcli,telcli,dircli from clientes where nomcli like "%cnombre%" order by nomcli into cursor cclientes
select cclientes
go top
thisform.grid11.recordsource = "cclientes"
thisform.grid11.refresh
endif
No te debería marcar ningún error, ok me puedes enviar ese formulario a [email protected] para checar que pasa
El error se debe a que en el evento keypress en la primera linea va la siguiente linea que creo que por equivocación borraste
LPARAMETERS nKeyCode, nShiftAltCtrl
Esta linea te indica o pasa los parámetros de las teclas que presionas, agrega esa linea al inicio del evento y te debería correr sin problemas
ok amigo ya no tiene el mensaje de error pero ahora lo hace la consulta cuando escribo la descripción del porducto
cuando lo ejecuto me aparecen todos los registro y cuando escribo en el txt1 no me busca y luego cuando presiono enter se pone el grid en blanco y no me vuelven a aparecer los registros
- Compartir respuesta