Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Validating current row - current cell problem
Message
 
 
To
19/12/2011 11:37:21
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01531359
Message ID:
01531374
Views:
57
>>>>Hi everybody,
>>>>
>>>>I'm calling ValidateCurrentRow method from the Valid and BeforeRowColChange events of the grid. Everything seems to work as I want with one minor problem: suppose, I'm on the particular cell in the grid (the column that requires validation) and I click a button outside the grid after entering a value in that cell, I still get a validation message. So, the valid event of the textbox doesn't happen.
>>>>
>>>>How can I ensure that the valid method of that cell happened before the validation takes place?
>>>>
>>>>Thanks in advance.
>>>
>>>SetFocus to the cell
>>
>>I don't think you can call SetFocus from the Valid method. Also, can you be more specific, how would I know from the ValidateCurrentRow method (called from Valid or BRCC) which column to set focus to?
>
>You'll have to test whether a BRCC fires the Valid(). If it does not, I don't think the value of the cell will get updated in the controlsource

This code below almost works. It works for all columns except for description column. When I test ActiveColumn it seems to refer to the Expiration date column instead of the description. See attached picture (validation works correctly for SeatEnd or Expiration date when I change the value and then press Add Hold button).
local lnActiveColumn, loControl, loColumn
lnActiveColumn = this.activecolumn
if  m.lnActiveColumn> 0
   loColumn = this.columns(m.lnActiveColumn)
   if vartype(m.loColumn) = 'O'
      for each loControl in loColumn.Controls foxobject
         if pemstatus(loControl, 'value',5)
            loControl.value = loControl.value
         ELSE
            if pemstatus(loControl, 'valid',5)
               loControl.valid()
            endif   
         endif
      next
   endif
endif
And see attached picture.
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform