以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 开发宝典之疑问一,DataColChanging验证,繁琐吗? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=131453) |
-- 作者:wohenguaia -- 发布时间:2019/2/26 17:07:00 -- 开发宝典之疑问一,DataColChanging验证,繁琐吗? 如题,图片 在DataColChanged事件中将 Select case e.DataCol.Name Case "客户ID","折扣" dim dr as DataRow = e.DataRow Dim pr as DataRow = DataTables("客户").Find("客户ID = \'" & dr("客户ID") & "\'") IF pr IsNot Nothing AndAlso pr("客户等级") = "vip" if dr("折扣") > 0.2 then
dr("折扣") = 0.2
end if elseIf dr("折扣") > 0.15 then
dr("折扣") = 0.15 endif end select 改到DataColChanging事件中 Select case e.DataCol.Name Case "客户ID","折扣" dim dr as DataRow = e.DataRow Dim pr as DataRow = DataTables("客户").Find("客户ID = \'" & dr("客户ID") & "\'") IF pr IsNot Nothing AndAlso pr("客户等级") = "vip"
if e.NewValue > 0.2 then
e.NewValue = 0.2
end if elseif e.NewValue > 0.15 then
e.NewValue = 0.15 endif end select 不就行了吗?麻烦吗?还是另有它意? @狐狸爸爸 周老师说这部分是您写的,请您明示。 [此贴子已经被作者于2019/2/27 10:03:00编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/2/26 17:29:00 -- 不理解您说的繁琐是指什么意思? 在这里事件里dr("折扣")代表的是编辑前的数据,e.NewValue代表的是更改后的数据。如果要判断输入是否符合要求,当然是要判断更改后的数据 |
-- 作者:有点甜 -- 发布时间:2019/2/26 17:35:00 -- 要判断列名吧?
If e.datacol.name = "折扣" Then \'e.newvalue End If |
-- 作者:有点甜 -- 发布时间:2019/2/26 17:35:00 -- 具体问题,做个例子上来,说明你要做什么。 |
-- 作者:wohenguaia -- 发布时间:2019/2/27 10:04:00 -- 以下是引用有点甜在2019/2/26 17:35:00的发言:
具体问题,做个例子上来,说明你要做什么。 抱歉问题没说清楚,我重新编辑了下帖子,请过目。 |
-- 作者:有点甜 -- 发布时间:2019/2/27 10:09:00 -- datacolchanging事件不行。
e.newvalue 的值,是修改的列的值,可能是 【客户id】,也可能是 【折扣】,除非你改成
Select case e.DataCol.Name
Case "折扣"
dim dr as DataRow = e.DataRow
|
-- 作者:wohenguaia -- 发布时间:2019/2/27 10:15:00 -- 这是书上的例子,我只想问问把这段代码移到DataColChanging中行不行?另外书中说的繁琐什么意思?? |
-- 作者:有点甜 -- 发布时间:2019/2/27 10:23:00 -- 改成,比如
Select Case e.DataCol.Name |