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

Respuesta
1

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?

en el evento keypress

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

TE ENVÍE EL FORM

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

¿Cuál es el error que te indica y en que linea te lo marca?

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

ok cambia el select por el siguiente

select codcli,cedcli,nomcli,telcli,dircli from clientes where nomcli like "%" + cnombre + "%" order by nomcli into cursor cclientes

Y ve como te va

ok ahora si. mil gracias ahora voy a intentar con la primera pregunta que te hice sobre extraer los datos del cientes y te aviso cualquier duda gracias amigo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas