TWBrowse de Hernan, Columnas desde una Variable

TWBrowse de Hernan, Columnas desde una Variable

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

Postby Ariel » Sat Mar 24, 2007 2: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.
Ariel
 
Posts: 377
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Gracias, Funciona igual

Postby jhugono » Sat Mar 24, 2007 3: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 }
jhugono
 
Posts: 24
Joined: Sat Dec 10, 2005 7:42 am
Location: Tepatitlan, Mexico.

Re: TWBrowse de Hernan, Columnas desde una Variable

Postby Hernan Diego Ceccarelli » Sat Mar 24, 2007 4: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
User avatar
Hernan Diego Ceccarelli
 
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina

Re: TWBrowse de Hernan, Columnas desde una Variable

Postby Miguel Rivera » Sat Mar 24, 2007 6: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
Miguel Rivera
 
Posts: 117
Joined: Sun Oct 01, 2006 11:39 pm

Re: Gracias, Funciona igual

Postby carlos.mora » Mon Mar 26, 2007 7: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.
carlos.mora
 
Posts: 6
Joined: Sun Jan 29, 2006 7:43 pm

Hernan Diego Ceccarelli

Postby jhugono » Tue Mar 27, 2007 2: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]
jhugono
 
Posts: 24
Joined: Sat Dec 10, 2005 7:42 am
Location: Tepatitlan, Mexico.

Ya quedo, Gracias a Todos

Postby jhugono » Tue Mar 27, 2007 4: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 ...
jhugono
 
Posts: 24
Joined: Sat Dec 10, 2005 7:42 am
Location: Tepatitlan, Mexico.

Re: Ya quedo, Gracias a Todos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 94 guests