怪怪員馬

  • 1272
  • 0

摘要:怪怪員馬

 

 
Imports System.Data.OleDb
'Imports System
'Imports System.Linq
'Imports System.Reflection
'Imports System.Collections.Generic
'Imports System.Data
'Imports System.Data.SqlClient
'Imports System.Data.Common
'Imports System.Globalization
Public Class Form1
    Dim weBindingSource As New BindingSource
    Dim wdataset As New DataSet
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim connect_string As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + "c:\db2.mdb"
        Dim cs As String = "select 員工編號,姓名,名 from man order by 員工編號"
        Dim objdataset As New DataSet
        'weBindingSource.DataSource = selectfunction(connect_string, cs)
        Dim Dt As New DataTable
        Dt = selectfunction(connect_string, cs)
        ' DataGridView2.DataSource = Dt
        'Dt.Rows.Add()
        'Dt.Rows.Add(2)
        ' Dim dr As DataRow
        ' dr = Dt.NewRow
        ' dr("員工編號") = "99"
        ' dr("姓名") = "123"
        'dr("名") = "123"
        ' Dt.Rows.InsertAt(dr, 2)
        'Dt.Rows.RemoveAt(2)
        '  weBindingSource.Filter = "員工編號='1'"
        '  TextBox4.Text += weBindingSource.Count.ToString + ""
        '  weBindingSource.RemoveFilter()
        DataGridView1.DataSource = Dt
        addopenFuncn()
    End Sub
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Dim objdataset As New DataSet
        Dim connect_string As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + "c:\db2.mdb"
        Dim cs As String = "select 直屬上司,下屬,作業 from man1 order by 直屬上司"
        Dim connx As New OleDbConnection(connect_string)
        Dim dataAdapter As New OleDb.OleDbDataAdapter(cs, connx)
        dataAdapter.Fill(wdataset, "人員")
        Dim Dt As New DataTable
        Dt = wdataset.Tables("人員")
        Dt.Select("直屬上司='1'", "直屬上司")
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            Dim dr2() As DataRow = wdataset.Tables("人員").Select("直屬上司='" + DataGridView1.Rows(i).Cells(0).Value.ToString() + "'")
            If dr2.Length = 1 Then
                DataGridView1.Rows(i).Cells(3).Value = "True"
                DataGridView1.Rows(i).Cells(4).Value = dr2(0)(1).ToString
                DataGridView1.Rows(i).Cells(5).Value = dr2(0)(2).ToString
            Else
                DataGridView1.Rows(i).Cells(3).Value = "..."
                DataGridView1.Rows(i).Cells(4).Value = ""
                DataGridView1.Rows(i).Cells(5).Value = ""
            End If
 
        Next
    End Sub
    Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        If e.RowIndex >= 0 Then
            Dim dr2() As DataRow = wdataset.Tables("人員").Select("直屬上司='" + DataGridView1.Rows(e.RowIndex).Cells(0).Value.ToString() + "'")
            Dim dr As DataRow
            TextBox5.Text = dr2.Length.ToString
            If dr2.Length > 1 Then
                Dim dt As New DataTable()
                dt = scanFuncion(DataGridView1)
                If dt.Rows(e.RowIndex).Item(3) = "..." Then
                    dt.Rows(e.RowIndex).Item(3) = "true"
                    For indx As Integer = 0 To dr2.Length - 1
                        dr = dt.NewRow
                        dr("下屬") = dr2(indx)(1)
                        dr("作業") = dr2(indx)(2)
                        dt.Rows.InsertAt(dr, e.RowIndex + 1)
                    Next
                    DataGridView1.DataSource = dt
                ElseIf dt.Rows(e.RowIndex).Item(3) = "true" Then
                    dt.Rows(e.RowIndex).Item(3) = "..."
                    For indx As Integer = 0 To dr2.Length - 1
                        dt.Rows.RemoveAt(e.RowIndex + 1)
                    Next
                    DataGridView1.DataSource = dt
                End If
            End If
        End If
    End Sub
 
    Function scanFuncion(ByVal dv As DataGridView)
        Dim dt As New DataTable()
        Dim dc As DataColumn
        ' Dim dv As New DataGridView
        Dim dr As DataRow
        For id As Integer = 0 To dv.ColumnCount - 1
            dc = New DataColumn
            dc.ColumnName = dv.Columns(id).DataPropertyName.ToString()
            dt.Columns.Add(dc)
        Next
        For ind As Integer = 0 To dv.Rows.Count - 1
            dr = dt.NewRow()
            For inde As Integer = 0 To dv.Columns.Count - 1
                If IsDBNull(dv.Rows(ind).Cells(inde).Value) Then
                    dr(inde) = ""
                ElseIf dv.Rows(ind).Cells(inde).Value = "" Then
                    dr(inde) = ""
                Else
                    dr(inde) = dv.Rows(ind).Cells(inde).Value.ToString
                End If
            Next
            dt.Rows.Add(dr)
        Next
        Return dt
    End Function
 
 
    Function addopenFuncn() As Integer
        Dim column As DataGridViewColumn = New DataGridViewTextBoxColumn()
        'column = New DataGridViewCheckBoxColumn()
        column = New DataGridViewTextBoxColumn()
        column.DataPropertyName = "開啟"
        column.Name = "開啟"
        DataGridView1.Columns.Add(column)
        column.ReadOnly = True
        Dim column1 As DataGridViewColumn = New DataGridViewTextBoxColumn()
        column1 = New DataGridViewTextBoxColumn()
        column1.DataPropertyName = "下屬"
        column1.Name = "下屬"
        DataGridView1.Columns.Add(column1)
        Dim column2 As DataGridViewColumn = New DataGridViewTextBoxColumn()
        column2 = New DataGridViewTextBoxColumn()
        column2.DataPropertyName = "作業"
        column2.Name = "作業"
        DataGridView1.Columns.Add(column2)
        Return 0
    End Function
 
 
 
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
 
    End Sub
 
End Class