以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]根据项目自动填充对应日期  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=78779)

--  作者:csxuebai
--  发布时间:2015/12/16 23:39:00
--  [求助]根据项目自动填充对应日期
有修理记录表和保养计划表,保养计划表需要对车辆的一二级保养安排计划日期,并根据修理记录填写实际保养日期,怎么样才能够实现,在修理记录表的报修项目里如果含有一级保养或二级保养等,实现在计划表中自动生成实际完成日期?(规定实际完成可以在计划前后几天,但必须要当月的,所以不会出现这个月的计划实际在下个月完成)

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


--  作者:Hyphen
--  发布时间:2015/12/17 9:40:00
--  
修理计划DataColChanged

代码类似:

Select Case e.DataCol.Name
    Case "修理项目"
        If e.NewValue = "一级保养" Then
            Dim dr As DataRow = DataTables("保养计划").Find("车号 = \'" & e.DataRow("车号") &  "\' and 实际完成日期 is null")
            If dr IsNot Nothing Then
                dr("实际完成日期") = Date.now
            End If
        End If
End Select

--  作者:csxuebai
--  发布时间:2015/12/17 16:43:00
--  
谢谢,不过这个方法测试下来好像不行啊。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.foxdb


--  作者:Hyphen
--  发布时间:2015/12/17 17:19:00
--  

放在保养计划,代码改下

 

Select Case e.DataCol.Name
    Case "修理项目"
        If e.NewValue = "一级保养" AndAlso e.DataRow.IsNull("实际完成日期") Then
            e.DataRow("实际完成日期") = Date.now
        End If
End Select

 

选择完后,焦点要离开单元格,才会触发事件


--  作者:csxuebai
--  发布时间:2015/12/18 9:10:00
--  
这个“实际完成日期”是根据《修理记录》表中某个日期做的保养记录来产生的,不是我当天记录自动生成当天的日期
例如这个项目中,AAAAA车计划一级保养日期是12月1、11、21日3次,而根据修理记录,实际是1、12、23日有做一级保养项目的,所以想能不能在《保养计划》表中的“实际完成日期”自动产生这3个日期

--  作者:大红袍
--  发布时间:2015/12/18 9:30:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


--  作者:csxuebai
--  发布时间:2015/12/18 9:39:00
--  
可以了,谢谢大红袍老师。