XBROWSE RESTRINGIR MULTISELECT

XBROWSE RESTRINGIR MULTISELECT

Postby Ariel » Sat Oct 20, 2012 12:49 pm

hola a todos,
alguien sabe como puedo controlar la multiseleccion en un xbrowse con :

oBrw:nMarqueeStyle:= MARQSTYLE_HIGHLWIN7
oBrw:lMultiSelect := .t.

x ejemplo, que no pueda elegir mas de 5 items ?

Gracias,
Salu2, Ariel.
Ariel
 
Posts: 374
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: XBROWSE RESTRINGIR MULTISELECT

Postby Silvio.Falconi » Sun Oct 21, 2012 8:40 pm

do you tried with oBrw:aselected ?
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
User avatar
Silvio.Falconi
 
Posts: 6784
Joined: Thu Oct 18, 2012 7:17 pm

Re: XBROWSE RESTRINGIR MULTISELECT

Postby joseluisysturiz » Mon Oct 22, 2012 1:40 am

Fijate, oBrw:aSelected contiene las posiciones de los registros seleccionados y se va incrementando,asi que contiene cantidad de registros seleccionados, tendrias que ver si al ir seleccionando se puede hacer alguna validacion para que alli verifiques el LEN de oBrw:aSelected y si ya llego a su limite no permitirle seleccionar mas registros, la otra forma es que deje que seleccione la cantidad que quiera y cuando clickeen sobre algun boton para loque vayan hacer con los registros seleccionados verifiques el LEN de oBrw:aSelected y si es mayor a lo permitido mandes mensajes que tiene mas de lo permitido y que debe deseleccionar X cantidad que seria el LEN de oBrw:aSelected menos la cantidad permitida, espero te ayude y de idea de que hacer, 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: XBROWSE RESTRINGIR MULTISELECT

Postby Ariel » Mon Oct 22, 2012 10:34 am

Silvio, Jose Luis,
Gracias por responder... la pregunta es... como se cuando seleccionan o no el registro ??? o sea con q metodo controlo la seleccion ?
Esta es la configuracion de la columna :

WITH OBJECT oLbx:InsCol( 1 )
:cHeader := " "
:bEditValue := { || If( AScan( oLbx:aSelected, oLbx:BookMark ) > 0, .t., nil ) }
:SetCheck()
:nHeadBmpNo := { || If( Len( oLbx:aSelected ) == oLbx:nLen, 1, 2 ) }
IF nTope == 0
:bLClickHeader := { |r,c,f,oCol| If( Len( oLbx:aSelected ) == oLbx:nLen, ;
oLbx:SelectNone(), oLbx:SelectAll() ) }
endif
END

Gracias.
Salu2, Ariel.
Ariel
 
Posts: 374
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: XBROWSE RESTRINGIR MULTISELECT

Postby joseluisysturiz » Tue Oct 23, 2012 12:45 am

Ariel, el aSelect contiene es la posicion del registro seleccionado, no de columna, por lo cual cuando aSelect es mayor a cero, entonces se han hecho selecciones, tienes que tener en cuenta, que cuando marcas 1 solo registro en el xbrowse, automaticamente aSelect se incremente, eso quiere decir que casi siempre por defecto si hay click sobre un registro, entoces alimenta aSelect, para ir seleccionando los demas, debes usar tecla ctrl o shift, yo por lo menos valido LEN de aSelect al hacer click sobre un boton, igual puedes ver esta linea en la clase xBrowse a ver si responde mejor tu pregunta y revisa METHOD Select( nOperation ) CLASS TXBrowse, saludos... :shock:

lHighLite := ::lMultiSelect .and. ( Ascan( ::aSelected, Eval( ::bBookMark ) ) > 0 )

if ::lMultiSelect .and. ( nStyle == MARQSTYLE_HIGHLROWMS .or. ::nMarqueeStyle == MARQSTYLE_HIGHLWIN7 )

lHighLite := ( Ascan( ::aSelected, Eval( ::bBookMark ) ) > 0 )
endif
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: XBROWSE RESTRINGIR MULTISELECT

Postby FranciscoA » Tue Oct 23, 2012 1:33 am

Hola.

//Restringir cantidad de registros seleccionados.
//Con Ctrl+Click funciona bien... con Shift+flecha-abajo, no.
oBrw:bKeyDown := { || if(len(oBrw:aSelected) = 3, MsgInfo("Seleccion maxima agotada"+STR(len(oBrw:aSelected))),) }

