以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 随时间自动修改分类 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174874) |
-- 作者:采菊东篱下 -- 发布时间:2022/2/10 12:01:00 -- 随时间自动修改分类 我在全局变量中设定了cljbxxsj变量,然后在项目属性的GlobalVariableChanged事件中写下下面的代码,想实现当日期变量为当前日期,基本信息表中的分类随时间变化而变,当缴费情况表中对应的车牌号最后一个月的缴费_月租_止计日期大于等于当是前日期的前一个月,且缴费_月租_缴费金额大于0,车辆基本信息表中的分类为月租停车,否则为临时停车收费,我这样写报错: Vars("cljbxxsj") = Today.AddMonths(-1) Dim dt As DataRow = DataTables("缴费情况").SQLFind("[缴费_月租_止计日期] >= #" & Vars("cljbxxsj") & "# And [缴费_月租_缴费金额] >" & 0 & " And [车牌号码] = \'" & DataTables("车辆基本信息").DataRow("车牌号码") & "\'") If dt IsNot Nothing Then DataTables("车辆基本信息").DataRow("分类") = "月租停车" Else DataTables("车辆基本信息").DataRow("分类") = "临时停车" End If DataTables("车辆基本信息").DataCols("分类").RaiseDataColChanged() [此贴子已经被作者于2022/2/10 12:11:25编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/2/10 12:07:00 -- DataTables("车辆基本信息").DataRow("车牌号码") DataTable只有DataRows属性,没有DataRow属性,如果是当前行,使用table的current
|
-- 作者:采菊东篱下 -- 发布时间:2022/2/10 12:29:00 -- Vars("cljbxxsj") = Today.AddMonths(-1) For Each ds As DataRow In DataTables("车辆基本信息").DataRows Dim dt As DataRow = DataTables("缴费情况").SQLFind("[缴费_月租_止计日期] >= #" & Vars("cljbxxsj") & "# And [缴费_月租_缴费金额] >" & 0 & " And [车牌号码] = \'" & ds("车牌号码") & "\'") If dt IsNot Nothing Then ds("分类") = "月租停车" Else ds("分类") = "临时停车" End If Next DataTables("车辆基本信息").Save() 基本信息表的分类列没有起变化,安理最迟一天的缴费_月租_止计日期是2021年是9月30日,与当前日期对比,分类应全变为临时停车,但现在没改变。
[此贴子已经被作者于2022/2/10 12:41:08编辑过]
|
-- 作者:采菊东篱下 -- 发布时间:2022/2/10 13:13:00 -- 我在命令窗口执行这代码没问题的,基本信息表立马执行了,为什么写在项目属性的GlobalVariableChanged事件不灵了? |
-- 作者:有点蓝 -- 发布时间:2022/2/10 13:38:00 -- 说明事件没有触发 |
-- 作者:采菊东篱下 -- 发布时间:2022/2/10 14:07:00 -- 如果我想当时间发生变化基本信息表中的分类自动改变,代码应写在哪? |
-- 作者:采菊东篱下 -- 发布时间:2022/2/10 14:10:00 -- 写在AfterOpenProject事件中 |
-- 作者:有点蓝 -- 发布时间:2022/2/10 14:16:00 -- 哪个时间发生变化?什么情况会变化?怎么变化的? |
-- 作者:采菊东篱下 -- 发布时间:2022/2/10 16:25:00 -- 当前时间发生变化,缴费情况表中对应的车牌号最后一个月的缴费_月租_止计日期大于等于当是前日期的前一个月,且缴费_月租_缴费金额大于0,车辆基本信息表中的分类为月租停车,否则为临时停车收费。 |
-- 作者:有点蓝 -- 发布时间:2022/2/10 16:36:00 -- 做一个按钮,让用户自行点击更新。或者放到afteropenproject,每次打开项目执行一次 |