以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求老师解决,关于排班  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101480)

--  作者:hjsl
--  发布时间:2017/6/1 11:35:00
--  [求助]求老师解决,关于排班

 我是一个初学者,“表A 是通过论坛上的例子做了一个

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


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170601112058.png
图片点击可在新窗口打开查看

 

想达到以下效果。

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170601112352.png
图片点击可在新窗口打开查看

望老师帮助解决。谢谢!

 

 

我QQ邮箱:1218457069@qq.com


--  作者:有点色
--  发布时间:2017/6/1 12:35:00
--  

Dim frm As winform.Form = Forms("窗口2")
Dim y As Integer = frm.Controls("ComboBox1").value \'指定年
Dim m As Integer = frm.Controls("ComboBox2").value \'指定月
Dim k As Integer = frm.Controls("ComboBox3").value \'指定开始位置
Dim k1 As Integer = frm.Controls("ComboBox4").value \'指定开始位置
Dim k2 As Integer = frm.Controls("ComboBox5").value \'指定开始位置
Dim days As Integer = Date.DaysInMonth(y,m) \'返回指定 年\\月 的天数
Dim ed As Date = New Date(y,m,Days)
Dim sd As Date = New Date(y,m,1) \'从指定日期开始

Dim zblds As List(Of String) = DataTables("值班领导").GetValues("姓名","姓名 is not null", "_sortkey")
Dim dbzs As List(Of String) = DataTables("带班组").GetValues("姓名","姓名 is not null","_sortkey")
Dim zbrys As List(Of String) = DataTables("值班人员").GetValues("姓名","姓名 is not null","_sortkey")

Dim d As Date = sd
Dim i1 As String = iif(k2=0,1,k2)
Dim i2 As Integer = iif(k1=0,1,k1)
Dim i3 As Integer = iif(k=0, 1, k)
Do While d <= ed
    Dim nr As Row = Tables("表a").AddNew
    nr("日期") = d
    nr("星期") = Format(d, "dddd")
    nr("值班人员") = zbrys(i3-1)
    nr("带班组") = dbzs(i2-1)
    nr("值班领导") = zblds(i1-1)
    d = d.AddDays(1)
    i2 += 1
    i3 += 1
    If i2 > dbzs.count Then
        i2 = 1
    End If
    If i3 > zbrys.count Then
        i3 = 1
    End If
    If d.DayOfWeek = 0 Then
        i1 += 1
    End If
    If i1 > zblds.count Then
        i1 = 1
    End If
Loop


--  作者:hjsl
--  发布时间:2017/6/1 14:35:00
--  
非常感谢 有点色 老师的帮助。
--  作者:hjsl
--  发布时间:2017/6/2 10:25:00
--  
老师,如果指定空2天不安排人(比如节假日不排)该如何实现。代码改怎么写。
--  作者:有点色
--  发布时间:2017/6/2 10:39:00
--  

 

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


 


--  作者:hjsl
--  发布时间:2017/6/6 22:25:00
--  回复:(有点色) [upload=table,排班.table]v...


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170606221958.png
图片点击可在新窗口打开查看

 

如何“带班组”本次无人参加值班,此代码执行出错,代码该如何改。麻烦老师了。


--  作者:有点蓝
--  发布时间:2017/6/6 23:03:00
--  
Dim frm As winform.Form = Forms("窗口2")
Dim y As Integer = frm.Controls("ComboBox1").value \'指定年
Dim m As Integer = frm.Controls("ComboBox2").value \'指定月
Dim k As Integer = frm.Controls("ComboBox3").value \'指定开始位置
Dim k1 As Integer = frm.Controls("ComboBox4").value \'指定开始位置
Dim k2 As Integer = frm.Controls("ComboBox5").value \'指定开始位置
Dim days As Integer = Date.DaysInMonth(y,m) \'返回指定 年\\月 的天数
Dim ed As Date = New Date(y,m,Days)
Dim sd As Date = New Date(y,m,1) \'从指定日期开始

Dim zblds As List(Of String) = DataTables("值班领导").GetValues("姓名","姓名 is not null", "_sortkey")
Dim dbzs As List(Of String) = DataTables("带班组").GetValues("姓名","姓名 is not null","_sortkey")
Dim zbrys As List(Of String) = DataTables("值班人员").GetValues("姓名","姓名 is not null","_sortkey")

Dim d As Date = sd
Dim i1 As String = iif(k2=0,1,k2)
Dim i2 As Integer = iif(k1=0,1,k1)
Dim i3 As Integer = iif(k=0, 1, k)
Dim dt As DataTable = DataTables("假期")
Dim dbzCount As Integer = dbzs.Count
Do While d <= ed
    Dim fdr As DataRow = dt.Find("日期 = #" & d & "#")
    If fdr Is Nothing Then
        Dim nr As Row = Tables("表a").AddNew
        nr("日期") = d
        nr("星期") = Format(d, "dddd")
        nr("值班人员") = zbrys(i3-1)
If dbzCount > 0 Then nr("带班组") = dbzs(i2-1)
        nr("值班领导") = zblds(i1-1)
        i2 += 1
        i3 += 1
        If i2 > dbzs.count Then
            i2 = 1
        End If
        If i3 > zbrys.count Then
            i3 = 1
        End If
    Else
        Dim nr As Row = Tables("表a").AddNew
        nr("日期") = d
        nr("星期") = Format(d, "dddd")
        nr("值班领导") = fdr("说明")
    End If
    If d.DayOfWeek = 0 Then
        i1 += 1
    End If
    If i1 > zblds.count Then
        i1 = 1
    End If
    d = d.AddDays(1)
Loop

--  作者:hjsl
--  发布时间:2017/6/7 0:34:00
--  回复:(有点蓝)Dim frm As winform.Form = Forms("窗...
谢谢老师
--  作者:hjsl
--  发布时间:2017/6/10 19:19:00
--  

如何让各值班组按天数进行排班,达到如下图效果。

 

求老师,帮助。 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170610191328.png
图片点击可在新窗口打开查看


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:排班 (1).table


--  作者:hjsl
--  发布时间:2017/6/10 21:16:00
--  
以下是引用hjsl在2017/6/10 19:19:00的发言:

如何让各值班组按天数进行排班,达到如下图效果。

 

求老师,帮助。 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20170610191328.png
图片点击可在新窗口打开查看


 

 下载信息  [文件大小:392.0 KB  下载次数:3]
图片点击可在新窗口打开查看点击浏览该文件:排班 (1).table

麻烦大家帮我看看。