Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Saving Grid Columns Positions
Message
From
25/01/2008 03:24:44
 
 
To
25/01/2008 03:00:32
Lutz Scheffler
Lutz Scheffler Software Ingenieurbüro
Dresden, Germany
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
Miscellaneous
Thread ID:
01285431
Message ID:
01285438
Views:
26
Agnes,

This is very usefull, thanks. I suppose you put this code in the grids init and destroy events? Also, where/how to save the toStore object?

Jos


>Hi Jos,
>
>the first problem is, how do you store your settings? There are several ways and that will define how to save them.
>
>What I can do is, show you what to store. The first method puts all information (width, pos,partitionj) into an empty object.
>The second will reload.
>
>
>PROCEDURE SaveProperty
> LPARAMETERS;
>  toStore AS EMPTY
>
> LOCAL;
>  lcColumn AS CHARACTER,;
>  lnLoop1  AS INTEGER
>
> toStore = CREATEOBJECT('EMPTY')
> WITH THIS
>  FOR lnLoop1=1 TO .COLUMNCOUNT
>   lcColumn = .COLUMNS(lnLoop1).NAME+[_]
>   ADDPROPERTY(toStore,lcColumn+[WIDTH]      ,.COLUMNS(lnLoop1).WIDTH)
>   ADDPROPERTY(toStore,lcColumn+[COLUMNORDER],.COLUMNS(lnLoop1).COLUMNORDER)
>  ENDFOR &&lnLoop1
>
>  ADDPROPERTY(toStore,[LOCKCOLUMNS]    ,.LOCKCOLUMNS)
>
>  IF .SPLITBAR THEN
>   ADDPROPERTY(toStore,[PARTITION]      ,.PARTITION)
>   ADDPROPERTY(toStore,[LOCKCOLUMNSLEFT],.LOCKCOLUMNSLEFT)
>  ELSE &&.SPLITBAR
>   ADDPROPERTY(loStore,[PARTITION]      ,0)
>   ADDPROPERTY(loStore,[LOCKCOLUMNSLEFT],0)
>  ENDIF &&.SPLITBAR
> ENDWITH &&THIS
>ENDPROC &&SaveProperty
>
>PROCEDURE LoadProperty
> LPARAMETERS;
>  toStore AS EMPTY
>
> LOCAL;
>  lcColumn AS CHARACTER,;
>  lnLoop1 AS INTEGER
>
> WITH THIS
>  IF THIS.COLUMNCOUNT=0 OR THIS.RECORDSOURCE=="" THEN
>* IF THIS.COLUMNCOUNT=0
>   RETURN .F.
>  ENDIF &&THIS.COLUMNCOUNT=0 OR THIS.RECORDSOURCE==""
>  IF !PEMSTATUS(toStore,'PARTITION',5) THEN
>   RETURN .F.
>  ENDIF &&!PEMSTATUS(.empSettings.empProps,'PARTITION',5)
>
>  FOR lnLoop1=1 TO .COLUMNCOUNT
>   lcColumn = .COLUMNS(lnLoop1).NAME+[_]
>   IF PEMSTATUS(toStore,lcColumn+[WIDTH],5) THEN
>    .COLUMNS(lnLoop1).WIDTH = EVALUATE([toStore.]+lcColumn+[WIDTH])
>   ENDIF &&PEMSTATUS(.empSettings.empProps,lcColumn+[WIDTH],5)
>   IF PEMSTATUS(toStore,lcColumn+[COLUMNORDER],5) THEN
>    .COLUMNS(lnLoop1).COLUMNORDER = EVALUATE([toStore.]+lcColumn+[COLUMNORDER])
>   ENDIF &&PEMSTATUS(toStore,lcColumn+[COLUMNORDER],5)
>  ENDFOR &&lnLoop1
>
>  .LOCKCOLUMNS = MIN(toStore.LOCKCOLUMNS,.COLUMNCOUNT)
>
>  IF .SPLITBAR THEN
>   .PARTITION       = MIN(toStore.PARTITION,.WIDTH-5)
>   .LOCKCOLUMNSLEFT = MIN(toStore.LOCKCOLUMNSLEFT,.COLUMNCOUNT)
>  ENDIF &&.SPLITBAR
> ENDWITH &&THIS
>ENDPROC &&LoadProperty
>
>
>HTH
>
>Agnes
>>Hi All
>>
>>If a user moves the columns of a grid around how can I save them so that the next time I display the same report the columns re-appear in the users preferred order?
>>
>>Thanks.
In the End, we will remember not the words of our enemies, but the silence of our friends - Martin Luther King, Jr.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform