Imports System.IO Public Class 專案及會議執行 Dim 圖片資料庫指定, WW(14), WA(14) As String Dim DGVX As Integer ReadOnly ds2 As New DataSet Private Sub Set_清單3() Dim ds As New DataSet 人員1_dgv.DataSource = Nothing : ds.Clear() 人員1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 人員1_dgv.ColumnHeadersHeight = 25 人員1_dgv.AllowUserToAddRows = False SQL_通用_人員清單() da.Fill(ds) : 人員1_dgv.DataSource = ds.Tables(0) : conn.Close() Dim chkColumn As New DataGridViewCheckBoxColumn() End Sub Private Sub Set_清單2() 人員_dgv.DataSource = Nothing : ds2.Clear() 人員_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 人員_dgv.ColumnHeadersHeight = 25 人員_dgv.AllowUserToAddRows = False 人員_dgv.RowTemplate.Height = 50 If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL_會議_明細表讀取() da.Fill(ds2) : 人員_dgv.DataSource = ds2.Tables(0) : conn.Close() 人員_dgv.Columns(0).Visible = False : 人員_dgv.Columns(1).FillWeight = 20 : 人員_dgv.Columns(2).Visible = False 人員_dgv.Columns(3).Visible = False : 人員_dgv.Columns(4).FillWeight = 50 : 人員_dgv.Columns(5).FillWeight = 30 Dim imgColumn As DataGridViewImageColumn = TryCast(人員_dgv.Columns("圖片"), DataGridViewImageColumn) If imgColumn IsNot Nothing Then imgColumn.ImageLayout = DataGridViewImageCellLayout.Zoom End If Dim transparentImage As New Bitmap(50, 50) ' Adjust size as needed Using g As Graphics = Graphics.FromImage(transparentImage) g.Clear(Color.Transparent) End Using For i As Integer = 0 To 人員_dgv.Rows.Count - 1 If 人員_dgv.Rows(i).Cells("圖片資料庫").Value.ToString <> "" And 人員_dgv.Rows(i).Cells("圖片流水號").Value.ToString <> "" Then 圖片庫 = 人員_dgv.Rows(i).Cells("圖片資料庫").Value.ToString SQL_連線字串_圖片資料庫() PA2 = 人員_dgv.Rows(i).Cells("圖片流水號").Value.ToString SQL_簽名圖() While dr.Read() = True Dim unused As Byte() = New Byte(-1) {} : Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte()) Dim oStream As New MemoryStream(bytes) : 人員_dgv.Rows(i).Cells("圖片").Value = Bitmap.FromStream(oStream) End While : conn.Close() Else ' Set empty value if no image is available 人員_dgv.Rows(i).Cells("圖片").Value = transparentImage End If Next End Sub Private Sub Set_會議記錄() Dim ds6 As New DataSet : ds6.Clear() 會議記錄表_dgv.DataSource = Nothing 會議記錄表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 會議記錄表_dgv.ColumnHeadersHeight = 25 : 會議記錄表_dgv.AllowUserToAddRows = False : 會議記錄表_dgv.RowTemplate.Height = 45 會議記錄表2_dgv.DataSource = Nothing 會議記錄表2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 會議記錄表2_dgv.ColumnHeadersHeight = 25 : 會議記錄表2_dgv.AllowUserToAddRows = False : 會議記錄表2_dgv.RowTemplate.Height = 45 If 已完成資料顯示_ch.Checked = False Then : SQL2 = " WHERE 已完成 = 0 " : Else : SQL2 = " WHERE 已完成 = 1 " : End If If 通過_ch.Checked = True And 取消_ch.Checked = False Then : SQL3 = " AND (核准狀態 NOT LIKE N'取消' OR 核准狀態 IS NULL) " ElseIf 通過_ch.Checked = False And 取消_ch.Checked = True Then : SQL3 = " AND (核准狀態 NOT LIKE N'通過' OR 核准狀態 IS NULL) " Else SQL3 = "" : End If : SQL2 = SQL2 & SQL3 SQL_會議記錄清單() da.Fill(ds6) : 會議記錄表_dgv.DataSource = ds6.Tables(0) : 會議記錄表2_dgv.DataSource = ds6.Tables(0) : conn.Close() Dim ds7 As New DataSet : 會議記錄表1_dgv.DataSource = Nothing : ds7.Clear() 會議記錄表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 會議記錄表1_dgv.ColumnHeadersHeight = 25 : 會議記錄表1_dgv.AllowUserToAddRows = False : 會議記錄表1_dgv.RowTemplate.Height = 45 For i As Integer = 0 To 會議記錄表2_dgv.Columns.Count - 1 : 會議記錄表2_dgv.Columns(i).Visible = False : Next : 會議記錄表2_dgv.Columns(3).Visible = True SQL2 = " WHERE 長期執行 = 1 " SQL_會議記錄清單() da.Fill(ds7) : 會議記錄表1_dgv.DataSource = ds7.Tables(0) : conn.Close() Set_會議記錄格式() End Sub Private Sub Set_會議記錄格式() If 會議記錄表_dgv.Rows.Count > 0 Then 會議記錄表_dgv.Columns(0).Visible = False : 會議記錄表_dgv.Columns(2).Visible = False : 會議記錄表_dgv.Columns(4).Visible = False : 會議記錄表_dgv.Columns(11).Visible = False 會議記錄表_dgv.Columns(1).FillWeight = 60 : 會議記錄表_dgv.Columns(3).FillWeight = 180 : 會議記錄表_dgv.Columns(8).FillWeight = 120 : 會議記錄表_dgv.Columns("核准").Visible = False 會議記錄表_dgv.Columns(9).FillWeight = 40 : 會議記錄表_dgv.Columns(10).FillWeight = 40 : 會議記錄表_dgv.Columns("核准狀態").FillWeight = 50 For i As Integer = 0 To 13 : 會議記錄表_dgv.Columns(i).ReadOnly = True : Next End If If 會議記錄表1_dgv.Rows.Count > 0 Then 會議記錄表1_dgv.Columns(0).Visible = False : 會議記錄表1_dgv.Columns(2).Visible = False : 會議記錄表1_dgv.Columns(4).Visible = False : 會議記錄表1_dgv.Columns(11).Visible = False 會議記錄表1_dgv.Columns(1).FillWeight = 60 : 會議記錄表1_dgv.Columns(3).FillWeight = 180 : 會議記錄表1_dgv.Columns(8).FillWeight = 120 : 會議記錄表1_dgv.Columns("核准").Visible = False 會議記錄表1_dgv.Columns(9).FillWeight = 40 : 會議記錄表1_dgv.Columns(10).FillWeight = 40 : 會議記錄表1_dgv.Columns("核准狀態").FillWeight = 50 For i As Integer = 0 To 13 : 會議記錄表1_dgv.Columns(i).ReadOnly = True : Next End If End Sub Private Sub Set_會議執行() Dim ds6 As New DataSet : 執行人_dgv.DataSource = Nothing : ds6.Clear() 執行人_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 執行人_dgv.ColumnHeadersHeight = 25 : 執行人_dgv.AllowUserToAddRows = False SQL_會議決議執行人() da.Fill(ds6) : 執行人_dgv.DataSource = ds6.Tables(0) : conn.Close() 執行人_dgv.Columns(0).Visible = False : 執行人_dgv.Columns(1).FillWeight = 40 For i As Integer = 0 To 1 : 執行人_dgv.Columns(i).ReadOnly = True : Next End Sub Private Sub Set_會議圖片() Dim ds6 As New DataSet : 圖片清單_dgv.DataSource = Nothing : ds6.Clear() 圖片清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 圖片清單_dgv.ColumnHeadersHeight = 25 : 圖片清單_dgv.AllowUserToAddRows = False If 圖片庫_tb.Text = "" Then : 圖片庫 = 圖片資料庫指定 : Else : 圖片庫 = 圖片庫_tb.Text : End If SQL_連線字串_圖片資料庫() : SQL_會議圖片() da.Fill(ds6) : 圖片清單_dgv.DataSource = ds6.Tables(0) : conn.Close() 圖片清單_dgv.Columns(0).ReadOnly = True If 圖片清單_dgv.Rows.Count > 0 Then : DGVX = 0 : 圖片清單讀取() : Else 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : 圖片_P.BringToFront() 圖片1_pb.Image = My.Resources.無檔案 : 圖片_pb.SizeMode = 4 End If End Sub Private Sub 姓名下拉表單資料載入() PA1 = "%%" : SQL_會議記錄_姓名_下拉清單() : 執行人_cb.Items.Clear() : 執行人_cb.Items.Add("") : 執行人_cb.Items.Add("全員") While (dr.Read()) : 執行人_cb.Items.Add(dr("姓名")) : End While : conn.Close() End Sub Private Sub 執行時間下拉表單資料載入() 執行時間_cb.Items.Clear() : SQL_會議記錄_執行時間_下拉清單() : 執行時間_cb.Items.Add("") : While (dr.Read()) : 執行時間_cb.Items.Add(dr("執行時間")) : End While : conn.Close() End Sub Private Sub 預計完成下拉表單資料載入() 預計完成_cb.Items.Clear() : SQL_會議記錄_預計完成_下拉清單() : 執行時間_cb.Items.Add("") : While (dr.Read()) : 預計完成_cb.Items.Add(dr("預計完成")) : End While : conn.Close() End Sub Private Sub 執行情況下拉表單資料載入() 執行情況_cb.Items.Clear() : SQL_會議記錄_執行情況_下拉清單() : 執行情況_cb.Items.Add("") : While (dr.Read()) : 執行情況_cb.Items.Add(dr("執行情況")) : End While : conn.Close() End Sub Private Sub 讀取資料夾路徑_rbt_MouseEnter(sender As Object, e As EventArgs) Handles 讀取資料夾路徑_rbt.MouseEnter ToolTip1.SetToolTip(Me.讀取資料夾路徑_rbt, "選擇電腦的資料夾路徑") End Sub Private Sub 圖檔入系統_rbt_MouseEnter(sender As Object, e As EventArgs) Handles 圖檔入系統_rbt.MouseEnter ToolTip1.SetToolTip(Me.圖檔入系統_rbt, "檔案存入系統") End Sub Private Sub 新建議題_rbt_MouseEnter(sender As Object, e As EventArgs) Handles 新建議題_rbt.MouseEnter ToolTip1.SetToolTip(Me.新建議題_rbt, "新建專案或議題") End Sub Private Sub 存檔_rbt_MouseEnter(sender As Object, e As EventArgs) Handles 存檔_rbt.MouseEnter ToolTip1.SetToolTip(Me.存檔_rbt, "存檔") End Sub Private Sub 刪除_rtb_MouseEnter(sender As Object, e As EventArgs) Handles 刪除_rtb.MouseEnter ToolTip1.SetToolTip(Me.刪除_rtb, "刪除") End Sub Private Sub 專案及會議執行_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GRAMS_SYS : Me.WindowState = 2 : Me.AutoScroll = True RadPdfViewerNavigator1.OpenButton.Visibility = Telerik.WinControls.ElementVisibility.Collapsed RadPdfViewerNavigator1.SaveButton.Visibility = Telerik.WinControls.ElementVisibility.Collapsed Set_清單3() PDF_P.BringToFront() End Sub Private Sub 專案及會議執行_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown SQL_圖片資料庫查詢() : If dr.Read() Then : 圖片資料庫指定 = dr("圖片資料庫") : Else : MsgBox("圖片資料庫已滿,請聯繫系統管理員!!!") : Me.Close() : End If 執行情況下拉表單資料載入() : 預計完成下拉表單資料載入() : 執行時間下拉表單資料載入() : 姓名下拉表單資料載入() : Set_會議記錄() : 地點_cb.SelectedIndex = 0 End Sub Private Sub 專案及會議提案_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged Set_會議記錄格式() End Sub Private Sub 會議記錄表1_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 會議記錄表1_dgv.CellClick If e.RowIndex = -1 Then : Else 會議編號_tb.Text = 會議記錄表1_dgv("會議編號", e.RowIndex).Value.ToString : 地點_cb.Text = 會議記錄表1_dgv("地點", e.RowIndex).Value.ToString 會議項目_tb.Text = 會議記錄表1_dgv("會議項目", e.RowIndex).Value.ToString : 會議日期_dtp.Value = 會議記錄表1_dgv("時間", e.RowIndex).Value.ToString 細項說明_tb.Text = 會議記錄表1_dgv("細項說明", e.RowIndex).Value.ToString : 執行時間_cb.Text = 會議記錄表1_dgv("執行時間", e.RowIndex).Value.ToString 預計完成_cb.Text = 會議記錄表1_dgv("預計完成", e.RowIndex).Value.ToString : 執行情況_cb.Text = 會議記錄表1_dgv("執行情況", e.RowIndex).Value.ToString 備註_tb.Text = 會議記錄表1_dgv("備註", e.RowIndex).Value.ToString : 已完成_ch.Checked = 會議記錄表1_dgv("已完成", e.RowIndex).Value 長期執行_ch.Checked = 會議記錄表1_dgv("長期執行", e.RowIndex).Value : 圖片庫_tb.Text = 會議記錄表1_dgv("圖片庫", e.RowIndex).Value.ToString 核准_ch.Checked = 會議記錄表1_dgv("核准", e.RowIndex).Value : 核准_tb.Text = 會議記錄表1_dgv("核准狀態", e.RowIndex).Value.ToString PA1 = 會議編號_tb.Text : 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : Set_會議執行() : Set_會議圖片() End If End Sub Private Sub 會議記錄表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 會議記錄表_dgv.CellClick If e.RowIndex = -1 Then : Else 會議編號_tb.Text = 會議記錄表_dgv("會議編號", e.RowIndex).Value.ToString : 地點_cb.Text = 會議記錄表_dgv("地點", e.RowIndex).Value.ToString 會議項目_tb.Text = 會議記錄表_dgv("會議項目", e.RowIndex).Value.ToString : 會議日期_dtp.Value = 會議記錄表_dgv("時間", e.RowIndex).Value.ToString 細項說明_tb.Text = 會議記錄表_dgv("細項說明", e.RowIndex).Value.ToString : 執行時間_cb.Text = 會議記錄表_dgv("執行時間", e.RowIndex).Value.ToString 預計完成_cb.Text = 會議記錄表_dgv("預計完成", e.RowIndex).Value.ToString : 執行情況_cb.Text = 會議記錄表_dgv("執行情況", e.RowIndex).Value.ToString 備註_tb.Text = 會議記錄表_dgv("備註", e.RowIndex).Value.ToString : 已完成_ch.Checked = 會議記錄表_dgv("已完成", e.RowIndex).Value 長期執行_ch.Checked = 會議記錄表_dgv("長期執行", e.RowIndex).Value : 圖片庫_tb.Text = 會議記錄表_dgv("圖片庫", e.RowIndex).Value.ToString 核准_ch.Checked = 會議記錄表_dgv("核准", e.RowIndex).Value : 核准_tb.Text = 會議記錄表_dgv("核准狀態", e.RowIndex).Value.ToString PA1 = 會議編號_tb.Text : 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : Set_會議執行() : Set_會議圖片() End If End Sub Private Sub 會議記錄表2_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 會議記錄表2_dgv.CellClick If e.RowIndex = -1 Then : Else 會議編號_tb.Text = 會議記錄表2_dgv("會議編號", e.RowIndex).Value.ToString : 地點_cb.Text = 會議記錄表2_dgv("地點", e.RowIndex).Value.ToString 會議項目_tb.Text = 會議記錄表2_dgv("會議項目", e.RowIndex).Value.ToString : 會議日期_dtp.Value = 會議記錄表2_dgv("時間", e.RowIndex).Value.ToString 細項說明_tb.Text = 會議記錄表2_dgv("細項說明", e.RowIndex).Value.ToString : 執行時間_cb.Text = 會議記錄表2_dgv("執行時間", e.RowIndex).Value.ToString 預計完成_cb.Text = 會議記錄表2_dgv("預計完成", e.RowIndex).Value.ToString : 執行情況_cb.Text = 會議記錄表2_dgv("執行情況", e.RowIndex).Value.ToString 備註_tb.Text = 會議記錄表2_dgv("備註", e.RowIndex).Value.ToString : 已完成_ch.Checked = 會議記錄表2_dgv("已完成", e.RowIndex).Value 長期執行_ch.Checked = 會議記錄表2_dgv("長期執行", e.RowIndex).Value : 圖片庫_tb.Text = 會議記錄表2_dgv("圖片庫", e.RowIndex).Value.ToString 核准_ch.Checked = 會議記錄表2_dgv("核准", e.RowIndex).Value : 核准_tb.Text = 會議記錄表2_dgv("核准狀態", e.RowIndex).Value.ToString PA57 = 會議編號_tb.Text Set_清單2() For I As Integer = 0 To 人員1_dgv.Rows.Count - 1 Dim skip As Boolean = False ' 用于标记是否跳过当前外层循环 For II As Integer = 0 To 人員_dgv.Rows.Count - 1 If 人員1_dgv.Rows(I).Cells("姓名").Value.ToString() = 人員_dgv.Rows(II).Cells("姓名").Value.ToString() Then skip = True ' 标记跳过当前外层循环 Exit For ' 跳出内层循环 End If Next If skip Then Continue For ' 跳过当前外层循环的当前迭代 End If PA58 = 人員1_dgv.Rows(I).Cells("姓名").Value.ToString() SQL_會議_明細表新增() Next Set_清單2() PA1 = 會議編號_tb.Text : 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : Set_會議執行() : Set_會議圖片() End If End Sub Private Sub 執行人_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 執行人_dgv.CellClick If e.RowIndex = -1 Then : Else : 執行人_cb.Text = 執行人_dgv("執行人", e.RowIndex).Value.ToString : End If End Sub Private Sub 圖片清單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 圖片清單_dgv.CellClick If e.RowIndex = -1 Then : Else : DGVX = e.RowIndex : 圖片清單讀取() : End If End Sub Private Sub 圖片清單讀取() 圖片_pb.Image = Nothing : 圖片1_pb.Image = Nothing : PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : SQL_連線字串_圖片資料庫() PA2 = 圖片清單_dgv.Rows(DGVX).Cells("Item").Value If 圖片清單_dgv.Rows(DGVX).Cells("File.").Value.ToString = "JPG" Then : 圖片_P.BringToFront() SQL_會議圖片讀取() While dr.Read() = True Dim unused As Byte() = New Byte(-1) {} Dim bytes As Byte() = DirectCast(dr.Item("圖片"), Byte()) Dim oStream As New MemoryStream(bytes) 圖片_pb.Image = Bitmap.FromStream(oStream) 圖片1_pb.Image = Bitmap.FromStream(oStream) End While : conn.Close() : 圖片_pb.SizeMode = 4 : 圖片1_pb.SizeMode = 4 ElseIf 圖片清單_dgv.Rows(DGVX).Cells("File.").Value.ToString <> "JPG" Then : PDF_P.BringToFront() 圖片_pb.Image = My.Resources.PDF : 圖片_pb.SizeMode = 4 PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : PA2 = 圖片清單_dgv.Rows(DGVX).Cells("Item").Value : SQL_連線字串_圖片資料庫() Dim Str As String = Application.StartupPath : Dim ds1 As New DataSet : ds1.Clear() : SQL_會議圖片讀取1() : da.Fill(ds1) If ds1.Tables(0).Rows.Count > 0 Then Dim imgData() As Byte : imgData = ds1.Tables(0).Rows(0).Item("圖片") Dim fs As FileStream : fs = File.Create(Str + "\" & PA2 & ".pdf", imgData.Length - 1) fs.Write(imgData, 0, imgData.Length - 1) : fs.Close() End If : conn.Close() : PDF路徑 = Str + "\" & PA2 & ".pdf" : Me.RadPdfViewer1.LoadDocument(PDF路徑) End If End Sub Private Sub 會議記錄表_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 會議記錄表_dgv.RowPostPaint Dim linePen As New Pen(Color.Blue, 2) If e.RowIndex = 會議記錄表_dgv.Rows.Count - 1 Then : Exit Sub : Else If 會議記錄表_dgv("時間", e.RowIndex).Value.ToString <> 會議記錄表_dgv("時間", e.RowIndex + 1).Value.ToString Then Dim startX As Integer = IIf(會議記錄表_dgv.RowHeadersVisible, 會議記錄表_dgv.RowHeadersWidth, 0) Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1 Dim endX As Integer = startX + 會議記錄表_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 會議記錄表_dgv.HorizontalScrollingOffset e.Graphics.DrawLine(linePen, startX, startY, endX, startY) Exit Sub End If End If End Sub Private Sub 預計完成_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 預計完成_cb.SelectedIndexChanged If 預計完成_cb.Text = "已完成 / Selesai" Then : 已完成_ch.Checked = True : Else : 已完成_ch.Checked = False : End If End Sub Private Sub Set_日期格式轉換() DTP = Format(Today(), "yyyy/MM/dd") : DTP1 = Format(Today(), "yyyyMMdd") End Sub Private Sub 新建議題_rbt_Click(sender As Object, e As EventArgs) Handles 新建議題_rbt.Click Dim 跳過 As Boolean : Dim DD As Integer : 會議日期_dtp.Value = Today : DD = Weekday(會議日期_dtp.Value) 會議日期_dtp.Value = Today() If 會議項目_tb.Text <> "" Then Dim result As DialogResult = MsgBox("議題上有資料是否開新議題?", MessageBoxButtons.OKCancel) If result = DialogResult.OK Then : 跳過 = False : ElseIf result = DialogResult.Cancel Then : 跳過 = True : End If Else : 跳過 = False : End If If 跳過 = False Then 會議項目_tb.Text = "" : 細項說明_tb.Text = "" : 執行時間_cb.Text = "" : 執行情況_cb.Text = "" : 預計完成_cb.Text = "" 備註_tb.Text = "" : 執行人_cb.Text = "" : 已完成_ch.Checked = False : 長期執行_ch.Checked = False 執行人_dgv.DataSource = Nothing Set_日期格式轉換() : Dim NUM1 As Integer For i As Integer = 1 To 999 : NUM1 = 0 + i If NUM1 < 10 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-0" & NUM1 ElseIf NUM1 > 99 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-" & NUM1 : End If PA1 = 會議編號_tb.Text : SQL_會議記錄_單號查詢() : If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close() Next End If End Sub Private Sub 存檔_rbt_Click(sender As Object, e As EventArgs) Handles 存檔_rbt.Click If 會議編號_tb.Text = "" Then Set_日期格式轉換() : Dim NUM1 As Integer For i As Integer = 1 To 999 : NUM1 = 0 + i If NUM1 < 10 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-0" & NUM1 ElseIf NUM1 > 99 Then : 會議編號_tb.Text = "MT-" & DTP1 & "-" & NUM1 : End If PA1 = 會議編號_tb.Text : SQL_會議記錄_單號查詢() : If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close() Next End If If 地點_cb.Text = "" Then : MsgBox("會議地點不可空白!!!") : Else If 會議項目_tb.Text = "" Then : MsgBox("會議/專案項目不可空白!!!") : Else If 執行時間_cb.Text = "" Then : MsgBox("執行時間不可空白!!!") : Else PA1 = 會議編號_tb.Text : PA2 = Strings.Format(會議日期_dtp.Value, "yyyy/MM/dd") : PA3 = 地點_cb.Text : PA4 = 會議項目_tb.Text : PA5 = 細項說明_tb.Text PA6 = 執行時間_cb.Text : PA7 = 執行情況_cb.Text : PA8 = 預計完成_cb.Text : PA9 = 備註_tb.Text : BL1 = 已完成_ch.Checked : BL2 = 長期執行_ch.Checked BL3 = 核准_ch.Checked PA10 = 圖片資料庫指定 : SQL_會議記錄_單號查詢() If dr.Read() Then Dim result As DialogResult = MsgBox("存檔會覆蓋舊資料是否繼續執行?", MessageBoxButtons.OKCancel) If result = DialogResult.OK Then : SQL_會議記錄修改() : End If Else : SQL_會議記錄新增() PA57 = 會議編號_tb.Text For I As Integer = 0 To 人員1_dgv.Rows.Count - 1 PA58 = 人員1_dgv.Rows(I).Cells("姓名").Value.ToString() SQL_會議_明細表新增() Next End If conn.Close() : Set_會議記錄() End If End If End If End Sub Private Sub 刪除_rtb_Click(sender As Object, e As EventArgs) Handles 刪除_rtb.Click If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else Dim result As DialogResult = MsgBox("是否要刪除該筆資料?", MessageBoxButtons.OKCancel) If result = DialogResult.OK Then : PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : SQL_連線字串_圖片資料庫() : SQL_會議記錄刪除() : SQL_會議_明細表刪除() : Set_會議記錄() : End If End If End Sub Private Sub 新建執行人_bt_Click(sender As Object, e As EventArgs) Handles 新建執行人_bt.Click If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else If 執行人_cb.Text = "" Then : MsgBox("請先選擇執行人!!") : Else PA1 = 會議編號_tb.Text : PA3 = 執行人_cb.Text : Dim 編號 As String : Dim NUM1 As Integer For i As Integer = 1 To 999 NUM1 = 0 + i If NUM1 < 10 Then : 編號 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : 編號 = "0" & NUM1 : ElseIf NUM1 > 99 Then : 編號 = NUM1 : End If PA2 = 編號 : SQL_會議決議執行人_單號查詢() : If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close() Next : SQL_會議決議執行人新增() : PA1 = 會議編號_tb.Text : Set_會議執行() : Set_會議圖片() End If End If End Sub Private Sub 刪除執行人_bt_Click(sender As Object, e As EventArgs) Handles 刪除執行人_bt.Click If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else If 執行人_cb.Text = "" Then : MsgBox("請先選擇執行人!!") : Else Dim result As DialogResult = MsgBox("是否要刪除該筆資料?", MessageBoxButtons.OKCancel) If result = DialogResult.OK Then : PA1 = 會議編號_tb.Text : PA3 = 執行人_cb.Text : SQL_會議決議執行人刪除() : PA1 = 會議編號_tb.Text : Set_會議執行() : Set_會議圖片() : End If End If End If End Sub Private Sub 已完成資料顯示_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 已完成資料顯示_ch.Click If 已完成資料顯示_ch.Checked = True Then : 已完成資料顯示_ch.Checked = True : Else : 已完成資料顯示_ch.Checked = False : End If : Set_會議記錄() End Sub Private Sub 通過_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 通過_ch.Click If 通過_ch.Checked = True Then : 通過_ch.Checked = True : Else : 通過_ch.Checked = False : End If : Set_會議記錄() End Sub Private Sub 取消_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 取消_ch.Click If 取消_ch.Checked = True Then : 取消_ch.Checked = True : Else : 取消_ch.Checked = False : End If : Set_會議記錄() End Sub Private Sub 物料圖_pb_Click(sender As Object, e As EventArgs) Handles 圖片_pb.Click If IsNothing(圖片_pb.Image) = False Then If 圖片清單_dgv.Rows(DGVX).Cells("File.").Value.ToString = "JPG" Then 圖片傳遞 = 圖片_pb.Image : 圖片放大視窗.ShowDialog() Else PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : PA2 = 圖片清單_dgv.Rows(DGVX).Cells("Item").Value : SQL_連線字串_圖片資料庫() Dim Str As String = Application.StartupPath : Dim ds1 As New DataSet : ds1.Clear() : SQL_會議圖片讀取1() : da.Fill(ds1) If ds1.Tables(0).Rows.Count > 0 Then Dim imgData() As Byte : imgData = ds1.Tables(0).Rows(0).Item("圖片") Dim fs As FileStream : fs = File.Create(Str + "\" & PA2 & ".pdf", imgData.Length - 1) fs.Write(imgData, 0, imgData.Length - 1) : fs.Close() End If : conn.Close() : PDF路徑 = Str + "\" & PA2 & ".pdf" : PDF預覽.ShowDialog() End If End If End Sub Private Sub 讀取資料夾路徑_rbt_Click(sender As Object, e As EventArgs) Handles 讀取資料夾路徑_rbt.Click If OpenFileDialog1.ShowDialog <> Windows.Forms.DialogResult.Cancel Then If OpenFileDialog1.FileNames.Length > 6 Then : MsgBox("選取檔案不能超過6個!!") : Else 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 NU1 = OpenFileDialog1.FileNames.Length - 1 For i As Integer = 0 To OpenFileDialog1.FileNames.Length - 1 : WW(i) = OpenFileDialog1.FileNames(i) : Next For i As Integer = 0 To NU1 Dim 驗證 As String = "" : Dim 取變數 As String : 取變數 = Strings.StrReverse(WW(i)) For ii As Integer = 1 To 10 If ii = 1 Then : 驗證 = Strings.Left(取變數, ii) : Else If Strings.Mid(取變數, ii, 1) = "." Then : 驗證 = Strings.StrReverse(驗證) : Exit For : Else : 驗證 &= Strings.Mid(取變數, ii, 1) : End If End If Next If 驗證 = "PNG" Or 驗證 = "png" Or 驗證 = "GIF" Or 驗證 = "gif" Or 驗證 = "BMP" Or 驗證 = "bmp" Or 驗證 = "JPG" Or 驗證 = "jpg" Or 驗證 = "JPEG" Or 驗證 = "jpeg" Then : WA(i) = "JPG" Dim 選擇 As PictureBox = CType(Me.Controls.Find("PB" & i + 1, True)(0), PictureBox) : 選擇.Image = Image.FromFile(WW(i)) : 選擇.SizeMode = 4 ElseIf 驗證 = "PDF" Or 驗證 = "pdf" Then : WA(i) = "PDF" Dim 選擇 As PictureBox = CType(Me.Controls.Find("PB" & i + 1, True)(0), PictureBox) : 選擇.Image = My.Resources.PDF : 選擇.SizeMode = 4 Else : WW(i) = "" : WA(i) = "" : End If Next End If End If End Sub Private Sub 核准_bt_Click(sender As Object, e As EventArgs) Handles 核准_bt.Click If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else PA1 = 會議編號_tb.Text : 核准_ch.Checked = True : BL3 = 核准_ch.Checked : PA10 = "通過" : PA9 = 備註_tb.Text : SQL_會議記錄修改1() : Set_會議記錄() Dim SDF As String If 執行人_dgv.Rows.Count = 0 Then : SDF = "全體同仁" : Else For i As Integer = 0 To 執行人_dgv.Rows.Count - 1 If i = 0 Then : SDF = 執行人_dgv("執行人", i).Value.ToString Else : SDF = SDF & "、" & 執行人_dgv("執行人", i).Value.ToString : End If Next End If : LIN訊息通知("CC206", "診所主管", 會議項目_tb.Text, SDF) End If End Sub Private Sub 作廢_tb_Click(sender As Object, e As EventArgs) Handles 作廢_tb.Click If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else PA1 = 會議編號_tb.Text : 核准_ch.Checked = False : BL3 = 核准_ch.Checked : PA10 = "取消" : PA9 = 備註_tb.Text : SQL_會議記錄修改1() : Set_會議記錄() End If End Sub Private Sub 已完成_bt_Click(sender As Object, e As EventArgs) Handles 已完成_bt.Click If 核准_tb.Text = "通過" Then If 已完成_ch.Checked = False Then : 已完成_ch.Checked = True : Else : 已完成_ch.Checked = False : End If PA1 = 會議編號_tb.Text : PA2 = Strings.Format(會議日期_dtp.Value, "yyyy/MM/dd") : PA3 = 地點_cb.Text : PA4 = 會議項目_tb.Text : PA5 = 細項說明_tb.Text PA6 = 執行時間_cb.Text : PA7 = 執行情況_cb.Text : PA8 = 預計完成_cb.Text : PA9 = 備註_tb.Text : BL1 = 已完成_ch.Checked : BL2 = 長期執行_ch.Checked BL3 = 核准_ch.Checked : PA10 = 圖片資料庫指定 : SQL_會議記錄修改() : MsgBox("專案/會議疑案已完成") : Set_會議記錄() Else : MsgBox("主管尚未同意專案或會議提案,所以無法結案!!") : End If End Sub Private Sub 圖檔入系統_rbt_Click(sender As Object, e As EventArgs) Handles 圖檔入系統_rbt.Click If 會議編號_tb.Text = "" Then : MsgBox("請先選擇會議/專案項目!!") : Else PA1 = 會議編號_tb.Text : 圖片庫 = 圖片庫_tb.Text : SQL_連線字串_圖片資料庫() For i As Integer = 0 To NU1 If WW(i) = "" Then : Else Dim 文件號 As String : Dim 文件編號 As Integer : SQL_會議圖片最後一筆編號查詢() If dr.Read() Then : 文件編號 = Double.Parse(Strings.Right(dr("項次").ToString, 2)) : Else : 文件編號 = 0 : End If conn.Close() : 文件編號 += 1 If 文件編號 < 10 Then : 文件號 = "IM" & "0" & 文件編號 ElseIf 文件編號 > 9 Then : 文件號 = "IM" & 文件編號 : End If PA2 = 文件號 : PA49 = WW(i) : PA3 = WA(i) : SQL_會議圖片入系統() End If Next 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 Set_會議圖片() : MsgBox("上傳完畢!!") End If End Sub Private Sub 字體大小_nud_ValueChanged(sender As Object, e As EventArgs) Handles 字體大小_nud.ValueChanged 細項說明_tb.Font = New Font("Arial", 字體大小_nud.Value) 備註_tb.Font = New Font("Arial", 字體大小_nud.Value) End Sub End Class