FoxPro/Visual FoxPro - Ayuda estoy por volverme loco

 
Vista:

Ayuda estoy por volverme loco

Publicado por Juancho (22 intervenciones) el 29/09/2009 15:47:31
Hola señores como estan, tengo un problema y ya no se que hacer, tengo un txt donde pongo l letra del articulo aue quiero buscar en un una grilla. Me funciona cuando lo ejecuto en el desarrollador de vfox pero cuando acceso por el ejecutable no me funciona le pongo la letra y me tira al ultimo registro de la grilla y no se mueve de ahi que hago
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Ayuda estoy por volverme loco

Publicado por neo (1604 intervenciones) el 29/09/2009 17:25:24
Te ayudaríamos mejor si posteas algo de tu codigo y tratar de encontrar una solucion.

Te diria que revises en la ayuda las funciones de seek , o crea un cursor y realiza una consulta y posteriormente pasala a la grilla.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda estoy por volverme loco

Publicado por JUANCHO (22 intervenciones) el 29/09/2009 17:59:42
neo aca te envio mi codigo esto va en una txt llamado txtbuscar

*--- InteractiveChange ---
LOCAL lc, lnRecno
SELECT Articulos
lc = ALLT(THIS.VALUE)
lnRecno = RECNO()
IF Articulos.Desartic >= lc
IF NOT BOF()
SKIP -1
ENDIF
IF Articulos.Desartic < lc
IF lnRecno <= RECC()
GO RECNO()
ELSE
GO BOTT
ENDIF
RETURN
ENDIF
IF NOT EMPTY(ORDER())
SEEK lc
ELSE
GO TOP
LOCATE REST FOR Articulos.Desartic=lc WHILE Articulos.Desartic <= lc NOOPTIMIZE
ENDIF
ELSE
LOCATE REST FOR Articulos.Desartic=lc WHILE Articulos.Desartic <= lc NOOPTIMIZE
ENDIF

IF lnRecno # RECNO()
THISFORM.Pageframe1.Page2.grid1.SETFOCUS
THISFORM.Pageframe1.Page2.txtbuscar.SETFOCUS
ENDIF
RETURN
*--- END InteractiveChange ---
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Nada de desesperacion

Publicado por juan286 (185 intervenciones) el 30/09/2009 16:55:58
Mira yo hice algo parecido aclaro parecido que talvez te funciones a que lo usao para buscar en una tabla empleando las primeras letras por ejemplo si kiero buscar un Martillo solo pongo M o MA o MAR y me comoenza a parecer en la grilla.

Recuerdo uqe trate de emplear el mismo codigo pero me hice volas por eso use este codigo.

En el txtbuscar en el evento INTERACTIVECHANGER

SET EXACT OFF
SET NEAR ON
cadena = 'SELECT * from ARTICULOS WHERE ALLTRIM(thisform.txtbuscar.Value) $ nombre INTO CURSOR temporal'

thisform.grid1.RecordSourceType= 4
thisform.Grid1.RecordSource = cadena

Solo agregas al entorno de datos el campo a buscar

Espero ayudar en algo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Ayuda estoy por volverme loco

Publicado por neo (1604 intervenciones) el 30/09/2009 20:56:25
En mis inicios, me ayudó mucho este link, revisalo y si es algo similar a lo que necesitas, pues nada mas adecuarlo.
http://www.lawebdelprogramador.com/codigo/enlace.php?idp=1402&id=34&texto=FoxPro/Visual+FoxPro

Si no es lo que necesitas, trataré de ayudarte con un codigo diferente (Select *From)

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda estoy por volverme loco

Publicado por Miguel (115 intervenciones) el 01/10/2009 06:06:54
Prueba con esta linea de comandos, conforme vas digitando busca en tu GRID

Slds.
***************************************************************

LOCAL lnUltimaTecla, lcMostrarValor,lcUltimoValorMostrado, ;
lnUltimaSeleccion, lnSeleccionados
lnUltimaTecla = LASTKEY()
lcUltimoValorMostrado = ""
lnUltimaSeleccion = 0
lnSeleccionados = 0
IF (lnUltimaTecla >= 32 AND lnUltimaTecla <= 127)
IF THIS.SELSTART >= 1
lcMostrarValor = SUBSTR(THIS.VALUE,1,THIS.SELSTART-1)+(CHR(lnUltimaTecla))
ELSE
lcMostrarValor = (CHR(lnUltimaTecla))+ALLT(THIS.VALUE)
ENDIF
IF EMPTY(lcMostrarValor)
lcMostrarValor = ALLT(CHR(lnUltimaTecla))
ENDIF
***********************************
sele arti
seek alltrim(thisform.TxtBuscar.value)
thisform.GrdArti.refresh
************************************
lcUltimoValorMostrado = THIS.VALUE
lnUltimaSeleccion = THIS.SELSTART
lnSeleccionados = THIS.SELLENGTH
THIS.VALUE = lcUltimoValorMostrado
THIS.SELSTART = lnUltimaSeleccion
THIS.SELLENGTH = lnSeleccionados
ENDIF
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar