Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共21 条记录, 每页显示 10 条, 页签: [1] [2][3]
[浏览完整版]

标题:[求助]请教客户档案信息窗口 按钮的一段代码!

1楼
gaoyong30000 发表于:2011/8/18 9:36:00

之前我发过一个求助帖子 

 

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=11932&page=2#editform

 

讲的是 判断2个列是否有数据变化  如果2列数据都变化了  则在后面的一张表里 自动引用 这2列数据

 

由于通过表代码 无法实现

 

我现在设计了一个窗口  请教下  窗口里的  客户档案信息   保存修改按钮 该怎么写这代码!

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:内控系统7.rar

 

就是客户档案表里的 最后进店日期  和 当前里程  发生更改后 

 

历时近店记录的 的3列(底盘号隐藏了)  自动 引用  客户档案表里  底盘号 最后进店日期  和 当前历程

[此贴子已经被作者于2011-8-18 10:23:51编辑过]
2楼
gaoyong30000 发表于:2011/8/18 10:44:00

请问有参考的案例 或者 如何编写吗?

3楼
foxor 发表于:2011/8/18 10:53:00

应该不需要按钮的,如果只是在关闭项目前更新,可考虑在 BeforeCloseProject 事件中添加代码;如果需要及时更新,可考虑在计划管理中增加代码

4楼
gaoyong30000 发表于:2011/8/18 11:00:00

这是我之前 在客户档案表  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列都更改后引用

 

             如果 最后进店日期  和 当前里程   我先修改了 当前里程   再修改最后进店日期 

             那后面的历时进店记录表里 引用的日期是  旧日期  而不是 修改后的新日期了

5楼
狐狸爸爸 发表于:2011/8/18 11:33:00
Dim r As Row = Tables("客户档案").Current
Dim dr As DataRow = DataTables("历史进店记录").Find("底盘号 = '" & r("底盘号") & "'")
If dr IsNot Nothing Then
    dr("当前里程") = r("当前里程")
    dr("进店时间") = r("最后进店日期")
    dr.Save()
End If
r.Save()
6楼
gaoyong30000 发表于:2011/8/18 11:44:00

表事件中 以前这段代码

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

 

还是不行   这后来的代码  有什么问题吗?》

7楼
狐狸爸爸 发表于:2011/8/18 11:47:00
Dim r As Row = Tables("客户档案").Current
Dim dr As DataRow = DataTables("历史进店记录").Find("底盘号 = '" & r("底盘号") & "'")
If dr IS Nothing Then
   dr = DataTables("历史进店记录").AddNew()
   dr("底盘号") = r("底盘号")
End If
dr("当前里程") = r("当前里程")
dr("进店时间") = r("最后进店日期")
dr.Save()
r.Save()
8楼
gaoyong30000 发表于:2011/8/18 11:52:00

狐狸爸爸 你这个代码有2个问题

 

对于有历史进店记录的客户  这代码有效

 

 

假如 我发现客户档案其它信息有错误  然后去更正了 此客户并没有来店 也就是 最后来店日期和里程没变化  你这个代码 还是会 向历史进店记录添加数据的

 

第二个就是如果是新客户来店  我填写了新的底盘号(底盘号 的确是每个客户唯一标识)   这段代码也识别不出这个客户 也没法记录这次信息了

9楼
狐狸爸爸 发表于:2011/8/18 12:10:00

这个问题:

发现客户档案其它信息有错误 然后去更正了 此客户并没有来店 也就是 最后来店日期和里程没变化 你这个代码 还是会 向历史进店记录添加数据的  

 

你可以自判断一下输入了来店日期和里程才添加行。

 

 

7楼的代码,没有下面这个问题:

第二个就是如果是新客户来店 我填写了新的底盘号(底盘号 的确是每个客户唯一标识) 这段代码也识别不出这个客户 也没法记录这次信息了

 

 

[此贴子已经被作者于2011-8-18 12:12:31编辑过]
10楼
狐狸爸爸 发表于:2011/8/18 12:15:00
Dim r As Row = Tables("客户档案").Current
If r.Isnull("最后进店日期") = False
    Dim dr As DataRow = DataTables("历史进店记录").Find("底盘号 = '" & r("底盘号") & "'")
    If dr Is Nothing Then
        dr = DataTables("历史进店记录").AddNew()
        dr("底盘号") = r("底盘号")
    End If
    dr("当前里程") = r("当前里程")
    dr("进店时间") = r("最后进店日期")
    dr.Save()
End If
r.Save()
共21 条记录, 每页显示 10 条, 页签: [1] [2][3]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 3 queries.