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, _ 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: 309
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 _ 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