FoxPro/Visual FoxPro - Buscar por nombre del articulos

 
Vista:

Buscar por nombre del articulos

Publicado por Idelsy Bocio (25 intervenciones) el 09/07/2014 06:06:56
Buenas noches colegas y/o amigos

Tengo problemas con esto:

Este primero hace una busqueda por codigo y funciona perfecto gracias a debo escribir el codigo completo al memento de hacer la busqueda ejemplos:

7441033676023
7707175841898

Aqui no hay problemas:
x=SQLEXEC(rc,"Select codigo,descrip from articulos where articulos.codigo =?thisform.codigo.value","mc")
select mc
browse


El problema esta aqui donde debo buscar por nombre del articulos, si escribo el nombre completo lo busca pero si escribo parte del nombre no nunca lo encuentra.

Quiero que funcione escribiendo poco de nombre del articulo si es posible, falta algo y quiero saber donde para esto funcione.

x=SQLEXEC(rc,"Select codigo,descrip from articulos where articulos.nombre =?thisform.nombre.value","mc")
select mc
browse

Mi coneccion (rc) esta nitida.

Espero por ustedes, gracias desde ya.
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

Buscar por nombre del articulos

Publicado por Saul (728 intervenciones) el 09/07/2014 20:48:18
Creo que esto te ayudaria

1
2
3
4
5
6
7
8
9
10
11
12
13
14
nNombre = Thisform.nombre.value
 
*- Nombre
IF EMPTY(nNombre)
     nNombre = '%%'
ELSE
	nNombre = UPPER(ALLTRIM(nNombre))
       nNombre = '%' + nNombre + '%'          &&esto busca la palabra o nombre en cualquier parte del string
ENDIF
 
x=SQLEXEC(rc,"Select codigo,descrip from articulos where LTRIM(RTRIM(Articulosnombre)) LIKE ?nNomBre","mc")
 
select mc
browse
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

Buscar por nombre del articulos

Publicado por idelsy (3 intervenciones) el 10/07/2014 20:16:21
Efectuvamente Saul, este era el ingrediente que hacia falta

Estoy luchando con otra cosa por si lo necesito ya que estoy cambiando de dbf a MYSQ usando visual foxpro 9.

Gracias a ti a Ernesto y a todos.
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

Buscar por nombre del articulos

Publicado por Ernesto Hernandez (4623 intervenciones) el 09/07/2014 23:52:42
Revisa la propiedad AutoComplete de los TextBox´s
aqui un ejemplo

Suerte

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
PUBLIC goMiForm
goMiForm = CREATEOBJECT("MiForm")
goMiForm.SHOW(1)
RETURN
 
