Foxtable(狐表)用户栏目专家坐堂 → 自动输入偶尔出错


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

主题:自动输入偶尔出错

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


加好友 发短信
等级:童狐 帖子:250 积分:2089 威望:0 精华:0 注册:2014/3/25 14:24:00
自动输入偶尔出错  发帖心情 Post By:2017/8/1 13:16:00 [只看该作者]

新增订单时,增加订单明细用的是扫描枪
有添加了一个Dropbox
ValueChanged的代码是

If Tx.Text.Length = 13 Then
    Dim r1 As Row = Tables("销售订单.销售明细").AddNew()
    r1("商品条码")= Tx.Text
    Tx.Text= Nothing
    Forms("Pos销售").Controls("DropBox1").Select
End If

有时候扫描枪扫一下可以自动添加一条对应的明细

有时候扫描时只在窗口的Table中增加一条,却不会增加到表销售明细

是哪里出问题了吗?

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


加好友 发短信
等级:童狐 帖子:250 积分:2089 威望:0 精华:0 注册:2014/3/25 14:24:00
  发帖心情 Post By:2017/8/1 13:59:00 [只看该作者]

今天本来想截个出错的图
我活生生测试了500次
竟然都正常,平常20次都会出错个1-2次


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 14:32:00 [只看该作者]

只要执行了 Dim r1 As Row = Tables("销售订单.销售明细").AddNew()

 

那么,肯定会在 Tables("销售明细") 表,有新增的一行数据的。


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


加好友 发短信
等级:童狐 帖子:250 积分:2089 威望:0 精华:0 注册:2014/3/25 14:24:00
  发帖心情 Post By:2017/8/1 14:44:00 [只看该作者]

嗯    现在我怀疑不是我写的这些有问题了

我在猜想是不是扫描枪扫描偶尔会出错的缘故

我如果没用扫描枪,直接在库存商品里直接调用是不会出错的

唯独扫描枪时才会出错

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 15:17:00 [只看该作者]

1、你应该在keydown事件处理

 

If e.keycode = 13 then '如果按下了回车

 

    e.cancel = true

end if

 

2、如果你代码没修改,你应该写在textChanged事件,而不是ValueChanged事件。

 

3、代码没啥问题的。


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


加好友 发短信
等级:童狐 帖子:250 积分:2089 威望:0 精华:0 注册:2014/3/25 14:24:00
  发帖心情 Post By:2017/8/1 15:44:00 [只看该作者]

应该把代码写在textChanged事件吗?因为有的条形码是12位数的,所以我把代码放在ValueChanged事件,不然13位数的条形码会不生效
完整代码:
Dim Tx As WinForm.DropDownBox = e.Sender
If Tx.Text.Length = 6 Then
    Dim r1 As Row = Tables("销售订单.销售明细").AddNew()
    r1("商品编号")= Tx.Text
    Tx.Text= Nothing
    Dim dr As Row = Tables("销售订单").Current
    Dim n1 As Double = Tables("销售订单.销售明细").DataTable.Compute("Sum(总额)","销售单号='" & dr("销售单号") & "'")
    e.Form.Controls("销售单号").Text = "销售单号 : " & dr("销售单号")
    e.Form.Controls("销售日期").Text = "销售日期 : " & dr("销售日期")
    e.Form.Controls("销售员").Text = "销售员 : " & dr("销售员")
    e.Form.Controls("客户编号").Text = "客户编号 : " & dr("客户编号")
    e.Form.Controls("客户姓名").Text = "客户姓名 : " & dr("客户姓名")
    e.Form.Controls("客户电话").Text = "客户电话 : " & dr("客户电话")
    e.Form.Controls("合计").Text = "合计 : " & n1 & "元"
    Dim i As Integer =  Tables("销售订单.销售明细").DataTable.Compute("Count(销售单号)","销售单号='" & dr("销售单号") & "'")
    Forms("Pos销售").Controls("DropBox1").Select
