FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour TwBrowse - SaveColSize - SaveColOrder - header
Posts: 76
Joined: Fri Dec 30, 2005 10:25 AM
TwBrowse - SaveColSize - SaveColOrder - header
Posted: Tue Mar 21, 2006 11:09 AM

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

Frank-Peter
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
TwBrowse - SaveColSize - SaveColOrder - header
Posted: Wed Mar 22, 2006 05:00 PM

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

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 990
Joined: Thu Nov 17, 2005 05:49 PM
TwBrowse - SaveColSize - SaveColOrder - header
Posted: Wed Mar 22, 2006 09:00 PM

fp;

Probably not the answer you're looking for; xbrowse already has it implemented:

METHOD SaveState() CLASS TXBrowse

Saves order, size, and other properties. And it works. You can even save/restore states per user.

Best,

Reinaldo.

Posts: 108
Joined: Sun Oct 09, 2005 06:12 PM
TwBrowse - SaveColSize - SaveColOrder - header
Posted: Sat Mar 25, 2006 05:16 AM
Frank:

The columns, sizes and alignments can be arrays of codeblocks, so if you define your browses this way:

	 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:

				oBrwMov:aHJustify    := {2, 2, 0, 1 }
				oBrwMov:aJustify     := {2, 2, 0, 1 }


0=Left, 1=right, 2=centered

Regards,
Daniel Puente
Mar del Plata, Argentina
danielpuente@speedy.com.ar
puenteda@hotmail.com
Posts: 76
Joined: Fri Dec 30, 2005 10:25 AM
TwBrowse - SaveColSize - SaveColOrder - header
Posted: Sat Mar 25, 2006 06:58 AM

Hello Daniel

thank you very much.

That is a super complete answer to my questions and the help, I need for my project.

Regards from Germany

Frank-Peter

Continue the discussion