Si bien es cierto que usando Shift+flecha-Abj aSelect se incrementa, no obedece a la condicion expuesta arriba en oBrw:bKeyDown.

Con Shift + flecha-abajo, solo funciona si el usuario suelta la Shift y la vuelve a presionar. Creo que xBrowse necesita adaptarse a este comportamiento.

Por esto último es que abrí el post "Simular soltar y oprimir una tecla"

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE RESTRINGIR MULTISELECT

Postby joseluisysturiz » Tue Oct 23, 2012 1:48 am

FranciscoA wrote:Hola.

//Restringir cantidad de registros seleccionados.
//Con Ctrl+Click funciona bien... con Shift+flecha-abajo, no.
oBrw:bKeyDown := { || if(len(oBrw:aSelected) = 3, MsgInfo("Seleccion maxima agotada"+STR(len(oBrw:aSelected))),) }

Si bien es cierto que usando Shift+flecha-Abj aSelect se incrementa, no obedece a la condicion expuesta arriba en oBrw:bKeyDown.

Con Shift + flecha-abajo, solo funciona si el usuario suelta la Shift y la vuelve a presionar. Creo que xBrowse necesita adaptarse a este comportamiento.

Por esto último es que abrí el post "Simular soltar y oprimir una tecla"

Saludos.


Saludos Francisco, disculpa te contradiga en lo que dices que no funciona la multi-seleccion con Shift+flecha-Abj/flecha Arr , me pusistes a dudar de lo que dije, asi que volvi a revisarlo y estoy en lo correcto, a mi me funciona sin ningun problema Shift + flecha arriba e igual flecha abajo sin necesidad de soltar el shift, igual lo uso en combinacion ctrl+click y todo funciona perfecto...acabo hacer una prueba antes de escribir, por eso lo dije y lo mantengo...saludos...
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: XBROWSE RESTRINGIR MULTISELECT

Postby FranciscoA » Tue Oct 23, 2012 2:27 am

Saludos Francisco, disculpa te contradiga en lo que dices que no funciona la multi-seleccion con Shift+flecha-Abj/flecha Arr , me pusistes a dudar de lo que dije, asi que volvi a revisarlo y estoy en lo correcto, a mi me funciona sin ningun problema Shift + flecha arriba e igual flecha abajo sin necesidad de soltar el shift, igual lo uso en combinacion ctrl+click y todo funciona perfecto...acabo hacer una prueba antes de escribir, por eso lo dije y lo mantengo...saludos...


Hola José Luis, creo que no expliqué bien.
No me refiero a que con Shift+flechaAbajo no funcione la multi-seleccion, sino a que no funciona igual que Ctrl-Click, cuando tratas de restringir los registros seleccionados a un numero dado (en este ejemplo, 3).

oBrw:bKeyDown := { || if(len(oBrw:aSelected) = 3, MsgInfo("Seleccion maxima agotada"+STR(len(oBrw:aSelected))),) }

Si utilizas el codeblock anterior, verás que con Ctrl-Click se ejecuta el msginfo() al llegar a 3. Con Shift+Flecha no lo hace, y el usuario puede continuar seleccionando mas registros que los restringidos, sin que se ejecute el msginfo().

Si a ti te funciona este codeblock, entonces ya sabemos que se debe a la version de FWH. Estoy utilizando la 1006.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE RESTRINGIR MULTISELECT

Postby joseluisysturiz » Tue Oct 23, 2012 2:51 am

Ok Francisco, disculpa el mal entendido, tienes razon, no funciona con shift + flech arri/abaj el:

:bKeyDown := { || if(len(oBrow:aSelected) = 2, MsgInfo("Seleccion maxima agotada"+STR(len(oBrow:aSelected))),) }

creo que si revisamos como funciona al hacer click podemo repararlo entre todos, asi nos beneficiarimos y como dice Daniel, es una clase para mejorarla entre todos, revisare a ver que veo y luego comento, 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: XBROWSE RESTRINGIR MULTISELECT

Postby FranciscoA » Tue Oct 23, 2012 2:57 am

Jose Luis, yo también voy a revisar la Classe a ver si encuentro algo.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2111
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: XBROWSE RESTRINGIR MULTISELECT

Postby MarioG » Fri Aug 30, 2013 1:17 pm

