Page 1 of 1

TWBrowse de Hernan, Columnas desde una Variable

Posted: Sat Mar 24, 2007 2:28 am
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.

Posted: Sat Mar 24, 2007 2:54 am
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.

Gracias, Funciona igual

Posted: Sat Mar 24, 2007 3:34 am
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 }

Re: TWBrowse de Hernan, Columnas desde una Variable

Posted: Sat Mar 24, 2007 4:57 am
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

Re: TWBrowse de Hernan, Columnas desde una Variable

Posted: Sat Mar 24, 2007 6:57 pm
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

Re: Gracias, Funciona igual

Posted: Mon Mar 26, 2007 7:44 pm
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.

Hernan Diego Ceccarelli

Posted: Tue Mar 27, 2007 2:30 am
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]

Ya quedo, Gracias a Todos

Posted: Tue Mar 27, 2007 4:09 am
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 ...

Re: Ya quedo, Gracias a Todos

Posted: Fri Mar 30, 2007 4:15 am
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