前提:
1、已经完成OpenQQ客户端,能正常发信息。
2、已经按版主说的用递归函数做了用户上下级表,如图用户表,是不是正确的。
3、我想实现的功能是如图:
1)筛选出一个部门的考勤记录,部门经理审核(已实现),保存按钮(失败),保存后,审核人的记录在下次又是空白的,什么原因?
保存:
Dim r As Row = Tables("考勤统计表").Current
Dim p As String = IIF(r.DataRow.RowState = DataRowState.Added, "A#", "U#")
r.Save()
'一定要在保存后合成信息,因为新增行的主键在保存后才生成
Dim msg As String = p & "表A" & "#" & r("_Identify")
For Each bd As QQBuddy In QQClient.Buddies
If bd.Online Then
QQClient.Send(bd.name, msg)
End If
Next
2)通知分管副总理代码:
将ReceivedMessage设置
Dim msg As String = e.Message
Dim dr As DataRow
If msg.StartsWith("U#") Then '表示修改了某行
Dim pts() As String = msg.Split("#")
If pts.Length = 3 Then
dr = DataTables(pts(1)).Find("[_Identify] = " & pts(2))
If dr IsNot Nothing Then
dr.Load() '重新加载此行
End If
End If
ElseIf msg.StartsWith("A#") Then '表示增加了行
Dim pts() As String = msg.Split("#")
If pts.Length = 3 Then
Dim drs As List(of DataRow) = DataTables(pts(1)).AppendLoad("[_Identify] = " & pts(2)) '追载新增加的行.
If drs.Count > 0 Then
dr = drs(0)
End If
End If
ElseIf msg.StartsWith("D#") Then '表示删除了行
Dim pts() As String = msg.Split("#")
If pts.Length = 3 Then
DataTables(pts(1)).RemoveFor("[_Identify] = " & pts(2)) '移除行
End If
End If
If User.Group = "副总" And dr.DataTable.Name = "考勤统计表" Then
If dr IsNot Nothing AndAlso dr.IsNull("审核") = False AndAlso dr.IsNull("批准") Then
PopMessage("有新的考勤需要审核!","提示",PopIconEnum.Infomation)
End If
End If
执行后,副总未收到提示信息?请问我代码要怎么改?
[此贴子已经被作者于2016/8/9 15:44:40编辑过]