End If
If Tx.Text.Length = 12 Then
    Dim r1 As Row = Tables("销售订单.销售明细").AddNew()
    r1("商品条码")= Tx.Text
    Tx.Text= Nothing
    Dim dr As Row = Tables("销售订单").Current
    Dim n1 As Double = Tables("销售订单.销售明细").DataTable.Compute("Sum(总额)","销售单号='" & dr("销售单号") & "'")
    e.Form.Controls("销售单号").Text = "销售单号 : " & dr("销售单号")
    e.Form.Controls("销售日期").Text = "销售日期 : " & dr("销售日期")
    e.Form.Controls("销售员").Text = "销售员 : " & dr("销售员")
    e.Form.Controls("客户编号").Text = "客户编号 : " & dr("客户编号")
    e.Form.Controls("客户姓名").Text = "客户姓名 : " & dr("客户姓名")
    e.Form.Controls("客户电话").Text = "客户电话 : " & dr("客户电话")
    e.Form.Controls("合计").Text = "合计 : " & n1 & "元"
    Dim i As Integer =  Tables("销售订单.销售明细").DataTable.Compute("Count(销售单号)","销售单号='" & dr("销售单号") & "'")
    Forms("Pos销售").Controls("DropBox1").Select
End If

If Tx.Text.Length = 13 Then
    Dim r1 As Row = Tables("销售订单.销售明细").AddNew()
    r1("商品条码")= Tx.Text
    Tx.Text= Nothing
    Dim dr As Row = Tables("销售订单").Current
    Dim n1 As Double = Tables("销售订单.销售明细").DataTable.Compute("Sum(总额)","销售单号='" & dr("销售单号") & "'")
    e.Form.Controls("销售单号").Text = "销售单号 : " & dr("销售单号")
    e.Form.Controls("销售日期").Text = "销售日期 : " & dr("销售日期")
    e.Form.Controls("销售员").Text = "销售员 : " & dr("销售员")
    e.Form.Controls("客户编号").Text = "客户编号 : " & dr("客户编号")
    e.Form.Controls("客户姓名").Text = "客户姓名 : " & dr("客户姓名")
    e.Form.Controls("客户电话").Text = "客户电话 : " & dr("客户电话")
    e.Form.Controls("合计").Text = "合计 : " & n1 & "元"
    Dim i As Integer =  Tables("销售订单.销售明细").DataTable.Compute("Count(销售单号)","销售单号='" & dr("销售单号") & "'")
    Forms("Pos销售").Controls("DropBox1").Select
End If
Forms("Pos销售").Controls("DropBox1").Select


老师有什么需要修改的吗?

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


加好友 发短信
等级:童狐 帖子:250 积分:2089 威望:0 精华:0 注册:2014/3/25 14:24:00
  发帖心情 Post By:2017/8/1 15:47:00 [只看该作者]

还有写了一个代码,但提示应为标识符
Dim dr As String = e.Form.Controls("Color").Value ’Color控件是ComboBox
Dim clr As Color
clr = Color."dr"
'MessageBox.Show("A:" & clr)
MessageBox.Show("A:" & clr.A)
MessageBox.Show("B:" & clr.B)
MessageBox.Show("G:" & clr.G)
MessageBox.Show("R:" & clr.R)

dr是字符串,应该怎么修改呢?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 15:53:00 [只看该作者]

改到keydown事件

 

