Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Grid changes record pointer
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
Visual FoxPro
Application:
Desktop
Divers
Thread ID:
01409326
Message ID:
01409547
Vues:
56
>I was doing that but in a local variable. Changing to a form property did not make a difference. I did notice that if I set break points, the record pointer stays on the selected record. I cannot seem to pin-point where or what is moving the record pointer

when a grid is = to thisform.ActiveControl,
a grid.uses RECNO() of the first row (RelativeRow = 1)
as start draw process.

The refresh draw the visible rows with the First row = First row before Refresh call.
At this point grid set the new RelativeRow with this logic:
 relativeRow = IF the active recNo have RelativeRow<>0
                      THEN Grid change the relativeRow and BeforeRow... don't fire
                      ELSE change the RECNO to the EVL(relativeRow,1) and BeforeRowCol.. is fired
when a grid is not the thisform.ActiveControl,
the refresh at the ELSE step change the logic.
 relativeRow = IF the active recNo have RelativeRow<>0
                      THEN Grid change the relativeRow and BeforeRow... don't fire
                      ELSE change the FirstRow.RECNO so that the active record asset RelativeRow centered in the grid
With grid active, grid.setFocus don't fix the ELSE change recno issue.
.
>
>*clmAddDate.header1.click
>LOCAL lnRec, lsOrder, lnColor
>STORE "" to lsOrder, lnColor
>lnRec = RECNO()
>
>* tag is the field name
>lsOrder=ThisForm.mGetTag(This.Tag)
>lnColor = This.ForeColor
>* get current text color
>IF lnColor = RGB(128,0,128)	&& purple color
>     lnColor = RGB(0,0,0) && black color
>     SET ORDER TO
>ELSE
>     WITH This.Parent.Parent
>          IF TAGNO(lsOrder)>0 && This index already exists (assume simple indexes tagname=fieldname)
>	SET ORDER TO (lsOrder)
>          ENDIF && TAGNO(
>          lnColor = RGB(128,0,128)	&& purple color
>          .clmUserId.header1.ForeColor = RGB(0,0,0)
>          .clmEmpId.header1.ForeColor = RGB(0,0,0)
>          .clmFullName.header1.ForeColor = RGB(0,0,0)
>          .clmOrg.header1.ForeColor = RGB(0,0,0)
>          .clmClasses.header1.ForeColor = RGB(0,0,0)
>          .clmCity.header1.ForeColor = RGB(0,0,0)
>          .clmBldg.header1.ForeColor = RGB(0,0,0)
>          .clmDates.header1.ForeColor = RGB(0,0,0)
>     ENDWITH
>ENDIF && lnColor = RGB(
>This.ForeColor = lnColor
>This.Parent.Parent.Refresh()
>
>GOTO lnRec
>This.Parent.Parent.clmAddDate.SetFocus
>
>
>>Actually, I looked at my 'resetgridorder' base method that I wrote many years ago and still use in all places. For some reason (maybe the same as in this thread) I stored recno() in variable before SET ORDER, so ...
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform