以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动输入偶尔出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104584) |
|
-- 作者:aizaishuzui -- 发布时间: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 -- 发布时间:2017/8/1 13:59:00 -- 今天本来想截个出错的图 我活生生测试了500次 竟然都正常,平常20次都会出错个1-2次 |
|
-- 作者:有点甜 -- 发布时间:2017/8/1 14:32:00 -- 只要执行了 Dim r1 As Row = Tables("销售订单.销售明细").AddNew()
那么,肯定会在 Tables("销售明细") 表,有新增的一行数据的。 |
|
-- 作者:aizaishuzui -- 发布时间:2017/8/1 14:44:00 -- 嗯 现在我怀疑不是我写的这些有问题了 我在猜想是不是扫描枪扫描偶尔会出错的缘故 我如果没用扫描枪,直接在库存商品里直接调用是不会出错的 唯独扫描枪时才会出错
|
|
-- 作者:有点甜 -- 发布时间:2017/8/1 15:17:00 -- 1、你应该在keydown事件处理
If e.keycode = 13 then \'如果按下了回车
e.cancel = true end if
2、如果你代码没修改,你应该写在textChanged事件,而不是ValueChanged事件。
3、代码没啥问题的。 |
|
-- 作者:aizaishuzui -- 发布时间: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 -- 发布时间: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是字符串,应该怎么修改呢?
|
|
-- 作者:有点甜 -- 发布时间:2017/8/1 15:53:00 -- 改到keydown事件
If e.keycode = 13 Then |
|
-- 作者:aizaishuzui -- 发布时间:2017/8/1 16:07:00 -- 好的 谢谢老师
|
|
-- 作者:有点甜 -- 发布时间: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)
|