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