Page 1 of 1

Tamaño Dinámico de Columnas Xbrowse

Posted: Thu Nov 07, 2019 10:00 pm
by jnavas
Saludos,
Necesito conocer el tamaño de las columnas de Xbrowse luego que el usuario las ha ajustado.
Agradecido por sus comentarios.

Re: Tamaño Dinámico de Columnas Xbrowse

Posted: Fri Nov 08, 2019 12:30 am
by FranciscoA
Hola.
Mira si esto te sirve.

Code: Select all

//------------------------------------// CONOCER ANCHO DE COLS DEL BRW
Function SeeColsWidth()
local aCols:={}, oBrw

   USE CUSTOMER NEW ALIAS CUST1 SHARED

   DEFINE DIALOG oDlg SIZE 800,600 PIXEL TITLE "COLS SIZES"
   @ 5,20 SAY "Click Derecho sobre los datos, para ver Info de las columnas" SIZE 300, 20 PIXEL OF oDlg

   @  20,20 XBROWSE oBrw SIZE -20,-40 PIXEL OF oDlg DATASOURCE "CUST1" ;
            AUTOCOLS CELL LINES NOBORDER

   WITH OBJECT oBrw
      :bRClicked := { || ViewColsInfo(oBrw) }
      :CreateFromCode()
   END

   ACTIVATE DIALOG oDlg CENTERED

   CUST1->(DBCLOSEAREA())
return nil
//------------------------------------------//
Function ViewColsInfo(oBrw)
local aCols := {}
   AEval( oBrw:aCols, { |oCol| aadd(aCols,{oCol:cHeader, oCol:nWidth}) } ) 
   XBrowse(aCols, "Col Sizes")
Return nil
 
Saludos.

Re: Tamaño Dinámico de Columnas Xbrowse

Posted: Fri Nov 08, 2019 8:33 am
by jvtecheto
Hola Juan:

Aunque te han respondido y seguro que sera mejor idea que la mia, te la digo igual.

yo utilizo estas funciones haciendo caso a Mr. Rao.

Code: Select all

FUNCTION ReadWinData(oBrw, cAlias )   

   LOCAL oIni

   INI oIni File cDirectApp + "\TUFICHERO.INI"
   oBrw:RestoreState( oIni:Get( cAlias, "browse", "" ) )  
   
RETURN NIL

// ------------------------------------------------------------------------ //

FUNCTION SaveWinData(oBrw,cAlias ) 

   LOCAL oIni

   INI oIni File cDirectApp + "\TUFICHERO.INI"
   oIni:Set( cAlias, "browse", oBrw:SaveState() )
          
RETURN NIL

 
y luego en el ACTIVATE WINDOWS

Code: Select all

 ACTIVATE WINDOW OWndObr VALID (SaveWinData(oBrw,cAlias), .T.) ;
  ON INIT ReadWinData(oBrw,cAlias)  
 
Con esto si tu cambias el tamaño de las columnas del XBROWSE se graban y se restauran automaticamente
cuando vuelves a activar la ventana,
lo que se graba el fichero TUFICHERO.INI es
browse=XS1:{{"_nCreationOrders",{1,2,3,4}},{"_nRowHeight",21},{"_nWidths",{81.30,149.05,321.65,365.85}},{"_lHides",{.F.,.F.,.F.,.F.}},{"_cGrpHdrs",{,,,}},{"_cHeaders",{"CODIGO","C.I.F.","NOMBRE","DIRECCION"}}}
Ahora seria meter esa linea de texto en un array y acceder a sus elementos. No se si Mr. Rao tiene algo previsto , se se claramente que es el _nWidths o sea {81.30,149.05,321.65,365.85}
seria interesante que nos dijera su opinion.

Saludos

Jose.

Re: Tamaño Dinámico de Columnas Xbrowse

Posted: Mon Nov 18, 2019 1:01 am
by jnavas
Saludos y muy agradecido, solucionado con RestoreState() y SaveState()