Twbrowse con multiselecion

Re:

Postby ACC69 » Tue Jan 31, 2012 9:40 pm

Francisco Horta wrote:Wanderson,
yo uso wbrowse de HDC y me va bien con dbf o con arrays, como comenta Antonio uso campos logicos y con eso distingo mis selecciones,

Image

salu2
paco



Buenas tardes Francisco Horta, como esta, un favor, como hace en tu codigo de marcar todos y desmarcar todos los checkbox, uso la clase de Hernan Ceccarelli,actualmente lo tengo definido en marcar uno por uno, pero como marcar todos con multiseleccion, porfas. Si me podria ayudar con ese detalle y si me funcionaria igual con arrays?

Buenas tardes a todos los ingenieros,alguien ha realizado rutina de marcar y desmarcar registros desde control de Checkbox,que no sea desde Button? Uso la clase de Hernan Ceccarelli,actualmente solo tengo la rutina de marcar uno por uno en cada linea, pero quisiera desde encabezado , desde control de checkbox, marcar y desmarcar registros, al darle click,algo parecido como el correo de MSN, cuando estamos leyendo nuestro correo en msn, y le damos click, a marcar todos a borrar,espero haberme explicado.

Gracias y saludos

Atte: Adrian C. C.
acc69@hotmail.com
Gracias , le envio saludos

Atte: Adrian C. C.

acc69@hotmail.com
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Twbrowse con multiselecion

Postby jbrita » Wed Feb 01, 2012 1:54 am

Amigo yo lo hago asi

DEFINE BUTTON OF oBar RESOURCE "Bar_Ord" NOBORDER;
TOOLTIP "Seleccionar Todas" ACTION SeleccionTodas(oLbx,aSel)


@ 0, 0 LISTBOX oLbx ;
FIELDS Desp_Mar(aX),Date2Txt((cRec_Desp)->Fec_Viaj),Str((cRec_Desp)->Gde_Carg,10),(cRec_Desp)->Nom_Chofe,(cRec_Desp)->Pat_Cami,TRANSFORM((cRec_Desp)->Pes_Cami,"99,999,999.99"),Str((cRec_Desp)->Cod_Carg,3),Str((cRec_Desp)->Cod_Viaj,3),(cRec_Desp)->Det_Viaj;
HEADERS "DESPACHAR","Fec.Viaje","Guia","Nombre del Chofer","Patente","Peso","Carga","Cod_Viaje","Origen/Destino";
SIZES 90,68,80,200,60,80,40,55,200;
OF oWChld ALIAS (cRec_Desp)->(Alias()) UPDATE FONT oVentPrinc:oFont



STAT FUNC SeleccionTodas(oLbx,aSel)
*--------------------------------------
LOCAL x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))

IF len(aSel) > 0
(cRec_Desp)->(DBGOTOP())
DO WHILE !(cRec_Desp)->(Eof())
x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))
ADel(aSel,x)
ASize(aSel,Len(aSel)-1)

(cRec_Desp)->(DbSkip())
ENDDO
(cRec_Desp)->(DBGOTOP())

ELSE
(cRec_Desp)->(DBGOTOP())
DO WHILE !(cRec_Desp)->(Eof())
AAdd(aSel,Round((cRec_Desp)->(Recno() ),0))
(cRec_Desp)->(DbSkip())
ENDDO
(cRec_Desp)->(DBGOTOP())
Endif
oLbx:Refresh()

oLbx:DrawSelect()
oLbx:SetFocus()

RETURN NIL


Espero q te sirva
saludos
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: Twbrowse con multiselecion

Postby ACC69 » Wed Feb 01, 2012 3:00 pm

jbrita wrote:Amigo yo lo hago asi

DEFINE BUTTON OF oBar RESOURCE "Bar_Ord" NOBORDER;
TOOLTIP "Seleccionar Todas" ACTION SeleccionTodas(oLbx,aSel)


@ 0, 0 LISTBOX oLbx ;
FIELDS Desp_Mar(aX),Date2Txt((cRec_Desp)->Fec_Viaj),Str((cRec_Desp)->Gde_Carg,10),(cRec_Desp)->Nom_Chofe,(cRec_Desp)->Pat_Cami,TRANSFORM((cRec_Desp)->Pes_Cami,"99,999,999.99"),Str((cRec_Desp)->Cod_Carg,3),Str((cRec_Desp)->Cod_Viaj,3),(cRec_Desp)->Det_Viaj;
HEADERS "DESPACHAR","Fec.Viaje","Guia","Nombre del Chofer","Patente","Peso","Carga","Cod_Viaje","Origen/Destino";
SIZES 90,68,80,200,60,80,40,55,200;
OF oWChld ALIAS (cRec_Desp)->(Alias()) UPDATE FONT oVentPrinc:oFont



STAT FUNC SeleccionTodas(oLbx,aSel)
*--------------------------------------
LOCAL x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))

