以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]窗口表遍历行,赋值及行计数 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146780) |
||||
-- 作者:天一生水 -- 发布时间:2020/3/2 13:07:00 -- [求助]窗口表遍历行,赋值及行计数 老师好! 我有一个派工单的窗口,打开时显示[分派]列为空的行; 在单元格列表勾选复核人后,点击“确认分单“按钮,[复核人]不空的,[分派]列勾选上; 然后通知复核人,工单的个数。 存在问题: 1、点击按钮后,[复核人]不空的,[分派]列没有全部勾选上,有遗漏; 2、[分派]列勾选上的行(修改过的行),应该保留在窗口,但是都没有保留; 3、通知的工单的个数也不对。 我做个实例,请老师看一下是什么问题? 谢谢! 按钮代码: \'\'\' DataTables("邮件管理").Save() Dim Filter As String = "" \'1、勾选复核人,分派工单 For Each r As Row In Tables("派工单_table1") r.Table.Position = r.Index If r("复核人") <> "" Then r("分派") = True r("团队") = "复核部" Else r("分派") = False End If Next \'2、窗口留下修改过的行 Tables("派工单_Table1").StateFilter = StateFilterEnum.Modified Filter = Tables("派工单_Table1").Filter \'3、openqq通知复核人派工单数量 If e.Form.Controls("CheckBox1").checked = True Then Dim d As Date = Date.Today Dim Arys As List(Of String()) = DataTables("邮件管理").GetValues("团队|复核人", Filter) \'获取不重复列值 For Each Ary As String() In Arys QQClient.Send(Ary(0) & "." & Ary(1),Ary(1).SubString(0,1) & "工,您好!" & Date.Now & "有新工单邮件,请注意查收!",True) \'可离线发送 QQClient.SendChatMessage(Ary(0) & "." & Ary(1),"{!}您好,有新工单邮件,请注意查收!") \'msgbox(Ary(1).SubString(0,1)) \'msgbox(Ary(1)) Dim t As Table = Tables("派工单_Table1") Dim sum As Double = t.Compute("count(复核人)", "复核人 = \'" & Ary(1) & "\'") \'工单数 Tables("信息").AddNew() Tables("信息").Current("发送人") = User.name Tables("信息").Current("时间") = Date.Now Tables("信息").Current("日期") = Date.Now Tables("信息").Current("接收人") = ary(1) Tables("信息").Current("信息") = Date.Now & "-" & User.name & "-" & "留言:" & vbcrlf & Ary(1).SubString(0,1) & "工,您好!" & vbcrlf & "共" & sum & "个邮件,由您负责复核,请注意查收!" Next MessageBox.Show("共派单:" & Tables("派工单_Table1").rows.count & "个!" & vbcrlf & "已通知复核人!"& vbcrlf &"并在其留言板留言!") End If
[此贴子已经被作者于2020/3/2 13:07:49编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/3/2 14:15:00 -- 1、判断单元格是否为空请使用isnull 所以一旦分派设置为true,不符合筛选条件,就会从窗口表移除。 建议改为使用fill填充[分派] = false的数据。或者只加载没有分派的数据,没有必要做筛选了 DataTables("邮件管理").LoadFilter = "[分派] = false" DataTables("邮件管理").Load() 3、解决了上面的问题即可
|