In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

tBrowse: cambiar posici

Foro de Xailer profesional en español
Responder
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

tBrowse: cambiar posici

Mensaje por jose.luis »

Hola,
En este código:
LOCAL aDatos
LOCAL aCabeceras
aDatos := { { 1, 2,3}, {4,5,6} }
aCabeceras := { "Tres","Dos","Uno" }
::oMemDataSet1:Open( aDatos, aCabeceras )
Logdebug(::odbBrowse1:aCols[3]:nPos) //----> 3
Logdebug(::odbBrowse1:aCols[3]:nIndex) //----> 3
¿Como puedo cambiar de posición la columna 3 y ponerla en la primera
desde código?
Saludos y gracias.
José Luis Capel
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

tBrowse: cambiar posici

Mensaje por ignacio »

José Luis,
SwapCols() si quieres intercambiar la posición de las dos columnas, y
MoveCol() para mover la columna a cualquier posición.
Saludos,
"José Luis Capel" <jose.luis@iaicom.com> escribió en el mensaje
news:[email=Xns97C183B2DBF41asalesiaicomcom@82.144.6.50...]Xns97C183B2DBF41asalesiaicomcom@82.144.6.50...[/email]
>
> Hola,
>
> En este código:
>
> LOCAL aDatos
> LOCAL aCabeceras
>
>
> aDatos := { { 1, 2,3}, {4,5,6} }
> aCabeceras := { "Tres","Dos","Uno" }
>
> ::oMemDataSet1:Open( aDatos, aCabeceras )
>
> Logdebug(::odbBrowse1:aCols[3]:nPos) //----> 3
> Logdebug(::odbBrowse1:aCols[3]:nIndex) //----> 3
>
> ¿Como puedo cambiar de posición la columna 3 y ponerla en la primera
> desde código?
>
> Saludos y gracias.
> José Luis Capel
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Aicom
Mensajes: 21
Registrado: Mié Abr 26, 2006 1:35 pm

tBrowse: cambiar posici

Mensaje por Aicom »

Ignacio,
Gracias por tu respuesta.
> SwapCols() si quieres intercambiar la posición de las dos columnas, y
> MoveCol() para mover la columna a cualquier posición.
Con MoveCol no he conseguido hacer que las columnas se muevan. Más
concretamente:
::odbBrowse:MoveCol( ::odbBrowse:aCols[1], 2)
::odbBrowse:MoveCol( ::odbBrowse:aCols[2], 1)
Aparentemente (y salvo error u omisión) no hace nada.
Sin embargo:
::odbBrowse:MoveCol( ::odbBrowse:aCols[1], 2, .F. )
::odbBrowse:MoveCol( ::odbBrowse:aCols[2], 1, .F. )
Si que hace el cambio, pero no se refresca correctamente el browse,
incluse después de un ::odbBrowse:Refresh( .T. ).
Dejo un ejemplo con MemDataset y dbBrowse.
Saludos y gracias por vuestro tiempo.
José Luis Capel


Attached files pruebas.zip (1.9 KB)Â
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9441
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

tBrowse: cambiar posici

Mensaje por ignacio »

José Luis,
Analicemos tu código:
::odbBrowse1:MoveCol( ::odbBrowse1:aCols[1], 4 )
::odbBrowse1:MoveCol( ::odbBrowse1:aCols[2], 3 )
::odbBrowse1:MoveCol( ::odbBrowse1:aCols[3], 2 )
::odbBrowse1:MoveCol( ::odbBrowse1:aCols[4], 1 )
1) La columna 1 pasa a ser la 4
2) La columna 2 pasa a ser la 3
3) La columna 3 pasa a ser la 2, por lo tanto se queda igual que antes
4) la columna 4 pasa a ser la 1, por lo tanto la 1 y la 4 se quedan como
antes
ES DECIR, NO SE PRODUCE NINGUN CAMBIO REALMENTE.
Si comento las tres últimas lineas y sólo dejo la primera puedes comprobar
como la primera columna ocupa la cuarta posición y FUNCIONA PERFECTAMENTE.
Me cuesta creer que no te hayas dado tu cuenta del hecho de que realmente
estas dejando todo igual y que por lo tanto no existe tal error. Te ruego
por favor compruebes lo que digo y me corrigas en aquello que pueda estar
equivocado porque seguramente lo estaré. Quedo a la espera de tu respuesta.
Gracias de antemano,
"Aicom" <aicom@iaicom.com> escribió en el mensaje
news:[email=Xns97C18E01F187Basalesiaicomcom@82.144.6.50...]Xns97C18E01F187Basalesiaicomcom@82.144.6.50...[/email]
> Ignacio,
>
> Gracias por tu respuesta.
>
>> SwapCols() si quieres intercambiar la posición de las dos columnas, y
>> MoveCol() para mover la columna a cualquier posición.
>
> Con MoveCol no he conseguido hacer que las columnas se muevan. Más
> concretamente:
>
> ::odbBrowse:MoveCol( ::odbBrowse:aCols[1], 2)
> ::odbBrowse:MoveCol( ::odbBrowse:aCols[2], 1)
>
> Aparentemente (y salvo error u omisión) no hace nada.
>
> Sin embargo:
>
> ::odbBrowse:MoveCol( ::odbBrowse:aCols[1], 2, .F. )
> ::odbBrowse:MoveCol( ::odbBrowse:aCols[2], 1, .F. )
>
> Si que hace el cambio, pero no se refresca correctamente el browse,
> incluse después de un ::odbBrowse:Refresh( .T. ).
>
> Dejo un ejemplo con MemDataset y dbBrowse.
>
> Saludos y gracias por vuestro tiempo.
> José Luis Capel
>
>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Aicom
Mensajes: 21
Registrado: Mié Abr 26, 2006 1:35 pm

tBrowse: cambiar posici

Mensaje por Aicom »

Ignacio,
Gracias por tu respuesta.
> Me cuesta creer que no te hayas dado tu cuenta del hecho de que
> realmente estas dejando todo igual y que por lo tanto no existe tal
> error. Te ruego por favor compruebes lo que digo y me corrigas en
> aquello que pueda estar equivocado porque seguramente lo estaré. Quedo
> a la espera de tu respuesta.
Más me cuesta a mi :-(
Disculpa por hacer perder tu tiempo...
Saludos y gracias por todo,
José Luis Capel
Responder