Foxtable(狐表)用户栏目专家坐堂 → [求助]制作值班表?代码应该怎么写?


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

主题:[求助]制作值班表?代码应该怎么写?

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


加好友 发短信
等级:四尾狐 帖子:902 积分:8258 威望:0 精华:0 注册:2012/10/19 13:55:00
[求助]制作值班表?代码应该怎么写?  发帖心情 Post By:2017/2/16 10:55:00 [只看该作者]

制作值班表?
按系统日期排序,8个人(张三、李四、王五、赵六、陈七、林八、方一、田二)轮流值班,
比如,设计状态栏显示“今天是(张三)值班,明天是(李四)值班”,然后,到了次日显示“今天是(李四)值班,明天是(王五)值班”,依次类推。。。
这样的代码应该怎么写?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/16 11:16:00 [只看该作者]

Dim dt As DataTable = DataTables("表A")
Dim fdr As DataRow = dt.Find("日期 = #" & Date.today & "#")
Dim str As String = ""
If fdr IsNot Nothing Then
    str &= "今天:" & fdr("姓名")
Else
    str &= "今天:没人"
End If
fdr =  dt.Find("日期 = #" & Date.today.adddays(1) & "#")
If fdr IsNot Nothing Then
    str &= ",明天:" & fdr("姓名")
Else
    str &= ",明天:没人"
End If
fdr = dt.Find("日期 = #" & Date.today.adddays(2) & "#")
If fdr IsNot Nothing Then
    str &= ",后天:" & fdr("姓名")
else
    str &= ",后天:没人"
end if

StatusBar.Message1 = str


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


加好友 发短信
等级:四尾狐 帖子:902 积分:8258 威望:0 精华:0 注册:2012/10/19 13:55:00
可以用啊,但是怎么循环呀?8人一轮,依次类推,怎么改?  发帖心情 Post By:2017/2/16 14:10:00 [只看该作者]

可以用啊,但是怎么循环呀?8人一轮,依次类推,怎么改?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/16 14:19:00 [只看该作者]

比如,可以动态生成。

 

Dim sd As Date = Date.Today
Dim ed As Date = Date.today.Adddays(10)
Dim ary() As String = {"张三", "李四", "王五"}
dim sidx as integer = 1 '从李四开始
dim d as date = sd
Do While d <= ed
    Dim nr As Row = Tables("表a").AddNew
    nr("第一列") = d
    nr("第二列") = ary(((d-sd).Days+sidx) Mod 3)
    d = d.AddDays(1)
Loop


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


加好友 发短信
等级:四尾狐 帖子:902 积分:8258 威望:0 精华:0 注册:2012/10/19 13:55:00
[求助]昨天是谁值班,怎么写???新的项目已上传!  发帖心情 Post By:2017/2/16 14:58:00 [只看该作者]

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


可以了,我把代码写在项目事件加载类的AfterOpenProject:
Dim sd As Date = Date.Today
Dim ed As Date = Date.today.Adddays(7)
Dim ary() As String = {"张三", "李四", "王五","赵六","陈七","林八","方一","田二"}
Dim sidx As Integer = 0 '从张三开始
Dim d As Date = sd
Do While d <= ed
    Dim nr As Row = Tables("表a").AddNew
    nr("日期") = d
    nr("姓名") = ary(((d-sd).Days+sidx) Mod 8)
    d = d.AddDays(1)
Loop
Dim dt As DataTable = DataTables("表A")
Dim fdr As DataRow = dt.Find("日期 = #" & Date.today & "#")
Dim str As String = ""
If fdr IsNot Nothing Then
    str &= "今天:" & fdr("姓名")
Else
    str &= "今天:没人"
End If
fdr =  dt.Find("日期 = #" & Date.today.adddays(1) & "#")
If fdr IsNot Nothing Then
    str &= ",明天:" & fdr("姓名")
Else
    str &= ",明天:没人"
End If
fdr = dt.Find("日期 = #" & Date.today.adddays(2) & "#")
If fdr IsNot Nothing Then
    str &= ",后天:" & fdr("姓名")
