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

📄 frmddform.vb

📁 采用Visual Basic.NET开发的高速公路收费系统.
💻 VB
📖 第 1 页 / 共 3 页
字号:
        Call SetReadOnly(False)
        Me.Button4.Enabled = True
    End Sub

    Public Function ClearCS()
        If IndexOfTabSelected = 0 Then
            Me.TextBox1.Text = "" : Me.TextBox2.Text = ""
            Me.TextBox3.Text = ""
            Me.TextBox4.Text = "" : Me.CheckBox1.Checked = False
        ElseIf IndexOfTabSelected = 1 Then
            Me.TextBox3.Text = "" : Me.TextBox4.Text = ""
            Me.TextBox5.Text = "" : Me.TextBox6.Text = ""
            Me.TextBox7.Text = "" : Me.TextBox8.Text = ""
        End If
        '
    End Function

    Public Function AddNewCS()
        Dim NDR As DataRow
        NDR = DS.Tables.Item(0).NewRow
        NDR.Item(0) = Me.TextBox1.Text
        NDR.Item(1) = Me.TextBox2.Text
        NDR.Item(2) = Me.TextBox3.Text
        NDR.Item(3) = Me.TextBox4.Text
        NDR.Item(4) = Me.CheckBox1.Checked
        DS.Tables.Item(0).Rows.Add(NDR)
        Dim dr As DataRow
        Dim TFDoor As Integer = 0
        For Each dr In DS.Tables.Item(0).Rows
            If dr.Item(4) = True Then
                TFDoor += 1
            Else
                TFDoor = TFDoor
            End If
            If TFDoor >= 2 Then
                MessageBox.Show("不能同时设置两个收费站为当地收费站。", _
                "添加失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                DS.Tables.Item(0).Rows.Remove(NDR)
                Exit Function
            End If
        Next
        Call UpdateDB(DS)
        MessageBox.Show("已经成功添加了一个新的收费站。", "添加成功", _
        MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

    End Function

    Public Function AddNewStd()
        Dim myStdDR As DataRow
        Dim NewSTD As CSStd
        Try
            NewSTD.VhCode = Me.TextBox5.Text
            NewSTD.VhName = Me.TextBox6.Text
            NewSTD.ChMoney = CSng(Me.TextBox7.Text)
            NewSTD.Explain = Me.TextBox8.Text
            NewSTD.SDate = Me.DateTimePicker1.Value
            NewSTD.EDate = Me.DateTimePicker2.Value
            myStdDR = StdDS.Tables.Item(0).NewRow
            myStdDR.Item(0) = NewSTD.VhCode
            myStdDR.Item(1) = NewSTD.VhName
            myStdDR.Item(2) = NewSTD.ChMoney
            myStdDR.Item(3) = NewSTD.Explain
            myStdDR.Item(4) = NewSTD.SDate
            myStdDR.Item(5) = NewSTD.EDate
            StdDS.Tables.Item(0).Rows.Add(myStdDR)
            Dim cmdb As OleDbCommandBuilder
            Dim StdSQLstr As String
            Try
                cmdb = New OleDbCommandBuilder(MyDB)
                StdSQLstr = "INSERT INTO CSStd([VhlCode],VhlName,ChgMoney,Explain,SDate,EDate) " & _
                "VALUES('" & NewSTD.VhCode & "','" & NewSTD.VhName & "','" & NewSTD.ChMoney & "'," & _
                 "'" & NewSTD.Explain & "','" & NewSTD.SDate & "','" & NewSTD.EDate & "')"
                Call SaveToTable(StdSQLstr)
            Catch
                MessageBox.Show(Err.Description)
            End Try
            MessageBox.Show("已经成功添加了一个新的收费标准。", "添加成功", _
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        Catch
            MessageBox.Show(Err.Description)
        End Try
    End Function

    Public Function DeleteCSDR()
        Dim CSDR As DataRow
        Dim key(1) As DataColumn
        Dim CSCode As String = Me.TextBox1.Text
        key(0) = DS.Tables.Item(0).Columns("CSCode")
        DS.Tables.Item(0).PrimaryKey = key
        CSDR = DS.Tables.Item(0).Rows.Find(CSCode)
        CSDR.Delete()
        Dim CSSQLstr As String
        CSSQLstr = "DELETE FROM CSInfo WHERE (CSCode = '" & CSCode & "')"
        '定义并设置删除当前行的SQL语句,并保存到数据库中
        Call SaveToTable(CSSQLstr)
    End Function

    Public Function DeleteSTD()
        Dim STDDR As DataRow
        Dim key(1) As DataColumn
        Dim myStd As String = Me.TextBox5.Text
        key(0) = StdDS.Tables.Item(0).Columns("VhlCode")
        StdDS.Tables.Item(0).PrimaryKey = key
        STDDR = StdDS.Tables.Item(0).Rows.Find(myStd)
        STDDR.Delete()
        Dim STDSQLstr As String
        STDSQLstr = "DELETE FROM CSStd WHERE (VhlCode = '" & myStd & "')"
        '定义并设置删除当前行的SQL语句,并保存到数据库中
        Call SaveToTable(STDSQLstr)
    End Function

    Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, _
                                     ByVal e As System.Windows.Forms. _
                                     ToolBarButtonClickEventArgs) _
                                     Handles ToolBar1.ButtonClick
        Select Case Me.ToolBar1.Buttons.IndexOf(e.Button)
            Case 0
                CSCount.Index = 0
                StdCount.Index = 0
                If IndexOfTabSelected = 0 Then
                    Call ShowCSInfo(CSCount.Index)
                ElseIf IndexOfTabSelected = 1 Then
                    Call ShowCSStd(StdCount.Index)
                End If
                '如果是第一个,则显示第一项记录
            Case 1
                If IndexOfTabSelected = 0 Then
                    CSCount.Index -= 1
                    If CSCount.Index < 0 Then
                        MessageBox.Show("已经到了第一项记录了。", "提示信息", _
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                        CSCount.Index = 0
                    End If
                    Call ShowCSInfo(CSCount.Index)
                ElseIf IndexOfTabSelected = 1 Then
                    StdCount.Index -= 1
                    If StdCount.Index < 0 Then
                        MessageBox.Show("已经到了第一项记录了。", "提示信息", _
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                        StdCount.Index = 0
                    End If
                    Call ShowCSStd(StdCount.Index)
                End If
                '显示前一项记录,并判断是否已经到了第一项纪录
            Case 2
                If IndexOfTabSelected = 0 Then
                    CSCount.Index += 1
                    If CSCount.Index > CSCount.Count Then
                        MessageBox.Show("已经到了最后一项记录了。", "提示信息", _
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                        CSCount.Index = CSCount.Count
                    End If
                    Call ShowCSInfo(CSCount.Index)
                ElseIf IndexOfTabSelected = 1 Then
                    StdCount.Index += 1
                    If StdCount.Index > StdCount.Count Then
                        MessageBox.Show("已经到了最后一项记录了。", "提示信息", _
                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                        StdCount.Index = StdCount.Count
                    End If
                    Call ShowCSStd(StdCount.Index)
                End If
                '显示后一项记录,并判断是否已经到了最后一项纪录
            Case 3
                CSCount.Index = CSCount.Count
                StdCount.Index = StdCount.Count
                If IndexOfTabSelected = 0 Then
                    Call ShowCSInfo(CSCount.Index)
                ElseIf IndexOfTabSelected = 1 Then
                    Call ShowCSStd(StdCount.Index)
                End If
                '显示最后一条记录信息
            Case 5
                Me.Close()
        End Select
    End Sub

    Private Sub frmDDForm_Load(ByVal sender As System.Object, _
                               ByVal e As System.EventArgs) _
                               Handles MyBase.Load
        Call GetStationInfo()
        Call ShowCSInfo(0)
        Call GetStandardInfo()
        Call ShowCSStd(0)
        Call SetReadOnly(True)
    End Sub

    Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, _
                                                 ByVal e As System.EventArgs) _
                                                 Handles TabControl1.SelectedIndexChanged
        Me.TabPage1.TabIndex = 0
        Me.TabPage2.TabIndex = 1
        IndexOfTabSelected = Me.TabControl1.SelectedIndex
    End Sub

    Public Function SetReadOnly(ByVal IsReadOnly As Boolean)
        If IndexOfTabSelected = 0 Then
            Me.TextBox1.ReadOnly = IsReadOnly : Me.TextBox2.ReadOnly = IsReadOnly
            Me.TextBox3.ReadOnly = IsReadOnly
            Me.TextBox4.ReadOnly = IsReadOnly : Me.GroupBox3.Enabled = Not IsReadOnly
        ElseIf IndexOfTabSelected = 1 Then
            Me.TextBox3.ReadOnly = IsReadOnly
            Me.TextBox5.ReadOnly = IsReadOnly : Me.TextBox6.ReadOnly = IsReadOnly
            Me.TextBox7.ReadOnly = IsReadOnly : Me.TextBox8.ReadOnly = IsReadOnly
            Me.DateTimePicker1.Enabled = Not IsReadOnly
            Me.DateTimePicker2.Enabled = Not IsReadOnly
        End If
    End Function

    Private Sub Button4_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button4.Click
        If IndexOfTabSelected = 0 Then
            Call AddNewCS()
            Call SetReadOnly(True)
            Call GetStationInfo()
        ElseIf IndexOfTabSelected = 1 Then
            Call AddNewStd()
            Call SetReadOnly(True)
            Call GetStandardInfo()
        End If
        Me.Button4.Enabled = False
        '添加一行新记录
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button2.Click
        If IndexOfTabSelected = 0 Then
            Call ModifyCS()
        ElseIf IndexOfTabSelected = 1 Then
            Call ModifySTD()
        End If
        Me.CheckBox2.Checked = True
        '修改当前记录
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button3.Click
        If IndexOfTabSelected = 0 Then
            Call DeleteCSDR()
            Call SetReadOnly(True)
            Call GetStationInfo()
            Call ShowCSInfo(CSCount.Count)
        ElseIf IndexOfTabSelected = 1 Then
            Call DeleteSTD()
            Call SetReadOnly(True)
            Call GetStandardInfo()
            Call ShowCSStd(StdCount.Count)
        End If
        '删除记录
    End Sub

    Public Function ModifySTD()
        Dim MSTDSQLstr As String
        Dim STDDR As DataRow
        Dim STDKey(1) As DataColumn
        Dim STDCode As CSStd
        STDCode.VhCode = Me.TextBox5.Text
        STDCode.VhName = Me.TextBox6.Text
        STDCode.ChMoney = CSng(Me.TextBox7.Text)
        STDCode.Explain = Me.TextBox8.Text
        STDCode.SDate = Me.DateTimePicker1.Value
        STDCode.EDate = Me.DateTimePicker2.Value
        STDKey(0) = StdDS.Tables.Item(0).Columns("VhlCode")
        StdDS.Tables.Item(0).PrimaryKey = STDKey
        STDDR = StdDS.Tables.Item(0).Rows.Find(STDCode.VhCode)
        MSTDSQLstr = "UPDATE CSStd SET VhlName = '" & STDCode.VhName & "', " & _
        "ChgMoney = '" & STDCode.ChMoney & " ',Explain = '" & STDCode.Explain & "', " & _
        "SDate= '" & STDCode.SDate & " ',EDate = '" & STDCode.EDate & "' " & _
        "WHERE (VhlCode = '" & STDCode.VhCode & "')"
        Call SaveToTable(MSTDSQLstr)
        MessageBox.Show("已经成功的修改了该条记录。", _
        "修改成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    End Function

    Public Function ModifyCS()
        Dim MCSSQLstr As String
        Dim CSDR As DataRow
        Dim CSKey(1) As DataColumn
        Dim CSCode As CSInfo
        Dim local As Integer
        '定义变量
        CSCode.Code = Me.TextBox1.Text
        CSKey(0) = DS.Tables.Item(0).Columns("CSCode")
        DS.Tables.Item(0).PrimaryKey = CSKey
        CSDR = DS.Tables.Item(0).Rows.Find(CSCode.Code)
        '设置主键
        CSCode.Name = Me.TextBox2.Text
        CSCode.No = Me.TextBox3.Text
        CSCode.Distance = Me.TextBox4.Text
        CSCode.IsLocal = Me.CheckBox1.Checked
        If CSCode.IsLocal = True Then
            local = 1
        Else
            local = 0
        End If
        MCSSQLstr = "UPDATE CSInfo SET CSName = '" & CSCode.Name & "', " & _
        "CSNo = '" & CSCode.No & " ',Distance= '" & CSCode.Distance & "', " & _
        "IsLocal= '" & local & " ' WHERE (CSCode = '" & CSCode.Code & "')"
        '设置修改的SQL语句
        Call SaveToTable(MCSSQLstr)
        '保存修改
        MessageBox.Show("已经成功的修改了该条记录。", _
        "修改成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    End Function

    Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, _
                                         ByVal e As System.EventArgs) _
                                         Handles CheckBox2.CheckedChanged
        Call SetReadOnly(Me.CheckBox2.Checked)
        '设置是否只读
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, _
                              ByVal e As System.EventArgs) _
                              Handles Button5.Click
        Me.Close()
        '退出设置
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -