Ei kuvausta
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 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Public Class 系統開發功能點檢表
  4. Dim conn As New SqlConnection
  5. Dim da As New SqlDataAdapter
  6. Dim cmd As New SqlCommand
  7. Dim ds As New DataSet : Dim ds1 As New DataSet : Dim ds2 As New DataSet : Dim ds3 As New DataSet
  8. Dim dr As SqlDataReader
  9. Private Sub DGV1讀取前設定()
  10. DataGridView1.DataSource = Nothing : ds.Clear()
  11. DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  12. DataGridView1.ColumnHeadersHeight = 50
  13. DataGridView1.AllowUserToAddRows = False
  14. DataGridView1.RowTemplate.Height = 35
  15. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  16. End Sub
  17. Private Sub DGV1讀取後設定()
  18. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn.Close() : Set_grid()
  19. End Sub
  20. Private Sub 讀取專案主清單()
  21. DGV1讀取前設定()
  22. SQL1 = "SELECT 系統開發功能點檢表.項一, 系統開發功能點檢表.項二, 系統開發功能點檢表.項三, 系統開發功能點檢表.項一 AS 項1, 系統開發功能點檢表.項二 AS 項2, 系統開發功能點檢表.項三 AS 項3,
  23. 系統開發功能點檢表.排序, 系統開發功能點檢表.排序1, 系統開發點檢表基本資料.內容, 系統開發點檢表基本資料.狀態, 系統開發功能點檢表.是否完成, 系統開發功能點檢表.預定日期,
  24. 系統開發功能點檢表.開發負責人員, 系統開發功能點檢表.完成日期, 系統開發功能點檢表.備註
  25. FROM 系統開發功能點檢表 LEFT OUTER JOIN 系統開發點檢表基本資料 ON 系統開發功能點檢表.項一 = 系統開發點檢表基本資料.項一 AND 系統開發功能點檢表.項二 = 系統開發點檢表基本資料.項二 AND
  26. 系統開發功能點檢表.項三 = 系統開發點檢表基本資料.項三
  27. WHERE (系統開發功能點檢表.客戶 LIKE N'" & ComboBox1.Text & "')
  28. ORDER BY 系統開發功能點檢表.排序, 系統開發功能點檢表.排序1, 系統開發功能點檢表.項一, 系統開發功能點檢表.項二, 系統開發功能點檢表.項三"
  29. DGV1讀取後設定()
  30. End Sub
  31. Private Sub Set_grid()
  32. DataGridView1.Columns(0).Visible = False : DataGridView1.Columns(1).Visible = False : DataGridView1.Columns(2).Visible = False : DataGridView1.Columns(3).Width = 45
  33. DataGridView1.Columns(4).Width = 55 : DataGridView1.Columns(5).Width = 70 : DataGridView1.Columns(6).Width = 35 : DataGridView1.Columns(7).Width = 45 : DataGridView1.Columns(8).Width = 300
  34. DataGridView1.Columns(9).Width = 40 : DataGridView1.Columns(10).Width = 40 : DataGridView1.Columns(11).Width = 85 : DataGridView1.Columns(12).Width = 76 : DataGridView1.Columns(13).Width = 85
  35. DataGridView1.Columns(14).Width = 415
  36. DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter
  37. DataGridView1.Columns(3).ReadOnly = True : DataGridView1.Columns(4).ReadOnly = True : DataGridView1.Columns(5).ReadOnly = True
  38. DataGridView1.Columns(8).ReadOnly = True : DataGridView1.Columns(9).ReadOnly = True
  39. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  40. If Strings.Right(DataGridView1.Rows(i).Cells("項2").Value, 2) = "00" Then
  41. DataGridView1.Rows(i).Cells("項2").Value = ""
  42. End If
  43. If Strings.Right(DataGridView1.Rows(i).Cells("項3").Value, 2) = "00" Then
  44. DataGridView1.Rows(i).Cells("項3").Value = ""
  45. End If
  46. Next i
  47. End Sub
  48. Private Sub Set_清單2()
  49. DataGridView2.DataSource = Nothing : ds1.Clear()
  50. DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  51. DataGridView2.ColumnHeadersHeight = 25
  52. DataGridView2.AllowUserToAddRows = False
  53. DataGridView2.RowTemplate.Height = 35
  54. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  55. SQL1 = "SELECT 系統開發點檢表基本資料.項一, 系統開發點檢表基本資料.項二, 系統開發點檢表基本資料.項三, 系統開發點檢表基本資料.項一 AS [項1], 系統開發點檢表基本資料.項二 AS [項2],
  56. 系統開發點檢表基本資料.項三 AS [項3], 系統開發點檢表基本資料.內容, 系統開發點檢表基本資料.狀態, GCM選擇按鈕.選擇
  57. FROM 系統開發點檢表基本資料 LEFT OUTER JOIN GCM選擇按鈕 ON 系統開發點檢表基本資料.內容 = GCM選擇按鈕.對應
  58. WHERE (系統開發點檢表基本資料.項一 LIKE '" & TextBox1.Text & "')
  59. ORDER BY 系統開發點檢表基本資料.項一, 系統開發點檢表基本資料.項二, 系統開發點檢表基本資料.項三"
  60. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds1) : DataGridView2.DataSource = ds1.Tables(0) : conn.Close() : Set_grid1()
  61. End Sub
  62. Private Sub Set_grid1()
  63. DataGridView2.Columns(0).Visible = False : DataGridView2.Columns(1).Visible = False : DataGridView2.Columns(2).Visible = False : DataGridView2.Columns(3).Width = 60
  64. DataGridView2.Columns(4).Width = 60 : DataGridView2.Columns(5).Width = 60 : DataGridView2.Columns(6).Width = 250 : DataGridView2.Columns(7).Width = 60 : DataGridView2.Columns(8).Width = 50
  65. For i As Integer = 0 To DataGridView2.Rows.Count - 1
  66. DataGridView2.Rows(i).Cells("選擇").Value = False
  67. If Strings.Right(DataGridView2.Rows(i).Cells("項2").Value, 2) = "00" Then
  68. DataGridView2.Rows(i).Cells("項2").Value = ""
  69. End If
  70. If Strings.Right(DataGridView2.Rows(i).Cells("項3").Value, 2) = "00" Then
  71. DataGridView2.Rows(i).Cells("項3").Value = ""
  72. End If
  73. Next i
  74. End Sub
  75. Private Sub DGV3讀取前設定()
  76. DataGridView3.DataSource = Nothing : ds2.Clear()
  77. DataGridView3.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  78. DataGridView3.ColumnHeadersHeight = 25
  79. DataGridView3.AllowUserToAddRows = False
  80. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  81. End Sub
  82. Private Sub DGV3讀取後設定()
  83. cmd.Connection = conn : cmd.CommandText = SQL1 : da.SelectCommand = cmd : da.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn.Close() : Set_grid3()
  84. End Sub
  85. Private Sub 讀取專案人事資料()
  86. DGV3讀取前設定()
  87. SQL1 = "SELECT 人員資料.人員編號, 人員資料.姓名
  88. FROM 人員資料 RIGHT OUTER JOIN 業務專案清單 ON 人員資料.人員編號 = 業務專案清單.對應流水號 RIGHT OUTER JOIN 業務專案主檔 ON 業務專案清單.專案流水號 = 業務專案主檔.專案流水號
  89. WHERE (業務專案主檔.專案性質 LIKE N'軟體設計') AND (業務專案主檔.客戶 LIKE N'" & ComboBox1.Text & "')
  90. GROUP BY 業務專案主檔.客戶, 人員資料.人員編號, 人員資料.姓名, 人員資料.性別
  91. ORDER BY 業務專案主檔.客戶"
  92. DGV3讀取後設定()
  93. End Sub
  94. Private Sub Set_grid3()
  95. DataGridView3.Columns(0).Width = 90 : DataGridView3.Columns(1).Width = 80
  96. TextBox2.Text = DataGridView3.Rows(0).Cells("姓名").Value
  97. End Sub
  98. Private Sub ComboBox1下拉表單資料載入()
  99. conn.Close()
  100. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  101. SQL1 = "SELECT 客戶 FROM 業務專案主檔 WHERE (專案性質 LIKE N'軟體設計') GROUP BY 客戶 ORDER BY 客戶"
  102. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  103. ComboBox1.Items.Clear()
  104. While (dr.Read()) : ComboBox1.Items.Add(dr("客戶")) : End While
  105. conn.Close()
  106. End Sub
  107. Private Sub ComboBox2下拉表單資料載入()
  108. conn.Close()
  109. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  110. SQL1 = "SELECT 內容 FROM 系統開發點檢表基本資料 WHERE (RIGHT(項二, 2) LIKE '00') ORDER BY 項一"
  111. cmd.CommandText = SQL1 : cmd.Connection = conn : dr = cmd.ExecuteReader
  112. ComboBox2.Items.Clear()
  113. While (dr.Read()) : ComboBox2.Items.Add(dr("內容")) : End While
  114. conn.Close()
  115. End Sub
  116. Private Sub 系統開發功能點檢表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  117. Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  118. DateTimePicker1.Visible = False : TextBox1.Visible = False
  119. ComboBox1下拉表單資料載入() : ComboBox2下拉表單資料載入()
  120. If PA2 <> "" Then : ComboBox1.Text = PA2 : End If : PA2 = ""
  121. End Sub
  122. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  123. timeNow = 0
  124. GCM_ERP_SYS.Timer1.Enabled = False
  125. GCM_ERP_SYS.Timer1.Enabled = True
  126. End Sub
  127. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  128. timeNow = 0
  129. GCM_ERP_SYS.Timer1.Enabled = False
  130. GCM_ERP_SYS.Timer1.Enabled = True
  131. End Sub
  132. Private Sub DataGridView1_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles DataGridView1.RowPostPaint
  133. Dim linePen As New Pen(Color.Blue, 2)
  134. If e.RowIndex = DataGridView1.Rows.Count - 1 Then
  135. Exit Sub
  136. Else
  137. If DataGridView1(0, e.RowIndex).Value.ToString <> DataGridView1(0, e.RowIndex + 1).Value.ToString Then
  138. Dim startX As Integer = IIf(DataGridView1.RowHeadersVisible, DataGridView1.RowHeadersWidth, 0)
  139. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  140. Dim endX As Integer = startX + DataGridView1.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - DataGridView1.HorizontalScrollingOffset
  141. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  142. Exit Sub
  143. End If
  144. End If
  145. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  146. If DataGridView1.Rows(i).Cells("項2").Value.ToString = "" And DataGridView1.Rows(i).Cells("項3").Value.ToString = "" Then
  147. DataGridView1.Rows(i).DefaultCellStyle.BackColor = Color.LightGoldenrodYellow
  148. End If
  149. Next
  150. End Sub
  151. Private Sub DataGridView3_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView3.CellClick
  152. If e.RowIndex = -1 Then : Else
  153. TextBox2.Text = DataGridView3.Rows(e.RowIndex).Cells("姓名").Value
  154. End If
  155. End Sub
  156. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView2.CellClick
  157. If e.RowIndex = -1 Then : Else
  158. DataGridView2.Rows(0).Cells("選擇").Value = True
  159. End If
  160. End Sub
  161. Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
  162. Dim EU As String
  163. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  164. EU = DataGridView1.Rows(i).Cells("完成日期").Value.ToString
  165. If EU = "" Then
  166. Else
  167. DateTimePicker1.Text = EU
  168. DataGridView1.Rows(i).Cells("完成日期").Value = Format(DateTimePicker1.Value, "yyyy/MM/dd")
  169. End If
  170. If DataGridView1.Rows(i).Cells("是否完成").Value = True Then
  171. DataGridView1.Rows(i).Cells("開發負責人員").Value = ""
  172. Else
  173. If DataGridView1.Rows(i).Cells("開發負責人員").Value.ToString = "" Then
  174. DataGridView1.Rows(i).Cells("開發負責人員").Value = TextBox2.Text
  175. End If
  176. End If
  177. Next
  178. End Sub
  179. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
  180. 讀取專案人事資料() : 讀取專案主清單()
  181. End Sub
  182. Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
  183. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  184. SQL1 = "SELECT 項一 FROM 系統開發點檢表基本資料 WHERE 內容 LIKE N'" & ComboBox2.Text & "'"
  185. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  186. If dr.Read() Then : TextBox1.Text = dr("項一") : End If
  187. conn.Close()
  188. Set_清單2()
  189. End Sub
  190. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  191. ComboBox1下拉表單資料載入()
  192. End Sub
  193. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  194. ComboBox2下拉表單資料載入()
  195. End Sub
  196. Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
  197. For i As Integer = 0 To DataGridView2.Rows.Count - 1 : DataGridView2.Rows(i).Cells("選擇").Value = True : Next i
  198. End Sub
  199. Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
  200. For i As Integer = 0 To DataGridView2.Rows.Count - 1 : DataGridView2.Rows(i).Cells("選擇").Value = False : Next i
  201. End Sub
  202. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  203. If ComboBox1.Text = "" Then
  204. MsgBox("沒有選擇客戶")
  205. Else
  206. For i As Integer = 0 To DataGridView2.Rows.Count - 1
  207. If DataGridView2.Rows(i).Cells("選擇").Value = True Then
  208. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  209. SQL1 = "SELECT 項一 FROM 系統開發功能點檢表 WHERE 客戶 LIKE N'" & ComboBox1.Text & "' AND 項一 LIKE N'" & DataGridView2.Rows(i).Cells("項一").Value &
  210. "' AND 項二 LIKE N'" & DataGridView2.Rows(i).Cells("項二").Value & "' AND 項三 LIKE N'" & DataGridView2.Rows(i).Cells("項三").Value & "' "
  211. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  212. If dr.Read() Then
  213. conn.Close()
  214. Else
  215. conn.Close()
  216. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  217. SQL1 = "INSERT INTO 系統開發功能點檢表 (客戶, 項一, 項二, 項三, 是否完成, 完成日期, 排序, 備註, 排序1, 開發負責人員)
  218. VALUES (N'" & ComboBox1.Text & "',N'" & DataGridView2.Rows(i).Cells("項一").Value & "',N'" & DataGridView2.Rows(i).Cells("項二").Value &
  219. "', N'" & DataGridView2.Rows(i).Cells("項三").Value & "', '0', '', '', '', '', '')"
  220. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  221. End If
  222. conn.Close()
  223. End If
  224. Next i
  225. MsgBox("新增完成") : 讀取專案主清單()
  226. End If
  227. End Sub
  228. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
  229. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  230. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  231. SQL1 = "UPDATE 系統開發功能點檢表 SET 排序 = N'" & DataGridView1.Rows(i).Cells("排序").Value & "', 完成日期 = N'" & DataGridView1.Rows(i).Cells("完成日期").Value &
  232. "', 是否完成 = N'" & DataGridView1.Rows(i).Cells("是否完成").Value & "', 備註 = N'" & DataGridView1.Rows(i).Cells("備註").Value &
  233. "', 排序1 = N'" & DataGridView1.Rows(i).Cells("排序1").Value & "', 開發負責人員 = N'" & DataGridView1.Rows(i).Cells("開發負責人員").Value & "'
  234. WHERE 客戶 LIKE N'" & ComboBox1.Text & "' AND 項一 LIKE N'" & DataGridView1.Rows(i).Cells("項一").Value & "' AND 項二 LIKE N'" & DataGridView1.Rows(i).Cells("項二").Value &
  235. "' AND 項三 LIKE N'" & DataGridView1.Rows(i).Cells("項三").Value & "'"
  236. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  237. Next
  238. 讀取專案主清單()
  239. MsgBox("修改完成")
  240. End Sub
  241. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
  242. PA = InputBox("請輸入排序1空格要填入的數字")
  243. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  244. If DataGridView1.Rows(i).Cells("排序1").Value.ToString = "" Then
  245. DataGridView1.Rows(i).Cells("排序1").Value = PA
  246. End If
  247. Next
  248. PA = ""
  249. End Sub
  250. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
  251. PA = InputBox("請輸入排序空格要填入的數字")
  252. For i As Integer = 0 To DataGridView1.Rows.Count - 1
  253. If DataGridView1.Rows(i).Cells("排序").Value.ToString = "" Then
  254. DataGridView1.Rows(i).Cells("排序").Value = PA
  255. End If
  256. Next
  257. PA = ""
  258. End Sub
  259. End Class