FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TWBrowse de Hernan, Columnas desde una Variable
Posts: 24
Joined: Sat Dec 10, 2005 07:42 AM
TWBrowse de Hernan, Columnas desde una Variable
Posted: Sat Mar 24, 2007 02:28 AM

USANDO: Clase TWBrowse by Hernan Ceccarelli

redefine ListBox oLbx ;
FIELDS "" ;
FIELDSIZES 50, 50, 50 ;
HEADERS "Semana", "C1", "C2" ;
ID 301 OF oDlg UPDATE

oLbx:bLine := {|| {fieldget(3), fieldget(1), fieldget(2)} }

De esta manera funciona bien el TWBrowse

Lo que requiero es que el ListBox sea manejado con una Variable, para que me muestre, los campos que se requieran.

Lo Manejo de esta Manera;

aCamp := {fieldget(3), fieldget(1), fieldget(2)}

redefine ListBox oLbx ;
FIELDS "" ;
FIELDSIZES 50, 50, 50 ;
HEADERS "Semana", "C1", "C2" ;
ID 301 OF oDlg UPDATE

oLbx:bLine := {|| aCamp }

Me muestra todos los registros iguales.

Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM
TWBrowse de Hernan, Columnas desde una Variable
Posted: Sat Mar 24, 2007 02:54 AM

Hola,
Dos cosas:
1. Te falta el ALIAS cAliasdelaDbf en el LISTBOX
2. Prueba de poner cAliasdelaDbf->(fieldget(1)), cAliasdelaDbf->(Fieldget(2)), cAliasdelaDbf->(FieldGet(3))

Salu2.

Posts: 24
Joined: Sat Dec 10, 2005 07:42 AM
Gracias, Funciona igual
Posted: Sat Mar 24, 2007 03:34 AM

Gracias por tu Aportacion, el resuldado es el mismo.
El codigo es el siguiente;

aCamp := { A06PRES->(fieldget(3)), A06PRES->(fieldget(1)), A06PRES->(fieldget(2))}

redefine ListBox oLbx ;
FIELDS "" ;
FIELDSIZES 50, 50, 50 ;
HEADERS "Semana", "C1", "C2" ;
ID 301 OF oDlg UPDATE

     oLbx:cAlias := "A06PRES"
     oLbx:bLine  := {|| aCamp }
Posts: 84
Joined: Fri Oct 07, 2005 04:51 PM
Re: TWBrowse de Hernan, Columnas desde una Variable
Posted: Sat Mar 24, 2007 04:57 AM

Basicamente al agregar y definir columnas en tiempo de ejecucion tienes que tener en cuenta lo siguiente.

1) bLine devuelva un arreglo en funcion del nro de columnas que sean necesarias mostrar.
2) Ajustar ::aHeaders y ::aFooters en el momento del cambio de agregar o quitar columnas
3) Ajustar ::aColSizes que nos define los anchos en pixeles de la columna.
4) Ajustar ::aJustify, ::aHJustify y ::aFJustify que guardan las alineaciones de columnas de datos, headers y footers
5) Verificar que ::oLbx:nColPos:= 1 y ::oLbx:nColAct:= 1 NO superen la cantidad de columnas activas.
6) ::oLbx:lSyncH:= .T., ::oLbx:lSyncF:= .T. , ::oLbx:Refresh()

Parece un Rollo, pero es SENCILLO, muy sencillo :)

Hernan

Posts: 117
Joined: Sun Oct 01, 2006 11:39 PM
Re: TWBrowse de Hernan, Columnas desde una Variable
Posted: Sat Mar 24, 2007 06:57 PM

Hola Hernan:

Esposible obtener tu Twbrowse, se habla mucho de ella en el foro y me gustaria poder aplicarla en mis sistemas. Como puedo disponer de ella, uso Fwh 2.7 y xHarbour.

Mi privado es " marf2@tutopia.com ", desde ya muchas gracias.

