以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于条件禁止重复 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173156) |
-- 作者:c39lin -- 发布时间:2021/11/17 8:51:00 -- [求助]关于条件禁止重复 表里有[客户][网点][日期] 如何禁止客户在30天内在同一网点进行录入?
|
-- 作者:有点蓝 -- 发布时间:2021/11/17 9:01:00 -- 没看懂,请截图举例说明一下 |
-- 作者:c39lin -- 发布时间:2021/11/18 11:04:00 -- 这是个消费记录,禁止客户30天内在同一网点进行消费。 想说用表事件禁止间隔小于30天的客户名称录入。 条件判定应该是今天减去上一次在同一网点的最后消费日期,结果大于等于30才可以录入。
|
-- 作者:有点蓝 -- 发布时间: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") e.Cancel = True
End If End If |
-- 作者:c39lin -- 发布时间:2021/11/26 2:52:00 -- 这么写的话少了个End If 补上后可以正确运行了。 目前效果是30天内禁止客户在所有网点消费。 那么如何识别网点A和网点B呢? 就是客户在网点A消费的隔天是可以去网点B消费的,但是30天内禁止在网点A消费。 间隔时间是分开计算的 |
-- 作者:c39lin -- 发布时间:2021/11/26 3:19:00 -- ("客户 = \'" & e.NewValue & "\' and _identify <>" & e.datarow("_identify") 这段没看懂,意思客户等于新的值?其他的就都没看懂了。 "客户 = \'" 这里的\'是为什么? and _identify <> 为什么and _identify 后面<>又是什么意思。。
|
-- 作者:有点蓝 -- 发布时间:2021/11/26 8:56:00 -- 【_identify <>" & e.datarow("_identify"】指查询数据的时候排除自己 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2021/11/27 3:44:00 -- 谢谢蓝大,有在啃读,但是基础内容很多,急着要用功能的时候就静不下心来。其实每次提问之前也有自己试着研究很久,但是可能就是基础不牢吧。找不到答案。。代码也经常读不懂 |
-- 作者:c39lin -- 发布时间:2021/11/27 3:45:00 -- .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2021.11.17.11 错误所在事件:表,订单表,DataColChanging 详细错误信息: 调用的目标发生了异常。 未将对象引用设置到对象的实例。 如果是个新客户的话会提示这个错误,有办法避免吗
|