Page 1 of 1
Pregunta: xBrowse: ¿es posible ocultar filas según condición
Posted: Tue Sep 23, 2014 10:15 am
by fernandomoralesdr
Hola.
Quisiera saber si es posible ocultar filas de un browse basándose en una condición y cómo tendría que hacerlo.
Gracias por adelantado.
Re: Pregunta: xBrowse: ¿es posible ocultar filas según condición
Posted: Tue Sep 23, 2014 3:05 pm
by VitalJavier
Que tal, yo para ocultar una columna lo tengo así :
oBrow:aCols[01]:Hide()
ya con algunos if o case, podrías ocultar algunas columnas
Espero y te sirva.
Re: Pregunta: xBrowse: ¿es posible ocultar filas según condición
Posted: Tue Sep 23, 2014 4:20 pm
by joseluisysturiz
Con que estas alimentando el xbrowse, array, dbf, ado, mysq..? ya que dependiendo de que, podrias usar condicional al crean por ejemplo en mysql el qry, y mostraria las filas que cumplan la condicion que quieras. saludos...
Re: Pregunta: xBrowse: ¿es posible ocultar filas según condición
Posted: Tue Sep 23, 2014 4:22 pm
by joseluisysturiz
VitalJavier wrote:Que tal, yo para ocultar una columna lo tengo así :
oBrow:aCols[01]:Hide()
ya con algunos if o case, podrías ocultar algunas columnas
Espero y te sirva.
Asi es para columnas, pero el colega quiere es FILAS, es decir los renglones o registros, saludos...
Re: Pregunta: xBrowse: ¿es posible ocultar filas según condición
Posted: Tue Sep 23, 2014 7:29 pm
by VitalJavier
jejejeje tienes razón, son filas y no culumnas
Resuelto con índice temporal
Posted: Wed Sep 24, 2014 8:36 am
by fernandomoralesdr
Hola.
Lo he resuelto creando un índice temporal. Aquí dejo el código por si a alguien le es útil. Sobre un archivo con 25.000 registros ha ido como una moto.
El díalogo: un browse y una casilla de búsqueda.
El archivo: "CLIENTES".
El TAG: "CLIENTES"
El índice: "NOMBRE"
La búsqueda: sobre el campo "NOMBRE".
*-----------------------
Function ConsCltes(nCod)
*-----------------------
local oDlg, oBrw, oCadena
local cCadena := space(40)
local fFile1
local lFiltro := .f.
*---------------------------------------------------------------------------
if ! OpenDbf("CLIENTES", {"CLIENTES"}, (fFile1 := GetNewAlias()), .T.) ; return NIL ; end if
(fFile1)->(ordSetFocus("NOMBRE"))
*---------------------------------------------------------------------------
DEFINE DIALOG oDlg RESOURCE "DLG_BUSQUEDA" TITLE "Buscar"
*------------------------------------------------
REDEFINE XBROWSE oBrw ID 101 OF oDlg ALIAS (fFile1) ;
FIELDS (fFile1)->CODIGO, ota((fFile1)->NOMBRE) ;
HEADERS ota("Código"), "Nombre" ;
SIZES 64, 800 ;
ON DBLCLICK (nCod := (fFile1)->CODIGO, oDlg:End())
oBrw:bKeyDown := {|nKey, nFlags| if(nKey == VK_F12, ShowColSizes(oBrw), NIL),;
If(nKey == VK_RETURN, (nCod := (fFile1)->CODIGO, oDlg:End()), NIL)}
#include "xbrw.ch"
*------------------------------------------------
REDEFINE GET oCadena VAR cCadena ID 102 OF oDlg ;
VALID EVAL ({|| if(empty(cCadena), (oBrw:SetFocus(), .t.),;
((fFile1)->(ordCondSet("at(rtrim(cCadena), (fFile1)->NOMBRE) > 0", {|| at(rtrim(cCadena), (fFile1)->NOMBRE) > 0},,,,, RECNO(),,,,)),;
(fFile1)->(ordCreate(, "FILTRO", "(fFile1)->NOMBRE", {|| (fFile1)->NOMBRE},)),;
(fFile1)->(ordSetFocus("FILTRO")),;
(fFile1)->(dbGoTop()),;
oBrw:refresh(), oBrw:SetFocus(), lFiltro := .t., .T.))})
ACTIVATE DIALOG oDlg CENTERED ON PAINT (oBrw:goTop(), oCadena:SetFocus()) ;
VALID (if(lFiltro, (fFile1)->(ordDestroy("FILTRO")), NIL),;
.t.)
(fFile1)->(dbCloseArea())
return NIL
Re: Pregunta: xBrowse: ¿es posible ocultar filas según condición
Posted: Wed Sep 24, 2014 2:37 pm
by MarioG
Fernando; solo de curioso
Probaste el filtro en una red?. Como responde?
gracias
Re: Pregunta: xBrowse: ¿es posible ocultar filas según condición
Posted: Wed Sep 24, 2014 3:08 pm
by fernandomoralesdr
Hola.
Falta probarlo en red, aunque precisamente ese era el problema, que estaba usando dbSetFilter() y se ralentizaba a veces bastante. Espero que funcione bien y mejor; mantendré informado en cuanto lo haya instalado en el usuario.