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


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

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

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


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

甜版,谢谢了
我把代码放入例子中进行了测试,基本是实现了我的想法,但是,测试中发现两个问题
1.运行后,出来的消息框要点击多次才能取消,我希望一次把全部没有及时维护日志的都显示出来,点击确定消息框就可以消除了,以便进行后续操作。
2.希望显示的信息里面还要含有“监造人员”的信息。

我把加入代码的例子再次传上来,麻烦甜版再看看。

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


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

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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/23 9:12: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)
Dim str As String = "没有及时维护监造日志的任务:" & vbcrlf
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
                str &= vbcrlf & s & "  " & DataTables("监造日志").Find("监造流水号 = '" & 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

msgbox(str)


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


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

甜版,谢谢,效果非常好,代码太深奥,我还是没研究透彻,仅仅把message.show()进行了一点设置。真是临到用时才知水平低啊!图片点击可在新窗口打开查看


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


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

甜版,又来请教了,针对这个对未及时编写日志的情况进行预警的代码,我还需要增加一个判断,就是这项工作暂停了,暂时不需要编写报表了,那么就暂时不对这项工作的未编日志进行统计(即监造是否暂停 = true的情况不统计),我在监造日志表中增加了一个逻辑列“监造是否暂停”。不知我该怎样把这个逻辑列放入代码进行判断?下面的代码似乎不起作用。
    Dim ls1 As List(Of String) = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and 监造是否完成 <> '全部完成'and 监造工作是否暂停 = false")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/20 14:08: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 监造是否完成 <> '全部完成' and 监造是否暂停 = False")
d_start = d_start.AddDays(1)
Dim str As String = "没有及时维护监造日志的任务:" & vbcrlf
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 (监造是否完成 = '全部完成' or 监造是否暂停 = true)") Is Nothing Then
                str &= vbcrlf & s & "  " & DataTables("监造日志").Find("监造流水号 = '" & s & "'")("监理人员") & "   " & d_start
            End If
        End If
    Next
    ls2 = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and (监造是否完成 = '全部完成' or 监造是否暂停 = true)")
    For Each s As String In ls2
        If ls1.Contains(s) Then
            ls1.Remove(s)
        End If
    Next
    ls2 = DataTables("监造日志").GetValues("监造流水号","填报日期 = #" & d_start & "# and 监造是否完成 <> '全部完成' and 监造是否暂停 = False")
    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

msgbox(str)


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


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

感谢甜版,可以实现了

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