Nav apraksta
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

工程進度表.vb 46KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. Option Strict Off
  2. Imports System.IO
  3. Public Class 工程進度表
  4. ReadOnly ds5, ds6 As New DataSet
  5. Dim EDR, 選取位置, NUM1, A1, A2, A3, B2, B3 As Integer
  6. Dim 可加進度, 暫停計算, 放大 As Boolean
  7. Dim ESTR As String
  8. Private Sub Set_合約清單()
  9. 合約_dgv.DataSource = Nothing : ds6.Clear()
  10. 合約_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  11. 合約_dgv.ColumnHeadersHeight = 25 : 合約_dgv.AllowUserToAddRows = False
  12. PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text : PA47 = 工程期1_ch.Text
  13. SQL_合約清單1()
  14. da.Fill(ds6) : 合約_dgv.DataSource = ds6.Tables(0) : conn.Close()
  15. 合約_dgv.Columns(0).FillWeight = 80 : 合約_dgv.Columns(5).FillWeight = 200 : 合約_dgv.Columns(26).FillWeight = 50
  16. 合約_dgv.Columns(27).FillWeight = 50 : 合約_dgv.Columns(28).FillWeight = 50
  17. For i As Integer = 1 To 29 : 合約_dgv.Columns(i).Visible = False : Next
  18. 合約_dgv.Columns(5).Visible = True : 合約_dgv.Columns(26).Visible = True : 合約_dgv.Columns(27).Visible = True : 合約_dgv.Columns(28).Visible = True
  19. End Sub
  20. Private Sub Set_進度清單()
  21. 合約2_dgv.DataSource = Nothing : ds5.Clear()
  22. 合約2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  23. 合約2_dgv.ColumnHeadersHeight = 25 : 合約2_dgv.AllowUserToAddRows = False
  24. PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text
  25. SQL_進度清單()
  26. da.Fill(ds5) : 合約2_dgv.DataSource = ds5.Tables(0) : conn.Close()
  27. 合約2_dgv.Columns(1).Visible = False : 合約2_dgv.Columns(2).Visible = False : 合約2_dgv.Columns(3).Visible = False : 合約2_dgv.Columns(4).Visible = False
  28. 合約2_dgv.Columns(5).Visible = False : 合約2_dgv.Columns(6).Visible = False : 合約2_dgv.Columns(7).Visible = False : 合約2_dgv.Columns(8).Visible = False
  29. 合約2_dgv.Columns(9).Visible = False : 合約2_dgv.Columns(10).Visible = False
  30. 合約2_dgv.Columns(0).ReadOnly = True : 合約2_dgv.Columns("工程名稱_中").FillWeight = 250
  31. If 放大 = True Then
  32. 合約2_dgv.Columns("工程名稱_中").Visible = True
  33. Else
  34. 合約2_dgv.Columns("工程名稱_中").Visible = False
  35. End If
  36. End Sub
  37. Private Sub Set_進度明細清單()
  38. Dim ds4 As New DataSet
  39. 工程進度表_dgv.DataSource = Nothing : ds4.Clear()
  40. 工程進度表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  41. 工程進度表_dgv.ColumnHeadersHeight = 53 : 工程進度表_dgv.AllowUserToAddRows = False
  42. 工程進度表_dgv.RowTemplate.Height = 20 : 工程進度表_dgv.RowTemplate.Height = 40
  43. PA = 合約編號_tb.Text : SQL_進度明細清單()
  44. da.Fill(ds4) : 工程進度表_dgv.DataSource = ds4.Tables(0) : conn.Close()
  45. 工程進度表_dgv.Columns(0).Visible = False : 工程進度表_dgv.Columns(1).Visible = False : 工程進度表_dgv.Columns(2).Visible = False : 工程進度表_dgv.Columns(8).Visible = False
  46. 工程進度表_dgv.Columns(9).Visible = False : 工程進度表_dgv.Columns(10).Visible = False : 工程進度表_dgv.Columns(11).Visible = False
  47. 工程進度表_dgv.Columns(2).FillWeight = 40 : 工程進度表_dgv.Columns(3).FillWeight = 35 : 工程進度表_dgv.Columns(4).FillWeight = 200 : 工程進度表_dgv.Columns(5).FillWeight = 70
  48. 工程進度表_dgv.Columns(6).FillWeight = 50 : 工程進度表_dgv.Columns(7).FillWeight = 70 : 工程進度表_dgv.Columns(12).FillWeight = 30 : 工程進度表_dgv.Columns(13).FillWeight = 30
  49. 工程進度表_dgv.Columns(14).FillWeight = 30 : 工程進度表_dgv.Columns(15).FillWeight = 30 : 工程進度表_dgv.Columns(16).FillWeight = 30
  50. 工程進度表_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  51. 工程進度表_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  52. 工程進度表_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  53. 工程進度表_dgv.EditMode = DataGridViewEditMode.EditOnEnter ': 工程進度表_dgv.Columns("預計結束").ReadOnly = True
  54. If DGV位置2.Value >= 工程進度表_dgv.Rows.Count Then : DGV位置2.Value = 工程進度表_dgv.Rows.Count - 1 : End If
  55. If DGV位置2.Value > 0 Then : 工程進度表_dgv.CurrentCell = 工程進度表_dgv.Rows(DGV位置2.Value).Cells(3) : End If
  56. End Sub
  57. Private Sub 甲方條件下拉清單讀取()
  58. SQL合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : End While : conn.Close()
  59. End Sub
  60. Private Sub 執行主管下拉清單讀取()
  61. SQL執行主管下拉() : 帳號_cb.Items.Clear() : 職稱_cb.Items.Clear() : 工程執行主管_cb.Items.Clear()
  62. 帳號_cb.Items.Add("") : 職稱_cb.Items.Add("") : 工程執行主管_cb.Items.Add("")
  63. While (dr.Read()) : 帳號_cb.Items.Add(dr("帳號")) : 職稱_cb.Items.Add(dr("職稱")) : 工程執行主管_cb.Items.Add(dr("姓名")) : End While : conn.Close()
  64. End Sub
  65. Private Sub 工程進度表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  66. Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  67. HX_PGS_ERP_SYS.WindowState = 2
  68. A1 = 工程進度表_dgv.Location.X : A2 = 空間2.Location.X : B2 = 空間2.Location.Y : A3 = 空間2.Size.Width : B3 = 空間2.Size.Height
  69. 進度表刪除_bt.Enabled = False
  70. If CInt(登入人級別) <= 3 Then : 進度表刪除_bt.Enabled = True : ElseIf CInt(登入人級別) > 3 Then : 進度表刪除_bt.Enabled = True : End If
  71. 執行主管下拉清單讀取() : 甲方條件下拉清單讀取() : Set_合約清單() : Set_進度清單() : 工程進度表_Siz()
  72. End Sub
  73. Private Sub 工程進度表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  74. MyModule1.虛擬桌面開啟() : HX_PGS_ERP_SYS.WindowState = 0
  75. End Sub
  76. Private Sub 工程進度表_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  77. 工程進度表_Siz()
  78. End Sub
  79. Private Sub 工程進度表_Siz()
  80. MyModule1.清單字體大小調整()
  81. 合約_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  82. 合約2_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
  83. 工程進度表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6)
  84. A1 = 工程進度表_dgv.Location.X : A2 = 錨點1.Location.X : B2 = 空間2.Location.Y
  85. If 工程進度表_dgv.Visible = False Then : A3 = 空間2.Size.Width : B3 = 空間2.Size.Height : A3 -= (A2 - A1) : End If
  86. End Sub
  87. Private Sub 工程進度表_dgv_CellEnter(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 工程進度表_dgv.CellEnter
  88. If 工程進度表_dgv.SelectedCells.Count = 1 Then
  89. If 工程進度表_dgv.SelectedCells(0).ColumnIndex = 7 Then : 工程進度表_dgv("預計天數", e.RowIndex).Value = ""
  90. ElseIf 工程進度表_dgv.SelectedCells(0).ColumnIndex = 6 Then : 工程進度表_dgv("預計結束", e.RowIndex).Value = ""
  91. End If
  92. End If
  93. End Sub
  94. Private Sub 工程進度表_dgv_CellEndEdit(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles 工程進度表_dgv.CellEndEdit
  95. If IsNumeric(工程進度表_dgv("預計天數", e.RowIndex).Value.ToString) = False Then : 工程進度表_dgv("預計天數", e.RowIndex).Value = "0" : End If
  96. Dim EU As String = 工程進度表_dgv("預計開始", e.RowIndex).Value.ToString : Dim EY As String = 工程進度表_dgv("預計結束", e.RowIndex).Value.ToString
  97. If EU = "" Then
  98. 工程進度表_dgv.Rows(e.RowIndex).Cells("預計結束").Value = "" : 工程進度表_dgv("預計天數", e.RowIndex).Value = "0"
  99. Else
  100. 日期1_dtp.Text = EU
  101. If 日期1_dtp.Value < 開始日期_dtp.Value Then
  102. If 系統語言 = "繁體中文" Then : MsgBox("輸入日期小於開始日期,無法計算!!") : Else : MsgBox("Tanggal input kurang dari tanggal mulai dan tidak dapat dihitung!!") : End If
  103. 工程進度表_dgv.Rows(e.RowIndex).Cells("預計開始").Value = ""
  104. Else
  105. If 工程進度表_dgv("預計天數", e.RowIndex).Value.ToString <> "" And 工程進度表_dgv("預計結束", e.RowIndex).Value.ToString = "" Then
  106. 工程進度表_dgv.Rows(e.RowIndex).Cells("預計開始").Value = Format(日期1_dtp.Value, "yyyy/MM/dd")
  107. 日期1_dtp.Value = 日期1_dtp.Value.AddDays(CInt(工程進度表_dgv("預計天數", e.RowIndex).Value.ToString))
  108. If 日期1_dtp.Value > 結束日期_dtp.Value Then
  109. If 系統語言 = "繁體中文" Then : MsgBox("輸入天數計算後大於結束日期,無法計算!!")
  110. Else : MsgBox("Jumlah hari yang dimasukkan lebih besar dari tanggal akhir dan tidak dapat dihitung!!") : End If
  111. 工程進度表_dgv.Rows(e.RowIndex).Cells("預計結束").Value = "" : 工程進度表_dgv("預計天數", e.RowIndex).Value = "0"
  112. Else
  113. 工程進度表_dgv.Rows(e.RowIndex).Cells("預計結束").Value = Format(日期1_dtp.Value, "yyyy/MM/dd")
  114. End If
  115. ElseIf 工程進度表_dgv.Rows(e.RowIndex).Cells("預計開始").Value.ToString <> "" And 工程進度表_dgv("預計結束", e.RowIndex).Value.ToString <> "" Then
  116. 日期1_dtp.Text = EY : 工程進度表_dgv.Rows(e.RowIndex).Cells("預計結束").Value = Format(日期1_dtp.Value, "yyyy/MM/dd")
  117. 工程進度表_dgv("預計天數", e.RowIndex).Value =
  118. DateDiff("d", 工程進度表_dgv.Rows(e.RowIndex).Cells("預計開始").Value.ToString, 工程進度表_dgv("預計結束", e.RowIndex).Value.ToString)
  119. End If
  120. End If
  121. End If
  122. End Sub
  123. Private Sub 工程進度表_dgv_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 工程進度表_dgv.CellMouseClick
  124. If 工程進度表_dgv.SelectedCells.Count = 1 Then
  125. If 工程進度表_dgv.SelectedCells(0).ColumnIndex = 12 Then
  126. 工程進度表_dgv(12, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = True : 工程進度表_dgv(13, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  127. 工程進度表_dgv(14, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False : 工程進度表_dgv(15, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  128. 工程進度表_dgv(16, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  129. ElseIf 工程進度表_dgv.SelectedCells(0).ColumnIndex = 13 Then
  130. 工程進度表_dgv(12, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False : 工程進度表_dgv(13, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = True
  131. 工程進度表_dgv(14, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False : 工程進度表_dgv(15, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  132. 工程進度表_dgv(16, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  133. ElseIf 工程進度表_dgv.SelectedCells(0).ColumnIndex = 14 Then
  134. 工程進度表_dgv(12, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False : 工程進度表_dgv(13, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  135. 工程進度表_dgv(14, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = True : 工程進度表_dgv(15, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  136. 工程進度表_dgv(16, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  137. ElseIf 工程進度表_dgv.SelectedCells(0).ColumnIndex = 15 Then
  138. 工程進度表_dgv(12, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False : 工程進度表_dgv(13, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  139. 工程進度表_dgv(14, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False : 工程進度表_dgv(15, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = True
  140. 工程進度表_dgv(16, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  141. ElseIf 工程進度表_dgv.SelectedCells(0).ColumnIndex = 16 Then
  142. 工程進度表_dgv(12, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False : 工程進度表_dgv(13, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  143. 工程進度表_dgv(14, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False : 工程進度表_dgv(15, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = False
  144. 工程進度表_dgv(16, 工程進度表_dgv.SelectedCells(0).RowIndex).Value = True
  145. End If
  146. End If
  147. End Sub
  148. Private Sub 時間區間計算()
  149. If 天_ch.Checked = True Then : 間距_nud.Value = DateDiff("d", 開始日期_dtp.Value, 結束日期_dtp.Value)
  150. If 間距_nud.Value > 55 Then : 天_ch.Checked = False : 周_ch.Checked = True : 月_ch.Checked = False
  151. 間距_nud.Value = DateDiff("ww", 開始日期_dtp.Value, 結束日期_dtp.Value) : End If
  152. ElseIf 周_ch.Checked = True Then : 間距_nud.Value = DateDiff("ww", 開始日期_dtp.Value, 結束日期_dtp.Value)
  153. If 間距_nud.Value > 55 Then : 天_ch.Checked = False : 周_ch.Checked = False : 月_ch.Checked = True
  154. 間距_nud.Value = DateDiff("m", 開始日期_dtp.Value, 結束日期_dtp.Value) : End If
  155. ElseIf 月_ch.Checked = True Then : 間距_nud.Value = DateDiff("m", 開始日期_dtp.Value, 結束日期_dtp.Value) : End If
  156. End Sub
  157. Private Sub 進度讀取1()
  158. If 合約_dgv.Rows.Count > 0 Then
  159. If Strings.Left(合約_dgv("合約編號", 選取位置).Value.ToString, 2) = "HX" Then : 合約編號_cb.Text = "HX" : Else : 合約編號_cb.Text = "PGS" : End If
  160. 合約編號1_tb.Text = 合約_dgv("約號甲方", 選取位置).Value.ToString : 合約編號2_tb.Text = 合約_dgv("約號排序", 選取位置).Value.ToString
  161. 合約編號3_tb.Text = 合約_dgv("約號尾序", 選取位置).Value.ToString : 合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString
  162. 工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString
  163. 開始日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value.ToString
  164. End If
  165. End Sub
  166. Private Sub 合約_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 合約_dgv.CellClick
  167. If e.RowIndex = -1 Then : Else : 選取位置 = e.RowIndex : 進度讀取1() : End If
  168. End Sub
  169. Private Sub 合約2_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 合約2_dgv.CellClick
  170. If e.RowIndex = -1 Then : Else : 暫停計算 = True
  171. If 放大 = True Then : 縮放2_bt.PerformClick() : End If
  172. 合約編號_cb.Text = 合約2_dgv("乙方", e.RowIndex).Value.ToString : 合約編號1_tb.Text = 合約2_dgv("甲方", e.RowIndex).Value.ToString
  173. 合約編號2_tb.Text = 合約2_dgv("立約號", e.RowIndex).Value.ToString : 合約編號3_tb.Text = 合約2_dgv("序號", e.RowIndex).Value.ToString
  174. 合約編號_tb.Text = 合約2_dgv("合約編號", e.RowIndex).Value.ToString : 工程名稱_中_tb.Text = 合約2_dgv("工程名稱_中", e.RowIndex).Value.ToString
  175. 工程名稱_英_tb.Text = 合約2_dgv("工程名稱_英", e.RowIndex).Value.ToString : 工程執行主管_cb.Text = 合約2_dgv("項目負責", e.RowIndex).Value.ToString
  176. 開始日期_dtp.Value = 合約2_dgv("開始日期", e.RowIndex).Value.ToString : 結束日期_dtp.Value = 合約2_dgv("結束日期", e.RowIndex).Value.ToString
  177. If 合約2_dgv("間距", e.RowIndex).Value.ToString = "天" Then : 天_ch.Checked = True : 周_ch.Checked = False : 月_ch.Checked = False
  178. ElseIf 合約2_dgv("間距", e.RowIndex).Value.ToString = "周" Then : 天_ch.Checked = False : 周_ch.Checked = True : 月_ch.Checked = False
  179. ElseIf 合約2_dgv("間距", e.RowIndex).Value.ToString = "月" Then : 天_ch.Checked = False : 周_ch.Checked = False : 月_ch.Checked = True : End If
  180. 暫停計算 = False : 時間區間計算() : Set_進度明細清單() : 可加進度 = True : 甘特圖_tb.PerformClick()
  181. End If
  182. End Sub
  183. Private Sub 工程進度表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 工程進度表_dgv.CellClick
  184. If e.RowIndex = -1 Then : Else : DGV位置2.Value = e.RowIndex
  185. 選擇項_tb.Text = 工程進度表_dgv("排序", e.RowIndex).Value.ToString : 工程流水_tb.Text = 工程進度表_dgv("流水號", e.RowIndex).Value.ToString
  186. 項目_tb.Text = 工程進度表_dgv("項目", e.RowIndex).Value.ToString
  187. End If
  188. End Sub
  189. Private Sub 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged
  190. Set_合約清單() : Set_進度清單()
  191. End Sub
  192. Private Sub 工程執行主管_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工程執行主管_cb.SelectedIndexChanged
  193. 帳號_cb.SelectedIndex = 工程執行主管_cb.SelectedIndex : 職稱_cb.SelectedIndex = 工程執行主管_cb.SelectedIndex
  194. End Sub
  195. Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click
  196. Dim NX, NY As Integer : NX = 合約2_dgv.Size.Width : NY = 合約2_dgv.Size.Height
  197. If 放大 = True Then
  198. 合約2_dgv.Size = New System.Drawing.Point(NX - 400, NY) : 放大 = False : 合約2_dgv.Columns("工程名稱_中").Visible = False
  199. Else
  200. 合約2_dgv.Size = New System.Drawing.Point(NX + 400, NY) : 放大 = True : 合約2_dgv.Columns("工程名稱_中").Visible = True
  201. End If
  202. End Sub
  203. Private Sub 開始日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 開始日期_dtp.ValueChanged
  204. If 暫停計算 = False Then : 時間區間計算() : Set_進度明細清單() : End If : 工期_nud.Value = DateDiff("d", 開始日期_dtp.Value, 結束日期_dtp.Value)
  205. End Sub
  206. Private Sub 結束日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged
  207. If 暫停計算 = False Then : 時間區間計算() : Set_進度明細清單() : End If : 工期_nud.Value = DateDiff("d", 開始日期_dtp.Value, 結束日期_dtp.Value)
  208. End Sub
  209. Private Sub 天_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 天_ch.Click
  210. 天_ch.Checked = True : 周_ch.Checked = False : 月_ch.Checked = False : If 暫停計算 = False Then : 時間區間計算() : Set_進度明細清單() : End If
  211. End Sub
  212. Private Sub 周_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 周_ch.Click
  213. 天_ch.Checked = False : 周_ch.Checked = True : 月_ch.Checked = False : If 暫停計算 = False Then : 時間區間計算() : Set_進度明細清單() : End If
  214. End Sub
  215. Private Sub 月_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 月_ch.Click
  216. 天_ch.Checked = False : 周_ch.Checked = False : 月_ch.Checked = True : If 暫停計算 = False Then : 時間區間計算() : Set_進度明細清單() : End If
  217. End Sub
  218. Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click
  219. PA = 關鍵字搜尋_tb.Text : Set_合約清單() : Set_進度清單()
  220. End Sub
  221. Private Sub 合約編號清單_bt_Click(sender As Object, e As EventArgs) Handles 合約編號清單_bt.Click
  222. If 合約_dgv.Rows.Count > 2999 Then
  223. If 系統語言 = "繁體中文" Then : MsgBox("清單數量超過3000個,清通知系統管理員修改程式!!")
  224. Else : MsgBox("Jumlah daftar melebihi 3000, dan administrator sistem diberitahu untuk memodifikasi program!!") : End If : Else
  225. For I As Integer = 0 To 3000 : PPBB(I) = "" : Next
  226. For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : PPBB(I) = 合約_dgv("合約編號", I).Value.ToString : NN1 = I : Next
  227. 下拉清單_1.ShowDialog()
  228. For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : If PPAA = 合約_dgv("合約編號", I).Value.ToString Then : 選取位置 = I : Exit For : End If : Next : 進度讀取1()
  229. End If
  230. End Sub
  231. Private Sub 工程進度表流水號()
  232. SQL_工程進度表_最後一筆資料()
  233. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If
  234. conn.Close() : EDR += 1
  235. If EDR < 10 Then : ESTR = "PT" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "PT" & "0000000" & EDR
  236. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "PT" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "PT" & "00000" & EDR
  237. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "PT" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "PT" & "000" & EDR
  238. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "PT" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "PT" & "0" & EDR
  239. ElseIf EDR > 99999999 Then : ESTR = "PT" & EDR : End If : PA9 = ESTR
  240. End Sub
  241. Private Sub 開立工程進度表_bt_Click(sender As Object, e As EventArgs) Handles 開立工程進度表_bt.Click
  242. Dim 合約編號條件 As Boolean = True
  243. If 合約編號_cb.Text = "" Then
  244. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇我方公司!!") : Else : MsgBox("Silakan pilih perusahaan kami!!") : End If : 合約編號條件 = False : End If
  245. If 合約編號1_tb.Text = "" Then
  246. If 系統語言 = "繁體中文" Then : MsgBox("沒有甲方公司英文縮寫!!") : Else : MsgBox("Silakan masukkan singkatan dari perusahaan Pihak A!!") : End If : 合約編號條件 = False : Else
  247. Dim d As Int32
  248. For index = 0 To 合約編號1_tb.Text.Length - 1
  249. d = Asc(合約編號1_tb.Text(index))
  250. Dim 可能不行 As Boolean = False
  251. If (d < 65 Or d > 90) Then : 可能不行 = True : End If 'c變數若在65~90是大寫的英文字母
  252. If 可能不行 = True Then
  253. If (d < 97 Or d > 122) Then : 可能不行 = True : Else : 可能不行 = False : End If 'c變數若在97~122是小寫的英文字母
  254. If 可能不行 = True Then '然後查表, c變數若在48~57, 表示它是數字,
  255. If (d < 48 Or d > 57) Then
  256. If 系統語言 = "繁體中文" Then : MsgBox("甲方公司簡稱需要英文或是數字,不可以是中文或其他符號!!")
  257. Else : MsgBox("Singkatan dari perusahaan Pihak A harus dalam bahasa Inggris atau angka, bukan dalam bahasa Cina atau simbol lainnya!!") : End If
  258. 合約編號條件 = False : Exit For : End If
  259. End If
  260. End If
  261. Next
  262. End If
  263. If 合約編號2_tb.Text = "" Then
  264. If 系統語言 = "繁體中文" Then : MsgBox("沒有立約日期!!") : Else : MsgBox("Tidak ada tanggal kontrak!!") : End If : 合約編號條件 = False : End If
  265. Dim c As Int32 '然後查表, c變數若在48~57, 表示它是數字,
  266. For index = 0 To 合約編號2_tb.Text.Length - 1
  267. c = Asc(合約編號2_tb.Text(index))
  268. If c < 48 Or c > 57 Then
  269. If 系統語言 = "繁體中文" Then : MsgBox("立約日期只能是數字!!") : Else : MsgBox("Tanggal perjanjian hanya bisa berupa angka!!") : End If : 合約編號條件 = False : Exit For : Else
  270. If Len(合約編號2_tb.Text) <> 6 Then
  271. If 系統語言 = "繁體中文" Then : MsgBox("立約日期的格式為YYMMDD (年兩位,月兩位,日兩位),數字規格不符!!")
  272. Else : MsgBox("Format tanggal kontrak adalah YYMMDD (dua digit untuk tahun, dua digit untuk bulan, dan dua digit untuk hari), dan spesifikasi numerik tidak cocok!!") : End If
  273. 合約編號條件 = False : Exit For : End If
  274. End If
  275. Next
  276. If 合約編號3_tb.Text = "" Then
  277. If 系統語言 = "繁體中文" Then : MsgBox("沒有合約序號!!") : Else : MsgBox("Tidak ada nomor kontrak!!") : End If : 合約編號條件 = False
  278. ElseIf IsNumeric(合約編號3_tb.Text) = False Then
  279. If 系統語言 = "繁體中文" Then : MsgBox("序號只能是數字!!") : Else : MsgBox("Nomor seri hanya bisa berupa angka!!") : End If : 合約編號條件 = False
  280. End If
  281. If 工程執行主管_cb.Text = "" Then
  282. If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇執行主管!!") : Else : MsgBox("Tidak ada direktur eksekutif yang dipilih!!") : End If : 合約編號條件 = False : End If
  283. If 工程名稱_中_tb.Text = "" Then
  284. If 系統語言 = "繁體中文" Then : MsgBox("沒有工程名稱(中文)!!") : Else : MsgBox("Tidak ada nama proyek (Cina)!!") : End If : 合約編號條件 = False : End If
  285. If 工程名稱_英_tb.Text = "" Then
  286. If 系統語言 = "繁體中文" Then : MsgBox("沒有工程名稱(英文)!!") : Else : MsgBox("Tidak ada nama proyek (Bahasa Inggris)!!") : End If : 合約編號條件 = False : End If
  287. If 合約編號條件 = True Then
  288. SQL_工程責任表_最後一筆資料()
  289. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If
  290. conn.Close() : EDR += 1
  291. If EDR < 10 Then : ESTR = "PR" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "PR" & "0000000" & EDR
  292. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "PR" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "PR" & "00000" & EDR
  293. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "PR" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "PR" & "000" & EDR
  294. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "PR" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "PR" & "0" & EDR
  295. ElseIf EDR > 99999999 Then : ESTR = "PR" & EDR : End If : PA9 = ESTR
  296. PA = 合約編號_tb.Text : PA2 = 工程執行主管_cb.Text : PA3 = 帳號_cb.Text : PA4 = 職稱_cb.Text : PA5 = 工程名稱_中_tb.Text : PA6 = 工程名稱_英_tb.Text
  297. PA7 = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") : PA8 = Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd")
  298. If 天_ch.Checked = True Then : PA1 = "天" : ElseIf 周_ch.Checked = True Then : PA1 = "周" : ElseIf 月_ch.Checked = True Then : PA1 = "月" : End If
  299. SQL_工程責任表_資料重複認證()
  300. If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("工程進度表重複!!") : Else : MsgBox("Jadwal proyek duplikat!!") : End If : Else
  301. SQL_工程責任表_新增資料()
  302. 工程進度表流水號()
  303. PA = 合約編號_tb.Text : PA2 = "001" : PA3 = "1" : PA4 = "" : PA5 = "" : PA6 = "" : PA7 = ""
  304. PA8 = 合約編號_cb.Text : PA12 = 合約編號1_tb.Text : PA10 = 合約編號2_tb.Text : PA11 = 合約編號3_tb.Text
  305. SQL_工程進度表_新增資料()
  306. Set_進度清單() : Set_進度明細清單()
  307. 可加進度 = True
  308. End If
  309. End If
  310. End Sub
  311. Private Sub 編輯清單_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 編輯清單_ch.Click
  312. If 編輯清單_ch.Checked = False Then
  313. A3 = 空間2.Size.Width : B3 = 空間2.Size.Height
  314. 工程進度表_dgv.Visible = False : 空間2.Location = New System.Drawing.Point(A1, B2) : 空間2.Size = New System.Drawing.Point((A2 - A1) + A3, B3)
  315. Else
  316. 工程進度表_dgv.Visible = True : 空間2.Location = New System.Drawing.Point(A2, B2) : 空間2.Size = New System.Drawing.Point(A3, B3)
  317. End If
  318. End Sub
  319. Private Sub 工期_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工期_nud.ValueChanged
  320. 結束日期_dtp.Value = 開始日期_dtp.Value.AddDays(工期_nud.Value)
  321. End Sub
  322. Private Sub 翻譯_bt_Click(sender As Object, e As EventArgs) Handles 翻譯_bt.Click
  323. If 項目_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有資料!!") : Else : MsgBox("Tidak ada Informasi!!") : End If : Else
  324. 翻譯 = Replace(項目_tb.Text, vbCrLf, " ") : MyModule2.執行翻譯() : 等待翻譯_tim.Enabled = True
  325. End If
  326. End Sub
  327. Private Sub 等待翻譯_tim_Tick(sender As Object, e As EventArgs) Handles 等待翻譯_tim.Tick
  328. Dim Str2 As String = System.Windows.Forms.Application.StartupPath : Dim stringReader As String : Dim fileReader As StreamReader
  329. If File.Exists("ch.txt") Then
  330. 等待翻譯_tim.Enabled = False
  331. fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\ch.txt") : stringReader = fileReader.ReadLine()
  332. 工程進度表_dgv.Rows(DGV位置2.Value).Cells("項目").Value = stringReader : fileReader.Close()
  333. fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\in.txt") : stringReader = fileReader.ReadLine()
  334. 工程進度表_dgv.Rows(DGV位置2.Value).Cells("項目").Value = 工程進度表_dgv.Rows(DGV位置2.Value).Cells("項目").Value & vbCrLf & " " & stringReader : fileReader.Close()
  335. If 系統語言 = "繁體中文" Then : MsgBox("翻譯完成!!") : Else : MsgBox("Terjemahan Selesai!!") : End If
  336. ElseIf File.Exists(Str2 & "\ch.txt") Then
  337. 等待翻譯_tim.Enabled = False
  338. fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\ch.txt") : stringReader = fileReader.ReadLine()
  339. 工程進度表_dgv.Rows(DGV位置2.Value).Cells("項目").Value = stringReader : fileReader.Close()
  340. fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\in.txt") : stringReader = fileReader.ReadLine()
  341. 工程進度表_dgv.Rows(DGV位置2.Value).Cells("項目").Value = 工程進度表_dgv.Rows(DGV位置2.Value).Cells("項目").Value & vbCrLf & " " & stringReader : fileReader.Close()
  342. If 系統語言 = "繁體中文" Then : MsgBox("翻譯完成!!") : Else : MsgBox("Terjemahan Selesai!!") : End If
  343. End If
  344. End Sub
  345. Private Sub TW_ch_CheckedChanged(sender As Object, e As EventArgs) Handles TW_ch.Click
  346. TW_ch.Checked = True : IN_ch.Checked = False : TW = TW_ch.Checked : EN = IN_ch.Checked
  347. End Sub
  348. Private Sub IN_ch_CheckedChanged(sender As Object, e As EventArgs) Handles IN_ch.Click
  349. TW_ch.Checked = False : IN_ch.Checked = True : TW = TW_ch.Checked : EN = IN_ch.Checked
  350. End Sub
  351. Private Sub 進度表刪除_bt_Click(sender As Object, e As EventArgs) Handles 進度表刪除_bt.Click
  352. If 合約編號_tb.Text = "" Then
  353. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的工程進度表!!") : Else : MsgBox("Silakan pilih jadwal proyek yang akan dihapus terlebih dahulu!!") : End If
  354. Else
  355. Dim SS As String
  356. If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Apakah Anda ingin menghapus data ini?" : End If
  357. Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel)
  358. If aa = MsgBoxResult.Ok Then
  359. Dim SS1 As String
  360. If 系統語言 = "繁體中文" Then : SS1 = "確定刪除資料請輸入 [YES] !!" : Else : SS1 = "Silakan masukkan [YES] untuk mengonfirmasi penghapusan data!!" : End If
  361. Dim SSA As String = InputBox(SS1)
  362. If SSA = "YES" Then
  363. PA = 合約編號_tb.Text
  364. SQL_工程進度表_刪除總表2() : SQL_工程進度表_刪除總表1() : SQL_工程進度表_刪除總表3()
  365. If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Hapus selesai!!") : End If : Set_進度清單()
  366. End If
  367. End If
  368. End If
  369. End Sub
  370. Private Sub 新增資料1_bt_Click(sender As Object, e As EventArgs) Handles 新增資料1_bt.Click
  371. If 可加進度 = False Then
  372. If 系統語言 = "繁體中文" Then : MsgBox("請先開立工程進度表,或是選擇已經開立的工程進度表!!")
  373. Else : MsgBox("Silakan tambahkan jadwal proyek terlebih dahulu, atau pilih jadwal proyek yang ada!!") : End If
  374. Else
  375. Dim SS, SS1 As String
  376. If 系統語言 = "繁體中文" Then : SS = "請輸入要新增幾行空白欄未!! (請輸入數字)?" : SS1 = "你輸入的不是數字"
  377. Else : SS = "Silakan tulis kolom kosong yang ingin Anda tambahkan!! (Silakan masukkan angka)?" : SS1 = "yang kamu masukkan bukan angka" : End If
  378. PA20 = InputBox(SS)
  379. If IsNumeric(PA20) = False Then : MsgBox(SS1) : Else
  380. 工程進度表存檔()
  381. For ia As Integer = 1 To PA20
  382. 工程進度表流水號()
  383. PA = 合約編號_tb.Text : PA3 = "" : PA4 = "" : PA5 = "" : PA6 = "" : PA7 = ""
  384. PA8 = 合約編號_cb.Text : PA12 = 合約編號1_tb.Text : PA10 = 合約編號2_tb.Text : PA11 = 合約編號3_tb.Text
  385. If 選擇項_tb.Text = "" Then
  386. SQL_工程進度表_最後一筆排序()
  387. If dr.Read() Then : PA2 = dr("排序") : Else : PA2 = "00" : End If : conn.Close() : NUM1 = Double.Parse(PA2) + 1
  388. If NUM1 < 10 Then : PA2 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA2 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA2 = NUM1 : End If
  389. Else
  390. PA2 = 選擇項_tb.Text & "-1"
  391. End If
  392. SQL_工程進度表_新增資料() : Set_進度明細清單()
  393. Next : 甘特圖_tb.PerformClick()
  394. For I As Integer = 0 To 工程進度表_dgv.Rows.Count - 1
  395. If I < 10 Then : 工程進度表_dgv.Rows(I).Cells("排序").Value = "00" & I
  396. ElseIf I > 9 And I < 100 Then : 工程進度表_dgv.Rows(I).Cells("排序").Value = "0" & I
  397. ElseIf I > 99 Then : 工程進度表_dgv.Rows(I).Cells("排序").Value = I
  398. End If
  399. Next : 工程進度表存檔()
  400. End If
  401. End If
  402. End Sub
  403. Private Sub 排序1_bt_Click(sender As Object, e As EventArgs) Handles 排序1_bt.Click
  404. If 可加進度 = False Then
  405. If 系統語言 = "繁體中文" Then : MsgBox("請先開立工程進度表,或是選擇已經開立的工程進度表!!")
  406. Else : MsgBox("Silakan tambahkan jadwal proyek terlebih dahulu, atau pilih jadwal proyek yang ada!!") : End If : Else
  407. If 工程進度表_dgv.Rows.Count > 0 Then
  408. If 工程進度表_dgv.Columns(2).Visible = False Then : 工程進度表_dgv.Columns(2).Visible = True : Else : 工程進度表_dgv.Columns(2).Visible = False : End If : 甘特圖_tb.PerformClick()
  409. End If
  410. End If
  411. End Sub
  412. Private Sub 工程進度表存檔()
  413. For i As Integer = 0 To 工程進度表_dgv.Rows.Count - 1
  414. PA2 = 工程進度表_dgv.Rows(i).Cells("排序").Value.ToString : PA3 = 工程進度表_dgv.Rows(i).Cells("項次").Value.ToString
  415. PA4 = 工程進度表_dgv.Rows(i).Cells("項目").Value.ToString : PA5 = 工程進度表_dgv.Rows(i).Cells("預計開始").Value.ToString
  416. PA6 = 工程進度表_dgv.Rows(i).Cells("預計天數").Value.ToString : PA7 = 工程進度表_dgv.Rows(i).Cells("預計結束").Value.ToString
  417. PA9 = 工程進度表_dgv.Rows(i).Cells("流水號").Value.ToString : BL1 = 工程進度表_dgv.Rows(i).Cells("紅").Value
  418. BL2 = 工程進度表_dgv.Rows(i).Cells("藍").Value : BL3 = 工程進度表_dgv.Rows(i).Cells("綠").Value
  419. BL4 = 工程進度表_dgv.Rows(i).Cells("黃").Value : BL5 = 工程進度表_dgv.Rows(i).Cells("紫").Value
  420. SQL_工程進度表_修改資料()
  421. Next
  422. End Sub
  423. Private Sub 工程進度表存檔_bt_Click(sender As Object, e As EventArgs) Handles 工程進度表存檔_bt.Click
  424. If 可加進度 = False Then
  425. If 系統語言 = "繁體中文" Then : MsgBox("請先開立工程進度表,或是選擇已經開立的工程進度表!!")
  426. Else : MsgBox("Silakan tambahkan jadwal proyek terlebih dahulu, atau pilih jadwal proyek yang ada!!") : End If : Else
  427. 甘特圖_tb.PerformClick() : 工程進度表存檔() : If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Arsip selesai!!") : End If
  428. End If
  429. End Sub
  430. Private Sub 進度表選擇刪除_bt_Click(sender As Object, e As EventArgs) Handles 進度表選擇刪除_bt.Click
  431. If 可加進度 = False Then
  432. If 系統語言 = "繁體中文" Then : MsgBox("請先開立工程進度表,或是選擇已經開立的工程進度表!!")
  433. Else : MsgBox("Silakan tambahkan jadwal proyek terlebih dahulu, atau pilih jadwal proyek yang ada!!") : End If : Else
  434. If 工程流水_tb.Text = "" Then
  435. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的資料是哪一筆!!") : Else : MsgBox("Silakan pilih data mana yang akan dihapus terlebih dahulu!!") : End If : Else
  436. 工程進度表存檔() : PA9 = 工程流水_tb.Text : SQL_工程進度表_刪除資料() : Set_進度明細清單() : 甘特圖_tb.PerformClick() : Set_進度清單() : End If
  437. End If
  438. End Sub
  439. Private Sub 格式存檔_bt_Click(sender As Object, e As EventArgs) Handles 格式存檔_bt.Click
  440. If 可加進度 = False Then
  441. If 系統語言 = "繁體中文" Then : MsgBox("請先開立工程進度表,或是選擇已經開立的工程進度表!!")
  442. Else : MsgBox("Silakan tambahkan jadwal proyek terlebih dahulu, atau pilih jadwal proyek yang ada!!") : End If : Else
  443. PA = 合約編號_tb.Text : PA2 = 工程執行主管_cb.Text : PA3 = 帳號_cb.Text : PA4 = 職稱_cb.Text : PA5 = 工程名稱_中_tb.Text : PA6 = 工程名稱_英_tb.Text
  444. PA7 = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") : PA8 = Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd")
  445. If 天_ch.Checked = True Then : PA1 = "天" : ElseIf 周_ch.Checked = True Then : PA1 = "周" : ElseIf 月_ch.Checked = True Then : PA1 = "月" : End If
  446. SQL_工程責任表_修改資料() : Set_進度清單()
  447. End If
  448. End Sub
  449. Private Sub 甘特圖_tb_Click(sender As Object, e As EventArgs) Handles 甘特圖_tb.Click
  450. If 工程進度表_dgv.Rows.Count = 0 Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇合約號!!") : Else : MsgBox("Silakan pilih nomor kontrak terlebih dahulu!!") : End If : Else
  451. With GanttChart1
  452. .FromDate = New Date(2007, 1, 1)
  453. .ToDate = New Date(2007, 1, 31)
  454. Dim lst As New List(Of BarInformation)
  455. lst.Clear()
  456. .RemoveBars()
  457. End With
  458. Dim 主年1, 主月1, 主日1, 主年2, 主月2, 主日2, 次年1, 次月1, 次日1, 次年2, 次月2, 次日2 As Integer : Dim 項目 As String
  459. 主年1 = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) : 主月1 = Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) : 主日1 = "1"
  460. 主年2 = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 4) : 主月2 = Strings.Mid(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 6, 2)
  461. 主日2 = Strings.Right(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 2)
  462. With GanttChart1
  463. .FromDate = New Date(主年1, 主月1, 主日1)
  464. .ToDate = New Date(主年2, 主月2, 主日2)
  465. Dim lst As New List(Of BarInformation)
  466. For I As Integer = 0 To 工程進度表_dgv.Rows.Count - 1
  467. If 工程進度表_dgv("預計開始", I).Value.ToString = "" Or 工程進度表_dgv("預計結束", I).Value.ToString = "" Then
  468. 項目 = 工程進度表_dgv("項次", I).Value.ToString & " - " & 工程進度表_dgv("項目", I).Value.ToString
  469. Else
  470. 項目 = 工程進度表_dgv("項次", I).Value.ToString & " - " & 工程進度表_dgv("項目", I).Value.ToString & vbCrLf & " " &
  471. Strings.Right(工程進度表_dgv("預計開始", I).Value.ToString, 5) & "~" & Strings.Right(工程進度表_dgv("預計結束", I).Value.ToString, 5)
  472. End If
  473. If 工程進度表_dgv("預計開始", I).Value.ToString = "" Or 工程進度表_dgv("預計結束", I).Value.ToString = "" Then
  474. 次年1 = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) : 次月1 = Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) : 次日1 = "1"
  475. 次年2 = Strings.Left(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 4) : 次月2 = Strings.Mid(Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd"), 6, 2) : 次日2 = "1"
  476. Else
  477. 次年1 = Strings.Left(工程進度表_dgv("預計開始", I).Value.ToString, 4) : 次月1 = Strings.Mid(工程進度表_dgv("預計開始", I).Value.ToString, 6, 2)
  478. 次日1 = Strings.Right(工程進度表_dgv("預計開始", I).Value.ToString, 2) : 次年2 = Strings.Left(工程進度表_dgv("預計結束", I).Value.ToString, 4)
  479. 次月2 = Strings.Mid(工程進度表_dgv("預計結束", I).Value.ToString, 6, 2) : 次日2 = Strings.Right(工程進度表_dgv("預計結束", I).Value.ToString, 2)
  480. End If
  481. If 工程進度表_dgv("紅", I).Value = True And 工程進度表_dgv("藍", I).Value = False And 工程進度表_dgv("綠", I).Value = False And
  482. 工程進度表_dgv("黃", I).Value = False And 工程進度表_dgv("紫", I).Value = False Then
  483. lst.Add(New BarInformation(項目, New Date(次年1, 次月1, 次日1), New Date(次年2, 次月2, 次日2), Color.Red, Color.Gray, I))
  484. ElseIf 工程進度表_dgv("紅", I).Value = False And 工程進度表_dgv("藍", I).Value = True And 工程進度表_dgv("綠", I).Value = False And
  485. 工程進度表_dgv("黃", I).Value = False And 工程進度表_dgv("紫", I).Value = False Then
  486. lst.Add(New BarInformation(項目, New Date(次年1, 次月1, 次日1), New Date(次年2, 次月2, 次日2), Color.DeepSkyBlue, Color.Gray, I))
  487. ElseIf 工程進度表_dgv("紅", I).Value = False And 工程進度表_dgv("藍", I).Value = False And 工程進度表_dgv("綠", I).Value = True And
  488. 工程進度表_dgv("黃", I).Value = False And 工程進度表_dgv("紫", I).Value = False Then
  489. lst.Add(New BarInformation(項目, New Date(次年1, 次月1, 次日1), New Date(次年2, 次月2, 次日2), Color.LimeGreen, Color.Gray, I))
  490. ElseIf 工程進度表_dgv("紅", I).Value = False And 工程進度表_dgv("藍", I).Value = False And 工程進度表_dgv("綠", I).Value = False And
  491. 工程進度表_dgv("黃", I).Value = True And 工程進度表_dgv("紫", I).Value = False Then
  492. lst.Add(New BarInformation(項目, New Date(次年1, 次月1, 次日1), New Date(次年2, 次月2, 次日2), Color.Yellow, Color.Gray, I))
  493. ElseIf 工程進度表_dgv("紅", I).Value = False And 工程進度表_dgv("藍", I).Value = False And 工程進度表_dgv("綠", I).Value = False And
  494. 工程進度表_dgv("黃", I).Value = False And 工程進度表_dgv("紫", I).Value = True Then
  495. lst.Add(New BarInformation(項目, New Date(次年1, 次月1, 次日1), New Date(次年2, 次月2, 次日2), Color.DarkOrchid, Color.Gray, I))
  496. ElseIf 工程進度表_dgv("紅", I).Value = False And 工程進度表_dgv("藍", I).Value = False And 工程進度表_dgv("綠", I).Value = False And
  497. 工程進度表_dgv("黃", I).Value = False And 工程進度表_dgv("紫", I).Value = False Then : 工程進度表_dgv("綠", I).Value = True
  498. lst.Add(New BarInformation(項目, New Date(次年1, 次月1, 次日1), New Date(次年2, 次月2, 次日2), Color.LimeGreen, Color.Gray, I))
  499. End If
  500. Next
  501. For Each bar As BarInformation In lst
  502. .AddChartBar(bar.RowText, bar, bar.FromTime, bar.ToTime, bar.Color, bar.HoverColor, bar.Index)
  503. Next
  504. End With
  505. End If
  506. End Sub
  507. Private Sub 導成圖片_bt_Click(sender As Object, e As EventArgs) Handles 導成圖片_bt.Click
  508. SaveImage(GanttChart1)
  509. End Sub
  510. Private Sub SaveImage(ByVal gantt As GanttChart)
  511. '----圖像存檔---------
  512. Dim SS, SS1, SS2, SS3 As String
  513. If 系統語言 = "繁體中文" Then : SS = "將甘特圖保存到以下路徑?" : SS1 = "甘特圖片存檔" : SS2 = "甘特圖.jpg" : SS3 = "保存完成"
  514. Else : SS = "Simpan bagan Gantt ke jalur berikut?" : SS1 = "Arsip Gambar Gantt" : SS2 = "Bagan Gantt.jpg" : SS3 = "Simpan selesai" : End If
  515. Dim filePath As String = InputBox(SS, SS1, My.Computer.FileSystem.SpecialDirectories.Desktop & "\" & 合約編號_tb.Text & SS2)
  516. If filePath.Length = 0 Then Exit Sub
  517. gantt.SaveImage(filePath)
  518. MsgBox(SS3, MsgBoxStyle.Information)
  519. End Sub
  520. End Class