实际上我需要验证DataWindow控件中新插入的行中的空列。我尝试使用ItemFocusChanged事件脚本如下
if dwo.name="emp_name" then
if dw_1.GetItemString(row,"emp_no")= '' then
MessageBox("E-Ledger","Enter Employee Number")
dw_1.SetColumn("emp_no")
end if
end if
但它没有发生。保存时我试过
if dw_1.GetItemString(ll_row,"emp_no")= '' then
MessageBox("E-Ledger","Enter Employee Number")
dw_1.SetColumn("emp_no")
return
end if
这也没有发生。 请帮我验证ItemFocusChanged并保存新插入的行。 谢谢各位朋友..... PVP
答案 0 :(得分:0)
调用InsertRow()
时,不会触发ItemFocusChanged事件,因为InsertRow()
不会更改当前行。您可以调用SetRow()
将其设为当前行,或ScrollToRow()
将其设为当前行并将其滚动到视图中。
验证的逻辑位置通常是itemchanged
事件。当列失去焦点或手动使用AcceptText()
功能时,将触发此操作。
答案 1 :(得分:0)
我认为ItemFocusChanged是测试此验证的错误事件,因为如果我点击emp_no字段,该逻辑将永远不会执行。
你还没有提到调试中可能缩小范围的任何保存脚本观察结果,但作为一个疯狂的猜测,我猜测此时emp_no的实际值是NULL(NilIsNull属性on也许是一列,它没有通过你编程的测试。你想要更像
的东西ls_Value = dw_1.GetItemString(ll_row,"emp_no")
if (ls_Value = '') or IsNull (ls_Value) then
...
并不是说这会处理你在这个字段中放置空格,但你可以处理它,如果这是要求。
祝你好运,特里。
答案 2 :(得分:0)
最好在保存之前验证必填字段。我们必须允许用户从空的必填字段移动焦点 - 也许,用户想要在填写其他字段后填充它。
必填字段验证是非常常见的任务。它应该由框架自动执行,无需为每个字段编写检查。
如果您仍想在焦点更改时验证空必填字段,则最好编码ItemFocusChanging脚本,而不是ItemFocusChanged。