Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Grid changes record pointer
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01409326
Message ID:
01409547
Views:
55
>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 ...
Previous
Reply
Map
View

Click here to load this message in the networking platform