Page 1 of 1

duda sobre las cabeceras de los brows

Posted: Wed Nov 15, 2006 12:31 pm
by Elias Torres
Hola a todos...

Quería saber si cuando se coloca un brows se pueden poner acciones sobre las cabeceras, por ejemplo para que al pinchar se ordene todo el grid por el tipo de dato de esa columna...

Otra solución que he probado es la de poner un boton justo encima de cada cabecera para que al pulsarlo haga la accion que quiero, pero no se como pintar el boton encima del grid, ya que me lo pinta siempre por detras, con lo que no puedo pulsarlo... Nose si habrá alguna forma de enviarlo al frente..

Alguien tiene alguna idea al respecto...

Saludos..

Elías Torres.

Posted: Wed Nov 15, 2006 4:18 pm
by R.F.
El browse tiene una data llamada ::aActions la cual es una array de bloques de codigo, uno por cada columna del browse, cuando haces click sobre la cabecera del browse se ejecutan las acciones metidas en el bloque de codigo:

oBrw:aActions := {{|| DBSETORDER(2), oBrw:Refresh()}, {|| DBSETORDER(3), oBrw:Upstable()},{|| NIL}}

Posted: Wed Nov 15, 2006 5:44 pm
by Elias Torres
Hola Rene.

Gracias por la ayuda...he solucionado el problema que tenía.

Me gustaría conseguir algun buen manual sobre fivewin y he visto el link que tienes y me he registrado para descargarme el cd con las utilidades y manuales...pero aun no me ha llegado el correo de confirmación de registro...


Un saludo.

Elías Torres.

No entiendo

Posted: Tue Dec 12, 2006 8:50 pm
by mjcc
Me podrias enviar un ejemplo de como controlas las columnas cuando se hace un click o doble click encima por favor. Llevo tiempo buscando este tipo de funcion y no la he conseguido encontrar.

muchas gracias
imjcc@mjccsl.com

Posted: Wed Dec 13, 2006 5:35 pm
by Elias Torres
Hola...

Yo lo uso así...

DEFINE dialog odlg1 resource "listado_articulos"
redefine LISTBOX oBrw;
FIELDS hBmp, temporal->codart, temporal->nomart;
HEADERS "","Código", "Descripción" ID 500 OF oDlg1
oBrw:aActions := {{|| NIL},{||ordenar_por_codigo(),oBrw:Upstable(),oBrw:Refresh()}, {|| ordenar_por_nombre(),oBrw:Upstable(),oBrw:Refresh()}}

ACTIVATE dialog odlg1


Como ves el listbox lo he llamado oBrw. En el tienes 3 cabeceras, la primera es para poner un icono, la segunda indica el campo codart de una tabla temporal y el tercero el nombre de esa misma tabla.

Luego, que es lo que tu quieres, utilizo lo siguiente:

oBrw:aActions := {{|| NIL},{||ordenar_por_codigo(),oBrw:Upstable(),oBrw:Refresh()}, {|| ordenar_por_nombre(),oBrw:Upstable(),oBrw:Refresh()}}

Esto lo que hace es lo siguiente: si te fijas tienes 3 bloques encerrados por {} y separados por ',' , el primero corresponde a la primera colunma (tiene puesto un nil porq esa columna es para un icono, entonces no hará nada), la segunda contiene una funcion (ordenar_por_nombre() seguido de un refresco del oBrw), y la tercera contiene otra funcion....

Espero haberte ayudado...


Saludos.

Elías Torres.

Me has ayudado mucho, gracias por tu respuesta.

Posted: Wed Dec 13, 2006 5:37 pm
by mjcc
Me has ayudado mucho, gracias por tu respuesta.