以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  (有图)当“礼品费”的单元格的值大于零时,在“礼品清单”栏里必须写上清单,就是必须有汉字,怎么办?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=12178)

--  作者:foxtablegril
--  发布时间:2011/8/25 7:58:00
--  (有图)当“礼品费”的单元格的值大于零时,在“礼品清单”栏里必须写上清单,就是必须有汉字,怎么办?

示例:礼品费        礼品费清单

           50        水果20,饮料30    

       

        这是表的两列,有的人填了50元的费用,不写清单。现在希望在填了50之后,触发一个事件,比如,提示:“请填写礼品清单!”,如果不填就不能通过,提示反复出现,直到填了为止。当礼品费等于0或为空时提示不出现,不用填清单。请教各位大虾~~~~怎么写代码。


--  作者:foxtablegril
--  发布时间:2011/8/25 8:13:00
--  

If e.DataRow.Isnull("礼品费") Or "0" Then
  e.DataRow("礼品清单")=Nothing
 Else
  messagebox.show("请填写清单,谢谢!")
 End If

  我写了个这样的,只能提示,不能强制录入。


--  作者:foxtablegril
--  发布时间:2011/8/25 8:14:00
--  
当“礼品费”的单元格的值大于零时,在“礼品清单”栏里必须写上清单,就是必须有汉字,怎么办?(有图)  发帖心情 Post By:2011-8-25 7:58:00 [只看该作者]

示例:礼品费        礼品费清单

           50        水果20,饮料30    

       

        这是表的两列,有的人填了50元的费用,不写清单。现在希望在填了50之后,触发一个事件,比如,提示:“请填写礼品清单!”,如果不填就不能通过,提示反复出现,直到填了为止。当礼品费等于0或为空时提示不出现,不用填清单。请教各位大虾~~~~怎么写代码。


--  作者:foxtablegril
--  发布时间:2011/8/25 9:43:00
--  

If e.col.name = "礼品费" Then
  mEssageBox.show("请填写或更改清单,否则将不予报销!")
End If

If e.col.name = "业务招待费" Then
  mEssageBox.show("请填写或更改清单,否则将不予报销!")
End If

新写的  但是只能提醒  不能强制返回


--  作者:foxtablegril
--  发布时间:2011/8/25 9:43:00
--  

求助

 


--  作者:foxor
--  发布时间:2011/8/25 10:02:00
--  
参考表事件中的ValidateEdit
--  作者:blackzhu
--  发布时间:2011/8/25 10:03:00
--  
if e.datacol.Name="礼品费"then

If e.DataRow.Isnull("礼品费")=false andalso e.datarow.Isnull("礼品清单")  Then

    messagebox.show("请填写清单,谢谢!"
 End If

end if


我不明白你那个必须是50元吗?还是


--  作者:blackzhu
--  发布时间:2011/8/25 10:04:00
--  
上面的代码意思是如果触动的是礼品费列,有如果礼品费列不为空,而礼品清单为空,那么提示!你要返回,返回什么?
--  作者:czy
--  发布时间:2011/8/25 11:50:00
--  

这个问题好像不是太简单,难点在messagebox后焦点难于控制,比如出现提示框后直接用回车键来确定的话,焦点就往后移一单元格了,即使在提示后用Select定位到礼品清单列也不行。

如果焦点不能准确定位到礼品清单列,则难于控制必须输入清单。


--  作者:blackzhu
--  发布时间:2011/8/25 12:27:00
--  
If e.DataCol.Name="礼品费"then \'如果触动的是礼品费列
    If e.DataRow.IsNull("礼品单清单") Then \'如果礼品费清单是空的
    Messagebox.Show("请先填写清单,后在礼品费里面输入金额!")  \'提示
    e.DataRow("礼品费") =Nothing   \'同时清除礼品费输入的数据
Else   \'否则
    If e.DataRow("礼品费")= O  Then   \'如果礼品费是0的话
    e.Cancel=True         \'取消这个动作
End If
End If
End If

这样试试