📄 formdepartment.vb
字号:
'cmbCompany
'
Me.cmbCompany.Location = New System.Drawing.Point(168, 56)
Me.cmbCompany.Name = "cmbCompany"
Me.cmbCompany.Size = New System.Drawing.Size(200, 20)
Me.cmbCompany.TabIndex = 8
'
'Label2
'
Me.Label2.Location = New System.Drawing.Point(48, 56)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(100, 20)
Me.Label2.TabIndex = 1
Me.Label2.Text = "所属公司"
'
'Label4
'
Me.Label4.Location = New System.Drawing.Point(48, 104)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(100, 20)
Me.Label4.TabIndex = 3
Me.Label4.Text = "部门名称"
'
'txtNumber
'
Me.txtNumber.Location = New System.Drawing.Point(168, 32)
Me.txtNumber.Name = "txtNumber"
Me.txtNumber.Size = New System.Drawing.Size(200, 21)
Me.txtNumber.TabIndex = 4
'
'txtName
'
Me.txtName.Location = New System.Drawing.Point(168, 104)
Me.txtName.Name = "txtName"
Me.txtName.Size = New System.Drawing.Size(200, 21)
Me.txtName.TabIndex = 7
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(48, 32)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(100, 20)
Me.Label1.TabIndex = 0
Me.Label1.Text = "部门编号"
'
'Label3
'
Me.Label3.Location = New System.Drawing.Point(48, 80)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(100, 20)
Me.Label3.TabIndex = 2
Me.Label3.Text = "所属部门"
'
'FormDepartment
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(640, 245)
Me.Controls.Add(Me.Panel2)
Me.Controls.Add(Me.Splitter1)
Me.Controls.Add(Me.Panel1)
Me.Name = "FormDepartment"
Me.Text = "部门设置"
Me.Panel1.ResumeLayout(False)
Me.Panel2.ResumeLayout(False)
Me.Panel4.ResumeLayout(False)
Me.Panel3.ResumeLayout(False)
Me.Panel3.PerformLayout()
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub InitialData()
'Clear Controls
cmbCompany.DataSource = Nothing
cmbCompany.Items.Clear()
cmbParent.DataSource = Nothing
cmbParent.Items.Clear()
tvDepartment.Nodes.Clear()
'Initial cmbCompany
Dim dsCompany As DataSet
dsCompany = DbBase.DataInterface().Execute4DS("select top 1 id,name from company")
cmbCompany.DataSource = dsCompany.Tables(0).DefaultView
cmbCompany.DisplayMember = "name"
cmbCompany.ValueMember = "id"
'Initial cmbParent
Dim dsParent As DataSet
dsParent = DbBase.DataInterface().Execute4DS("select number,name from department where parent_number = '-1'")
Dim drTemp As DataRow
drTemp = dsParent.Tables(0).NewRow
drTemp.Item("number") = "-1"
drTemp.Item("name") = "直属公司"
dsParent.Tables(0).Rows.InsertAt(drTemp, 0)
cmbParent.DataSource = dsParent.Tables(0).DefaultView
cmbParent.DisplayMember = "name"
cmbParent.ValueMember = "number"
'初始化树目录
Dim tnRoot As TreeNode
tnRoot = New TreeNode(dsCompany.Tables(0).Rows(0).Item("name"))
tnRoot.Tag = dsCompany.Tables(0).Rows(0).Item("id")
tnRoot.ImageIndex = 0
tnRoot.SelectedImageIndex = 0
tvDepartment.Nodes.Add(tnRoot)
Dim dsDeparts As DataSet
dsDeparts = DbBase.DataInterface().Execute4DS("select number,name,parent_number from department order by number")
'在树目录添加部门
Dim iNodeIndex As Integer = 0
For Each drDepart As DataRow In dsDeparts.Tables(0).Rows
Dim tnTemp As TreeNode
tnTemp = New TreeNode(drDepart.Item("name"))
tnTemp.Tag = drDepart.Item("number")
tnTemp.ImageIndex = 1
tnTemp.SelectedImageIndex = 1
If Microsoft.VisualBasic.Right(drDepart.Item("number"), 1) = "0" Then ''判断是否以0结尾
tnRoot.Nodes.Add(tnTemp)
iNodeIndex = tnTemp.Index
Else
Dim ds As DataSet
Dim parent_number As String = drDepart.Item("parent_number")
ds = DbBase.DataInterface().Execute4DS("select top 1 * from department where number=" & parent_number)
Dim dr As DataRow = ds.Tables(0).Rows.Item(0)
Dim n As New TreeNode
For Each n In tnRoot.Nodes
If n.Text = dr.Item("name") Then 'if 已经存在的节点的text属性是否=(dr.Item("name")) then
n.Nodes.Add(tnTemp) '在已有节点的基础上添加子节点
End If
Next '遍历所有节点
End If
Next
tvDepartment.ExpandAll() '展开所有节点
End Sub
Private Sub ShowDepartment()
If oDepartment Is Nothing Then
Exit Sub
End If
txtNumber.Text = oDepartment.Number
cmbCompany.SelectedValue = oDepartment.iCompanyId
If oDepartment.Parent Is Nothing Then
'cmbParent.SelectedIndex = 0
cmbParent.SelectedIndex = cmbParent.Items.Count - 1
Else
cmbParent.Text = oDepartment.Parent.Name
End If
txtName.Text = oDepartment.Name
End Sub
Private Sub FormDepartment_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
InitialData()
End Sub
Private Sub tvDepartment_AfterSelect(ByVal sender As Object, ByVal e As TreeViewEventArgs) Handles tvDepartment.AfterSelect
If Not e.Node Is tvDepartment.Nodes(0) Then
oDepartment = New Department(e.Node.Tag)
End If
ShowDepartment()
EndEdit()
End Sub
Private Sub tvDepartment_MouseDown(ByVal send As Object, ByVal e As MouseEventArgs) Handles tvDepartment.MouseDown
Dim tnClicked As TreeNode
tnClicked = tvDepartment.GetNodeAt(New Point(e.X, e.Y))
If Not tnClicked Is Nothing And Not tnClicked Is tvDepartment.Nodes(0) Then
tvDepartment.SelectedNode = tnClicked
oDepartment = New Department(tnClicked.Tag)
End If
End Sub
Private Sub miView_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miView.Click
ShowDepartment()
EndEdit()
End Sub
Private Sub miAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miAdd.Click
If oDepartment Is Nothing Then
oDepartment = New Department
Else
oDepartment.Number = ""
oDepartment.Name = ""
End If
ShowDepartment()
BeginEdit()
btnUpdate.Text = "增 加"
End Sub
Private Sub miEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miEdit.Click
ShowDepartment()
BeginEdit()
btnUpdate.Text = "修 改"
End Sub
Private Sub miDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miDel.Click
ShowDepartment()
BeginEdit()
btnUpdate.Text = "删 除"
End Sub
Private Sub miAddSub_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miAddSub.Click
Dim oOldDepart As Department
oOldDepart = oDepartment
oDepartment = New Department
oDepartment.Number = ""
If oOldDepart Is Nothing Then
oDepartment.Company = Nothing
Else
oDepartment.Company = oOldDepart.Company
End If
oDepartment.Parent = oOldDepart
oDepartment.Name = ""
ShowDepartment()
BeginEdit()
btnUpdate.Text = "增 加"
End Sub
Private Sub miClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles miClear.Click
If MessageBox.Show("您确认删除该部门下的所有子部门吗?", "清空部门", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.OK Then
oDepartment.ClearSub()
InitialData()
End If
End Sub
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
oDepartment.Number = txtNumber.Text
oDepartment.iCompanyId = cmbCompany.SelectedValue
oDepartment.sParentNumber = cmbParent.SelectedValue
oDepartment.Name = txtName.Text
Select Case btnUpdate.Text
Case "增 加"
oDepartment.Add()
Case "修 改"
oDepartment.Update()
Case "删 除"
If MessageBox.Show("删除操作将该部门下的所有子部门一同删除,您确认删除该部门吗?", "删除部门", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.OK Then
oDepartment.Delete()
End If
End Select
InitialData()
EndEdit()
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
ShowDepartment()
EndEdit()
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
ShowDepartment()
End Sub
Private Sub BeginEdit()
btnUpdate.Enabled = True
btnCancel.Enabled = True
End Sub
Private Sub EndEdit()
btnUpdate.Enabled = False
btnCancel.Enabled = False
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -