TWBrowse de Hernan, Columnas desde una Variable

Post Reply
jhugono
Posts: 24
Joined: Sat Dec 10, 2005 7:42 am
Location: Tepatitlan, Mexico.
Contact:

TWBrowse de Hernan, Columnas desde una Variable

Post by jhugono »

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.
Ariel
Posts: 378
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Post by Ariel »

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.
jhugono
Posts: 24
Joined: Sat Dec 10, 2005 7:42 am
Location: Tepatitlan, Mexico.
Contact:

Gracias, Funciona igual

Post by jhugono »

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 }
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Re: TWBrowse de Hernan, Columnas desde una Variable

Post by Hernan Diego Ceccarelli »

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
Miguel Rivera
Posts: 117
Joined: Sun Oct 01, 2006 11:39 pm

Re: TWBrowse de Hernan, Columnas desde una Variable

Post by Miguel Rivera »

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
carlos.mora
Posts: 6
Joined: Sun Jan 29, 2006 7:43 pm

Re: Gracias, Funciona igual

Post by carlos.mora »

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.
jhugono
Posts: 24
Joined: Sat Dec 10, 2005 7:42 am
Location: Tepatitlan, Mexico.
Contact:

Hernan Diego Ceccarelli

Post by jhugono »

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]
jhugono
Posts: 24
Joined: Sat Dec 10, 2005 7:42 am
Location: Tepatitlan, Mexico.
Contact:

Ya quedo, Gracias a Todos

Post by jhugono »

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 ...
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Re: Ya quedo, Gracias a Todos

Post by Hernan Diego Ceccarelli »

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
Post Reply