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

📄 form1.vb

📁 vb开发的车间调度程序
💻 VB
📖 第 1 页 / 共 2 页
字号:
                    Else
                        tempApro = New CProcess(arow(0), arow(1), arow(2), arow(3), arow(5))
                        tempApro.preProcess = aprocess                     '将前一道工序与后一道工序相连
                        aprocess.nextProcess = tempApro
                        aprocess = tempApro
                    End If
                    flag = 1

                    '将可用设备添加到工序中

                    For Each str As String In aprocess.validmachineArray
                        For Each amach As CMachine In machinesArray
                            If amach.nameMachine = str Then
                                aArray.Add(amach)
                            End If
                        Next
                    Next
                    aprocess.validmachineArray.Clear()
                    aprocess.validmachineArray = aArray.Clone()
                    aArray.Clear()
                    '------------
                    sum = sum + aprocess.timeProcess
                    tempArray.Add(aprocess)
                    array.Add(aprocess)
                Next

                aprocess = tempArray.Item(0)
                aprocess.timeRelation = Round(aprocess.timeProcess / sum, 2)
                For j As Integer = 1 To tempArray.Count - 1
                    aprocess = tempArray.Item(j)
                    tempApro = tempArray.Item(j - 1)
                    aprocess.timeRelation = tempApro.timeRelation + aprocess.timeProcess / sum
                Next
                For k As Integer = 0 To tempArray.Count - 1
                    aprocess = tempArray.Item(k)
                    aprocess.timeRelation = Round(1 - aprocess.timeRelation, 2)
                Next
            Next
            ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        Else
            mydataset = New DataSet()

            For i As Integer = 0 To partsArray.Count - 1              '根据工件号,将不同工件的工序分成几张表
                strselect = "select * from processinfo84 where 工件号= '" & partsArray.Item(i).ToString() & "' order by 工序号 asc"

                dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
                dataAdapter.Fill(mydataset, i.ToString)

                Dim sum As Double = 0
                Dim tempArray As New ArrayList
                Dim aArray As New ArrayList
                Dim tempApro As CProcess
                Dim flag As Integer = 0
                For Each arow As DataRow In mydataset.Tables(i).Rows          '计算某张表中的工序的相对剩余时间,并将工序存入工序数组

                    If flag = 0 Then
                        aprocess = New CProcess(arow(0), arow(1), arow(2), arow(3), arow(5))
                        aprocess.preProcess = New CProcess()
                    Else
                        tempApro = New CProcess(arow(0), arow(1), arow(2), arow(3), arow(5))
                        tempApro.preProcess = aprocess                     '将前一道工序与后一道工序相连
                        aprocess.nextProcess = tempApro
                        aprocess = tempApro
                    End If
                    flag = 1

                    '将可用设备添加到工序中

                    For Each str As String In aprocess.validmachineArray
                        For Each amach As CMachine In machinesArray
                            If amach.nameMachine = str Then
                                aArray.Add(amach)
                            End If
                        Next
                    Next
                    aprocess.validmachineArray.Clear()
                    aprocess.validmachineArray = aArray.Clone()
                    aArray.Clear()
                    '------------
                    sum = sum + aprocess.timeProcess
                    tempArray.Add(aprocess)
                    array.Add(aprocess)
                Next

                aprocess = tempArray.Item(0)
                aprocess.timeRelation = Round(aprocess.timeProcess / sum, 2)
                For j As Integer = 1 To tempArray.Count - 1
                    aprocess = tempArray.Item(j)
                    tempApro = tempArray.Item(j - 1)
                    aprocess.timeRelation = tempApro.timeRelation + aprocess.timeProcess / sum
                Next
                For k As Integer = 0 To tempArray.Count - 1
                    aprocess = tempArray.Item(k)
                    aprocess.timeRelation = Round(1 - aprocess.timeRelation, 2)
                Next
            Next
        End If


    End Sub

    Sub ReadMachinesName() '从machinesinfo中读取所有设备的名称,并初始化
        If count1 = 1 Then
            strselect = "select distinct 占用设备号 from processinfo "

            dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
            dataAdapter.Fill(mydataset, "占用设备号")



            For Each arow As DataRow In mydataset.Tables("占用设备号").Rows
                amachine = New CMachine(arow("占用设备号"))
                machinesArray.Add(amachine)
            Next
        ElseIf count1 = 2 Then
            strselect = "select distinct 占用设备号 from processinfo66 "

            dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
            dataAdapter.Fill(mydataset, "占用设备号")



            For Each arow As DataRow In mydataset.Tables("占用设备号").Rows
                amachine = New CMachine(arow("占用设备号"))
                machinesArray.Add(amachine)
            Next
        Else

            strselect = "select distinct 占用设备号 from processinfo84 "

            dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
            dataAdapter.Fill(mydataset, "占用设备号")



            For Each arow As DataRow In mydataset.Tables("占用设备号").Rows
                amachine = New CMachine(arow("占用设备号"))
                machinesArray.Add(amachine)
            Next
        End If


    End Sub

    Sub ReadPartsName()  '从partsinfo中读取所有工件的名称
        If count1 = 1 Then

            strselect = "select distinct 工件号 from processinfo "

            dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
            dataAdapter.Fill(mydataset, "工件号")
            For Each arow As DataRow In mydataset.Tables("工件号").Rows
                partsArray.Add(arow("工件号"))
            Next
        ElseIf count = 2 Then

            strselect = "select distinct 工件号 from processinfo66 "

            dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
            dataAdapter.Fill(mydataset, "工件号")
            For Each arow As DataRow In mydataset.Tables("工件号").Rows
                partsArray.Add(arow("工件号"))
            Next
        Else

            strselect = "select distinct 工件号 from processinfo84 "

            dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
            dataAdapter.Fill(mydataset, "工件号")
            For Each arow As DataRow In mydataset.Tables("工件号").Rows
                partsArray.Add(arow("工件号"))
            Next

        End If

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        SaveFileDialog1.AddExtension = True
        SaveFileDialog1.DefaultExt = "bmp"
        SaveFileDialog1.CheckPathExists = True
        SaveFileDialog1.Filter = "*.bmp|*.bmp"
        SaveFileDialog1.OverwritePrompt = True
        If Me.SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK And SaveFileDialog1.FileName.Length > 0 Then
            bmp.Save(Me.SaveFileDialog1.FileName)
        End If




    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        flag = True
        'Dim count As Integer = 0

        If Me.TextBox1.Text <> "" And Me.TextBox2.Text <> "" And Me.TextBox3.Text <> "" And Me.TextBox4.Text <> "" And Me.TextBox5.Text <> "" Then

            Me.DataGridView1.Rows.Add()
            Me.DataGridView1.Rows(count).Cells.Item(0).Value = Me.TextBox1.Text
            Me.DataGridView1.Rows(count).Cells.Item(1).Value = Me.TextBox2.Text
            Me.DataGridView1.Rows(count).Cells.Item(2).Value = Me.TextBox3.Text
            Me.DataGridView1.Rows(count).Cells.Item(3).Value = Me.TextBox4.Text
            Me.DataGridView1.Rows(count).Cells.Item(4).Value = Me.TextBox5.Text
            Me.DataGridView1.Rows(count).Cells.Item(5).Value = (Int(Me.TextBox3.Text) * Int(Me.TextBox5.Text)).ToString

            count = count + 1
        Else
            MessageBox.Show("错误!工件工序的数据不完整,不能添加!")
        End If

        Me.TextBox1.Text = ""
        Me.TextBox2.Text = ""
        Me.TextBox3.Text = ""
        Me.TextBox4.Text = ""
        Me.TextBox5.Text = ""
        Me.TextBox6.Text = ""


    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Dim response As MsgBoxResult


        '  Me.DataGridView1.Rows.Clear()

        If flag = True Then
            MessageBox.Show("请完成手工添加记录!")
        Else

            '    connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            '                               "Data Source=" & Application.StartupPath & "\mydatabase.mdb"
            response = MsgBox("要添加info吗?", MsgBoxStyle.YesNo, "qq")


            If response = MsgBoxResult.Yes Then
                strselect = "select * from processinfo "
                '    dbConnection = New OleDbConnection(connectionstring)
                dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
                dataAdapter.Fill(mydataset, "info")

                Me.DataGridView2.Width = Me.DataGridView1.Width
                Me.DataGridView2.Height = Me.DataGridView1.Height

                Me.DataGridView1.Hide()
                Me.DataGridView2.Show()

                Me.DataGridView2.Location = Me.DataGridView1.Location
                Me.DataGridView2.DataSource = mydataset.Tables("info")
                count1 = 1
            Else


                response = MsgBox("要添加info66吗?", MsgBoxStyle.YesNo, "qq1")
                If response = MsgBoxResult.Yes Then
                    strselect = "select * from processinfo66 "
                    '    dbConnection = New OleDbConnection(connectionstring)
                    dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
                    dataAdapter.Fill(mydataset, "info66")

                    Me.DataGridView2.Width = Me.DataGridView1.Width
                    Me.DataGridView2.Height = Me.DataGridView1.Height

                    Me.DataGridView1.Hide()
                    Me.DataGridView2.Show()

                    Me.DataGridView2.Location = Me.DataGridView1.Location
                    Me.DataGridView2.DataSource = mydataset.Tables("info66")
                    count1 = 2
                Else

                    strselect = "select * from processinfo84 "
                    '    dbConnection = New OleDbConnection(connectionstring)
                    dataAdapter = New OleDbDataAdapter(strselect, dbConnection)
                    dataAdapter.Fill(mydataset, "info84")

                    Me.DataGridView2.Width = Me.DataGridView1.Width
                    Me.DataGridView2.Height = Me.DataGridView1.Height

                    Me.DataGridView1.Hide()
                    Me.DataGridView2.Show()

                    Me.DataGridView2.Location = Me.DataGridView1.Location
                    Me.DataGridView2.DataSource = mydataset.Tables("info84")
                    count1 = 3
                End If
            End If
        End If
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If Me.TextBox1.Text <> "" Then
            Me.TextBox2.Text += Me.TextBox1.Text + "-"
        End If
    End Sub

    Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged

        If Me.TextBox1.Text <> "" Then

            Me.TextBox6.Enabled = True
            Me.TextBox6.Text = (Int(Me.TextBox3.Text) * Int(Me.TextBox5.Text)).ToString
        Else
            Me.TextBox6.Enabled = False
        End If

    End Sub


End Class

⌨️ 快捷键说明

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