Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Saving Grid Columns Positions
Message
De
25/01/2008 03:00:32
Lutz Scheffler
Lutz Scheffler Software Ingenieurbüro
Dresden, Allemagne
 
 
À
25/01/2008 02:45:49
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9 SP2
Divers
Thread ID:
01285431
Message ID:
01285435
Vues:
43
This message has been marked as the solution to the initial question of the thread.
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.
Words are given to man to enable him to conceal his true feelings.
Charles Maurice de Talleyrand-Périgord

Weeks of programming can save you hours of planning.

Off

There is no place like [::1]
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform