以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求高手指点  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101303)

--  作者:sgkyzfh
--  发布时间:2017/5/27 20:47:00
--  求高手指点
在一个表里字段有车号、安装日期、备件名称、数量、金额。在这个表里的同一车号名称下(例如1#车)有多个备件名称相同的记录,但发放日期不同。那么我的问题是:在表里查找日期相邻的记录,用后面的记录里的日期减去前面记录里的日期,得出使用天数,并将结果送入到前面记录的使用天数字段里。
车号 安装日期 备件名称 数量 金额 使用天数
1# 2017.3.4 传动轴 1 1230 31
1# 2017.2.3 连接盘 2 254  
1# 2017.4.4 传动轴 1 1230 31
1# 2017.5.2 螺栓 3 6
1# 2017.5.4 传动轴 1 1230
2# 2016.2.1 垫片 4 3






谢谢各位大侠帮忙

--  作者:zmagood
--  发布时间:2017/5/27 21:15:00
--  
DataColChanged事件
If e.DataCol.Name = "车号" OrElse  e.DataCol.Name = "备件名称" OrElse e.DataCol.Name = "安装日期" Then
    If e.DataRow.IsNull("车号") = False AndAlso e.DataRow.IsNull("备件名称") = False  AndAlso e.DataRow.IsNull("安装日期") = False   Then
        Dim drf As DataRow = e.DataTable.Find("车号=\'" & e.DataRow("车号")  & "\' And 备件名称 = \'" &  e.DataRow("备件名称")  & "\' And _Identify <> " &  e.DataRow ("_Identify") ,"安装日期 desc")
        If drf Is not Nothing Then
            drf("使用天数") = (e.DataRow("安装日期") - drf("安装日期")).TotalDays
            drf.save
        End If
    End If
End If


[此贴子已经被作者于2017/5/27 21:19:22编辑过]

--  作者:zmagood
--  发布时间:2017/5/27 21:30:00
--  
只提供一下思路,如果涉及重置列或,如果输入后,又要修改车号及备件名称时,还需要相应代码去清除上次的使用天数
还有上段find条件中还应该加上条件  安装日期 < 当前的日期

--  作者:sgkyzfh
--  发布时间:2017/5/28 5:32:00
--  
谢谢,各位大侠。有你们的热情周到,就有了我们的学习的毅力。想和有意的大侠学习指导我开发一个小项目,可洽谈合作。