⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.vb

📁 项目是为日本瑞萨工作所做的BAKE炉温控系统 整个文件夹包括设计文档
💻 VB
📖 第 1 页 / 共 3 页
字号:





    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 + -