Foxtable(狐表)用户栏目专家坐堂 → 实时显示


  共有3505人关注过本帖树形打印复制链接

主题:实时显示

帅哥哟,离线,有人找我吗?
cyrollin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
实时显示  发帖心情 Post By:2015/4/12 10:17:00 [显示全部帖子]

做了一个窗口,显示以往的历史记录信息,事件写在currentchanged 里面的

If Forms("历史服务").Opened Then
With DataTables("派工表")
Dim r As Row = e.Table.Current
Dim s As String = "客户信息 like '" & r("客户信息").split(" ")(0) & "%'"
If r.Isnull("客户信息") Then s = "1=2"
Dim drs As List(Of DataRow) = e.Table.DataTable.Select(s & " And _Identify <> " & r("_Identify") & " And 日期 <= #" & r("日期") & "#", "日期 Desc")
If drs.Count > 0 Then
Forms("历史服务").Controls("TextBox1").Text = drs(0)("客户信息")
Forms("历史服务").Controls("TextBox2").Text = drs(0)("服务内容")
Forms("历史服务").Controls("TextBox3").Text = drs(0)("日期")
Forms("历史服务").Controls("TextBox8").Text = drs(0)("备注")
Else
Forms("历史服务").Controls("TextBox2").Text = Nothing
Forms("历史服务").Controls("TextBox3").Text = Nothing
Forms("历史服务").Controls("TextBox1").Text = Nothing
Forms("历史服务").Controls("TextBox8").Text = Nothing
End If
If drs.Count > 1 Then
Forms("历史服务").Controls("TextBox4").Text = drs(1)("服务内容")
Forms("历史服务").Controls("TextBox5").Text = drs(1)("日期")
Else
Forms("历史服务").Controls("TextBox4").Text = Nothing
Forms("历史服务").Controls("TextBox5").Text = Nothing
End If
If drs.Count > 2 Then
Forms("历史服务").Controls("TextBox6").Text = drs(2)("服务内容")
Forms("历史服务").Controls("TextBox7").Text = drs(2)("日期")
Else
Forms("历史服务").Controls("TextBox6").Text = Nothing
Forms("历史服务").Controls("TextBox7").Text = Nothing
End If
End With
If E.Table.Current Is Nothing Then
Forms("历史服务").Controls("TextBox8").Text = Nothing
Forms("历史服务").Controls("TextBox1").Text = Nothing
Forms("历史服务").Controls("TextBox9").Text = Nothing
Else
Forms("历史服务").Controls("TextBox1").Text = e.Table.current("客户信息")
Forms("历史服务").Controls("TextBox8").Text = e.Table.current("备注")
Forms("历史服务").Controls("TextBox9").Text = e.Table.current("签约终止日")
End If
End If


当这一列发生变化了,历史记录不会马上显示到窗口里面,只能点其他行,再回到这一行,才可以显示出来。 应该怎么写,才能实时显示到窗口里面呢?

 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/4/12 10:54:00 [显示全部帖子]

我在afteredit 加入了:
Select Case e.Col.name
    Case "客户信息"
        If e.Row("_Identify") = Tables("派工表").Current("_Identify") '如果发生变化的是当前行
            Tables("派工表").RaiseCurrentChanged() '触发订单表的CurrentChanged事件,相当于重新统计一次.
        End If
End Select

效果是出来了,但结果有点不尽人意。第一楼窗口里面显示的是最后三笔此客户的历史信息,以前没问题,现在的问题是:不显示最后一次的记录了,只显示倒数第二笔, 第三笔,第四笔的记录。

 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/4/12 11:32:00 [显示全部帖子]

也加了的,也是一样,要少最后一笔记录

TIANTIAN, 我想你了 

 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/4/12 12:58:00 [显示全部帖子]

加这段代码: [_SortKey] Desc 也不能,我知道原因了,是因为当那一行没有日期时,就不能正常显示最后三笔历史记录。

In this case/就这种情况,如果此行没有日期,怎么显示最后三笔记录呢?

 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/4/12 13:07:00 [显示全部帖子]

If r.Isnull("客户信息") andalso e.datarow("日期").isnull = false Then s = "1=2"
Dim drs As List(Of DataRow) = e.Table.DataTable.Select(s & " And _Identify <> " & r("_Identify") & " And 日期 <= #" & r("日期") & "#", "日期 Desc")
 else if
....


 回到顶部
帅哥哟,离线,有人找我吗?
cyrollin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2015/4/13 11:11:00 [显示全部帖子]

要是我们的客户名字有同名的,我们就会在名字后面加上数字1,或2,3,4,或括号(什么什么的)。
比如 :

有点甜
有点甜1
有点甜2
有点甜(网)

遇到这种重名的情况,这个查询就会比较乱,张冠李戴,不准确了。
出于这个代码吧: Dim s As String = "客户信息 like '" & r("客户信息").split(" ")(0) & "%'"
怎么准确地进行判断呢?



 回到顶部