Página 1 de 1

Ayuda con dbf Locate

Publicado: Dom Jun 22, 2014 12:56 am
por jemstv

hola
ahora tengo un problema con un LOCATE
no importa el valor del cAMPO en la forma
siempre mustra en blanco y no la data del record
esto es lo que puse:
METHOD DBEdit30Exit( oSender, oNextCtl ) CLASS TForm1
LOCAL FTNO, MCO, MVE
WITH OBJECT ::oDBTOWS
::oDbTOWS:gotop()
FTNO := ::TFORM1:oDBEdit30:VALUE
IF ::oDbTOWS:Locate('TICKT_NO="'+FTNO+'"' )
MsgAlert(::oDbTows:tICKT_NO,'hIT')
ENDIF
if ::oDbTows:Eof()
MsgAlert('Ticket record not found')
return nil
endif
GRACIAS anticipadas

Ayuda con dbf Locate

Publicado: Dom Jun 22, 2014 7:51 pm
por Rich
Hola, me parece que tienes confusión en la forma de usar WITH OBJECT elobjeto(); END.
Resulta que cuando usas una estructura WITH OBJECT, las propiedades y métodos de la CLASE ya quedan apuntados y no necesitas calificarlos con ::oDBTOWS.
No sé qué quieres hacer, pero inténtalo del modo siguiente:
WITH OBJECT oDBTOWS() // Donde oDBTOWS debe ser una clase.
:GoTop()
FTNO := ::TFORM1:oDBEdit30:VALUE
IF :Locate('TICKT_NO="'+FTNO+'"' )
MsgAlert(:tICKT_NO,'hIT')
ENDIF
IF :Eof()
MsgAlert('Ticket record not found')
Return Nil
ENDIF
END // Si no cierras la estructura da error.
Espero haberte ayudado.
Sergalun.

Ayuda con dbf Locate

Publicado: Dom Jun 22, 2014 9:48 pm
por jemstv
Gracias por tu aportacion
pero me temo que me perdi con lo de que tiene que ser una clase
nunca e creado una clase hasta ahora
si puedes tirar un ejemplo te lo agradezco
gracias

Ayuda con dbf Locate

Publicado: Lun Jun 23, 2014 12:31 am
por zeasoftware
METHOD DBEdit30Exit( oSender, oNextCtl ) CLASS TForm1
LOCAL FTNO, MCO, MVE
WITH OBJECT ::oDBTOWS
:gotop()
FTNO := Trim(::oDBEdit30:VALUE) ///que longitud es el dato?
IF :Locate('TICKT_NO="' + FTNO + '"' )
MsgAlert(:tICKT_NO, 'hIT')
Else
MsgAlert('Ticket record not found')
return nil
endif
End With
Return ( Nil )
Yo hago algo así­, y uso Locate por que la DBF es pequeña, si vas a usar muchos datos mejor usa un indice y SEEK:
oSender:value := PadR(oSender:value, 15)
With Object ::oDBFLineas
If ( :Locate("Linea == '" + oSender:value + "'") )
::::::
:::::::
Saludos.
Ramón Zea
Móvil.: 993-231.62.29
Tel./Fax: 993-353-46-73
www.zeasoftware.com.mx
soporte@zeasoftware.com.mx
zeasoftware@hotmail.com
https://www.facebook.com/zeasoftware
Proveedor Autorizado:
REACHCORE
FACTURAXION
SERVISIM
"Josemo" escribió en el mensaje de noticias:53a60d8d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
:x
hola
ahora tengo un problema con un LOCATE
no importa el valor del cAMPO en la forma
siempre mustra en blanco y no la data del record
esto es lo que puse:
METHOD DBEdit30Exit( oSender, oNextCtl ) CLASS TForm1
LOCAL FTNO, MCO, MVE
WITH OBJECT ::oDBTOWS
::oDbTOWS:gotop()
FTNO := ::TFORM1:oDBEdit30:VALUE
IF ::oDbTOWS:Locate('TICKT_NO="'+FTNO+'"' )
MsgAlert(::oDbTows:tICKT_NO,'hIT')
ENDIF
if ::oDbTows:Eof()
MsgAlert('Ticket record not found')
return nil
endif
GRACIAS anticipadas
--

Ayuda con dbf Locate

Publicado: Lun Jun 23, 2014 1:36 pm
por jemstv
Gracias por la info.
trate ambas formas y la primera
no presenta el mensaje de not found por lo que entenderia que el
locate fue .T.
al final del metodo hago un msginfo de varios campos del record que supuestamente localizo y salen en blanco
usando el segundo metodo siempre me da el
ticket not found
de nuevo gracias por la ayuda!!