Clipper/FiveWin - Ayuda con la Busqueda

 
Vista:

Ayuda con la Busqueda

Publicado por Sebastian (2 intervenciones) el 20/06/2001 16:09:00
hola,
tengo un base de datos de stock.dbf (campos codigo, descripcion, cantidad).

y deseo buscar en el campo descripcion algunas frases, y que me de el resultados todos los registros que cumplan esa condicion.

ejemplo
saco de dormir
plumon de pavomir
casaca de dormir

buscar : sac
obtener de resultado : SACco de dormir y caSACca de dormir

como un like en sql

como lo puedo hacer?
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

RE:Ayuda con la Busqueda

Publicado por Marcos (43 intervenciones) el 20/06/2001 18:26:18
Hola:

Creo que tengo lo que necesitas solo escribeme y te mando un codigo como ejemplo:

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 con la Busqueda

Publicado por Francisco Prado (1 intervención) el 20/06/2001 20:21:23
Tools II y III tiene una funcion like() y utiliza los operadores * y ? como condicionales

por ejemplo like(varCad, "*SAC*") devule .T. si se consigue la subcadena SAC en cualquier parte de la cadena.

para mas informacion lee el NG de CA-Tools
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

Ejemplo para Clipper y FiveWin

Publicado por Fernando Leal (53 intervenciones) el 20/06/2001 20:42:07
Sebastian:
Con bloque de código o con variables mucho más sencillo.

Function Separa()
Local cBuscar := "sac"

SELECT STOCK
Go Top
Do While !Eof()
If cBuscar$STOCK->DESCRIPCIO
SELECT RESULTADO
Append Blank
Replace RESULTADO->CODIGO With STOCK->CODIGO,;
RESULTADO->DESCRIPCION With STOCK->DESCRIPCION,;
RESULTADO->CANTIDAD With STOCK->CANTIDAD
Commit
Unlock
Endif
SELECT STOCK
Skip
If Eof()
Exit
Endif
Enddo

SELECT RESULTADO
--- Más instrucciones

RETURN NIL

La base RESULTADO tiene la misma estructura que STOCK, cuando encuentra un registro lo agrega aquí. Teniendo los datos separados los puedes mostrar a través de un array ó un browse.

Espero que te sirva
Saludos
Fernando Leal
México, D.F.


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 con la Busqueda

Publicado por luis vasquez (67 intervenciones) el 20/06/2001 20:50:55
hola :
para buscar coincidencia de cadenas dentro de un texto debes hacer lo siguiente

#include 'fivewin.ch'

static ow, ofnt

function main()
define window ow from -2, -2 to -1, -1
activate window ow on init inicio()
return nil

function inicio()
local od, oget, obtn1, obtn2, osay
local lsalir := .f.
local cdbf, cntx, cprompt
local xnombre

cdbf := 'clientes.dbf'
cntx := 'nomcli.ntx'

if !file( cntx )
use ( cdbf )
if !neterr()
index on field->nombre to ( cntx )
use
else
MsgInfo('Fichero clientes bloqueado por otro usuario','Error')
ow:end()
return nil
endif
endif

use ( cdbf ) index ( cntx ) shared

define font ofnt name 'ms sans serif' size 0, -10
define dialog od title 'Buscar clientes' font ofnt
cprompt := space( 30 )
xnombre := space( 30 )
@ 2, 01 say 'Nombre '
@ 2, 05 get oget var xnombre of od update
@ 4, 08 button obtn1 prompt "&Buscar" size 30, 10 of od action {||buscar( xnombre ), oget:setfocus(), od:update() }
@ 4, 17 button obtn2 prompt "&Salir" size 30, 10 of od action {|| lSalir := .t., od:end() }
activate dialog od center valid lsalir on init od:move( 1, 1 )
ow:end()
close databases
return nil

function buscar( xvar )
local oDlg, oBrw, obtn3
loca
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