Page 1 of 1
xBrowse Multiselect == Twbrowse H.C.
Posted: Mon May 19, 2008 6:15 pm
by Ale SB
Necessito trabjar com el xBrowse == ao twbrowse de Hernan; explico:
Quero el xbrowse com MultiSelec e Bitmaps, assim:
Mas, meu bitmap no esta ligado a nenhuno campo del DBF, es apenas um Bitmap, q basta uno click com el mouse para mudar el Bmp e selecionar el Linha.
E me retorna uno valor, para yo saber quais linhas estao selecionadas.
Es possible com xbrowse, isto ???
Es possible me apresentar uno exemplo simple ???
saludos Ale
Posted: Tue May 20, 2008 4:54 pm
by miragerr
Tambem gostaria de saber como fazer isso, uso a TSBROWSE, mais já estou mudando todos os MEUS BROWSEs para XBROWSE, e gostaria de ver esta possibilidade
Fico no aguardo
Posted: Tue May 20, 2008 5:43 pm
by Manuel Aranda
Con XBrowse se puede hacer. Os "entresaco" el código que utilizo. Al clickar
con el botón derecho del ratón el registro se vuelve de color amarillo y se activa
un icono a su izquierda. Igualmente el array aSeleccion contiene algunos datos del registro
y el array aSele contiene el número de registro
Saludos,
Manuel
Code: Select all
..................
STATIC aSeleccion,aSele
.................
Local oLbx
//
oLbx := TXBrowse():New(oDlg)
oLbx:CreateFromResource(200)
oLbx:nFreeze := 4
oLbx:bClrStd := { || {CLR_BLACK,SelColor2(EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre,aSeleccion ),CLR_WHITE } }
//
oCol := oLbx:AddCol()
oCol:AddResource("LEVELB")
oCol:AddResource("LEVELR")
oCol:bBmpData := { || IIF(ASCAN(aSeleccion,EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre)=0,1,2 ) }
oCol:cHeader := "S"
AADD(aCols,1)
//
oCol := oLbx:AddCol()
oCol:bStrData := { || EMPRESAS->Numcliente}
oCol:cHeader := "Núm.")
oCol:oDataFont := oFont1
AADD(aCols,2)
//
oCol := oLbx:AddCol()
oCol:bStrData := { || SUBSTR(EMPRESAS->Nombre,1,35)}
oCol:cHeader := " Nombre o razón social"
oCol:oDataFont := oFont1
AADD(aCols,3)
.....................................
.....................................
//
for nFor := 1 to len(aCols)
oLbx:aCols[ nFor ]:blDClickData := {|| (Empresas(oLbx,"Ver/Modificar datos",.F.,nSerie),oLbx:Refresh()) }
oLbx:aCols[ nFor ]:bRClickData := {|| (ESeleccionar(oLbx),oLbx:refresh(),IIF(LEN(aSeleccion) > 0,oBtn7:enable(),oBtn7:disable()) ) }
oLbx:aCols[ nFor ]:bRClickHeader := {|r,c,f,o| NIL }
next
//
**********************************
STATIC FUNCTION ESELECCIONAR(oLbx)
**********************************
Local nPos
Local nPos2
nPos := AScan(aSeleccion, EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre)
nPos2:= AScan(aSele, EMPRESAS->(Recno()))
//
IF nPos # 0 // quita la marca si ya la tiene
ADel(aSeleccion, nPos)
ASize(aSeleccion, Len(aSeleccion)-1)
ELSE
AAdd(aSeleccion, EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre) // pone la marca
ENDIF
//
IF nPos2 # 0 // quita la marca si ya la tiene
ADel(aSele, nPos)
ASize(aSele, Len(aSele)-1)
ELSE
AAdd(aSele, EMPRESAS->(Recno())) // pone la marca
ENDIF
//
RETURN NIL
*************************************
FUNCTION SELCOLOR2( cItem, aSeleccion )
*************************************
local nColor := CLR_WHITE
local nPos
nPos := AScan(aSeleccion, cItem)
//
IF nPos # 0
cItem = aSeleccion [nPos]
nColor = CLR_YELLOW
ENDIF
//
RETURN nColor
Las mismas funciones son válidas para un LISTBOX
Code: Select all
REDEFINE LISTBOX oLbx ;
FIELDS IIF(ASCAN(aSeleccion,EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre)=0," ",aLevel[ 2 ] ),;
" "+EMPRESAS->NumCliente+" ",;
" "+EMPRESAS->Nombre;
FIELDSIZES 13,40,250;
HEADERS "S"," Núm."," Nombre o Razón Social");
ID 200;
FONT oFont1;
COLOR rgb(0,0,0),rgb(255,234,175);
ON RIGHT CLICK (ESeleccionar(oLbx),oLbx:refresh(),IIF(LEN(aSeleccion) > 0,oBtn7:enable(),oBtn7:disable()) );
ON LEFT DBLCLICK Empresas(oLbx,"Ver/Modificar datos",.F.,nSerie); // Al doble click se editar el registro
OF oDlg
oLbx:nClrText := { || SelColor(EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre,aSeleccion ) }
oLbx:nClrPane := { || SelColor3(EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre,aSeleccion ) }
oLbx:nClrForeFocus:= { || SelColor2(EMPRESAS->NumCliente+"-"+EMPRESAS->Nombre,aSeleccion ) }
Posted: Wed May 28, 2008 3:11 pm
by Ale SB
Gracias Manuel por el ejemplo, mas, ainda no estoy conseguindo montar el Prg.
Es possible postar uno ejemplo, na Pratica com uno DBF e uno EXE, para un mejor entendimento ???
Gracias pela ajuda.
Saludos Ale
Posted: Wed May 28, 2008 8:40 pm
by Manuel Aranda
Posted: Wed May 28, 2008 11:48 pm
by Ale SB
Perfect Manuel, Gracias,
Muito bom este ejemplo.
Saluds Ale
Posted: Thu May 29, 2008 7:32 am
by Otto
Hello Manuel,
Good sample - may I put your sample on:
http://fwcodesnips.com
Regards,
Otto
Re: xBrowse Multiselect == Twbrowse H.C.
Posted: Thu Jan 26, 2012 10:22 pm
by Manuel Aranda
Muy buenas a todos:
¿ Alguien conserva por ahí el fichero ejemplo.zip ?
Lo he perdido y me gustaría recuperarlo.
Gracias.