FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Cambiar columna de posicion de un XBrowse
Posts: 257
Joined: Tue May 16, 2006 04:46 PM
Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 02:59 AM

aArreglo:={{1,"Pedro","Gomez"},{2,"Pablo","Perez"},{3,"Hugo","Ramirez"},{4,"Juan","Chavez"}}
oBrw:SetArray(aArreglo)

en el XBrowse me apareceran las siguientes columnas: No., Nombre, Apellido

como le hago para que me las muestre en el siguiente orden: No., Apellido, Nombre

No encuentro la instruccion para mover de lugar la columna. Alguien lo sabe?

RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 03:24 AM

Rodolfo, intenta con: oBrw:SwapCols(3,2,.t.), //donde 3 y 2 son las cols a intercambiar

Tambien, si lo quieres arrastrando el header de la columna hasta la posicion deseada, debes configurar xBrowse así:
oBrw:lAllowColSwapping := .f. // If true col swapping is allowed

Saludos

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 257
Joined: Tue May 16, 2006 04:46 PM
Re: Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 03:47 AM

Muuuuy bien, gracias pero ya vez como es uno de flojo. Resulta que tengo 18 columnas y la ultima la quiero pasar a la 1ra y que el resto se recorran a la derecha. Es eso posible con menos intsrucciones que hacer el swap de columna por columna?

Otra pregunta (para documentar bien mi manual personal), para que sirve el parametro .T. que se coloca al final?

RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 03:54 AM

Rodolfo:
oBrw:SwapCol(18,1,.t.)
El tercer parametro es para refrescar el oBrw. Si no lo tienes en tu version, debes hacer oBrw:Refresh()

Saludos.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 03:58 AM

¡Upp!, Sorry. Esto solo intercambia las columnas, pero creo que puedes hacerlo con un FOR NEXT. Voy a probar y luego te aviso.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 257
Joined: Tue May 16, 2006 04:46 PM
Re: Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 04:04 AM

Gracias de nuevo pero regresando al arreglo del 1er ejemplo, las columnas originalmente son:
No., Nombre, Apellido
y lo que quiero es que queden:
Apellido, No., Nombre
o sea pasar la ultima columna al 1er lugar y recorrer a la derecha las otras 2. Al hacer oBrw:SwapCols(3,1) el resultado es:
Apellido, Nombre, No.
o sea intercambio posiciones en lugar de insertar la 3er columna en la 1ra.

RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
Posts: 257
Joined: Tue May 16, 2006 04:46 PM
Re: Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 04:29 AM

Solucionado!!! la instruccion seria oBrw:MoveCol(nFrom,nTo,.T.) lo que pasa es que no viene documentada en la ayuda.

Gracias!!

RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 04:39 AM

Muy bien, Rodolfo, te habia preparado esto, no se me ocurrió ver MoveCol(): (vaya que reinventamos la rueda, ja-ja-ja)

Function InterCamb(oBrw,nCol1,nCol2)
local n, nPosAct:=nCol1
local nNvaPos:=0
For n:= 1 to nCol1
nNvaPos:= nPosAct-1
oBrw:SwapCols(nPosAct,nNvaPos)
oBrw:Refresh()
nPosAct-=1
Next
Return nil
Saludos

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 257
Joined: Tue May 16, 2006 04:46 PM
Re: Cambiar columna de posicion de un XBrowse
Posted: Sun Oct 03, 2010 04:44 AM

Gracias Francisco, realmente me dista la pauta para buscar la solucion.

RodolfoRBG
FWH 1307, xHarbour123 BCC582
rodolfoerbg@gmail.com

Continue the discussion