If e.keycode = 13 Then
    Dim Tx As WinForm.DropDownBox = e.Sender
    If Tx.Text.Length = 6 Then
        Dim r1 As Row = Tables("销售订单.销售明细").AddNew()
        r1("商品编号")= Tx.Text
        Tx.Text= Nothing
        Dim dr As Row = Tables("销售订单").Current
        Dim n1 As Double = Tables("销售订单.销售明细").DataTable.Compute("Sum(总额)","销售单号='" & dr("销售单号") & "'")
        e.Form.Controls("销售单号").Text = "销售单号 : " & dr("销售单号")
        e.Form.Controls("销售日期").Text = "销售日期 : " & dr("销售日期")
        e.Form.Controls("销售员").Text = "销售员 : " & dr("销售员")
        e.Form.Controls("客户编号").Text = "客户编号 : " & dr("客户编号")
        e.Form.Controls("客户姓名").Text = "客户姓名 : " & dr("客户姓名")
        e.Form.Controls("客户电话").Text = "客户电话 : " & dr("客户电话")
        e.Form.Controls("合计").Text = "合计 : " & n1 & "元"
        Dim i As Integer =  Tables("销售订单.销售明细").DataTable.Compute("Count(销售单号)","销售单号='" & dr("销售单号") & "'")
    End If
    If Tx.Text.Length = 12 Then
        Dim r1 As Row = Tables("销售订单.销售明细").AddNew()
        r1("商品条码")= Tx.Text
        Tx.Text= Nothing
        Dim dr As Row = Tables("销售订单").Current
        Dim n1 As Double = Tables("销售订单.销售明细").DataTable.Compute("Sum(总额)","销售单号='" & dr("销售单号") & "'")
        e.Form.Controls("销售单号").Text = "销售单号 : " & dr("销售单号")
        e.Form.Controls("销售日期").Text = "销售日期 : " & dr("销售日期")
        e.Form.Controls("销售员").Text = "销售员 : " & dr("销售员")
        e.Form.Controls("客户编号").Text = "客户编号 : " & dr("客户编号")
        e.Form.Controls("客户姓名").Text = "客户姓名 : " & dr("客户姓名")
        e.Form.Controls("客户电话").Text = "客户电话 : " & dr("客户电话")
        e.Form.Controls("合计").Text = "合计 : " & n1 & "元"
        Dim i As Integer =  Tables("销售订单.销售明细").DataTable.Compute("Count(销售单号)","销售单号='" & dr("销售单号") & "'")
    End If
   
   
    If Tx.Text.Length = 13 Then
        Dim r1 As Row = Tables("销售订单.销售明细").AddNew()
        r1("商品条码")= Tx.Text
        Tx.Text= Nothing
        Dim dr As Row = Tables("销售订单").Current
        Dim n1 As Double = Tables("销售订单.销售明细").DataTable.Compute("Sum(总额)","销售单号='" & dr("销售单号") & "'")
        e.Form.Controls("销售单号").Text = "销售单号 : " & dr("销售单号")
        e.Form.Controls("销售日期").Text = "销售日期 : " & dr("销售日期")
        e.Form.Controls("销售员").Text = "销售员 : " & dr("销售员")
        e.Form.Controls("客户编号").Text = "客户编号 : " & dr("客户编号")
        e.Form.Controls("客户姓名").Text = "客户姓名 : " & dr("客户姓名")
        e.Form.Controls("客户电话").Text = "客户电话 : " & dr("客户电话")
        e.Form.Controls("合计").Text = "合计 : " & n1 & "元"
        Dim i As Integer =  Tables("销售订单.销售明细").DataTable.Compute("Count(销售单号)","销售单号='" & dr("销售单号") & "'")
    End If
    e.cancel = true
    e.sender.selectall
end if


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


加好友 发短信
等级:童狐 帖子:250 积分:2089 威望:0 精华:0 注册:2014/3/25 14:24:00
  发帖心情 Post By:2017/8/1 16:07:00 [只看该作者]

好的    谢谢老师

还有写了一个代码,但提示应为标识符
Dim dr As String = e.Form.Controls("Color").Value ’Color控件是ComboBox
Dim clr As Color
clr = Color."dr"
'MessageBox.Show("A:" & clr)
MessageBox.Show("A:" & clr.A)
MessageBox.Show("B:" & clr.B)
MessageBox.Show("G:" & clr.G)
MessageBox.Show("R:" & clr.R)

dr是字符串,应该怎么修改呢?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/1 16:45:00 [只看该作者]

 
 
Dim clr As Color = e.Form.Controls("Color").Value
'MessageBox.Show("A:" & clr)
MessageBox.Show("A:" & clr.A)
MessageBox.Show("B:" & clr.B)
MessageBox.Show("G:" & clr.G)
MessageBox.Show("R:" & clr.R)

 回到顶部
总数 16 1 2 下一页