Filtrar en Grilla

80 views
Skip to first unread message

Rubén Dario Lezcano Salinas

unread,
Jan 27, 2015, 6:18:12 AM1/27/15
to publice...@googlegroups.com
Buenos Días

Cómo podría filtrar en una grilla según voy escribiendo en un texbox.

La grilla se carga de una consulta
SELECT pedidos
thisform.pageframe1.page1.gridordenable1.RecordSource='pedidos'

Saludos

panchimancuso

unread,
Jan 27, 2015, 6:27:11 AM1/27/15
to publice...@googlegroups.com
PRUEBAS ESTO EN EL KEYPRESS DEL TXT A BUSCAR
INGRESAS UNA PARTE DEL TEXTO A BUSCAR Y LE DAS ENTER

APE=UPPER(ALLTRIM(THIS.VALUE))
IF LASTKEY()=13
NODEFAULT
SELE Ccustomer
THISFORM.gridclientes.RECORDSOURCE=''
SELE cli_nom as Nombre, cli_dom as Domicilio , cli_tel as teléfono ,cli_ciu as ciudad ,cli_soc as  Socio  FROM Ccustomer WHERE Cli_nom LIKE '%&APE%' INTO CURSOR Capellido 
go top
WITH thisform.gridclientes
    .column1.Width = 220
.column2.Width = 220
.column3.Width = 80
.column4.Width = 80
.column5.Width = 80
ENDWITH
THISFORM.gridclientes.RECORDSOURCE='Capellido'
THISFORM.gridclientes.Refresh()
Thisform.gridclientes.Column1.Text1.Setfocus()
THISFORM.GRIDCLIENTES.VISIBLE=.T.
ENDIF

SALUDOS

Rubén Dario Lezcano Salinas

unread,
Jan 27, 2015, 6:48:51 AM1/27/15
to publice...@googlegroups.com
Guauuu Excelente amigo @panchimancuso, y podría ser mientras se escribe que filtre?, es eso lo que me pide mi jefe

Saludos
--

Rubén Lezcano

panchimancuso

unread,
Jan 27, 2015, 7:03:32 AM1/27/15
to publice...@googlegroups.com
en el interactivechange del txt a buscar pon algo asi 

p=Alltrim(thisform.pageframe1.page1.text1.Value)
Select * From cli000 Where  CLI_nom LIKE '%&p%' Order By cli_nom Into Cursor cur_clivee
With Thisform.pageframe1.page1.grid1
***-------------------------------Para modificar ...................................
.RecordSource ="cur_clivee" && Tabla
.ColumnCount = 4 && Cantidad de columna
.AllowCellSelection = .F. && Para seleccionar todoclicodigo
.GridLines = 3 && Linea deshabilitada
.DeleteMark = .F. && cliente p/ borrar deshabilitada
.FontName = "Tahoma" && Tipo de letra
.RowHeight = 30 && Tamaño entre registro
.AllowHeaderSizing = .T. && Tamaño de la cabecera
.GridLineColor = Rgb(223,223,255)
.FontSize = 8
.Column1.Width = 80 && Tamaño
* .Column2.ControlSource ="CONCODIGO" && Campo
.Column1.header1.Caption = "Código" && Título
.Column1.header1.ForeColor = Rgb(0,0,128) && Color de la letra del título
*.Column2.header1.FontBold = .T. && Título en negrita
.Column1.header1.Alignment = 2 && Alineamiento del título
.Column1.Alignment = 2

.Column2.Width = 180
* .Column2.ControlSource ="CONDESCRIP"
.Column2.header1.Caption = "Apellido"
.Column2.header1.ForeColor = Rgb(0,0,128)
*.Colum2.header1.FontBold = .T.
.Column2.header1.Alignment = 2
.Column2.Alignment = 2

.Column3.Width = 180
* .Column3.ControlSource ="condiaplaz"
.Column3.header1.Caption = "Domicilio"
.Column3.header1.ForeColor = Rgb(0,0,128)
*.Colum3.header1.FontBold = .T.
.Column3.header1.Alignment = 2
.Column3.Alignment = 2
.Column4.Width = 140 && Tamaño
.Column4.ControlSource ="cli_tel" && Campo
.Column4.header1.Caption = "Teléfono" && Título
.Column4.header1.ForeColor = Rgb(0,0,128) && Color de la letra del título
*.Column2.header1.FontBold = .T. && Título en negrita
.Column4.header1.Alignment = 2 && Alineamiento del título
.Column4.Alignment = 2

   *.SetAll("DynamicBackColor", ;
   **"IIF(MOD(RECNO( ), 2)=0, Rgb(255,128,128) ;
   *, RGB(250,250,250))", "Column")  && Alternate white and green records

.RowHeight = 30
*.AutoFit    

endwith

ANDA PERFECTO ASI AMIGO SUERTE


