Foxtable(狐表)用户栏目专家坐堂 → finrow后再订单主表行结果无法找到明细表出错


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

主题:finrow后再订单主表行结果无法找到明细表出错

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


加好友 发短信
等级:八尾狐 帖子:1909 积分:16987 威望:0 精华:0 注册:2014/7/29 19:09:00
finrow后再订单主表行结果无法找到明细表出错  发帖心情 Post By:2023/2/23 15:03:00 [只看该作者]

 扫码枪扫码后将值赋值在窗口文本框中,文本框的KeyDown事件代码,

主表上有两行,一行的生产车间为 A班,一行为 B班,想实现扫码后如果是 A班,就在主表上A班所在行的明细表中增加数据,B班类似
Dim str() As String = txt.text.split("|") '字符串转数组
        Dim cj As String =str(5) '生产车间
        If cj > "" Then
            Dim i As Integer = tbl.FindRow("生产车间 = '" & cj & "'")
            If i >= 0 Then '如果找到的话
                tbl.Position = i '定位到找到的主表行
               MessageBox.Show(pr("生产车间"))
                        
                   Dim r As Row = Tables(e.form.name & "_ 明细").AddNew
                   r("产品编码") = str(0)
                   r("生产单号") = str(1)
                   r("姓名") = IIf(str(4) = "null" , Nothing , str(4)) '姓名不为空才赋值 
                   r("师傅") = IIf(str(6) = "null" , Nothing , str(6)) '姓名不为空才赋值
            End If
                    
       End If

运行到红色那行代码就出错了,提示不存在明细表
是定位导致的吗,应该如何处理,

谢谢!



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


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

Dim r As Row = tbl.rows(i)

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


加好友 发短信
等级:八尾狐 帖子:1909 积分:16987 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2023/2/23 15:34:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20230223152811.png
图片点击可在新窗口打开查看

没太懂二楼的意思,

有很多张二维码标签要一张张全部扫码完,有A班的也有B班的,扫码后从文本框中的扫码值中判断如果是A班的主表就自动切换到A班那行,然后将其他内容新增到A班的明细表中,
如果是B班,就自动切换到B班那行,然后在B班的明细表下面增加行,因为A班与B班是两张不同的单据编号,主表要根据班B自动切换到不同的行

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


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

Dim r As Row = Tables(e.form.name & "_ 明细").AddNew
改为
Dim r As Row = tbl.rows(i)

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


加好友 发短信
等级:八尾狐 帖子:1909 积分:16987 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2023/2/23 16:38:00 [只看该作者]

换种方式实现了,想再请教一下
If e.KeyCode = Keys.Enter Then
    Dim str() As String = txt.text.split("|") '字符串转数组
    If str.Length = 7 Then '必须增加条码判断
        Dim cj As String = IIf(str(5) = "null" , Nothing , str(5)) '生产车间(班组)不为空才赋值
        If cj > "" Then
            Dim dr As DataRow = DataTables(tbl.Name).Find("生产车间 = '" & cj & "'")
            If dr IsNot Nothing Then
                Dim bh As String = dr("单据编号")
                Dim r As Row = Tables(e.form.name & "_明细").AddNew
                r("产品编码") = str(0)
                r("生产单号") = str(1)
                r("姓名") = IIf(str(4) = "null" , Nothing , str(4)) '姓名不为空才赋值 
                r("师傅") = IIf(str(6) = "null" , Nothing , str(6)) '姓名不为空才赋值
                r("单据编号") = bh '重新给关联列赋值
            End If 
        End If
        txt.text = Nothing '清空扫码值
        e.Sender.Select() 
    End If
    e.Cancel = true  '如果用这句,有时扫码后不操作
End If

如果用红色的代码,每次扫码完成后焦点无法定位在文本框,每扫一次要求焦点不能离开,还要继续扫其他的


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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/2/23 16:50:00 [只看该作者]

        txt.text = Nothing '清空扫码值
    End If
        e.Sender.Select() 
    e.Cancel = true  '如果用这句,有时扫码后不操作
End If

 回到顶部