Foxtable(狐表)用户栏目专家坐堂 → [求助]关于win系统平板串口


  共有2131人关注过本帖平板打印复制链接

主题:[求助]关于win系统平板串口

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


加好友 发短信
等级:二尾狐 帖子:542 积分:4842 威望:0 精华:0 注册:2017/4/20 11:08:00
[求助]关于win系统平板串口  发帖心情 Post By:2019/9/22 17:52:00 [只看该作者]

老师好:
        请教下,请帮看看
     一.窗口有没有什么控件可以下拉选择年+月+日+小时+分,进行选择录入(现在DateTimePicker控件选择的只能是年月日这段,后面小时+分无法选择)
     二.平板窗口按钮启动串口设备(平板电脑自带二维码扫描头,不是普通拍照摄像头)扫码,接收数据后执行查询+指定赋值
(备注:各事件代码每行后都加上MessageBox.Show("1--X") 都有提示代码有被执行(显示相应数字提示窗口),逐一提示点确定,最后能实现 接收数据后执行查询+查询结果行列指定赋值)
由于带扫码功能平板电脑没有安装注册正式版,试用版项目+商业版项目复制到平板电脑可以打开项目,但均不支持设备监视器功能,只能在电脑设计,前后反复发布60多次,拷贝到平板电脑测试,得出结果。
在此感谢狐表官方及老师们,以及那些耐心帮助我的狐友,这个功能的实现,感觉比现在某you的手持终端功能还实用......基本实现了扫码进出+结存/各环节扫码报工/扫码检验参数填报/扫码订单展开原始10多个环节自动汇总追踪及最新汇总动态/扫码多环节30多个时间节点自动登录赋值......并能做到快速'实时'更新!

还需问题优化需求:在点击窗口 扫描赋值 按钮对准二维码扫描,点击1次就能对状态时间进行当前时间赋值,(现在需要点击2次,如果在设备监视器加代码:Forms("串口").Controls("TextBox11").Text = e.Port.ReadExisting() '获取数据,窗口扫描赋值按钮就不能加e.Form.Controls("TextBox11").Value = s ''代码,2个地方只能1个地方加获取显示代码,这2种方法任选1种都可以)
1.项目AfterOpenProject 事件
Ports.Add("COM4")

2.设备监视器DataReceived事件
Forms("串口").Controls("TextBox11").Text = e.Port.ReadExisting() '获取数据
Dim btn As WinForm.Button = Forms("串口").Controls("单号查询") '获取新的数据后进行单号查询按钮动作(次处如果不加代码,在窗口按钮扫描赋值添加e.Form.Controls("TextBox11").Value = s ,需要点击扫描赋值 对准二维码扫描 2次 ,TextBox11才能读取显示数据)
btn.PerformClick()

3.窗口  单号查询  Click事件
Dim str As String = e.Form.controls("textbox11").text
If str > "" Then
    Dim filter As String = "1=1"
    For Each s As String In str.Split("*")
        filter &= " and 生产单号 like '%" & s & "%'"
    Next
    DataTables("表A").loadfilter= filter
    DataTables("表A").load
Else
    DataTables("表A").loadfilter= "1=2"
    DataTables("表A").load
End If

4.窗口  扫描赋值  Click事件
e.Form.Controls("TextBox11").Value = Nothing    '清空原先数据
forms("串口").Controls("TextBox11").Select  '定位到录入位置

Ports.Add("COM4") '开启
Ports("COM4").Open() '打开串口

Dim hexa(3) As Byte
hexa(0)=&H16
hexa(1)=&H54
hexa(2)=&H0d

Ports("COM4").Write(hexa,0,3)

Dim s As String
s=Ports("COM4").ReadExisting() '从COM4接收文字数据
MessageBox.Show("接收串口数据")  '这里加上检查代码是否被执行,弹窗点确定后,就全部正常,点扫描赋值 按钮1次可以实现需求功能(所有代码有执行到)
备注:猜想,代码执行到这里能不能设定停几秒钟(可调整)后再执行后面代码.  或是设置2秒钟(可调整)后自动关闭这个代码执行检查弹窗(弹窗能否和字体都加大,再加个需要的图片)
'e.Form.Controls("TextBox11").Value = s  'TextBox11控件数据等于接收的数据(如果设备监视器加上读取显示接收数据代码后,这里不屏蔽,点击 扫描赋值按钮 对准二维码扫描 TextBox11控件无法显示接收数据,如果设备监视器代码屏蔽,需要点击  扫描赋值按钮 对准二维码扫描2次,TextBox11控件才能显示读取当前二维码数据,点击 扫描赋值按钮 对准二维码扫描 1次 ,TextBox11读取显示的还是上一次的扫码数据)
'
Dim btn As WinForm.Button = Forms("串口").Controls("单号查询") '执行点击 单号查询 按钮进行查询
btn.PerformClick()

If Tables("表A").Current IsNot Nothing Then  '先判断是否有行
    For i As Integer = CurrentTable.TopPosition To CurrentTable.BottomPosition
        CurrentTable.Rows(i)("状态时间") = now() '赋值当前时间(点击扫描赋值按钮 对准二维码扫描1次TextBox11可以显示接收数据,但是状态时间没有得到当前时间赋值,要需要点扫描赋值码按钮 对准二维码扫描 2次,状态时间才能得到当前时间赋值))
    Next
End If

Tables("表A").save '保存

谢谢!
[此贴子已经被作者于2019/9/22 20:01:58编辑过]

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