How can I save the size and the order of TwBrowse-columns (changed from the user) and restore it by the next call?
How to show a column-header with two or three lines - and centered?
Thanks
TwBrowse - SaveColSize - SaveColOrder - header
TwBrowse - SaveColSize - SaveColOrder - header
Frank-Peter
- James Bott
- Posts: 4654
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
I have had this on my To Do list for a long time. However, I am not sure it is possible with TWBrowse. The preprocessor converts the list of fields to a codeblock which is then passed to the new() method as bLine. There is no storage of the field list in the class and there is no way to parse the list back out of the codeblock that I know of. I could be wrong.
I think the class would have to be modified to use an array instead of a codeblock.
The workaround is probably to use a different browse, like TCBrowse which doesn't use a codeblock.
James
I think the class would have to be modified to use an array instead of a codeblock.
The workaround is probably to use a different browse, like TCBrowse which doesn't use a codeblock.
James
- reinaldocrespo
- Posts: 918
- Joined: Thu Nov 17, 2005 5:49 pm
- Location: Fort Lauderdale, FL
-
- Posts: 108
- Joined: Sun Oct 09, 2005 6:12 pm
- Location: Mar del Plata - Argentina
- Contact:
Frank:
The columns, sizes and alignments can be arrays of codeblocks, so if you define your browses this way:
You can read those values from an ini file or dbf perfectly.
And for example if the user changes the size of a column before closing the dialog you can ask the browse for the column sizes values, and save the new values of the array to a dbf or ini file (oBrwMov:aColsizes).
To use a multiline header you only need to use CRLF, like "Punto"+CRLF+"Venta" ,; that is a multiline header. And to jusfify you can use:
0=Left, 1=right, 2=centered
Regards,
The columns, sizes and alignments can be arrays of codeblocks, so if you define your browses this way:
Code: Select all
LOCAL VEC_FIELD:={{ || IF((cAlias)->ESTADO=='C','Cerrado','Abierto') } ,;
{ || (cAlias)->PUNTOVTA } ,;
LOCAL VEC_ENC := { oemtoansi("Estado"),;
"Punto"+CRLF+"Venta" ,;
LOCAL aSizes:={80,50, ... }
REDEFINE LISTBOX oBrwMov fields ID 999 OF oDlg ;
ALIAS (cALIAS) ;
COLOR CLR_BLACK, CLR_WHITE UPDATE ;
ON DBLCLICK EditaTurno( @fCantI,@fCantE,oBrwMov, oBrwMov:nColAct, EVAL(VEC_FIELD[oBrwMov:nColAct]), .T.,cAlias )
oBrwMov:SetCols( VEC_FIELD, VEC_ENC, aSizes )
You can read those values from an ini file or dbf perfectly.
And for example if the user changes the size of a column before closing the dialog you can ask the browse for the column sizes values, and save the new values of the array to a dbf or ini file (oBrwMov:aColsizes).
To use a multiline header you only need to use CRLF, like "Punto"+CRLF+"Venta" ,; that is a multiline header. And to jusfify you can use:
Code: Select all
oBrwMov:aHJustify := {2, 2, 0, 1 }
oBrwMov:aJustify := {2, 2, 0, 1 }
Regards,