Miguel

Posts: 6
Joined: Sun Jan 29, 2006 07:43 PM
Re: Gracias, Funciona igual
Posted: Mon Mar 26, 2007 07:44 PM
jhugono wrote:Gracias por tu Aportacion, el resuldado es el mismo.
El codigo es el siguiente;

aCamp := { A06PRES->(fieldget(3)), A06PRES->(fieldget(1)), A06PRES->(fieldget(2))}

redefine ListBox oLbx ;
FIELDS "" ;
FIELDSIZES 50, 50, 50 ;
HEADERS "Semana", "C1", "C2" ;
ID 301 OF oDlg UPDATE

oLbx:cAlias := "A06PRES"
oLbx:bLine := {|| aCamp }


Creo que estás cometiendo un error conceptual. {|| aCamp } te retornará siempre el array que se evaluó en el momento que lo declaraste, por eso los resultados que obtienes.

Para explicarme mejor: cuando declaraste
aCamp := { A06PRES->(fieldget(3)), A06PRES->(fieldget(1)), A06PRES->(fieldget(2))}

lo que hiciste fue crear un array de 3 elementos que contendran los valores de los campos EN ESE MOMENTO, por ejemplo { 'soyelcampo3', 'soyel1', 'soyel2peromecreoel3' }
Eso quedará fijo! Luego, si

bline:= {||acamp}

entonces cada vez que se evalue bline retornara una referencia al campo original.

la declaración correcta sería

oLbx:bLine := { || A06PRES->(fieldget(3)), A06PRES->(fieldget(1)), A06PRES->(fieldget(2))}

y con eso te aseguro funciona.

Saludos,

carlos.
Posts: 24
Joined: Sat Dec 10, 2005 07:42 AM
Hernan Diego Ceccarelli
Posted: Tue Mar 27, 2007 02:30 AM

Buenas Noches Hernan Diego Ceccarelli

Gracias por tu Ayuda.

El problema que tengo es que no se como modificar y aplicar el oLbx:bline
Desde una variable.

Digamos en un momento quiero definir un ListBox con Tres Campos, y en otro momento
Con 5 campos.

Esto es con el fin de Tener un ListBox que no sea fijo en el cual, pueda agregar, modificar y borrar Columnas.

De esta manera si funciona;
oLbx:bLine := { A06PRES->(fieldget(3)), A06PRES->(fieldget(1)), A06PRES->(fieldget(2))}

Pero es un ListBox Fijo.

Pero si lo asigno a una variable, no me muestra todos los registros iguales;
aCamp := { A06PRES->(fieldget(3)), A06PRES->(fieldget(1)), A06PRES->(fieldget(2))}

oLbx:bLine := {|| aCamp }

Saludos y Gracias
Hugo Navarro Orozco
[/code]

Posts: 24
Joined: Sat Dec 10, 2005 07:42 AM
Ya quedo, Gracias a Todos
Posted: Tue Mar 27, 2007 04:09 AM

Buenas Noches a Todos.

Maneje una cadena;

cLine := "{ A06PRES->(fieldget(3)), A06PRES->(fieldget(1)), A06PRES->(fieldget(2))}"

oLbx:bLine := { || &cLine }

Si funciono.

Saludos y Gracias ...

Posts: 84
Joined: Fri Oct 07, 2005 04:51 PM
Re: Ya quedo, Gracias a Todos
Posted: Fri Mar 30, 2007 04:15 AM

Gracias a le gente que me escribe a mi correo personal. Voy a actualizar lo antes posible, los que piden que actualice la version para hacerla funcionar sobre FW7.x y 6.x, vamos a tratar de lograrlo, voy a charlar con Antonio Linares a ver si me hecha una manito asi todos quedan contentos. Le he agregado unas cosillas a la clase, como siempre digo podria ser mejor. :)

Saludos a todos
Hernan

Continue the discussion