Foxtable(狐表)用户栏目专家坐堂 → 第一天值班人员,自动显示为上个月的最后一天值班人员的后一天值班人员,这个代码应该如何写?


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

主题:第一天值班人员,自动显示为上个月的最后一天值班人员的后一天值班人员,这个代码应该如何写?

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/31 15:04:00 [显示全部帖子]

DataTables("经理值班表").DataRows.Clear()
Dim y As Integer = e.Form.Controls("ComboBox1").value
Dim m As Integer = e.Form.Controls("ComboBox2").value
Dim k As String = e.Form.Controls("ComboBox3").value
'Dim days As Integer = Date.DaysInMonth(y,m)
Dim nms() As String = {"张三","李四","王五","陈六","赵七","刘八"}
Dim idx As Integer = Array.IndexOf(nms,k)
Dim jh As New List(of String)
If idx =-1 Then
    jh.AddRange(nms)
Else
    For i As Integer = idx To nms.Length - 1
        jh.Add(nms(i))
    Next
    For i As Integer = 0 To idx-1
        jh.Add(nms(i))
    Next
End If

Dim t As Table = Tables("经理值班表窗口_经理值班表")
Dim d As Date = new Date(y,m,1)
Dim d2 As Date = d.AddMonths(1)
Dim r As Row
If d.DayOfWeek <> 0
    r = t.AddNew()
End If

Do While d < d2
    Dim w As Integer = d.DayOfWeek
    If w = 0 Then r = t.AddNew()
    r(w) = Format(d.Day,"00") & jh((d.day - 1) Mod 6)
    d=d.AddDays(1)
Loop

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/31 16:37:00 [显示全部帖子]

1、
r(w) = Format(d.Day,"00") & jh((d.day - 1) Mod 6)
改为
r(w) = Format(d.Day,"00") & " " & jh((d.day - 1) Mod 6)


2、在清空旧数据之前,先获取值班表最后一行最后一个有值的单元格的数据,提取里面的人名作为“上个月的最后一人

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/31 16:54:00 [显示全部帖子]

最后一行数据会取吗?
从这一行第一列开始判断每个单元格有没有值会吗?

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/31 17:31:00 [显示全部帖子]

最后一行
dim r as row = tables("表A").rows(tables("表A").rows.count - 1)

取最后一个人
Dim k As String
For i As Integer = 0 To Tables("表A").cols.count - 1
    If r.isnull(i) = False Then
        k = r(i)
    Else
        Exit For
    End If
Next
msgbox(k)

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/2 9:01:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:值班表cs2.zip



 回到顶部