1.累计用时,由完成时间-开始时间2.表'工作时间'的工号写入时,姓名自动从人员资料里面提取
这两个代码要怎么写?求教了,谢谢!
[此贴子已经被作者于2010-8-12 9:36:41编辑过]
此主题相关图片如下:未命名.bmp

谢谢!卟离卟弃
不过还差点,要计算出时间的小时数和分钟数,比如说
23:32~05:00
小时数应为5 分钟数应为28
也就是说时间要以24小时制,分钟以60为进制
[此贴子已经被作者于2010-8-12 15:31:29编辑过]
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
Case "工号"
Dim dr1 As DataRow
dr1 = DataTables("人员资料").Find("[工号] = '" & e.NewValue & "'")
If dr1 IsNot Nothing Then
dr("姓名") = dr1("姓名")
End If
Case "开始时间","完成时间"
If dr.IsNull("开始时间") = False And dr.IsNull("完成时间") = False Then
dr("累计用时时")=(dr("完成时间")- dr("开始时间")).Hours
dr("累计用时分")=(dr("完成时间")- dr("开始时间")).Minutes
End If
End Select
[此贴子已经被作者于2010-8-12 16:00:01编辑过]
以下是引用狐狸爸爸在2010-8-12 15:59:00的发言:Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
Case "工号"
Dim dr1 As DataRow
dr1 = DataTables("人员资料").Find("[工号] = '" & e.NewValue & "'")
If dr1 IsNot Nothing Then
dr("姓名") = dr1("姓名")
End If
Case "开始时间","完成时间"
If dr.IsNull("开始时间") = False And dr.IsNull("完成时间") = False Then
dr("累计用时时")=(dr("完成时间")- dr("开始时间")).Hours
dr("累计用时分")=(dr("完成时间")- dr("开始时间")).Minutes
End If
End Select
[此贴子已经被作者于2010-8-12 16:00:01编辑过]
狐爸,还有点问题,可能我没表达清楚,要实现下面的计算结果(如图):
1.计算的结果换算好要把小时和分钟分开来
2.如时间段内碰到12点至13点这区间的,要自动扣掉一小时

此主题相关图片如下:未命名.bmp
[此贴子已经被作者于2010-8-13 8:01:54编辑过]
估计楼主是想超过中午12点后都要减少1小时吧? 也就是从13点开始计算~~~~
以下是引用mr725在2010-8-13 11:48:00的发言:
估计楼主是想超过中午12点后都要减少1小时吧? 也就是从13点开始计算~~~~
其实这个是用来计算生产车间的作业员在两个时间区间的实际工作时间的,其中有实行2班倒,每个 班中间还有固定的损耗时间.报表在写的时候同料同作业员时间段是不分开写的,如8:00~19:00 生产A料 张三(这中间须扣除中午1小时,傍晚半小时);21:00~5:50 生产B料 李四 (这中间须扣除上半夜30分钟,凌晨30分钟) 如下规则:
1.白班:中午12:00~13:00用餐及午休,傍晚17:30~18:00晚餐
2.晚班:23:00~23:30 用餐 凌晨4:00~4:30休息
我想设定在这时间段内的设定自动扣除相应的时间,我现在的水平还搞不定这些,麻烦大家帮忙看下!有没办法?
[此贴子已经被作者于2010-8-13 14:04:51编辑过]
Dim h0 As Date = dr("开始时间")
Dim h1 As Date = dr("完成时间")
If dr.IsNull("开始时间") = False And dr.IsNull("完成时间") = False Then
If h0.hour = 12
If h1 < h0 Then
h1 = h1.AddHours(24)
End If
dr("累计用时时")=(h1- h0).Hours-1
dr("累计用时分")=(h1- h0).Minutes
Else
' *******.这样不停的设置条件即可```````
If h1 < h0 Then
h1 = h1.AddHours(24)
End If
dr("累计用时时")=(h1-h0).Hours
dr("累计用时分")=(h1-h0).Minutes
End If
End If
以下是引用mr725在2010-8-13 15:04:00的发言:Dim h0 As Date = dr("开始时间")
Dim h1 As Date = dr("完成时间")
If dr.IsNull("开始时间") = False And dr.IsNull("完成时间") = False Then
If h0.hour = 12
If h1 < h0 Then
h1 = h1.AddHours(24)
End If
dr("累计用时时")=(h1- h0).Hours-1
dr("累计用时分")=(h1- h0).Minutes
Else
' *******.这样不停的设置条件即可```````
If h1 < h0 Then
h1 = h1.AddHours(24)
End If
dr("累计用时时")=(h1-h0).Hours
dr("累计用时分")=(h1-h0).Minutes
End If
End If
谢谢!学习下...试试看
[此贴子已经被作者于2010-8-13 16:38:22编辑过]