>>>>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