以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎么获取数据库中的数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158902)

--  作者:martin723
--  发布时间:2020/12/6 22:05:00
--  [求助]怎么获取数据库中的数据
有张数据表,里面有车号,日期,里程表数,月累里程数等字段。想读取每月20日前的最大日期的里程表数作为底数,每月20号至下月19号之间的数据的每条记录中的里程表数和其差值就是月累里程数。怎么设计这段代码?
图片点击可在新窗口打开查看此主题相关图片如下:mmexport1607263394447.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/12/6 22:18:43编辑过]

--  作者:有点蓝
--  发布时间:2020/12/6 22:42:00
--  
datacolchanged事件
select case e.datacol.name
case "车号","日期","里程表数"
dim d as date = e.datarow("日期")
dim dr as datarow
if d.day > 20 then
dim d2 as date = new date(d.year,d.month,20)
dr = e.datatable.find("车号=\'" & e.datarow("车号") & "\' and 日期 <=#" & d2 & "#","日期 desc")
elseif d.day < 20 then
dim d2 as date =d.addmonths(-1)
d2=  new date(d2.year,d2.month,20)
dr = e.datatable.find("车号=\'" & e.datarow("车号") & "\' and 日期 <=#" & d2 & "#","日期 desc")
end if
if dr isnot nothing then
e.datarow("月累里程数") = e.datarow("里程表数") - dr("里程表数")
end if
end select

--  作者:martin723
--  发布时间:2020/12/7 10:26:00
--  
如果是增加一个按钮,一次性算一个时间段的。比如计算11. 20-12. 19日的,怎么设计?
--  作者:有点蓝
--  发布时间:2020/12/7 10:35:00
--  
11. 20数据为基准

遍历11. 21-12. 19日的所有行,每行里程表数减去11. 20里程表数数据就是当天的月累里程数