Açıklama Yok
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

公司組織結構.vb 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355
  1. Option Strict Off
  2. Imports System.IO
  3. Public Class 公司組織結構
  4. Dim RI As Integer = -1
  5. Dim SK As String = "要查找的 KEY"
  6. Dim Str As String = Application.StartupPath
  7. DIM 對話框(15) As String
  8. Private Sub Set_清單1()
  9. If PA47 = "HX / PGS LTD. C." Then : Else
  10. Dim ds1 As New DataSet : 主管_dgv.DataSource = Nothing : ds1.Clear()
  11. 主管_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  12. 主管_dgv.ColumnHeadersHeight = 25 : 主管_dgv.AllowUserToAddRows = False : 主管_dgv.RowTemplate.Height = 45
  13. SQL_系統組織結構圖_單位主管1()
  14. da.Fill(ds1) : 主管_dgv.DataSource = ds1.Tables(0) : conn.Close()
  15. 主管_dgv.Columns(0).FillWeight = 100 : 主管_dgv.Columns(1).FillWeight = 50 : 主管_dgv.Columns(2).FillWeight = 150
  16. For i As Integer = 0 To 主管_dgv.Rows.Count - 1
  17. 主管_dgv(0, i).Value = 主管_dgv(0, i).Value.ToString.ToUpper : 主管_dgv(2, i).Value = 主管_dgv(2, i).Value.ToString.ToUpper
  18. Dim 驗證 As String = "" : Dim 取變數 As String
  19. 取變數 = 主管_dgv.Rows(i).Cells("Jobtitle").Value.ToString : NN1 = 0
  20. For ii As Integer = 1 To 20
  21. If ii = 1 Then : 驗證 = Strings.Left(取變數, ii) : NN1 += 1 : Else
  22. If Strings.Mid(取變數, ii, 1) = "/" Then : Exit For : Else : 驗證 &= Strings.Mid(取變數, ii, 1) : NN1 += 1 : End If
  23. End If
  24. Next
  25. If 系統語言 = "繁體中文" Then : 主管_dgv.Rows(i).Cells("Jobtitle").Value = 驗證 : Else
  26. If Strings.Left(主管_dgv.Rows(i).Cells("Jobtitle").Value.ToString, 6) = "00000." Then : 主管_dgv.Rows(i).Cells("Jobtitle").Value = "00000.NA" : Else
  27. 主管_dgv.Rows(i).Cells("Jobtitle").Value = Strings.Left(主管_dgv.Rows(i).Cells("Jobtitle").Value.ToString, 6) &
  28. Strings.Mid(主管_dgv.Rows(i).Cells("Jobtitle").Value.ToString, NN1 + 2, 100)
  29. End If
  30. End If
  31. Next
  32. End If
  33. End Sub
  34. Private Sub Set_語言()
  35. 語言_dgv.DataSource = Nothing
  36. 語言_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  37. 語言_dgv.ColumnHeadersHeight = 25
  38. 語言_dgv.AllowUserToAddRows = False
  39. For i As Integer = 0 To 語言_dgv.Rows.Count - 1 : 語言_dgv.Rows.RemoveAt(0) : Next
  40. If File.Exists(Str + "\LANGUAGE_FILE.csv") Then
  41. Dim filereader = My.Computer.FileSystem.OpenTextFileReader(Str + "\LANGUAGE_FILE.csv", System.Text.Encoding.Default)
  42. Dim line As String = filereader.ReadLine()
  43. While Not (line Is Nothing)
  44. line = filereader.ReadLine()
  45. If line <> Nothing Then
  46. line = line.Replace("""", "")
  47. If Strings.Left(line, 4) = "G000" Or Strings.Left(line, 8) = "H001-111" Or Strings.Left(line, 4) = 介面 Then
  48. If 系統語言 = "繁體中文" Then
  49. If Strings.Mid(line, 10, 2) = "CH" Then : 語言_dgv.Rows.Insert(0)
  50. 語言_dgv.Rows(0).Cells(0).Value = Strings.Left(line, 11)
  51. If Strings.Mid(line, 13, 300).EndsWith(",") Then
  52. 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300).Substring(0, Strings.Mid(line, 13, 300).Length - 1)
  53. Else : 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300) : End If
  54. End If
  55. ElseIf 系統語言 = "English" Then
  56. If Strings.Mid(line, 10, 2) = "EN" Then : 語言_dgv.Rows.Insert(0)
  57. 語言_dgv.Rows(0).Cells(0).Value = Strings.Left(line, 11)
  58. If Strings.Mid(line, 13, 300).EndsWith(",") Then
  59. 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300).Substring(0, Strings.Mid(line, 13, 300).Length - 1)
  60. Else : 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300) : End If
  61. End If
  62. ElseIf 系統語言 = "Indonesian" Then
  63. If Strings.Mid(line, 10, 2) = "IN" Then : 語言_dgv.Rows.Insert(0)
  64. 語言_dgv.Rows(0).Cells(0).Value = Strings.Left(line, 11)
  65. If Strings.Mid(line, 13, 300).EndsWith(",") Then
  66. 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300).Substring(0, Strings.Mid(line, 13, 300).Length - 1)
  67. Else : 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300) : End If
  68. End If
  69. End If
  70. End If
  71. End If
  72. End While
  73. filereader.Close()
  74. End If
  75. End Sub
  76. Private Sub Set_語言查詢()
  77. RI = -1 : For Each row As DataGridViewRow In 語言_dgv.Rows
  78. If Strings.Left(row.Cells(0).Value.ToString(), 8) = SK Then
  79. RI = row.Index : Exit For
  80. End If
  81. Next
  82. End Sub
  83. Private Sub 語言轉換讀取()
  84. Set_語言() : conn.Close()
  85. SK = "H001-111" : Set_語言查詢() : Me.Text = 語言_dgv(1, RI).Value.ToString
  86. SK = "H603-100" : Set_語言查詢() : Label1.Text = 語言_dgv(1, RI).Value.ToString : SK = "H603-101" : Set_語言查詢() : Label2.Text = 語言_dgv(1, RI).Value.ToString
  87. SK = "G000-128" : Set_語言查詢() : 對話框(0) = 語言_dgv(1, RI).Value.ToString : SK = "G000-129" : Set_語言查詢() : 對話框(1) = 語言_dgv(1, RI).Value.ToString
  88. SK = "G000-130" : Set_語言查詢() : 對話框(2) = 語言_dgv(1, RI).Value.ToString : SK = "G000-131" : Set_語言查詢() : 對話框(3) = 語言_dgv(1, RI).Value.ToString
  89. SK = "G000-132" : Set_語言查詢() : 對話框(4) = 語言_dgv(1, RI).Value.ToString : SK = "G000-133" : Set_語言查詢() : 對話框(5) = 語言_dgv(1, RI).Value.ToString
  90. SK = "G000-134" : Set_語言查詢() : 對話框(6) = 語言_dgv(1, RI).Value.ToString : SK = "G000-135" : Set_語言查詢() : 對話框(7) = 語言_dgv(1, RI).Value.ToString
  91. SK = "G000-136" : Set_語言查詢() : 對話框(8) = 語言_dgv(1, RI).Value.ToString : SK = "G000-137" : Set_語言查詢() : 對話框(9) = 語言_dgv(1, RI).Value.ToString
  92. SK = "G000-138" : Set_語言查詢() : 對話框(10) = 語言_dgv(1, RI).Value.ToString : SK = "G000-139" : Set_語言查詢() : 對話框(11) = 語言_dgv(1, RI).Value.ToString
  93. SK = "G000-140" : Set_語言查詢() : 對話框(12) = 語言_dgv(1, RI).Value.ToString : SK = "G000-141" : Set_語言查詢() : 對話框(13) = 語言_dgv(1, RI).Value.ToString
  94. SK = "G000-142" : Set_語言查詢() : 對話框(14) = 語言_dgv(1, RI).Value.ToString : SK = "G000-143" : Set_語言查詢() : 對話框(15) = 語言_dgv(1, RI).Value.ToString
  95. End Sub
  96. Private Sub 公司組織結構_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  97. Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  98. 風格() : H(603) = True : 分流計算.Enabled = True
  99. End Sub
  100. Private Sub 公司組織結構_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  101. MyMod.虛擬桌面開啟()
  102. End Sub
  103. Private Sub 語轉扭_bt_Click(sender As Object, e As EventArgs) Handles 語轉扭_bt.Click
  104. 分流計算.Enabled = True
  105. End Sub
  106. Private Sub 分流計算_Tick(sender As Object, e As EventArgs) Handles 分流計算.Tick
  107. 分流計算.Enabled = False
  108. 介面 = "H603" : 語言轉換讀取() : Panel1.SendToBack() : 顯示說明(999, False)
  109. 組織圖_tv.Nodes.Clear() : 組織圖1_tv.Nodes.Clear() : 組織圖2_tv.Nodes.Clear() : 組織圖3_tv.Nodes.Clear()
  110. 組織圖_1_tv.Nodes.Clear() : 組織圖1_1_tv.Nodes.Clear() : 組織圖2_1_tv.Nodes.Clear() : 組織圖3_1_tv.Nodes.Clear()
  111. 組織圖_tv.Nodes.Add("HX / PGS LTD. C.") : 組織圖_1_tv.Nodes.Add("HX / PGS LTD. C.")
  112. SQL_系統組織結構圖_部門()
  113. While (dr.Read())
  114. 組織圖_tv.Nodes(0).Nodes.Add(dr("部門"))
  115. Dim 驗證 As String = "" : Dim 取變數 As String
  116. 取變數 = dr("部門").ToString : NN1 = 0
  117. For ii As Integer = 1 To 20
  118. If ii = 1 Then : 驗證 = Strings.Left(取變數, ii) : NN1 += 1 : Else
  119. If Strings.Mid(取變數, ii, 1) = " " Then : Exit For : Else : 驗證 &= Strings.Mid(取變數, ii, 1) : NN1 += 1 : End If
  120. End If
  121. Next
  122. If 系統語言 = "繁體中文" Then : 組織圖_1_tv.Nodes(0).Nodes.Add(驗證) : Else
  123. If Strings.Left(dr("部門").ToString, 2) = "0." Then : 組織圖_1_tv.Nodes(0).Nodes.Add("0.NA") : Else
  124. 驗證 = Strings.Left(dr("部門").ToString, 2) & Strings.Mid(dr("部門").ToString, NN1 + 2, 100)
  125. 組織圖_1_tv.Nodes(0).Nodes.Add(驗證)
  126. End If
  127. End If
  128. End While : conn.Close()
  129. For I As Integer = 0 To 組織圖_tv.Nodes(0).Nodes.Count - 1
  130. PA = 組織圖_tv.Nodes(0).Nodes(I).Text : SQL_系統組織結構圖_部門_人員() : Dim BB As Integer = 0
  131. If 深色風格 = False Then
  132. While (dr.Read())
  133. 組織圖_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.Red
  134. 組織圖_1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖_1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.Red : BB += 1
  135. End While : conn.Close()
  136. Else
  137. While (dr.Read())
  138. 組織圖_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.LightPink
  139. 組織圖_1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖_1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.LightPink : BB += 1
  140. End While : conn.Close()
  141. End If
  142. Next
  143. 組織圖_tv.ExpandAll() : 組織圖_1_tv.ExpandAll()
  144. 組織圖1_tv.Nodes.Add("HX / PGS LTD. C.") : 組織圖1_1_tv.Nodes.Add("HX / PGS LTD. C.")
  145. SQL_系統組織結構圖_處別1()
  146. While (dr.Read())
  147. 組織圖1_tv.Nodes(0).Nodes.Add(dr("處"))
  148. Dim 驗證 As String = "" : Dim 取變數 As String
  149. 取變數 = dr("處").ToString : NN1 = 0
  150. For ii As Integer = 1 To 20
  151. If ii = 1 Then : 驗證 = Strings.Left(取變數, ii) : NN1 += 1 : Else
  152. If Strings.Mid(取變數, ii, 1) = " " Then : Exit For : Else : 驗證 &= Strings.Mid(取變數, ii, 1) : NN1 += 1 : End If
  153. End If
  154. Next
  155. If 系統語言 = "繁體中文" Then : 組織圖1_1_tv.Nodes(0).Nodes.Add(驗證) : Else
  156. If Strings.Left(dr("處").ToString, 2) = "00." Then : 組織圖1_1_tv.Nodes(0).Nodes.Add("00.NA") : Else
  157. 驗證 = Strings.Left(dr("處").ToString, 3) & Strings.Mid(dr("處").ToString, NN1 + 2, 100)
  158. 組織圖1_1_tv.Nodes(0).Nodes.Add(驗證)
  159. End If
  160. End If
  161. End While : conn.Close()
  162. For I As Integer = 0 To 組織圖1_tv.Nodes(0).Nodes.Count - 1
  163. PA = 組織圖1_tv.Nodes(0).Nodes(I).Text : SQL_系統組織結構圖_處別_人員() : Dim BB As Integer = 0
  164. If 深色風格 = False Then
  165. While (dr.Read())
  166. 組織圖1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.Red
  167. 組織圖1_1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖1_1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.Red : BB += 1
  168. End While : conn.Close()
  169. Else
  170. While (dr.Read())
  171. 組織圖1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.LightPink
  172. 組織圖1_1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖1_1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.LightPink : BB += 1
  173. End While : conn.Close()
  174. End If
  175. Next
  176. 組織圖1_tv.ExpandAll() : 組織圖1_1_tv.ExpandAll()
  177. 組織圖2_tv.Nodes.Add("HX / PGS LTD. C.") : 組織圖2_1_tv.Nodes.Add("HX / PGS LTD. C.")
  178. SQL_系統組織結構圖_課別1()
  179. While (dr.Read())
  180. 組織圖2_tv.Nodes(0).Nodes.Add(dr("課"))
  181. Dim 驗證 As String = "" : Dim 取變數 As String
  182. 取變數 = dr("課").ToString : NN1 = 0
  183. For ii As Integer = 1 To 20
  184. If ii = 1 Then : 驗證 = Strings.Left(取變數, ii) : NN1 += 1 : Else
  185. If Strings.Mid(取變數, ii, 1) = " " Then : Exit For : Else : 驗證 &= Strings.Mid(取變數, ii, 1) : NN1 += 1 : End If
  186. End If
  187. Next
  188. If 系統語言 = "繁體中文" Then : 組織圖2_1_tv.Nodes(0).Nodes.Add(驗證) : Else
  189. If Strings.Left(dr("課").ToString, 4) = "000." Then : 組織圖2_1_tv.Nodes(0).Nodes.Add("000.NA") : Else
  190. 驗證 = Strings.Left(dr("課").ToString, 3) & Strings.Mid(dr("課").ToString, NN1 + 2, 100)
  191. 組織圖2_1_tv.Nodes(0).Nodes.Add(驗證)
  192. End If
  193. End If
  194. End While : conn.Close()
  195. For I As Integer = 0 To 組織圖2_tv.Nodes(0).Nodes.Count - 1
  196. PA = 組織圖2_tv.Nodes(0).Nodes(I).Text : SQL_系統組織結構圖_課別_人員() : Dim BB As Integer = 0
  197. If 深色風格 = False Then
  198. While (dr.Read())
  199. 組織圖2_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖2_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.Red
  200. 組織圖2_1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖2_1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.Red : BB += 1
  201. End While : conn.Close()
  202. Else
  203. While (dr.Read())
  204. 組織圖2_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖2_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.LightPink
  205. 組織圖2_1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖2_1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.LightPink : BB += 1
  206. End While : conn.Close()
  207. End If
  208. Next
  209. 組織圖2_tv.ExpandAll() : 組織圖2_1_tv.ExpandAll()
  210. 組織圖3_tv.Nodes.Add("HX / PGS LTD. C.") : 組織圖3_1_tv.Nodes.Add("HX / PGS LTD. C.")
  211. SQL_系統組織結構圖_組別1()
  212. While (dr.Read())
  213. 組織圖3_tv.Nodes(0).Nodes.Add(dr("組"))
  214. If 系統語言 = "繁體中文" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(dr("組")) : Else
  215. If Strings.Mid(dr("組").ToString, 6, 2) = "工務" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(0))
  216. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "製圖" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(1))
  217. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "銷售" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(2))
  218. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "會計" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(3))
  219. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "稅務" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(4))
  220. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "財務" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(5))
  221. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "總務" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(6))
  222. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "倉管" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(7))
  223. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "資安" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(8))
  224. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "文管" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(9))
  225. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "人資" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(10))
  226. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "實習" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(11))
  227. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "管理" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(12))
  228. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "採購" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(13))
  229. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "出納" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(14))
  230. ElseIf Strings.Mid(dr("組").ToString, 6, 2) = "報價" Then : 組織圖3_1_tv.Nodes(0).Nodes.Add(Strings.Left(dr("組").ToString, 5) & 對話框(15))
  231. Else : 組織圖3_1_tv.Nodes(0).Nodes.Add(dr("組"))
  232. End If
  233. End If
  234. End While : conn.Close()
  235. For I As Integer = 0 To 組織圖3_tv.Nodes(0).Nodes.Count - 1
  236. PA = 組織圖3_tv.Nodes(0).Nodes(I).Text : SQL_系統組織結構圖_組別_人員() : Dim BB As Integer = 0
  237. If 深色風格 = False Then
  238. While (dr.Read())
  239. 組織圖3_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖3_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.Red
  240. 組織圖3_1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖3_1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.Red : BB += 1
  241. End While : conn.Close()
  242. Else
  243. While (dr.Read())
  244. 組織圖3_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖3_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.LightPink
  245. 組織圖3_1_tv.Nodes(0).Nodes(I).Nodes.Add(dr("姓名")) : 組織圖3_1_tv.Nodes(0).Nodes(I).Nodes(BB).ForeColor = Color.LightPink : BB += 1
  246. End While : conn.Close()
  247. End If
  248. Next
  249. 組織圖3_tv.ExpandAll() : 組織圖3_1_tv.ExpandAll()
  250. End Sub
  251. Private Function FindNodeByText(nodes As TreeNodeCollection, text As String) As TreeNode
  252. ' 遍歷所有節點尋找對應的節點
  253. For Each node As TreeNode In nodes
  254. If node.Text = text Then : Return node : End If
  255. Dim childNode As TreeNode = FindNodeByText(node.Nodes, text)
  256. If childNode IsNot Nothing Then : Return childNode : End If
  257. Next
  258. Return Nothing
  259. End Function
  260. Private Sub 組織圖_1_tv_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles 組織圖_1_tv.AfterSelect
  261. ' 只處理 A 的第三層節點
  262. If e.Node.Level = 2 Then
  263. ' 找到對應的 B 節點
  264. Dim nodeB As TreeNode = FindNodeByText(組織圖_tv.Nodes, e.Node.Text)
  265. ' 如果找到了,則觸發 B 的 AfterSelect 事件
  266. If nodeB IsNot Nothing Then : 組織圖_tv.SelectedNode = nodeB : 組織圖_tv_AfterSelect(組織圖_tv, New TreeViewEventArgs(nodeB)) : End If
  267. Else : 主管_dgv.DataSource = Nothing
  268. End If
  269. End Sub
  270. Private Sub 組織圖_tv_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles 組織圖_tv.AfterSelect
  271. Select Case Strings.Mid(e.Node.Text, 5, 1)
  272. Case "部" : 人員_tb.Text = "" : 級別_tb.Text = "" : 主管_dgv.DataSource = Nothing : Case Else : 人員_tb.Text = e.Node.Text : PA47 = 人員_tb.Text : Set_清單1() : 級別_tb.Text = PA46
  273. End Select
  274. End Sub
  275. Private Sub 組織圖1_1_tv_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles 組織圖1_1_tv.AfterSelect
  276. ' 只處理 A 的第三層節點
  277. If e.Node.Level = 2 Then
  278. ' 找到對應的 B 節點
  279. Dim nodeB As TreeNode = FindNodeByText(組織圖1_tv.Nodes, e.Node.Text)
  280. ' 如果找到了,則觸發 B 的 AfterSelect 事件
  281. If nodeB IsNot Nothing Then : 組織圖1_tv.SelectedNode = nodeB : 組織圖_tv_AfterSelect(組織圖1_tv, New TreeViewEventArgs(nodeB)) : End If
  282. Else : 主管_dgv.DataSource = Nothing
  283. End If
  284. End Sub
  285. Private Sub 組織圖1_tv_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles 組織圖1_tv.AfterSelect
  286. If Strings.Mid(e.Node.Text, 5, 1) = "工" Then
  287. Select Case Strings.Mid(e.Node.Text, 7, 1)
  288. Case "處" : 人員_tb.Text = "" : 級別_tb.Text = "" : 主管_dgv.DataSource = Nothing : Case Else : 人員_tb.Text = e.Node.Text : PA47 = 人員_tb.Text : Set_清單1() : 級別_tb.Text = PA46
  289. End Select
  290. Else
  291. Select Case Strings.Mid(e.Node.Text, 6, 1)
  292. Case "處" : 人員_tb.Text = "" : 級別_tb.Text = "" : 主管_dgv.DataSource = Nothing : Case Else : 人員_tb.Text = e.Node.Text : PA47 = 人員_tb.Text : Set_清單1() : 級別_tb.Text = PA46
  293. End Select
  294. End If
  295. End Sub
  296. Private Sub 組織圖2_1_tv_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles 組織圖2_1_tv.AfterSelect
  297. ' 只處理 A 的第三層節點
  298. If e.Node.Level = 2 Then
  299. ' 找到對應的 B 節點
  300. Dim nodeB As TreeNode = FindNodeByText(組織圖2_tv.Nodes, e.Node.Text)
  301. ' 如果找到了,則觸發 B 的 AfterSelect 事件
  302. If nodeB IsNot Nothing Then : 組織圖2_tv.SelectedNode = nodeB : 組織圖_tv_AfterSelect(組織圖2_tv, New TreeViewEventArgs(nodeB)) : End If
  303. Else : 主管_dgv.DataSource = Nothing
  304. End If
  305. End Sub
  306. Private Sub 組織圖2_tv_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles 組織圖2_tv.AfterSelect
  307. Select Case Strings.Mid(e.Node.Text, 7, 1)
  308. Case "課" : 人員_tb.Text = "" : 級別_tb.Text = "" : 主管_dgv.DataSource = Nothing : Case Else : 人員_tb.Text = e.Node.Text : PA47 = 人員_tb.Text : Set_清單1() : 級別_tb.Text = PA46
  309. End Select
  310. End Sub
  311. Private Sub 組織圖3_1_tv_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles 組織圖3_1_tv.AfterSelect
  312. ' 只處理 A 的第三層節點
  313. If e.Node.Level = 2 Then
  314. ' 找到對應的 B 節點
  315. Dim nodeB As TreeNode = FindNodeByText(組織圖3_tv.Nodes, e.Node.Text)
  316. ' 如果找到了,則觸發 B 的 AfterSelect 事件
  317. If nodeB IsNot Nothing Then : 組織圖3_tv.SelectedNode = nodeB : 組織圖_tv_AfterSelect(組織圖3_tv, New TreeViewEventArgs(nodeB)) : End If
  318. Else : 主管_dgv.DataSource = Nothing
  319. End If
  320. End Sub
  321. Private Sub 組織圖3_tv_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles 組織圖3_tv.AfterSelect
  322. Select Case Strings.Mid(e.Node.Text, 8, 1)
  323. Case "組" : 人員_tb.Text = "" : 級別_tb.Text = "" : 主管_dgv.DataSource = Nothing : Case Else : 人員_tb.Text = e.Node.Text : PA47 = 人員_tb.Text : Set_清單1() : 級別_tb.Text = PA46
  324. End Select
  325. End Sub
  326. Private Sub 風格()
  327. If 深色風格 = False Then
  328. Me.BackColor = SystemColors.Control
  329. Label1.ForeColor = Color.Blue : Label3.ForeColor = Color.Blue : Label2.ForeColor = Color.Black
  330. 組織圖1_1_tv.BackColor = Color.White : 組織圖1_1_tv.ForeColor = Color.Black : 組織圖2_1_tv.BackColor = Color.White : 組織圖2_1_tv.ForeColor = Color.Black
  331. 組織圖_1_tv.BackColor = Color.White : 組織圖_1_tv.ForeColor = Color.Green : 組織圖3_1_tv.BackColor = Color.White : 組織圖3_1_tv.ForeColor = Color.Black
  332. 主管_dgv.EnableHeadersVisualStyles = True : 主管_dgv.BackgroundColor = Color.White : 主管_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.Black
  333. 主管_dgv.AlternatingRowsDefaultCellStyle.BackColor = Color.LightPink
  334. 主管_dgv.DefaultCellStyle.BackColor = Color.White : 主管_dgv.DefaultCellStyle.ForeColor = Color.Black
  335. Else
  336. Me.BackColor = Color.Black
  337. Label1.ForeColor = Color.LightBlue : Label3.ForeColor = Color.LightBlue : Label2.ForeColor = Color.White
  338. 組織圖1_1_tv.BackColor = Color.Black : 組織圖1_1_tv.ForeColor = Color.White : 組織圖2_1_tv.BackColor = Color.Black : 組織圖2_1_tv.ForeColor = Color.White
  339. 組織圖_1_tv.BackColor = Color.Black : 組織圖_1_tv.ForeColor = Color.White : 組織圖3_1_tv.BackColor = Color.Black : 組織圖3_1_tv.ForeColor = Color.White
  340. 主管_dgv.EnableHeadersVisualStyles = False : 主管_dgv.BackgroundColor = Color.DimGray : 主管_dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White
  341. 主管_dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Black : 主管_dgv.AlternatingRowsDefaultCellStyle.BackColor = Color.DimGray
  342. 主管_dgv.DefaultCellStyle.BackColor = Color.Black : 主管_dgv.DefaultCellStyle.ForeColor = Color.White
  343. End If
  344. End Sub
  345. End Class