IF len(aSel) > 0
(cRec_Desp)->(DBGOTOP())
DO WHILE !(cRec_Desp)->(Eof())
x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))
ADel(aSel,x)
ASize(aSel,Len(aSel)-1)

(cRec_Desp)->(DbSkip())
ENDDO
(cRec_Desp)->(DBGOTOP())

ELSE
(cRec_Desp)->(DBGOTOP())
DO WHILE !(cRec_Desp)->(Eof())
AAdd(aSel,Round((cRec_Desp)->(Recno() ),0))
(cRec_Desp)->(DbSkip())
ENDDO
(cRec_Desp)->(DBGOTOP())
Endif
oLbx:Refresh()

oLbx:DrawSelect()
oLbx:SetFocus()

RETURN NIL


Espero q te sirva
saludos



Hola buenos dias, gracias JBRITA, pero funcionara desde un encabezado con el control de Checkbox? marcar y desmarcar, parecido a la imagen contenido del Ing Francisco Horta, pero a diferencia que lo tiene con el control de button, yo lo que quiero es con checkbox, al darle click, no se si me haya explicado bien, de todas maneras probare, aunque no veo, si es falso o verdadero la condicion, que quiero marcar y desmarcar, ya que tengo un campo llogico, y al marcar todos en la pantalla principal, que me marque al darle click desde encabezado de checkbox
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Twbrowse con multiselecion

Postby jbrita » Thu Feb 02, 2012 2:39 am

bueno aca va de nuevo:
LOCAL aX[6]
aSel:= {}

aX[1]:=LoadBitMap(GetResources(),"C_ChF") //este es el cudradito
aX[2]:=LoadBitMap(GetResources(),"C_Azl") // aca esta el cuadradito pero con tick


DEFINE BUTTON OF oBar RESOURCE "Bar_Ord" NOBORDER;
TOOLTIP "Seleccionar Todas" ACTION SeleccionTodas(oLbx,aSel)
// cuando entra al browse pone toda el browse en cuadradito con la funcion desp_mar
@ 0, 0 LISTBOX oLbx ;
FIELDS Desp_Mar(aX),(cRec_Desp)->Det_Viaj;
HEADERS "DESPACHAR,"Origen/Destino";
SIZES 90,200;
OF oWChld ALIAS (cRec_Desp)->(Alias()) UPDATE FONT oVentPrinc:oFont

oLbx:aJustify :={.t.,.t.,.t.,.f.,.t.,.f.,.t.,.t.,.f.}
oLbx:bLDblClick :={|| Asigna_Ven(oLbx,aSel)}



STAT FUNC Desp_Mar(aX) // Marca 'check box'
LOCAL n:=1
n:=IF(AScan(aSel,(cRec_Desp)->(Recno()))<>0,2,n)

RETURN (aX[n])



STAT FUNC Asigna_Ven(oLbx,aSel) // Selecciona registro
LOCAL x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))

IF x<>0
ADel(aSel,x)
ASize(aSel,Len(aSel)-1)
ELSE
AAdd(aSel,Round((cRec_Desp)->(Recno() ),0))

ENDIF
oLbx:DrawSelect()
oLbx:SetFocus()
RETURN NIL

STAT FUNC SeleccionTodas(oLbx,aSel)
*--------------------------------------
LOCAL x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))

IF len(aSel) > 0
* aSel:={}
(cRec_Desp)->(DBGOTOP())
DO WHILE !(cRec_Desp)->(Eof())
x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))
ADel(aSel,x)
ASize(aSel,Len(aSel)-1)

(cRec_Desp)->(DbSkip())
ENDDO
(cRec_Desp)->(DBGOTOP())

ELSE
(cRec_Desp)->(DBGOTOP())
DO WHILE !(cRec_Desp)->(Eof())
AAdd(aSel,Round((cRec_Desp)->(Recno() ),0))
(cRec_Desp)->(DbSkip())
ENDDO
(cRec_Desp)->(DBGOTOP())
Endif
oLbx:Refresh()

oLbx:DrawSelect()
oLbx:SetFocus()

RETURN NIL
jbrita
 
Posts: 486
Joined: Mon Jan 16, 2006 3:42 pm

Re: Twbrowse con multiselecion

Postby ACC69 » Fri Feb 03, 2012 9:33 pm

jbrita wrote:bueno aca va de nuevo:
LOCAL aX[6]
aSel:= {}

aX[1]:=LoadBitMap(GetResources(),"C_ChF") //este es el cudradito
aX[2]:=LoadBitMap(GetResources(),"C_Azl") // aca esta el cuadradito pero con tick


