Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
之前我发过一个求助帖子
http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=11932&page=2#editform
讲的是 判断2个列是否有数据变化 如果2列数据都变化了 则在后面的一张表里 自动引用 这2列数据
由于通过表代码 无法实现
我现在设计了一个窗口 请教下 窗口里的 客户档案信息 保存修改按钮 该怎么写这代码!
下载信息 [文件大小: 下载次数: ] | |
![]() |
就是客户档案表里的 最后进店日期 和 当前里程 发生更改后
历时近店记录的 的3列(底盘号隐藏了) 自动 引用 客户档案表里 底盘号 最后进店日期 和 当前历程
请问有参考的案例 或者 如何编写吗?
应该不需要按钮的,如果只是在关闭项目前更新,可考虑在 BeforeCloseProject 事件中添加代码;如果需要及时更新,可考虑在计划管理中增加代码
这是我之前 在客户档案表 datacolchanged事件里的代码
Select Case e.DataCol.name
Case "当前里程"
Dim yq As DataRow = e.DataRow
If e.OldValue <> e.NewValue AndAlso e.NewValue IsNot Nothing Then
Dim lc As DataRow = DataTables("历史进店记录").AddNew()
lc("当前里程") = yq("当前里程")
lc("进店时间") = yq("最后进店日期")
lc("底盘号") = yq("底盘号")
End If
End Select
有弊端 只能判定当前里程更改后 引用 ,而不能判定2列都更改后引用
如果 最后进店日期 和 当前里程 我先修改了 当前里程 再修改最后进店日期
那后面的历时进店记录表里 引用的日期是 旧日期 而不是 修改后的新日期了
表事件中 以前这段代码
Select Case e.DataCol.name
Case "当前里程"
Dim yq As DataRow = e.DataRow
If e.OldValue <> e.NewValue AndAlso e.NewValue IsNot Nothing Then
Dim lc As DataRow = DataTables("历史进店记录").AddNew()
lc("当前里程") = yq("当前里程")
lc("进店时间") = yq("最后进店日期")
lc("底盘号") = yq("底盘号")
End If
End Select
换成了这个
Select Case e.DataCol.name
Case "当前里程","最后进店日期","底盘号"
Dim yq As DataRow = e.DataRow
Dim dr As DataRow = e.DataRow
Dim xm,ym,dm As DataRow
xm = DataTables("历史进店记录").Find("当前里程 = '" & dr("当前里程") & "'")
ym = DataTables("历史进店记录").Find("进店时间 = '" & yq("最后进店日期") & "'")
If xm Is Nothing AndAlso ym Is Nothing Then
Dim lc As DataRow = DataTables("历史进店记录").AddNew()
lc("当前里程") = yq("当前里程")
lc("进店时间") = yq("最后进店日期")
lc("底盘号") = yq("底盘号")
End If
End Select
还是不行 这后来的代码 有什么问题吗?》
狐狸爸爸 你这个代码有2个问题
对于有历史进店记录的客户 这代码有效
假如 我发现客户档案其它信息有错误 然后去更正了 此客户并没有来店 也就是 最后来店日期和里程没变化 你这个代码 还是会 向历史进店记录添加数据的
第二个就是如果是新客户来店 我填写了新的底盘号(底盘号 的确是每个客户唯一标识) 这段代码也识别不出这个客户 也没法记录这次信息了
这个问题:
发现客户档案其它信息有错误 然后去更正了 此客户并没有来店 也就是 最后来店日期和里程没变化 你这个代码 还是会 向历史进店记录添加数据的
你可以自判断一下输入了来店日期和里程才添加行。
7楼的代码,没有下面这个问题:
第二个就是如果是新客户来店 我填写了新的底盘号(底盘号 的确是每个客户唯一标识) 这段代码也识别不出这个客户 也没法记录这次信息了