Estimados;
joseluisysturiz wrote:Ariel, el aSelect contiene es la posicion del registro seleccionado, no de columna, por lo cual cuando aSelect es mayor a cero, entonces se han hecho selecciones, tienes que tener en cuenta, que cuando marcas 1 solo registro en el xbrowse, automaticamente aSelect se incremente, eso quiere decir que casi siempre por defecto si hay click sobre un registro, entoces alimenta aSelect, para ir seleccionando los demas, debes usar tecla ctrl o shift, yo por lo menos valido LEN de aSelect al hacer click sobre un boton, igual puedes ver esta linea en la clase xBrowse a ver si responde mejor tu pregunta y revisa METHOD Select( nOperation ) CLASS TXBrowse, saludos... :shock:

lHighLite := ::lMultiSelect .and. ( Ascan( ::aSelected, Eval( ::bBookMark ) ) > 0 )

if ::lMultiSelect .and. ( nStyle == MARQSTYLE_HIGHLROWMS .or. ::nMarqueeStyle == MARQSTYLE_HIGHLWIN7 )

lHighLite := ( Ascan( ::aSelected, Eval( ::bBookMark ) ) > 0 )
endif


Me surge el siguiente problema al usar MARQSTYLE_HIGHLROWMS
Procedo a seleccionar registros mediante Ctrl - clic izq. Luego,
- Si suelto la tecla de Control y pulso, sobre el último seleccionado; y luego pulso boton derecho para seleccionar una opciçón desde un menu secundario, :aSelected solo almacena el último registro marcado.
- Si Mantengo la tecla de Control apretada (lo que ya no es lo mejor para el usuario), y accedo al menu secundario y ejecutar una opción, la evauación de :aSelected me muestra todos los registros seleccionados, menos el último sobre el que pulse botón derecho.

Evidentemente asi no es la manera de trabajar esta modalidad, aunque yo emule lo que normalmente hago con Windows al seleccionar varios archivos.
Entonces la consulta es. Cual es la manera optima de trabajar con esta opción

muchas gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: XBROWSE RESTRINGIR MULTISELECT

Postby MarioG » Mon Sep 02, 2013 1:03 pm

Gente;
reformulo mi consulta por si no fui explícito

Con el Explorador de windows, puedo, pulsando Ctrl-clic izq, marcar varios archivos. Luego, haciendo clic derecho, sobre cualquiera de ellos, abrir el menu secundario y, puedo entre otros, seleccionar "Copiar". Posteriormente al "Pegar" lo hará sobre todos los registros seleccionados.
Hasta aquí no dije nada nuevo 8)
En un xBrowse si hago este proceso sucede que:
1.- Al señalar uno de los registros marcados y hacer clic derecho, para abrir un menu secundario y tomar una opcion (borrar x ej.). El ::aSelected contiene un solo registro (el último sobre el que se hizo clic)
2.- Si mantengo la tecla Ctrl presionada y repito el proceso, ::aSelected tiene todos los registros marcados, menos el que se corresponde con el clic derecho.

Mi intención es marcar varios, con Ctrl o Shift, para luego ejecutar una acción sobre ellos
Cual es la forma correcta?

gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: XBROWSE RESTRINGIR MULTISELECT

Postby MarioG » Tue Sep 03, 2013 11:45 pm

toc...toc
Nadie usa MULTISELCT?
Como se usaría, si no es como prentendo hacerlo?
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: XBROWSE RESTRINGIR MULTISELECT

Postby nageswaragunupudi » Thu Sep 05, 2013 2:03 pm

Ariel wrote:hola a todos,
alguien sabe como puedo controlar la multiseleccion en un xbrowse con :

oBrw:nMarqueeStyle:= MARQSTYLE_HIGHLWIN7
oBrw:lMultiSelect := .t.

x ejemplo, que no pueda elegir mas de 5 items ?

Gracias,
Salu2, Ariel.

You can choose any number of rows. There is no limit.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10253
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: XBROWSE RESTRINGIR MULTISELECT

Postby MarioG » Thu Sep 05, 2013 5:16 pm

Mr Rao;
Thank for your respond (in other post too)
sorry for my english (I write from Google Traductor)

I put, xbrowse, in active the Multi selection

First, I selec with shift+clic or ctrl+clic, some registers.
after I do right clic (to open a popup), over a selection and ::aSelected only return the last register selected.
If I do again with Ctrl pressed. ::aSelected, returned all the registers, but not the register where I did clic.

How must i do it that?. This process is clean from Windows Explorer when do a copy files, for example
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 9 guests