Page 1 of 1

Leer valores columnas de un browse(LISTBOX)

Posted: Thu May 30, 2019 1:25 pm
by jvtecheto
Hola amigos:

En la migracion de la aplicacion que estoy realizando he pensado leer los valores de las columnas de un browse (utilizo LISTBOX todavia, tengo que pasarlo a XBROWSE).
entonces para grabar los valores de las columnas utilizo este codigo. en el VALID de la ventana que tengo abierta.
Seria mejor incluir el codigo en otra parte.?

Code: Select all

FUNCTION SaveIniCol( oBrowse, cAlias )

   LOCAL oIni,n

   INI oIni File "\GESTOBRAS\OBRAW.INI"

   FOR n := 1 TO Len( oBrowse:aColSizes )
      SET SECTION "PANTALLAS" ENTRY cAlias + Str( n,1 ) TO oBrowse:aColsizes[ n ] OF oIni
   NEXT

   ENDINI

   RETURN NIL
 
Yo creo que funciona bien ya que graba en el fichero .ini
estos datos
[PANTALLAS]
Emp1=15
Emp2=15
Emp3=63
Emp4=332
Emp5=108

despues para leerlo cuando voy a abrir la ventana otra vez y respete lo que se ha definido anteriormente utilizo este
codigo.

Code: Select all

FUNCTION ReadIniCol( oBrowse, cAlias )

   LOCAL oIni, n

   INI oIni File "\GESTOBRAS\OBRAW.INI"

      FOR n := 1 TO Len( oBrowse:aColSizes )
         GET oBrowse:AcolSizes[n] SECTION "PANTALLAS" ENTRY cAlias + Str( n )  OF oIni
      NEXT

   ENDINI

   RETURN Nil
 
Creo que debe funcionar bien porque

Code: Select all

MsgInfo("Valor coordenada [3] " + Str(oBrowse:AcolSizes[3]) )
 
Y sale 63 ,
para cargar los datos del ini lo hago cuando activo la ventana

Code: Select all

 ON INIT ( ReadInicol(Empw,cAlias) )
 
Cuando pinta la ventana parcece que lo hace bien pero en 1 segundo me muestra solo la
ultima columna.

¿Que hago mal?

Gracias por vuestra inestimable ayuda, y perdon por lo largo del mensaje pero sino lo explico bien.

Jose.

Re: Leer valores columnas de un browse(LISTBOX)

Posted: Sat Jun 01, 2019 4:18 pm
by jvtecheto
Pues me respondo yo , ya que lo tengo solucionado .
añadiendo un , a este codigo de la funcion de lectura de los datos del INI

Code: Select all

//Antes GET oBrowse:AcolSizes[n] SECTION "PANTALLAS" ENTRY cAlias + Str( n )  OF oIni
GET oBrowse:AcolSizes[n] SECTION "PANTALLAS" ENTRY cAlias + Str( n,1 )  OF oIni
 
Con esto lee correctamente. Pero me queda una cosa solamente , me gustaria volver a grabar _ solo cuando
de verdad se han dimensionado las columnas, ya ahora lo hago en el VALID del LISTBOX, creo que no tiene el
evento ON RESIZE , no lo veo en las instrucciones.
¿Que evento deberia utilizar para grabar solamente cuando se hayan redimensionado?

Gracias por vuestra ayuda.

Jose.