DEFINE CLASS MiForm AS FORM
  AUTOCENTER = .T.
  CAPTION = "Ejemplo de Autocompletar en TextBox"
  NAME = "MiForm"
  ADD OBJECT txtCompania AS TEXTBOX WITH ;
    HEIGHT = 24, ;
    LEFT = 84, ;
    TOP = 24, ;
    WIDTH = 264, ;
    NAME = "txtCompania"
  ADD OBJECT txtContacto AS TEXTBOX WITH ;
    HEIGHT = 24, ;
    LEFT = 84, ;
    TOP = 72, ;
    WIDTH = 264, ;
    NAME = "txtContacto"
  ADD OBJECT txtCiudad AS TEXTBOX WITH ;
    HEIGHT = 24, ;
    LEFT = 84, ;
    TOP = 120, ;
    WIDTH = 264, ;
    NAME = "txtCiudad"
  ADD OBJECT txtPais AS TEXTBOX WITH ;
    HEIGHT = 24, ;
    LEFT = 84, ;
    TOP = 168, ;
    WIDTH = 264, ;
    NAME = "txtPais"
  ADD OBJECT lblCompania AS LABEL WITH ;
    AUTOSIZE = .T., ;
    BACKSTYLE = 0, ;
    CAPTION = "Compañia", ;
    LEFT = 12, ;
    TOP = 28, ;
    NAME = "lblCompania"
  ADD OBJECT lblContacto AS LABEL WITH ;
    AUTOSIZE = .T., ;
    BACKSTYLE = 0, ;
    CAPTION = "Contacto", ;
    LEFT = 12, ;
    TOP = 76, ;
    NAME = "lblContacto"
  ADD OBJECT lblCiudad AS LABEL WITH ;
    AUTOSIZE = .T., ;
    BACKSTYLE = 0, ;
    CAPTION = "Ciudad", ;
    LEFT = 12, ;
    TOP = 124, ;
    NAME = "lblCiudad"
  ADD OBJECT lblPais AS LABEL WITH ;
    AUTOSIZE = .T., ;
    BACKSTYLE = 0, ;
    CAPTION = "País", ;
    LEFT = 12, ;
    TOP = 172, ;
    NAME = "lblPais"
 
  PROCEDURE INIT
    LOCAL lcDbfAuto, lcDbfOrigen
    *-- Ruta y nombre de la tabla AutoCompletar
    lcDbfAuto = ADDBS(SYS(2023)) + "MiAutoComp.dbf"
    *-- Creo la tabla AutoCompompletar
    THISFORM.CrearTablaAutoComp(lcDbfAuto)
 
    *-- Ruta y nombre de la tabla Origen
    lcDbfOrigen = ADDBS(HOME(2))+ "NorthWind\Customers.dbf"
 
    *-- Inserto los registros para cada campo
    *-- y configuro las propiedades de cada TextBox
    THISFORM.InsertarReg(lcDbfOrigen,lcDbfAuto,"AC_COMPANIA","CompanyName")
    THISFORM.txtCompania.AUTOCOMPLETE = 1
    THISFORM.txtCompania.AUTOCOMPSOURCE = "AC_COMPANIA"
    THISFORM.txtCompania.AUTOCOMPTABLE = lcDbfAuto
 
    THISFORM.InsertarReg(lcDbfOrigen,lcDbfAuto,"AC_CONTACTO","ContactName")
    THISFORM.txtContacto.AUTOCOMPLETE = 1
    THISFORM.txtContacto.AUTOCOMPSOURCE = "AC_CONTACTO"
    THISFORM.txtContacto.AUTOCOMPTABLE = lcDbfAuto
 
    THISFORM.InsertarReg(lcDbfOrigen,lcDbfAuto,"AC_CIUDAD","City")
    THISFORM.txtCiudad.AUTOCOMPLETE = 1
    THISFORM.txtCiudad.AUTOCOMPSOURCE = "AC_CIUDAD"
    THISFORM.txtCiudad.AUTOCOMPTABLE = lcDbfAuto
 
    THISFORM.InsertarReg(lcDbfOrigen, lcDbfAuto,"AC_PAIS","Country")
    THISFORM.txtPais.AUTOCOMPLETE = 1
    THISFORM.txtPais.AUTOCOMPSOURCE = "AC_PAIS"
    THISFORM.txtPais.AUTOCOMPTABLE = lcDbfAuto
  ENDPROC
 
  PROCEDURE CrearTablaAutoComp(tcDbfAuto)
    *-- Crea mi tabla Autocompletar
    SET SAFETY OFF
    CREATE TABLE (tcDbfAuto) FREE ;
      (SOURCE C(20), DATA C(254), COUNT I, Weight I, ;
      Created T, UPDATED T, USER M)
    *-- Indexo la tabla
    INDEX ON UPPER(SOURCE + LEFT(DATA,30)) + PADL(COUNT,8) ;
      TAG DATA FOR NOT DELETED()
    *-- Cierro tabla
    USE IN SELECT(JUSTSTEM(tcDbfAuto))
  ENDPROC
 
  PROCEDURE InsertarReg(tcDbfOrigen, tcDbfAuto, tcSource, tcData)
    *-- Inserto los registros a la tabla Autocompletar
    INSERT INTO (tcDbfAuto) ;
      SELECT DISTINCT UPPER(tcSource) AS SOURCE, ;
      EVALUATE(tcData) AS DATA, 0 AS COUNT, 0 AS Weight, ;
      DATETIME() AS Created, DATETIME() AS UPDATED, .F. AS USER ;
      FROM (tcDbfOrigen)
    *-- Cierro tablas
    USE IN SELECT(JUSTSTEM(tcDbfAuto))
    USE IN SELECT(JUSTSTEM(tcDbfOrigen))
  ENDPROC
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