以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]遇到一个怪问题!请教~~~~~~~~~~~(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=24887)

--  作者:gaoyong30000
--  发布时间:2012/10/25 17:23:00
--  [求助]遇到一个怪问题!请教~~~~~~~~~~~(已解决)
 
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
上面这个录入框  textbox1  为 当前里程
                      DateTimePicker2  为 进店时间

下面这段代码 在命令窗口测试:

Dim v As Double
v = Tables("售后客户录入_table1").Compute("max(公里数)")
Dim d As Date
d  = Tables("售后客户录入_table1").Compute("max(进店时间)")

output.show(forms("售后客户录入").controls("textbox1").text - v)
output.show((CDate(forms("售后客户录入").controls("DateTimePicker2").value) - d).totaldays)


If (forms("售后客户录入").controls("textbox1").text - v) < 7000 And (CDate(forms("售后客户录入").controls("DateTimePicker2").value) - d).totaldays <180 Then
    msgbox(1)
End If

结果为:28099
           548
msgbox(1)条件不符合,不跳出来


但是这段代码在录入窗口的保存里 点保存的时候 msgbox(1)  却跳出来了

图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看




图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看




附上 保存按钮click代码:

Dim tr As Row = Tables("售后客户档案_售后客户档案Table2").Current
Dim sr As String = "车系|底盘号|型号|建档日期|最后进店日期|里程"
For Each k As String In sr.split("|")
    If  tr.Isnull(k)= True Then
        MessageBox.Show("【" & k & "】"  & "未填写", "提示", MessageBoxButtons.ok, MessageBoxIcon.Information)
        Return
    End If
Next

Dim g As New Filler
g.SourceTable = DataTables("售后客户档案_售后客户档案Table2") \'指定数据来源
g.SourceCols = "底盘号,里程,最后进店日期" \'指定数据来源列
g.DataTable = DataTables("售后客户录入_Table1")\'指定数据接收表
g.DataCols = "底盘号,公里数,进店时间" \'指定数据接收列
g.ExcludeExistValue =True
g.ExcludeNullValue =False
g.Distinct =True
g.Append =True
g.Fill()

If DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& date.today.addyears(-1)&"# and 底盘号 = \'" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "\'") >= 4 Then
    Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "A"
ElseIf DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& date.today.addyears(-1)&"# and 底盘号 = \'" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "\'") = 3 Then
    Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "B"
ElseIf DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& date.today.addyears(-1)&"# and 底盘号 = \'" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "\'") = 2 Then
    Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "C"
    \'ElseIf DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& date.today.addyears(-1)&"# and 底盘号 = \'" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "\'") <= 1 Then
ElseIf DataTables("售后客户录入_Table1").Compute("Count(进店时间)","进店时间 >= #"& date.today.addyears(-2)&"# and 底盘号 = \'" & Tables("售后客户档案_售后客户档案Table2").current("底盘号") & "\'") = 0 Then
    Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "无效档案"
Else
    Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "D"
End If

Dim v As Double
v = Tables("售后客户录入_table1").Compute("max(公里数)")
Dim d As Date
d  = Tables("售后客户录入_table1").Compute("max(进店时间)")

If (e.Form.controls("textbox1").text - v) < 7000 And (CDate(e.Form.controls("DateTimePicker2").value) - d).totaldays < 180 Then
    msgbox(1)
    Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "A"

End If

If Date.Today.addmonths(-3) < Tables("售后客户档案_售后客户档案Table2").current("建档日期") Then
    Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "A"
End If

If Tables("售后客户档案_售后客户档案Table2").current.IsNull("编号") = True Then
    Tables("售后客户档案_售后客户档案Table2").current("客户等级") = "E"
End If

Tables("售后客户档案_售后客户档案Table2").current.save()
Dim wbl As WinForm.Table = e.Form.Controls("Table1")
Dim tbl As Table = wbl.Table
tbl.DataTable.Save()
DataTables("售后客户档案_售后客户档案Table1").load
Tables("售后客户档案_售后客户档案Table1").filter = "底盘号 = \'" & Tables("售后客户档案_售后客户档案Table2").Current("底盘号") & "\'"
e.sender.Enabled = False


百思不得其解 ,请教~~~~~~~~~~~~~~


[此贴子已经被作者于2012-10-25 17:30:31编辑过]

--  作者:gaoyong30000
--  发布时间:2012/10/25 17:30:00
--  
多谢  自己解决了!图片点击可在新窗口打开查看


Dim g As New Filler
g.SourceTable = DataTables("售后客户档案_售后客户档案Table2") \'指定数据来源
g.SourceCols = "底盘号,里程,最后进店日期" \'指定数据来源列
g.DataTable = DataTables("售后客户录入_Table1")\'指定数据接收表
g.DataCols = "底盘号,公里数,进店时间" \'指定数据接收列
g.ExcludeExistValue =True
g.ExcludeNullValue =False
g.Distinct =True
g.Append =True
g.Fill()

这个提前 fill了 导致后面的 等级判断不对  放到
Tables("售后客户档案_售后客户档案Table2").current.save()

下面 就OK了~~~~~~~~~~