Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口表遍历行,赋值及行计数


  共有3364人关注过本帖树形打印复制链接

主题:[求助]窗口表遍历行,赋值及行计数

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]窗口表遍历行,赋值及行计数  发帖心情 Post By:2020/3/2 13:07:00 [只看该作者]

老师好!
我有一个派工单的窗口,打开时显示[分派]列为空的行;
在单元格列表勾选复核人后,点击“确认分单“按钮,[复核人]不空的,[分派]列勾选上;
然后通知复核人,工单的个数。

存在问题:
1、点击按钮后,[复核人]不空的,[分派]列没有全部勾选上,有遗漏;
2、[分派]列勾选上的行(修改过的行),应该保留在窗口,但是都没有保留;
3、通知的工单的个数也不对。


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

我做个实例,请老师看一下是什么问题?
谢谢!

按钮代码:
'''
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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:遍历赋值.foxdb



[此贴子已经被作者于2020/3/2 13:07:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/2 14:15:00 [只看该作者]

1、判断单元格是否为空请使用isnull

2、因为窗口afterload做了筛选:Tables("派工单_Table1").Filter = "[分派] = false"  
所以一旦分派设置为true,不符合筛选条件,就会从窗口表移除。

建议改为使用fill填充[分派] = false的数据。或者只加载没有分派的数据,没有必要做筛选了
DataTables("邮件管理").LoadFilter = "[分派] = false"
DataTables("邮件管理").Load()

3、解决了上面的问题即可

 回到顶部