以下是引用狐狸爸爸在2012-5-23 19:53:00的发言:
你这段代码的意思是什么,我都看糊涂了。
最好配合例子提问,并说明设计目的。
值班表
日期 |
星期 |
正班 |
副班 |
节假日 |
2012-04-30 |
星期一 |
张三 |
李四 |
false |
2012-05-01 |
星期二 |
李四 |
|
true |
2012-05-02 |
星期三 |
王五 |
刘六 |
false |
2012-05-03 |
星期四 |
刘六 |
丁一 |
false |
2012-05-04 |
星期五 |
张三 |
李四 |
false |
2012-05-05 |
星期六 |
李四 |
王五 |
false |
2012-05-06 |
星期日 |
王五 |
|
false |
2012-05-07 |
星期一 |
丁一 |
李四 |
false |
2012-05-08 |
星期二 |
张三 |
|
True |
........ |
........ |
........ |
........ |
........ |
2012-06-20 |
星期一 |
张三 |
李四 |
false |
值班统计表(统计每个人的详细值班情况。值班人员固定)由DataColChanged 触发
姓名 |
星期一 |
星期二 |
星期三 |
星期四 |
星期五 |
星期六 |
星期日 |
副班 |
节假日 |
丁一 |
1 |
0 |
0 |
|
|
|
|
|
|
张三 |
2 |
0 |
|
|
1 |
|
|
|
1 |
李四 |
|
|
|
|
1 |
|
|
|
1 |
王五 |
|
|
|
|
|
|
|
|
|
刘六 |
|
|
|
|
|
|
|
|
|
这段代码执行成功。
问:我如何按月份筛选出值班统计表
Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("值班表")
If e.DataCol.Name = "姓名" And dr.IsNull("姓名") = False Then
'If e.DataCol.Name = "姓名" And dr.IsNull("姓名") = False And dt.DataRows(0)("日期") >= #5/1/2012# And dt.DataRows(0)("日期") <= #5/31/2012# Then
'星期一至星期五:[节假日]=False
dr("星期一") = dt.Compute("Count(正班)", "[星期] = '星期一' And [正班] = '" & dr("姓名") & "'and [节假日]=false" )
dr("星期二") = dt.Compute("Count(正班)", "[星期] = '星期二' And [正班] = '" & dr("姓名") & "'and [节假日]=false" )
dr("星期三") = dt.Compute("Count(正班)", "[星期] = '星期三' And [正班] = '" & dr("姓名") & "'and [节假日]=false" )
dr("星期四") = dt.Compute("Count(正班)", "[星期] = '星期四' And [正班] = '" & dr("姓名") & "'and [节假日]=false" )
'如果星期六或星期日照常上班,则将其作为平班,加到星期五上
dr("星期五") = dt.Compute("Count(正班)", "[星期] = '星期五' And [正班] = '" & dr("姓名") & "'and [节假日]=false" ) + dt.Compute("Count(正班)", "[星期] = '星期六' And [正班] = '" & dr("姓名") & "'and [副班]<>'' And [节假日]=false" ) + dt.Compute("Count(正班)", "[星期] = '星期日' And [正班] = '" & dr("姓名") & "'and [副班]<>'' And [节假日]=false" )
'星期六,日的记录数:[副班]为空且[节假日]为False
dr("星期六") = dt.Compute("Count(正班)", "[星期] = '星期六' And [正班] = '" & dr("姓名") & "'and [副班] Is Null and [节假日]=false" )
dr("星期日") = dt.Compute("Count(正班)", "[星期] = '星期日' And [正班] = '" & dr("姓名") & "'and [副班] Is Null and [节假日]=false" )
dr("节假日") = dt.Compute("Count(正班)", "[正班] = '" & dr("姓名") & "' and [节假日] = True" )
dr("副班") = dt.Compute("Count(正班)", "[副班] = '" & dr("姓名") & "'" )
End If