Foxtable(狐表)用户栏目专家坐堂 → 请教一个关于未编写日志的预警思路


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

主题:请教一个关于未编写日志的预警思路

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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
请教一个关于未编写日志的预警思路  发帖心情 Post By:2014/10/22 14:36:00 [只看该作者]

有一个日志的表,用来记录对每个任务(监造流水号)每天的日志,希望系统自动检查每个任务是否编写了日志,如果前一天没有编写日志,系统在开机前自动将没有编写日志的任务(监造流水号)和相关的人员通过一个信息窗口显示出来(但是对于已经标记为全部完成的任务,不再进行检查),不知该如何考虑实现这个功能?望高手指导。
表的格式如下:

监造流水号 合同编号 填报日期 主要物资名称 监理人员 合同交货时间 监造是否完成
CI201410001 8100012345 2014-10-17 反应器 李四 2014-11-30 全部完成
CI201410002 8100012346 2014-10-17 换热器 王五 2014-11-30 正在监造








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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/22 14:52:00 [只看该作者]

 例子发上来。

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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/22 15:09:00 [只看该作者]

甜版,例子放上来了,主要目的是系统自动查出没有按时每天编写日志的人员和对应的任务(监造流水号)。先谢谢了。

我考虑了一段时间,但是没有思路,不知该如何实现这个功能。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/22 15:10:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/22 15:10:00 [只看该作者]

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/22 15:33:00 [只看该作者]

不太理解你的逻辑

 

Dim d_start As Date = new Date(2014, 10, 17)
Dim d_end As Date = Date.Today

Dim ls1 As List(Of String) = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and 监造是否完成 <> '全部完成'")
d_start = d_start.AddDays(1)

Do While d_start < d_end       
    Dim ls2 As List(Of String) = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "#")
    For Each s As String In ls1
        If ls2.Contains(s) = False Then
            output.show(s & "  " & d_start)
        End If
    Next
    ls2 = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and 监造是否完成 = '全部完成'")
    For Each s As String In ls2
        If ls1.Contains(s) Then
            ls1.Remove(s)
        End If
    Next
    ls2 = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and 监造是否完成 <> '全部完成'")
    For Each s As String In ls2
        If ls1.Contains(s) = False Then
            ls1.Add(s)
        End If
    Next
    d_start = d_start.AddDays(1)
Loop


 


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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/22 16:53:00 [只看该作者]

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

甜版,我的意思就是:对于“监造是否完成”列中没有完全完成的监造任务(每一个监造流水号代表一个监造任务),要求每天都要维护一行日志(即填报日期应该是连续的,每天都要生成一行),如果超过24:00而没有维护,则在打开项目后将前面没有及时维护日志的进行预警。

重新做了一个例子,如例子中:
对于CI201410001监造任务,虽然2014/10/16没有填报日志,但是该任务在2014/10/17日日志行中的“监造是否完成”栏已经显示全部完成,所以就不再对该CI201410001监造任务没有填报2014/10/16日志进行预警。
但对于CI201410002监造任务,由于还没有完成,所以系统检测后发现2014/10/20日没有填写日志,所以系统应在21日后自动对此进行预警,通过信息窗口显示“王五,2014/10/20日没有及时维护CI201410002监造任务的日志




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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/22 16:56:00 [只看该作者]

补充:每个监造任务(即监造流水号)的初始填报并不固定,系统已自己查找每个监造流水号的最早填报日期作为起始检查日期。

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


加好友 发短信
等级:小狐 帖子:319 积分:2494 威望:0 精华:0 注册:2012/5/19 22:40:00
  发帖心情 Post By:2014/10/22 16:56:00 [只看该作者]

系统应自己查找每个监造流水号的最早填报日期作为起始检查日期

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/22 17:11:00 [只看该作者]

 代码

 

Dim d_start As Date = DataTables("监造日志").Compute("min(填报日期)", "填报日期 is not null")
Dim d_end As Date = Date.Today

Dim ls1 As List(Of String) = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and 监造是否完成 <> '全部完成'")
d_start = d_start.AddDays(1)

Do While d_start < d_end       
    Dim ls2 As List(Of String) = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "#")
    For Each s As String In ls1
        If ls2.Contains(s) = False Then
            If DataTables("监造日志").Find("监造流水号 = '" & s & "' and 监造是否完成 = '全部完成'") Is Nothing Then
                msgbox(s & "  " & d_start)
            End If
        End If
    Next
    ls2 = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and 监造是否完成 = '全部完成'")
    For Each s As String In ls2
        If ls1.Contains(s) Then
            ls1.Remove(s)
        End If
    Next
    ls2 = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and 监造是否完成 <> '全部完成'")
    For Each s As String In ls2
        If ls1.Contains(s) = False Then
            ls1.Add(s)
        End If
    Next
    d_start = d_start.AddDays(1)
Loop


 回到顶部
总数 17 1 2 下一页