Else
    str &= ",后天:没人"
End If
StatusBar.Message1 = str
[此贴子已经被作者于2017/2/16 15:00:24编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/2/16 19:02:00 [只看该作者]

Dim dr As DataRow = DataTables("表A").Find("", "日期 desc")
Dim ary() As String = {"张三", "李四", "王五","赵六","陈七","林八","方一","田二"}
Dim sidx As Integer = 0
Dim sd As Date
If dr Is Nothing Then
    sidx = 0
    sd = Date.Today
Else
    sidx = array.Indexof(ary, dr("姓名"))
    sidx = iif(sidx = ary.Length-1, 0, sidx+1)
    sd = Cdate(dr("日期")).AddDays(1)
End If

Dim ed As Date = Date.today.Adddays(9)

Dim d As Date = sd
Do While d <= ed
    Dim nr As Row = Tables("表a").AddNew
    nr("日期") = d
    nr("姓名") = ary(((d-sd).Days+sidx) Mod 8)
    d = d.AddDays(1)
Loop
Dim dt As DataTable = DataTables("表A")
Dim fdr As DataRow = dt.Find("日期 = #" & Date.today & "#")
Dim str As String = ""
If fdr IsNot Nothing Then
    str &= "今天:" & fdr("姓名")
Else
    str &= "今天:没人"
End If
fdr =  dt.Find("日期 = #" & Date.today.adddays(1) & "#")
If fdr IsNot Nothing Then
    str &= ",明天:" & fdr("姓名")
Else
    str &= ",明天:没人"
End If
fdr = dt.Find("日期 = #" & Date.today.adddays(2) & "#")
If fdr IsNot Nothing Then
    str &= ",后天:" & fdr("姓名")
Else
    str &= ",后天:没人"
End If
StatusBar.Message1 = str


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


加好友 发短信
等级:四尾狐 帖子:902 积分:8258 威望:0 精华:0 注册:2012/10/19 13:55:00
不全了一下,把“昨天”的信息放上去了!  发帖心情 Post By:2017/2/16 20:04:00 [只看该作者]

Dim dr As DataRow = DataTables("表A").Find("", "日期 desc")
Dim ary() As String = {"张三", "李四", "王五","赵六","陈七","林八","方一","田二"}
Dim sidx As Integer = 0
Dim sd As Date
If dr Is Nothing Then
    sidx = 0
    sd = Date.Today
Else
    sidx = array.Indexof(ary, dr("姓名"))
    sidx = iif(sidx = ary.Length-1, 0, sidx+1)
    sd = Cdate(dr("日期")).AddDays(1)
End If
Dim ed As Date = Date.today.Adddays(9)
Dim d As Date = sd
Do While d <= ed
    Dim nr As Row = Tables("表a").AddNew
    nr("日期") = d
    nr("姓名") = ary(((d-sd).Days+sidx) Mod 8)
    d = d.AddDays(1)
Loop

Dim dt As DataTable = DataTables("表A")

Dim fdr As DataRow = dt.Find("日期 = #" & Date.today.adddays(-1) & "#")
Dim str As String = ""
If fdr IsNot Nothing Then
    str &= "  值班人员:  昨天:" & fdr("姓名")
Else
    str &= "  值班人员:  昨天:没人"
End If

fdr = dt.Find("日期 = #" & Date.today & "#")
If fdr IsNot Nothing Then
    str &= "  ,  今天:" & fdr("姓名")
Else
    str &= "  ,  今天:没人"
End If

fdr =  dt.Find("日期 = #" & Date.today.adddays(1) & "#")
If fdr IsNot Nothing Then
    str &= "  ,  明天:" & fdr("姓名")
Else
    str &= "  ,  明天:没人"
End If

fdr = dt.Find("日期 = #" & Date.today.adddays(2) & "#")
If fdr IsNot Nothing Then
    str &= "  ,  后天:" & fdr("姓名")
Else
    str &= "  ,  后天:没人"
End If

StatusBar.Message1 = str

 回到顶部