No Description
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 33KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. Imports System.IO
  2. Imports System.Security.Cryptography
  3. Public Class 專案及會議提案
  4. Dim 圖片資料庫指定, WW(14), WA(14) As String
  5. Dim DGVX As Integer
  6. ReadOnly ds2 As New DataSet
  7. Private Sub Set_清單3()
  8. Dim ds As New DataSet
  9. 人員1_dgv.DataSource = Nothing : ds.Clear()
  10. 人員1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  11. 人員1_dgv.ColumnHeadersHeight = 25
  12. 人員1_dgv.AllowUserToAddRows = False
  13. SQL_通用_人員清單()
  14. da.Fill(ds) : 人員1_dgv.DataSource = ds.Tables(0) : conn.Close()
  15. Dim chkColumn As New DataGridViewCheckBoxColumn()
  16. End Sub
  17. Private Sub Set_清單2()
  18. 人員_dgv.DataSource = Nothing : ds2.Clear()
  19. 人員_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  20. 人員_dgv.ColumnHeadersHeight = 25
  21. 人員_dgv.AllowUserToAddRows = False
  22. 人員_dgv.RowTemplate.Height = 50
  23. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  24. SQL_會議_明細表讀取()
  25. da.Fill(ds2) : 人員_dgv.DataSource = ds2.Tables(0) : conn.Close()
  26. 人員_dgv.Columns(0).Visible = False : 人員_dgv.Columns(1).FillWeight = 20 : 人員_dgv.Columns(2).Visible = False
  27. 人員_dgv.Columns(3).Visible = False : 人員_dgv.Columns(4).FillWeight = 50 : 人員_dgv.Columns(5).FillWeight = 30
  28. Dim imgColumn As DataGridViewImageColumn = TryCast(人員_dgv.Columns("圖片"), DataGridViewImageColumn)
  29. If imgColumn IsNot Nothing Then
  30. imgColumn.ImageLayout = DataGridViewImageCellLayout.Zoom
  31. End If
  32. Dim transparentImage As New Bitmap(50, 50) ' Adjust size as needed
  33. Using g As Graphics = Graphics.FromImage(transparentImage)
  34. g.Clear(Color.Transparent)
  35. End Using
  36. For i As Integer = 0 To 人員_dgv.Rows.Count - 1
  37. If 人員_dgv.Rows(i).Cells("圖片資料庫").Value.ToString <> "" And 人員_dgv.Rows(i).Cells("圖片流水號").Value.ToString <> "" Then
  38. 圖片庫 = 人員_dgv.Rows(i).Cells("圖片資料庫").Value.ToString
  39. SQL_連線字串_圖片資料庫()
  40. PA2 = 人員_dgv.Rows(i).Cells("圖片流水號").Value.ToString
  41. SQL_簽名圖()
  42. While dr.Read() = True
  43. Dim unused As Byte() = New Byte(-1) {} : Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte())
  44. Dim oStream As New MemoryStream(bytes) : 人員_dgv.Rows(i).Cells("圖片").Value = Bitmap.FromStream(oStream)
  45. End While : conn.Close()
  46. Else
  47. ' Set empty value if no image is available
  48. 人員_dgv.Rows(i).Cells("圖片").Value = transparentImage
  49. End If
  50. Next
  51. End Sub
  52. Private Sub Set_會議記錄()
  53. Dim ds6 As New DataSet : ds6.Clear()
  54. 會議記錄表_dgv.DataSource = Nothing
  55. 會議記錄表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  56. 會議記錄表_dgv.ColumnHeadersHeight = 25 : 會議記錄表_dgv.AllowUserToAddRows = False : 會議記錄表_dgv.RowTemplate.Height = 45
  57. 會議記錄表2_dgv.DataSource = Nothing
  58. 會議記錄表2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  59. 會議記錄表2_dgv.ColumnHeadersHeight = 25 : 會議記錄表2_dgv.AllowUserToAddRows = False : 會議記錄表2_dgv.RowTemplate.Height = 45
  60. If 已完成資料顯示_ch.Checked = False Then : SQL2 = " WHERE 已完成 = 0 " : Else : SQL2 = " WHERE 已完成 = 1 " : End If
  61. If 通過_ch.Checked = True And 取消_ch.Checked = False Then : SQL3 = " AND (核准狀態 NOT LIKE N'取消' OR 核准狀態 IS NULL) "
  62. ElseIf 通過_ch.Checked = False And 取消_ch.Checked = True Then : SQL3 = " AND (核准狀態 NOT LIKE N'通過' OR 核准狀態 IS NULL) "
  63. Else SQL3 = "" : End If : SQL2 = SQL2 & SQL3
  64. SQL_會議記錄清單()
  65. da.Fill(ds6) : 會議記錄表_dgv.DataSource = ds6.Tables(0) : 會議記錄表2_dgv.DataSource = ds6.Tables(0) : conn.Close()
  66. Dim ds7 As New DataSet : 會議記錄表1_dgv.DataSource = Nothing : ds7.Clear()
  67. 會議記錄表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  68. 會議記錄表1_dgv.ColumnHeadersHeight = 25 : 會議記錄表1_dgv.AllowUserToAddRows = False : 會議記錄表1_dgv.RowTemplate.Height = 45
  69. For i As Integer = 0 To 會議記錄表2_dgv.Columns.Count - 1 : 會議記錄表2_dgv.Columns(i).Visible = False : Next : 會議記錄表2_dgv.Columns(3).Visible = True
  70. SQL2 = " WHERE 長期執行 = 1 "
  71. SQL_會議記錄清單()
  72. da.Fill(ds7) : 會議記錄表1_dgv.DataSource = ds7.Tables(0) : conn.Close()
  73. Set_會議記錄格式()
  74. End Sub
  75. Private Sub Set_會議記錄格式()
  76. If 會議記錄表_dgv.Rows.Count > 0 Then
  77. 會議記錄表_dgv.Columns(0).Visible = False : 會議記錄表_dgv.Columns(2).Visible = False : 會議記錄表_dgv.Columns(4).Visible = False : 會議記錄表_dgv.Columns(11).Visible = False
  78. 會議記錄表_dgv.Columns(1).FillWeight = 60 : 會議記錄表_dgv.Columns(3).FillWeight = 180 : 會議記錄表_dgv.Columns(8).FillWeight = 120 : 會議記錄表_dgv.Columns("核准").Visible = False
  79. 會議記錄表_dgv.Columns(9).FillWeight = 40 : 會議記錄表_dgv.Columns(10).FillWeight = 40 : 會議記錄表_dgv.Columns("核准狀態").FillWeight = 50
  80. For i As Integer = 0 To 13 : 會議記錄表_dgv.Columns(i).ReadOnly = True : Next
  81. End If
  82. If 會議記錄表1_dgv.Rows.Count > 0 Then
  83. 會議記錄表1_dgv.Columns(0).Visible = False : 會議記錄表1_dgv.Columns(2).Visible = False : 會議記錄表1_dgv.Columns(4).Visible = False : 會議記錄表1_dgv.Columns(11).Visible = False
  84. 會議記錄表1_dgv.Columns(1).FillWeight = 60 : 會議記錄表1_dgv.Columns(3).FillWeight = 180 : 會議記錄表1_dgv.Columns(8).FillWeight = 120 : 會議記錄表1_dgv.Columns("核准").Visible = False
  85. 會議記錄表1_dgv.Columns(9).FillWeight = 40 : 會議記錄表1_dgv.Columns(10).FillWeight = 40 : 會議記錄表1_dgv.Columns("核准狀態").FillWeight = 50
  86. For i As Integer = 0 To 13 : 會議記錄表1_dgv.Columns(i).ReadOnly = True : Next
  87. End If
  88. End Sub
  89. Private Sub Set_會議執行()
  90. Dim ds6 As New DataSet : 執行人_dgv.DataSource = Nothing : ds6.Clear()
  91. 執行人_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  92. 執行人_dgv.ColumnHeadersHeight = 25 : 執行人_dgv.AllowUserToAddRows = False
  93. SQL_會議決議執行人()
  94. da.Fill(ds6) : 執行人_dgv.DataSource = ds6.Tables(0) : conn.Close()
  95. 執行人_dgv.Columns(0).Visible = False : 執行人_dgv.Columns(1).FillWeight = 40
  96. For i As Integer = 0 To 1 : 執行人_dgv.Columns(i).ReadOnly = True : Next
  97. End Sub
  98. Private Sub Set_會議圖片()
  99. Dim ds6 As New DataSet : 圖片清單_dgv.DataSource = Nothing : ds6.Clear()
  100. 圖片清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  101. 圖片清單_dgv.ColumnHeadersHeight = 25 : 圖片清單_dgv.AllowUserToAddRows = False
  102. If 圖片庫_tb.Text = "" Then : 圖片庫 = 圖片資料庫指定 : Else : 圖片庫 = 圖片庫_tb.Text : End If
  103. SQL_連線字串_圖片資料庫() : SQL_會議圖片()
  104. da.Fill(ds6) : 圖片清單_dgv.DataSource = ds6.Tables(0) : conn.Close()
  105. 圖片清單_dgv.Columns(0).ReadOnly = True
  106. If 圖片清單_dgv.Rows.Count > 0 Then : DGVX = 0 : 圖片清單讀取() : Else
  107. 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : 圖片_P.BringToFront()
  108. 圖片1_pb.Image = My.Resources.無檔案 : 圖片_pb.SizeMode = 4
  109. End If
  110. End Sub
  111. Private Sub 姓名下拉表單資料載入()
  112. PA1 = "%%" : SQL_會議記錄_姓名_下拉清單() : 執行人_cb.Items.Clear() : 執行人_cb.Items.Add("") : 執行人_cb.Items.Add("全員")
  113. While (dr.Read()) : 執行人_cb.Items.Add(dr("姓名")) : End While : conn.Close()
  114. End Sub
  115. Private Sub 執行時間下拉表單資料載入()
  116. 執行時間_cb.Items.Clear() : SQL_會議記錄_執行時間_下拉清單() : 執行時間_cb.Items.Add("") : While (dr.Read()) : 執行時間_cb.Items.Add(dr("執行時間")) : End While : conn.Close()
  117. End Sub
  118. Private Sub 預計完成下拉表單資料載入()
  119. 預計完成_cb.Items.Clear() : SQL_會議記錄_預計完成_下拉清單() : 執行時間_cb.Items.Add("") : While (dr.Read()) : 預計完成_cb.Items.Add(dr("預計完成")) : End While : conn.Close()
  120. End Sub
  121. Private Sub 執行情況下拉表單資料載入()
  122. 執行情況_cb.Items.Clear() : SQL_會議記錄_執行情況_下拉清單() : 執行情況_cb.Items.Add("") : While (dr.Read()) : 執行情況_cb.Items.Add(dr("執行情況")) : End While : conn.Close()
  123. End Sub
  124. Private Sub 讀取資料夾路徑_rbt_MouseEnter(sender As Object, e As EventArgs) Handles 讀取資料夾路徑_rbt.MouseEnter
  125. ToolTip1.SetToolTip(Me.讀取資料夾路徑_rbt, "選擇電腦的資料夾路徑")
  126. End Sub
  127. Private Sub 圖檔入系統_rbt_MouseEnter(sender As Object, e As EventArgs) Handles 圖檔入系統_rbt.MouseEnter
  128. ToolTip1.SetToolTip(Me.圖檔入系統_rbt, "檔案存入系統")
  129. End Sub
  130. Private Sub 新建議題_rbt_MouseEnter(sender As Object, e As EventArgs) Handles 新建議題_rbt.MouseEnter
  131. ToolTip1.SetToolTip(Me.新建議題_rbt, "新建專案或議題")
  132. End Sub
  133. Private Sub 存檔_rbt_MouseEnter(sender As Object, e As EventArgs) Handles 存檔_rbt.MouseEnter
  134. ToolTip1.SetToolTip(Me.存檔_rbt, "存檔")
  135. End Sub
  136. Private Sub 刪除_rtb_MouseEnter(sender As Object, e As EventArgs) Handles 刪除_rtb.MouseEnter
  137. ToolTip1.SetToolTip(Me.刪除_rtb, "刪除")
  138. End Sub
  139. Private Sub 專案及會議提案_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  140. Me.MdiParent = GRAMS_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  141. RadPdfViewerNavigator1.OpenButton.Visibility = Telerik.WinControls.ElementVisibility.Collapsed
  142. RadPdfViewerNavigator1.SaveButton.Visibility = Telerik.WinControls.ElementVisibility.Collapsed
  143. PDF_P.BringToFront()
  144. If gUserName = "*系統管理者" Then : 備註_tb.ReadOnly = False : 核准_bt.Visible = True : 作廢_tb.Visible = True : End If
  145. Set_清單3()
  146. End Sub
  147. Private Sub 專案及會議提案_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
  148. SQL_圖片資料庫查詢() : If dr.Read() Then : 圖片資料庫指定 = dr("圖片資料庫") : Else : MsgBox("圖片資料庫已滿,請聯繫系統管理員!!!") : Me.Close() : End If
  149. 執行情況下拉表單資料載入() : 預計完成下拉表單資料載入() : 執行時間下拉表單資料載入() : 姓名下拉表單資料載入() : Set_會議記錄() : 地點_cb.SelectedIndex = 0
  150. End Sub
  151. Private Sub 專案及會議提案_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
  152. Set_會議記錄格式()
  153. End Sub
  154. Private Sub 會議記錄表1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 會議記錄表1_dgv.CellClick
  155. If e.RowIndex = -1 Then : Else
  156. 會議編號_tb.Text = 會議記錄表1_dgv("會議編號", e.RowIndex).Value.ToString : 地點_cb.Text = 會議記錄表1_dgv("地點", e.RowIndex).Value.ToString
  157. 會議項目_tb.Text = 會議記錄表1_dgv("會議項目", e.RowIndex).Value.ToString : 會議日期_dtp.Value = 會議記錄表1_dgv("時間", e.RowIndex).Value.ToString
  158. 細項說明_tb.Text = 會議記錄表1_dgv("細項說明", e.RowIndex).Value.ToString : 執行時間_cb.Text = 會議記錄表1_dgv("執行時間", e.RowIndex).Value.ToString
  159. 預計完成_cb.Text = 會議記錄表1_dgv("預計完成", e.RowIndex).Value.ToString : 執行情況_cb.Text = 會議記錄表1_dgv("執行情況", e.RowIndex).Value.ToString
  160. 備註_tb.Text = 會議記錄表1_dgv("備註", e.RowIndex).Value.ToString : 已完成_ch.Checked = 會議記錄表1_dgv("已完成", e.RowIndex).Value
  161. 長期執行_ch.Checked = 會議記錄表1_dgv("長期執行", e.RowIndex).Value : 圖片庫_tb.Text = 會議記錄表1_dgv("圖片庫", e.RowIndex).Value.ToString
  162. 核准_ch.Checked = 會議記錄表1_dgv("核准", e.RowIndex).Value
  163. PA1 = 會議編號_tb.Text : 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : Set_會議執行() : Set_會議圖片() : 控制項()
  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
  168. 會議編號_tb.Text = 會議記錄表_dgv("會議編號", e.RowIndex).Value.ToString : 地點_cb.Text = 會議記錄表_dgv("地點", e.RowIndex).Value.ToString
  169. 會議項目_tb.Text = 會議記錄表_dgv("會議項目", e.RowIndex).Value.ToString : 會議日期_dtp.Value = 會議記錄表_dgv("時間", e.RowIndex).Value.ToString
  170. 細項說明_tb.Text = 會議記錄表_dgv("細項說明", e.RowIndex).Value.ToString : 執行時間_cb.Text = 會議記錄表_dgv("執行時間", e.RowIndex).Value.ToString
  171. 預計完成_cb.Text = 會議記錄表_dgv("預計完成", e.RowIndex).Value.ToString : 執行情況_cb.Text = 會議記錄表_dgv("執行情況", e.RowIndex).Value.ToString
  172. 備註_tb.Text = 會議記錄表_dgv("備註", e.RowIndex).Value.ToString : 已完成_ch.Checked = 會議記錄表_dgv("已完成", e.RowIndex).Value
  173. 長期執行_ch.Checked = 會議記錄表_dgv("長期執行", e.RowIndex).Value : 圖片庫_tb.Text = 會議記錄表_dgv("圖片庫", e.RowIndex).Value.ToString
  174. 核准_ch.Checked = 會議記錄表_dgv("核准", e.RowIndex).Value
  175. PA1 = 會議編號_tb.Text : 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : Set_會議執行() : Set_會議圖片() : 控制項()
  176. End If
  177. End Sub
  178. Private Sub 會議記錄表2_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 會議記錄表2_dgv.CellClick
  179. If e.RowIndex = -1 Then : Else
  180. 會議編號_tb.Text = 會議記錄表2_dgv("會議編號", e.RowIndex).Value.ToString : 地點_cb.Text = 會議記錄表2_dgv("地點", e.RowIndex).Value.ToString
  181. 會議項目_tb.Text = 會議記錄表2_dgv("會議項目", e.RowIndex).Value.ToString : 會議日期_dtp.Value = 會議記錄表2_dgv("時間", e.RowIndex).Value.ToString
  182. 細項說明_tb.Text = 會議記錄表2_dgv("細項說明", e.RowIndex).Value.ToString : 執行時間_cb.Text = 會議記錄表2_dgv("執行時間", e.RowIndex).Value.ToString
  183. 預計完成_cb.Text = 會議記錄表2_dgv("預計完成", e.RowIndex).Value.ToString : 執行情況_cb.Text = 會議記錄表2_dgv("執行情況", e.RowIndex).Value.ToString
  184. 備註_tb.Text = 會議記錄表2_dgv("備註", e.RowIndex).Value.ToString : 已完成_ch.Checked = 會議記錄表2_dgv("已完成", e.RowIndex).Value
  185. 長期執行_ch.Checked = 會議記錄表2_dgv("長期執行", e.RowIndex).Value : 圖片庫_tb.Text = 會議記錄表2_dgv("圖片庫", e.RowIndex).Value.ToString
  186. 核准_ch.Checked = 會議記錄表2_dgv("核准", e.RowIndex).Value
  187. PA57 = 會議編號_tb.Text
  188. Set_清單2()
  189. For I As Integer = 0 To 人員1_dgv.Rows.Count - 1
  190. Dim skip As Boolean = False ' 用于标记是否跳过当前外层循环
  191. For II As Integer = 0 To 人員_dgv.Rows.Count - 1
  192. If 人員1_dgv.Rows(I).Cells("姓名").Value.ToString() = 人員_dgv.Rows(II).Cells("姓名").Value.ToString() Then
  193. skip = True ' 标记跳过当前外层循环
  194. Exit For ' 跳出内层循环
  195. End If
  196. Next
  197. If skip Then
  198. Continue For ' 跳过当前外层循环的当前迭代
  199. End If
  200. PA58 = 人員1_dgv.Rows(I).Cells("姓名").Value.ToString()
  201. SQL_會議_明細表新增()
  202. Next
  203. Set_清單2()
  204. PA1 = 會議編號_tb.Text : 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : Set_會議執行() : Set_會議圖片() : 控制項()
  205. End If
  206. End Sub
  207. Private Sub 控制項()
  208. If 已完成_ch.Checked = True Then
  209. 新建議題_rbt.Enabled = False : 存檔_rbt.Enabled = False : 刪除_rtb.Enabled = False : 新建執行人_bt.Enabled = False
  210. 讀取資料夾路徑_rbt.Enabled = False : 圖檔入系統_rbt.Enabled = False
  211. Else
  212. 新建議題_rbt.Enabled = True : 存檔_rbt.Enabled = True : 刪除_rtb.Enabled = True : 新建執行人_bt.Enabled = True
  213. 讀取資料夾路徑_rbt.Enabled = True : 圖檔入系統_rbt.Enabled = True
  214. End If
  215. End Sub
  216. Private Sub 執行人_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 執行人_dgv.CellClick
  217. If e.RowIndex = -1 Then : Else : 執行人_cb.Text = 執行人_dgv("執行人", e.RowIndex).Value.ToString : End If
  218. End Sub
  219. Private Sub 圖片清單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 圖片清單_dgv.CellClick
  220. If e.RowIndex = -1 Then : Else : DGVX = e.RowIndex : 圖片清單讀取() : End If
  221. End Sub
  222. Private Sub 圖片清單讀取()
  223. 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : SQL_連線字串_圖片資料庫()
  224. PA2 = 圖片清單_dgv.Rows(DGVX).Cells("Item").Value
  225. If 圖片清單_dgv.Rows(DGVX).Cells("File.").Value.ToString = "JPG" Then : 圖片_P.BringToFront()
  226. SQL_會議圖片讀取()
  227. While dr.Read() = True
  228. Dim unused As Byte() = New Byte(-1) {}
  229. Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte())
  230. Dim oStream As New MemoryStream(bytes)
  231. 圖片_pb.Image = Bitmap.FromStream(oStream)
  232. 圖片1_pb.Image = Bitmap.FromStream(oStream)
  233. End While : conn.Close() : 圖片_pb.SizeMode = 4 : 圖片1_pb.SizeMode = 4
  234. ElseIf 圖片清單_dgv.Rows(DGVX).Cells("File.").Value.ToString <> "JPG" Then : PDF_P.BringToFront()
  235. 圖片_pb.Image = My.Resources.PDF : 圖片_pb.SizeMode = 4
  236. PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : PA2 = 圖片清單_dgv.Rows(DGVX).Cells("Item").Value : SQL_連線字串_圖片資料庫()
  237. Dim Str As String = Application.StartupPath : Dim ds1 As New DataSet : ds1.Clear() : SQL_會議圖片讀取1() : da.Fill(ds1)
  238. If ds1.Tables(0).Rows.Count > 0 Then
  239. Dim imgData() As Byte : imgData = ds1.Tables(0).Rows(0).Item("圖片")
  240. Dim fs As FileStream : fs = File.Create(Str + "\" & PA2 & ".pdf", imgData.Length - 1)
  241. fs.Write(imgData, 0, imgData.Length - 1) : fs.Close()
  242. End If : conn.Close() : PDF路徑 = Str + "\" & PA2 & ".pdf" : Me.RadPdfViewer1.LoadDocument(PDF路徑)
  243. End If
  244. End Sub
  245. Private Sub 會議記錄表_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 會議記錄表_dgv.RowPostPaint
  246. Dim linePen As New Pen(Color.Blue, 2)
  247. If e.RowIndex = 會議記錄表_dgv.Rows.Count - 1 Then : Exit Sub : Else
  248. If 會議記錄表_dgv("時間", e.RowIndex).Value.ToString <> 會議記錄表_dgv("時間", e.RowIndex + 1).Value.ToString Then
  249. Dim startX As Integer = IIf(會議記錄表_dgv.RowHeadersVisible, 會議記錄表_dgv.RowHeadersWidth, 0)
  250. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  251. Dim endX As Integer = startX + 會議記錄表_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 會議記錄表_dgv.HorizontalScrollingOffset
  252. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  253. Exit Sub
  254. End If
  255. End If
  256. End Sub
  257. Private Sub 預計完成_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 預計完成_cb.SelectedIndexChanged
  258. If 預計完成_cb.Text = "已完成 / Selesai" Then : 已完成_ch.Checked = True : Else : 已完成_ch.Checked = False : End If
  259. End Sub
  260. Private Sub Set_日期格式轉換()
  261. DTP = Format(Today(), "yyyy/MM/dd") : DTP1 = Format(Today(), "yyyyMMdd")
  262. End Sub
  263. Private Sub 新建議題_rbt_Click(sender As Object, e As EventArgs) Handles 新建議題_rbt.Click
  264. Dim 跳過 As Boolean : Dim DD As Integer : 會議日期_dtp.Value = Today : DD = Weekday(會議日期_dtp.Value)
  265. 會議日期_dtp.Value = Today()
  266. If 會議項目_tb.Text <> "" Then
  267. Dim result As DialogResult = MsgBox("議題上有資料是否開新議題?", MessageBoxButtons.OKCancel)
  268. If result = DialogResult.OK Then : 跳過 = False : ElseIf result = DialogResult.Cancel Then : 跳過 = True : End If
  269. Else : 跳過 = False : End If
  270. If 跳過 = False Then
  271. 會議項目_tb.Text = "" : 細項說明_tb.Text = "" : 執行時間_cb.Text = "" : 執行情況_cb.Text = "" : 預計完成_cb.Text = ""
  272. 備註_tb.Text = "" : 執行人_cb.Text = "" : 已完成_ch.Checked = False : 長期執行_ch.Checked = False
  273. 執行人_dgv.DataSource = Nothing
  274. Set_日期格式轉換() : Dim NUM1 As Integer
  275. For i As Integer = 1 To 999 : NUM1 = 0 + i
  276. If NUM1 < 10 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-00" & NUM1
  277. ElseIf NUM1 > 9 And NUM1 < 100 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-0" & NUM1
  278. ElseIf NUM1 > 99 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-" & NUM1 : End If
  279. PA1 = 會議編號_tb.Text : SQL_會議記錄_單號查詢() : If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  280. Next
  281. End If
  282. End Sub
  283. Private Sub 存檔_rbt_Click(sender As Object, e As EventArgs) Handles 存檔_rbt.Click
  284. If 會議編號_tb.Text = "" Then
  285. Set_日期格式轉換() : Dim NUM1 As Integer
  286. For i As Integer = 1 To 999 : NUM1 = 0 + i
  287. If NUM1 < 10 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-00" & NUM1
  288. ElseIf NUM1 > 9 And NUM1 < 100 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-0" & NUM1
  289. ElseIf NUM1 > 99 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-" & NUM1 : End If
  290. PA1 = 會議編號_tb.Text : SQL_會議記錄_單號查詢() : If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  291. Next
  292. End If
  293. If 地點_cb.Text = "" Then : MsgBox("會議地點不可空白!!!") : Else
  294. If 會議項目_tb.Text = "" Then : MsgBox("會議/專案項目不可空白!!!") : Else
  295. If 執行時間_cb.Text = "" Then : MsgBox("執行時間不可空白!!!") : Else
  296. PA1 = 會議編號_tb.Text : PA2 = Strings.Format(會議日期_dtp.Value, "yyyy/MM/dd") : PA3 = 地點_cb.Text : PA4 = 會議項目_tb.Text : PA5 = 細項說明_tb.Text
  297. PA6 = 執行時間_cb.Text : PA7 = 執行情況_cb.Text : PA8 = 預計完成_cb.Text : PA9 = 備註_tb.Text : BL1 = 已完成_ch.Checked : BL2 = 長期執行_ch.Checked
  298. BL3 = 核准_ch.Checked
  299. PA10 = 圖片資料庫指定 : SQL_會議記錄_單號查詢()
  300. If dr.Read() Then
  301. Dim result As DialogResult = MsgBox("存檔會覆蓋舊資料是否繼續執行?", MessageBoxButtons.OKCancel)
  302. If result = DialogResult.OK Then : SQL_會議記錄修改() : End If
  303. Else : SQL_會議記錄新增()
  304. LIN訊息通知("CC204", "李協叡", gUserName, 會議項目_tb.Text) : LIN訊息通知("CC205", "診所主管", " ", 會議項目_tb.Text)
  305. PA57 = 會議編號_tb.Text
  306. For I As Integer = 0 To 人員1_dgv.Rows.Count - 1
  307. PA58 = 人員1_dgv.Rows(I).Cells("姓名").Value.ToString()
  308. SQL_會議_明細表新增()
  309. Next
  310. End If : conn.Close() : Set_會議記錄() : Set_清單2()
  311. End If
  312. End If
  313. End If
  314. End Sub
  315. Private Sub 刪除_rtb_Click(sender As Object, e As EventArgs) Handles 刪除_rtb.Click
  316. If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else
  317. Dim result As DialogResult = MsgBox("是否要刪除該筆資料?", MessageBoxButtons.OKCancel)
  318. If result = DialogResult.OK Then : PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : SQL_連線字串_圖片資料庫() : SQL_會議記錄刪除() : SQL_會議_明細表刪除() : Set_會議記錄() : End If
  319. End If
  320. End Sub
  321. Private Sub 新建執行人_bt_Click(sender As Object, e As EventArgs) Handles 新建執行人_bt.Click
  322. If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else
  323. If 執行人_cb.Text = "" Then : MsgBox("請先選擇執行人!!") : Else
  324. PA1 = 會議編號_tb.Text : PA3 = 執行人_cb.Text : Dim 編號 As String : Dim NUM1 As Integer
  325. For i As Integer = 1 To 999
  326. NUM1 = 0 + i
  327. If NUM1 < 10 Then : 編號 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 編號 = "0" & NUM1 : ElseIf NUM1 > 99 Then : 編號 = NUM1 : End If
  328. PA2 = 編號 : SQL_會議決議執行人_單號查詢() : If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  329. Next : SQL_會議決議執行人新增() : PA1 = 會議編號_tb.Text : Set_會議執行() : Set_會議圖片()
  330. End If
  331. End If
  332. End Sub
  333. Private Sub 刪除執行人_bt_Click(sender As Object, e As EventArgs) Handles 刪除執行人_bt.Click
  334. If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else
  335. If 執行人_cb.Text = "" Then : MsgBox("請先選擇執行人!!") : Else
  336. Dim result As DialogResult = MsgBox("是否要刪除該筆資料?", MessageBoxButtons.OKCancel)
  337. If result = DialogResult.OK Then : PA1 = 會議編號_tb.Text : PA3 = 執行人_cb.Text : SQL_會議決議執行人刪除() : PA1 = 會議編號_tb.Text : Set_會議執行() : Set_會議圖片() : End If
  338. End If
  339. End If
  340. End Sub
  341. Private Sub 已完成資料顯示_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 已完成資料顯示_ch.Click
  342. If 已完成資料顯示_ch.Checked = True Then : 已完成資料顯示_ch.Checked = True : Else : 已完成資料顯示_ch.Checked = False : End If
  343. Set_會議記錄()
  344. End Sub
  345. Private Sub 通過_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 通過_ch.Click
  346. If 通過_ch.Checked = True Then : 通過_ch.Checked = True : Else : 通過_ch.Checked = False : End If : Set_會議記錄()
  347. End Sub
  348. Private Sub 取消_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 取消_ch.Click
  349. If 取消_ch.Checked = True Then : 取消_ch.Checked = True : Else : 取消_ch.Checked = False : End If : Set_會議記錄()
  350. End Sub
  351. Private Sub 物料圖_pb_Click(sender As Object, e As EventArgs) Handles 圖片_pb.Click
  352. If IsNothing(圖片_pb.Image) = False Then
  353. If 圖片清單_dgv.Rows(DGVX).Cells("File.").Value.ToString = "JPG" Then
  354. 圖片傳遞 = 圖片_pb.Image : 圖片放大視窗.ShowDialog()
  355. Else
  356. If 版本號 = "2024050101" Or 版本號 = "2024042801" Then : MsgBox("該版本尚未開放開啟PDF,預計下個版本改板後開放(下個版本將變更成需要安裝的版本)!!") : Else
  357. PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : PA2 = 圖片清單_dgv.Rows(DGVX).Cells("Item").Value : SQL_連線字串_圖片資料庫()
  358. Dim Str As String = Application.StartupPath : Dim ds1 As New DataSet : ds1.Clear() : SQL_會議圖片讀取1() : da.Fill(ds1)
  359. If ds1.Tables(0).Rows.Count > 0 Then
  360. Dim imgData() As Byte : imgData = ds1.Tables(0).Rows(0).Item("圖片")
  361. Dim fs As FileStream : fs = File.Create(Str + "\" & PA2 & ".pdf", imgData.Length - 1)
  362. fs.Write(imgData, 0, imgData.Length - 1) : fs.Close()
  363. End If : conn.Close() : PDF路徑 = Str + "\" & PA2 & ".pdf" : PDF預覽.ShowDialog()
  364. End If
  365. End If
  366. End If
  367. End Sub
  368. Private Sub 讀取資料夾路徑_rbt_Click(sender As Object, e As EventArgs) Handles 讀取資料夾路徑_rbt.Click
  369. If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then
  370. If OpenFileDialog1.FileNames.Length > 6 Then : MsgBox("選取檔案不能超過6個!!") : Else
  371. For i As Integer = 0 To 5 : WW(i) = "" : WA(i) = "" : Dim 選擇 As PictureBox = CType(Me.Controls.Find("PB" & i + 1, True)(0), PictureBox) : 選擇.Image = Nothing : Next
  372. NU1 = OpenFileDialog1.FileNames.Length - 1
  373. For i As Integer = 0 To OpenFileDialog1.FileNames.Length - 1 : WW(i) = OpenFileDialog1.FileNames(i) : Next
  374. For i As Integer = 0 To NU1
  375. Dim 驗證 As String = "" : Dim 取變數 As String : 取變數 = Strings.StrReverse(WW(i))
  376. For ii As Integer = 1 To 10
  377. If ii = 1 Then : 驗證 = Strings.Left(取變數, ii) : Else
  378. If Strings.Mid(取變數, ii, 1) = "." Then : 驗證 = Strings.StrReverse(驗證) : Exit For : Else : 驗證 &= Strings.Mid(取變數, ii, 1) : End If
  379. End If
  380. Next
  381. If 驗證 = "PNG" Or 驗證 = "png" Or 驗證 = "GIF" Or 驗證 = "gif" Or 驗證 = "BMP" Or 驗證 = "bmp" Or 驗證 = "JPG" Or 驗證 = "jpg" Or
  382. 驗證 = "JPEG" Or 驗證 = "jpeg" Then : WA(i) = "JPG"
  383. Dim 選擇 As PictureBox = CType(Me.Controls.Find("PB" & i + 1, True)(0), PictureBox) : 選擇.Image = Image.FromFile(WW(i)) : 選擇.SizeMode = 4
  384. ElseIf 驗證 = "PDF" Or 驗證 = "pdf" Then : WA(i) = "PDF"
  385. Dim 選擇 As PictureBox = CType(Me.Controls.Find("PB" & i + 1, True)(0), PictureBox) : 選擇.Image = My.Resources.PDF : 選擇.SizeMode = 4
  386. Else : WW(i) = "" : WA(i) = "" : End If
  387. Next
  388. End If
  389. End If
  390. End Sub
  391. Private Sub 核准_bt_Click(sender As Object, e As EventArgs) Handles 核准_bt.Click
  392. If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else
  393. PA1 = 會議編號_tb.Text : 核准_ch.Checked = True : BL3 = 核准_ch.Checked : PA10 = "通過" : PA9 = 備註_tb.Text : SQL_會議記錄修改1() : Set_會議記錄()
  394. End If
  395. End Sub
  396. Private Sub 作廢_tb_Click(sender As Object, e As EventArgs) Handles 作廢_tb.Click
  397. If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else
  398. PA1 = 會議編號_tb.Text : 核准_ch.Checked = False : BL3 = 核准_ch.Checked : PA10 = "取消" : PA9 = 備註_tb.Text : SQL_會議記錄修改1() : Set_會議記錄()
  399. End If
  400. End Sub
  401. Private Sub 圖檔入系統_rbt_Click(sender As Object, e As EventArgs) Handles 圖檔入系統_rbt.Click
  402. If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else
  403. PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : SQL_連線字串_圖片資料庫()
  404. For i As Integer = 0 To NU1
  405. If WW(i) = "" Then : Else
  406. Dim 文件號 As String : Dim 文件編號 As Integer : SQL_會議圖片最後一筆編號查詢()
  407. If dr.Read() Then : 文件編號 = Double.Parse(Strings.Right(dr("項次").ToString, 2)) : Else : 文件編號 = 0 : End If
  408. conn.Close() : 文件編號 += 1
  409. If 文件編號 < 10 Then : 文件號 = "IM" & "0" & 文件編號
  410. ElseIf 文件編號 > 9 Then : 文件號 = "IM" & 文件編號 : End If
  411. PA2 = 文件號 : PA49 = WW(i) : PA3 = WA(i) : SQL_會議圖片入系統()
  412. End If
  413. Next
  414. For i As Integer = 0 To 5 : WW(i) = "" : Dim 選擇 As PictureBox = CType(Me.Controls.Find("PB" & i + 1, True)(0), PictureBox) : 選擇.Image = Nothing : Next
  415. Set_會議圖片() : MsgBox("上傳完畢!!")
  416. End If
  417. End Sub
  418. Private Sub 字體大小_nud_ValueChanged(sender As Object, e As EventArgs) Handles 字體大小_nud.ValueChanged
  419. 細項說明_tb.Font = New Font("Arial", 字體大小_nud.Value)
  420. 備註_tb.Font = New Font("Arial", 字體大小_nud.Value)
  421. End Sub
  422. End Class