On Tuesday, January 27, 2015 at 8:18:12 AM UTC-3, Rubén Dario Lezcano Salinas wrote:

Ricardo Pina

unread,
Jan 27, 2015, 7:19:04 AM1/27/15
to Grupo VFP
Hola Ruben Dario

Yo le diría a tu jefe que es conveniente ir posicionandose en la grilla y no filtrando  dentro de un interactive
Y si no esta de acuerdo que se busque otro programador, esto último no se lo digas , jaj

Saludos

--
            

                   Ricardo Pina

Desarrollo y Servicios Informáticos

                  Profesionales
               www.dsip.com.ar

 

 

Rubén Dario Lezcano Salinas

unread,
Jan 27, 2015, 7:54:54 AM1/27/15
to publice...@googlegroups.com
He porbado con esto

SELECT p.id, p.pedidokey, p.riqi, p.fecha_c, p.kehuID, p.name, p.yewuyuanID, p.py, p.jinez, p.beizhu, p.bianhao, p.shengfen, p.chengshi, p.youbian, po.color, po.color2 ;
FROM pe p ;
left JOIN po ON p.pedidokey=po.pedidokey ;
into cursor consupedidos
SET FILTER TO 
SET FILTER TO consupedidos.name= alltrim(thisform.pageframe1.page1.text31.value) 
THISFORM.pageframe1.page1.gridordenable1.RECORDSOURCE='consupedidos'
thisform.pageframe1.page1.gridordenable1.refresh 

Y va super bien. Lo único que no distingue mayuscula y minuscula.

También sería bueno que busque por palabras que contengan lo que se busca. Es decir 
Ruben Dario
Pedro  Dario
Juan Dario

Y al escribir "dario" aparezcan los tres

Saludos

integral

unread,
Jan 27, 2015, 12:01:03 PM1/27/15
to publice...@googlegroups.com
Estimado Amigo :

Conozco 2 formas de hacer la busqueda con filtro, como veo que estas utilizando el SELECT
 
Aqui un ejemplo de como realizo el filtro de busqueda :

       SELECT nrocontac, aplica, ocompra, fecha, hora, obs, rpta, ;
       FROM   seguro ;
  WHERE  EMPTY(rpta) .AND. ALLTRIM(This.Value) $ ALLTRIM(SUBSTR(po_ocompra,1,LEN(ALLTRIM(This.Value)))) ;
       ORDER BY po_ocompra DESC ;
       INTO CURSOR Cur_Resultado READWRITE

Espero te ayude el ejemplo.

Saludos,

INTEGRAL

Rubén Dario Lezcano Salinas

unread,
Jan 28, 2015, 3:48:59 AM1/28/15
to publice...@googlegroups.com
Ok muchas gracias Integral

Saludos amigo
--

Rubén Lezcano

Rubén Dario Lezcano Salinas

unread,
Jan 28, 2015, 3:55:08 AM1/28/15
to publice...@googlegroups.com
@Integral tu sabrías como seleccionar dos o mas filas de una grilla 
--

Rubén Lezcano

integral

unread,
Jan 28, 2015, 9:29:27 AM1/28/15
to publice...@googlegroups.com
Estimado Amigo RUBEN :

Para que funcione la seleccion multiple deberas un insertar un control CHECKBOX debes tener presente lo siguiiente :

1) Crear dicho control en el GRID

WITH Thisform.Grid_Filtro.Column1                            && Se agrega a la columna 1 el CheckBox
.RemoveObject("Text1")
.AddObject("Check1","Checkbox")
.CurrentControl = "Check1"
.Check1.Caption = " "
.Check1.Visible = .T.
.Sparse = .F.
.Alignment = 2
ENDWITH

2 ) Establecer el campo logico que este enlazado al Control CheckBox

SELECT .F. AS seleccion, nrocontac, po_aplica, po_ocompra, fecha, hora, obs, rpta, numfilepo ; ...

3) Grabas en el Cursor o Tablas los registros que vas seleccionando en un metodo

IF USED("Cur_Resulta") .
  SELECT Cur_Resulta 
  REPLACE selecto WITH Thisform.Grid_Filtro.Column1.check1.value
ENDIF

4)  Rutina que Llama al Metodo asociado al control CheckBox 
BINDEVENT(Thisform.Grid_Filtro.column1.Check1,"InteractiveChange",Thisform,"Click_Checkbox")


Y aun hay mas caracterisitcas que le puedes crear, pero para empezar te he expuesto los ejemplos descritos.

PD : SI BUSCAS EN SAN GOOGLE ENCONTRAS ALGUNOS EJEMPLOS YA TERMINADOS...PARA QUE LOS REVISES  

Saludos,

INTEGRAL
(Lima-Perú)

El martes, 27 de enero de 2015, 6:18:12 (UTC-5), Rubén Dario Lezcano Salinas escribió:
Reply all
Reply to author
Forward
0 new messages