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... :shock:

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... :shock:

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.