DEFINE BUTTON OF oBar RESOURCE "Bar_Ord" NOBORDER;
TOOLTIP "Seleccionar Todas" ACTION SeleccionTodas(oLbx,aSel)
// cuando entra al browse pone toda el browse en cuadradito con la funcion desp_mar
@ 0, 0 LISTBOX oLbx ;
FIELDS Desp_Mar(aX),(cRec_Desp)->Det_Viaj;
HEADERS "DESPACHAR,"Origen/Destino";
SIZES 90,200;
OF oWChld ALIAS (cRec_Desp)->(Alias()) UPDATE FONT oVentPrinc:oFont

oLbx:aJustify :={.t.,.t.,.t.,.f.,.t.,.f.,.t.,.t.,.f.}
oLbx:bLDblClick :={|| Asigna_Ven(oLbx,aSel)}



STAT FUNC Desp_Mar(aX) // Marca 'check box'
LOCAL n:=1
n:=IF(AScan(aSel,(cRec_Desp)->(Recno()))<>0,2,n)

RETURN (aX[n])



STAT FUNC Asigna_Ven(oLbx,aSel) // Selecciona registro
LOCAL x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))

IF x<>0
ADel(aSel,x)
ASize(aSel,Len(aSel)-1)
ELSE
AAdd(aSel,Round((cRec_Desp)->(Recno() ),0))

ENDIF
oLbx:DrawSelect()
oLbx:SetFocus()
RETURN NIL

STAT FUNC SeleccionTodas(oLbx,aSel)
*--------------------------------------
LOCAL x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))

IF len(aSel) > 0
* aSel:={}
(cRec_Desp)->(DBGOTOP())
DO WHILE !(cRec_Desp)->(Eof())
x:=AScan(aSel,Round((cRec_Desp)->(Recno()),0))
ADel(aSel,x)
ASize(aSel,Len(aSel)-1)

(cRec_Desp)->(DbSkip())
ENDDO
(cRec_Desp)->(DBGOTOP())

ELSE
(cRec_Desp)->(DBGOTOP())
DO WHILE !(cRec_Desp)->(Eof())
AAdd(aSel,Round((cRec_Desp)->(Recno() ),0))
(cRec_Desp)->(DbSkip())
ENDDO
(cRec_Desp)->(DBGOTOP())
Endif
oLbx:Refresh()

oLbx:DrawSelect()
oLbx:SetFocus()

RETURN NIL



Hola JBRITA, gracias por responder, y mil disculpas, por no responder, estaba fuera de la ciudad, y pues ya mas o menos me esta dando una idea de implementarlo, solo que hay un detalle que me surgio la duda, se podra seleccionar los registros unicamente estando en la pantalla presente y si le doy siguiente pantalla, al igual se podra selecccionar y no seleccionar ALL, todos de un jalon, unicamente los registros, que esten presente en la pantalla, expero haberme explicado, pero con eso ya mas o menos me esta dando la idea.

Gracias y que tengan un excelente fin de semana, que me pondre a aplicarlo a mi sistema .

Saludos .

Atte: Adrian C. C.

acc69@hotmail.com
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Twbrowse con multiselecion

Postby joseluisysturiz » Fri Feb 03, 2012 11:23 pm

Es mi humilde comentario, con xBrowse es tan facil hacer lo que quieres, porque no usarlo si ya es casi nativo de FWH.? saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Twbrowse con multiselecion

Postby Daniel Garcia-Gil » Fri Feb 03, 2012 11:30 pm

joseluisysturiz wrote:porque no usarlo si ya es casi nativo de FWH

Es totalmente nativo de fivewin, no lo encontraras en ninguna otra GUI :D
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Twbrowse con multiselecion

Postby joseluisysturiz » Sat Feb 04, 2012 6:18 am

Daniel Garcia-Gil wrote:
joseluisysturiz wrote:porque no usarlo si ya es casi nativo de FWH

Es totalmente nativo de fivewin, no lo encontraras en ninguna otra GUI :D


Saludos Daniel, gracias por dar por aclarado mi comentario, reitero, xBrowse hace todo eso y mas y es nativa de FWH, saludos... :lol:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Twbrowse con multiselecion

Postby ACC69 » Tue Feb 07, 2012 6:02 pm

joseluisysturiz wrote:
Daniel Garcia-Gil wrote:
joseluisysturiz wrote:porque no usarlo si ya es casi nativo de FWH

Es totalmente nativo de fivewin, no lo encontraras en ninguna otra GUI :D


Saludos Daniel, gracias por dar por aclarado mi comentario, reitero, xBrowse hace todo eso y mas y es nativa de FWH, saludos... :lol:



Gracias Daniel y Jose Luis, pero eso me llevaria tiempo, cambiar todo mi codigo fuente y la forma como llamo a otro browse,para mostrar datos de movimientos, he visto que el XBrowse, cada dia se va siendo mas robusto y elegante, un dia que me de tiempo, hare, pruebas y ejemplos, de todas maneras muchas gracias a los dos.

Saludos y buen dia a todos .

Atte: Adrian C. C.
acc69@hotmail.com
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 69 guests