📄 form1.vb
字号:
REM 加载窗体
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form1.frmMain = Me '引用次窗体里的控件或全局变量时,要加" Form1.frmMain .××"
REM 串行口初始化
SCIinit(MSComm1, 1, "9600,N,8,1")
REM 标志初始化
ShowFlag1 = True : ShowFlag2 = True : ShowFlag3 = True : ShowFlag4 = True
REM 日历初始化
DateTimePicker1.Value = Now.Date
DateTimePicker2.Value = Now.Date
REM 不可更改DataGrid中显示的数据
DataGrid1.ReadOnly = True
REM 定时器定时间隔
Timer1.Interval = 5000 '每隔5秒中断一次
Timer2.Interval = 600000 '每隔10分钟
End Sub
REM 单击"退出"按钮
Private Sub ExitBut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitBut.Click
REM 关闭串口
If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
REM 卸载本窗体
End '??????????????Application.Exit()
End Sub
REM 定时器1定时中断事件
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ReDim SendData(4)
Dim DelayTime As Integer
Dim start As Long
REM 每10秒发送接收所有数据的请求
If ShowFlag1 = True Then SendRecv(1) '接收1#的数据
If ShowFlag2 = True Then SendRecv(2) '接收2#的数据
If ShowFlag3 = True Then SendRecv(3) '接收3#的数据
If ShowFlag4 = True Then SendRecv(4) '接收4#的数据
End Sub
REM 单击"开始"按钮
Private Sub StartBut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartBut.Click
REM 允许定时器开始计时
Timer1.Enabled = True
Timer2.Enabled = True
Label22.Visible = False
StateTxt.Text = "开始"
End Sub
REM 选项卡切换
Private Sub TabControl1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.Click
Select Case TabControl1.SelectedIndex
Case 0
Button1.Text = "显示1#" : Button2.Text = "显示2#" : Button3.Text = "显示3#" : Button4.Text = "显示4#"
ShowFlag1 = False : ShowFlag2 = False : ShowFlag3 = False : ShowFlag4 = False
Case 1
ShowFlag1 = False : ShowFlag2 = False : ShowFlag3 = False : ShowFlag4 = False
ComboBox4.Text = "1#"
StateTxt.Text = "开始查询"
Case 2
ComboBox1.Text = "1#"
AdjTxt.Text = ""
ShowFlag1 = False : ShowFlag2 = False : ShowFlag3 = False : ShowFlag4 = False
StateTxt.Text = "校准当前温度"
Case 3
ComboBox2.Text = "1#"
ComboBox3.Text = ""
ShowFlag1 = False : ShowFlag2 = False : ShowFlag3 = False : ShowFlag4 = False
StateTxt.Text = "修改Bake炉号"
End Select
End Sub
REM 校准当前温度
Private Sub AdjTxt_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles AdjTxt.KeyPress
If Asc(e.KeyChar) = 13 Then
If Val(AdjTxt.Text) < 999 Then
SendAdjust(Val(Microsoft.VisualBasic.Left(ComboBox1.Text, 1)), CByte(Asc("W")), Val(AdjTxt.Text))
StateTxt.Text = "校准当前温度为" & Val(AdjTxt.Text) & "℃"
Else
MsgBox("校准值太大,请重新输入!")
End If
End If
End Sub
REM 修改MCU号
Private Sub ComboBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged
Dim no1, no2 As Byte
no1 = Val(Microsoft.VisualBasic.Left(ComboBox2.Text, 1)) '可以不加取左函数
no2 = Val(ComboBox3.Text)
If no1 = no2 Then
MsgBox("本来就是" & no1 & "#!" & Chr(10) & "请重新选择!", MsgBoxStyle.Information)
Else
SendMCUno(no1, no2)
StateTxt.Text = "将" & no1 & "号MCU改为" & no2 & "号"
End If
End Sub
REM "显示1#"按钮
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Button1.Text = "不显示1#" Then
ShowFlag1 = False
Button1.Text = "显示1#"
Else
ShowFlag1 = True
Button1.Text = "不显示1#"
End If
End Sub
REM "显示2#"按钮
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Button2.Text = "不显示2#" Then
ShowFlag2 = False
Button2.Text = "显示2#"
Else
ShowFlag2 = True
Button2.Text = "不显示2#"
End If
End Sub
REM "显示3#"按钮
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If Button3.Text = "不显示3#" Then
ShowFlag3 = False
Button3.Text = "显示3#"
Else
ShowFlag3 = True
Button3.Text = "不显示3#"
End If
End Sub
REM "显示4#"按钮
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
If Button4.Text = "不显示4#" Then
ShowFlag4 = False
Button4.Text = "显示4#"
Else
ShowFlag4 = True
Button4.Text = "不显示4#"
End If
End Sub
REM 单击"查询"按钮
Private Sub SearchBut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SearchBut.Click
Dim str0 As String, str1 As String, str2 As String, strInfo As String
Dim Sdate As String, Edate As String
REM 显示DataGrid
DataGrid1.Visible = True
DataGrid1.Focus()
REM 查询日期
Sdate = DateTimePicker1.Text
Edate = DateTimePicker2.Text
REM SQL语句初始化
str0 = "NO" & Val(ComboBox4.Text)
str1 = "记录日期,当前温度,设定温度,当前时间,设定时间,是否异常"
str2 = "记录日期 >= # " & Sdate & "# and 记录日期 <= #" & Edate & "# order by 记录日期 "
REM searchTB(查询的字段,查询的表,查询的条件,显示的DataGrid控件,用于添加的TableStyle)
strInfo = searchTB(str1, str0, str2, DataGrid1, objts)
SearchBut_exit:
objts.Dispose()
End Sub
REM 单击"导出"按钮
Private Sub OutBut_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OutBut.Click
Dim i As Integer, j As Integer
Dim rowcount As Integer, colcount As Integer
Dim Selectstr, Wherestr, FromTB As String
REM 计算表的行数和列数
rowcount = objTB.Rows.Count : colcount = objTB.Columns.Count '记录的行、列值
If rowcount <= 0 Then MsgBox("记录为空,不能导出!") : GoTo OutBut_exit
REM 将记录集objTB中的内容导出致.CVS文件
Dim strName As String
filename = "1# Bake炉 "
strName = DataSetToCSV(rowcount, colcount, filename, objTB)
If strName <> "" Then MsgBox("该记录文件的存储路径为:" & strName)
OutBut_exit:
End Sub
'==========================================内部函数===============================================================================
'**************************************************************************
'功能:根据条件查询数据库并返回符合条件的记录个数,将查询到的信息显示在Grid中
'入口:查询的字段串str1,表名串strTB,条件字段str2,控件Grid
'出口:符合条件的记录个数
'**************************************************************************
Public Function searchTB(ByVal str1 As String, ByVal strTB As String, ByVal str2 As String, ByVal Grid As System.Windows.Forms.DataGrid, ByVal ts2 As DataGridTableStyle) As String
Dim Selectstr, Wherestr, FromTB As String
Dim rowcount As Integer
Dim ReturnNum As Integer = 0, strExit As String
REM SQL语句初始化
Selectstr = str1
FromTB = strTB
Wherestr = str2
REM connection 和 command 的初始化
Dim objConn As OleDbConnection = GetConn()
If objConn.State = ConnectionState.Closed Then
objConn.Open()
End If
objCmd.Connection = objConn
objCmd.CommandText = "select " & Selectstr & " from " & FromTB & " where " & Wherestr 'select语句
REM table 绑定
objDA = New OleDbDataAdapter(objCmd)
Dim objDS As New DataSet
objDS.Clear()
objDA.Fill(objDS, "tmpTB") 'tmpTB只是一个中转,用来暂存表,不需定义
objTB = objDS.Tables("tmpTB")
REM 计算表的行数和列数
rowcount = objTB.Rows.Count
If rowcount <= 0 Then MsgBox("记录为空,不能导出!") : GoTo searchTB_exit
REM 返回值
strExit = ReturnNum
REM Grid部分
Grid.SetDataBinding(objDS, "tmpTB") '数据源
ts2.MappingName = "tmpTB"
ts2.AlternatingBackColor = Color.LightBlue
REM GridShed中的列变量
Dim cOrderDate1 As New DataGridTextBoxColumn, cOrderDate2 As New DataGridTextBoxColumn
Dim cOrderDate3 As New DataGridTextBoxColumn, cOrderDate4 As New DataGridTextBoxColumn
Dim cOrderDate5 As New DataGridTextBoxColumn, cOrderDate6 As New DataGridTextBoxColumn
ts2.GridColumnStyles.Clear() '清空以前的各列
'添加各列
cOrderDate1.MappingName = "记录日期" : cOrderDate1.HeaderText = "记录日期" : cOrderDate1.Width = 180 : ts2.GridColumnStyles.Add(cOrderDate1)
cOrderDate2.MappingName = "当前温度" : cOrderDate2.HeaderText = "当前温度" : cOrderDate2.Width = 100 : ts2.GridColumnStyles.Add(cOrderDate2)
cOrderDate3.MappingName = "设定温度" : cOrderDate3.HeaderText = "设定温度" : cOrderDate3.Width = 100 : ts2.GridColumnStyles.Add(cOrderDate3)
cOrderDate4.MappingName = "当前时间" : cOrderDate4.HeaderText = "当前时间" : cOrderDate4.Width = 100 : ts2.GridColumnStyles.Add(cOrderDate4)
cOrderDate5.MappingName = "设定时间" : cOrderDate5.HeaderText = "设定时间" : cOrderDate5.Width = 100 : ts2.GridColumnStyles.Add(cOrderDate5)
cOrderDate6.MappingName = "是否异常" : cOrderDate6.HeaderText = "是否异常" : cOrderDate6.Width = 100 : ts2.GridColumnStyles.Add(cOrderDate6)
searchTB_exit:
Grid.TableStyles.Add(ts2)
objConn.Close()
Return strExit
End Function
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
InDBFlag = True
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -