Foxtable(狐表)用户栏目专家坐堂 → [求助]关于条件禁止重复


  共有2686人关注过本帖树形打印复制链接

主题:[求助]关于条件禁止重复

帅哥哟,离线,有人找我吗?
c39lin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:59 积分:525 威望:0 精华:0 注册:2019/4/3 20:42:00
[求助]关于条件禁止重复  发帖心情 Post By:2021/11/17 8:51:00 [只看该作者]

表里有[客户][网点][日期]
如何禁止客户在30天内在同一网点进行录入?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106135 积分:539792 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/17 9:01:00 [只看该作者]

没看懂,请截图举例说明一下

 回到顶部
帅哥哟,离线,有人找我吗?
c39lin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:59 积分:525 威望:0 精华:0 注册:2019/4/3 20:42:00
  发帖心情 Post By:2021/11/18 11:04:00 [只看该作者]

图片点击可在新窗口打开查看
这是个消费记录,禁止客户30天内在同一网点进行消费。
想说用表事件禁止间隔小于30天的客户名称录入。
条件判定应该是今天减去上一次在同一网点的最后消费日期,结果大于等于30才可以录入。

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106135 积分:539792 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/18 11:10:00 [只看该作者]

到DataColChanging事件判断,录入的姓名,使用find查询同表同姓名的记录,按照日期排序获取最后消费日期:http://www.foxtable.com/webhelp/topics/0396.htm,然后和具体进行比较

If e.DataCol.Name = "客户" Then
    Dim
 dr As DataRow
    dr = e.
DataTable.Find("
客户 = '" & e.NewValue & "' and _identify <>" & e.datarow("_identify"),"日期 desc")
    If dr IsNot Nothing Then
        if (date.today - cdate(dr("
日期"))).TotalDays < 30
        e.Cancel = True
    End
 If
End
 
If

 回到顶部
帅哥哟,离线,有人找我吗?
c39lin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:59 积分:525 威望:0 精华:0 注册:2019/4/3 20:42:00
  发帖心情 Post By:2021/11/26 2:52:00 [只看该作者]

这么写的话少了个End If 
补上后可以正确运行了。
目前效果是30天内禁止客户在所有网点消费。
那么如何识别网点A和网点B呢?

就是客户在网点A消费的隔天是可以去网点B消费的,但是30天内禁止在网点A消费。

间隔时间是分开计算的




 回到顶部
帅哥哟,离线,有人找我吗?
c39lin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:59 积分:525 威望:0 精华:0 注册:2019/4/3 20:42:00
  发帖心情 Post By:2021/11/26 3:19:00 [只看该作者]

("客户 = '" & e.NewValue & "' and _identify <>" & e.datarow("_identify")

这段没看懂,意思客户等于新的值?其他的就都没看懂了。  

"客户 = '"  这里的'是为什么?

and _identify <>   为什么and _identify   后面<>又是什么意思。。

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106135 积分:539792 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/26 8:56:00 [只看该作者]


_identify <>" & e.datarow("_identify"】指查询数据的时候排除自己

建议花时间先过2遍基础:http://www.foxtable.com/webhelp/topics/1592.htm



 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106135 积分:539792 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/26 8:57:00 [只看该作者]

以下是引用c39lin在2021/11/26 2:52:00的发言:
这么写的话少了个End If 
补上后可以正确运行了。
目前效果是30天内禁止客户在所有网点消费。
那么如何识别网点A和网点B呢?

就是客户在网点A消费的隔天是可以去网点B消费的,但是30天内禁止在网点A消费。

间隔时间是分开计算的



加上网点做条件

dr = e.DataTable.Find("客户 = '" & e.NewValue & "' and 网点='" & e.datarow("网点") & "' and _identify <> " & e.datarow("_identify"),"日期 desc")

 回到顶部
帅哥哟,离线,有人找我吗?
c39lin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:59 积分:525 威望:0 精华:0 注册:2019/4/3 20:42:00
  发帖心情 Post By:2021/11/27 3:44:00 [只看该作者]

谢谢蓝大,有在啃读,但是基础内容很多,急着要用功能的时候就静不下心来。其实每次提问之前也有自己试着研究很久,但是可能就是基础不牢吧。找不到答案。。代码也经常读不懂

 回到顶部
帅哥哟,离线,有人找我吗?
c39lin
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:59 积分:525 威望:0 精华:0 注册:2019/4/3 20:42:00
  发帖心情 Post By:2021/11/27 3:45:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.11.17.11
错误所在事件:表,订单表,DataColChanging
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

如果是个新客户的话会提示这个错误,有办法避免吗

 回到顶部
总数 15 1 2 下一页