xBrowse Multiselect == Twbrowse H.C.

Post Reply
User avatar
Ale SB
Posts: 248
Joined: Wed Jan 11, 2006 11:30 am
Location: Campo Grande-MS / Brasil

xBrowse Multiselect == Twbrowse H.C.

Post by Ale SB »

Necessito trabjar com el xBrowse == ao twbrowse de Hernan; explico:

Quero el xbrowse com MultiSelec e Bitmaps, assim:

Image

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
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
User avatar
miragerr
Posts: 140
Joined: Tue Oct 11, 2005 2:36 am
Location: Brasil

Post 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
Jackson Douglas C. Brito
Boa Vista - RR - Brasil
FWH 12.09 Last Build
xHarbour Free
UESTUDIO
SQLRDD
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post 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 ) }          

User avatar
Ale SB
Posts: 248
Joined: Wed Jan 11, 2006 11:30 am
Location: Campo Grande-MS / Brasil

Post 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
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Un saludo,
Manuel

xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
User avatar
Ale SB
Posts: 248
Joined: Wed Jan 11, 2006 11:30 am
Location: Campo Grande-MS / Brasil

Post by Ale SB »

Perfect Manuel, Gracias,

Muito bom este ejemplo.

Saluds Ale
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Post by Otto »

Hello Manuel,
Good sample - may I put your sample on:

http://fwcodesnips.com

Regards,
Otto
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Re: xBrowse Multiselect == Twbrowse H.C.

Post by Manuel Aranda »

Muy buenas a todos:

¿ Alguien conserva por ahí el fichero ejemplo.zip ?

Lo he perdido y me gustaría recuperarlo.

Gracias.
Un saludo,
Manuel

xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Post Reply