123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835 |
- Imports System.Drawing.Drawing2D
- Imports System.Globalization
- Imports System.IO
- Imports Telerik.WinControls
- Imports Telerik.WinControls.Taskbar.Core
- Imports Telerik.WinControls.UI
- Public Class 新甘特圖模板
- Dim ESTR, 檔名, 下載檔案位置1, 下載檔案位置2 As String
- Dim RI As Integer = -1
- Dim SK As String = "要查找的 KEY"
- Dim Str As String = Application.StartupPath
- Dim 可加進度, 暫停計算, 放大 As Boolean
- Dim EDR As Integer
- DIM 對話框(31) As String
- Private Sub Set_合約清單()
- Dim ds6 As New DataSet : 合約_dgv.DataSource = Nothing : ds6.Clear()
- 合約_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 合約_dgv.ColumnHeadersHeight = 25 : 合約_dgv.AllowUserToAddRows = False
- PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text : PA47 = 工程期1_ch.Text
- SQL_合約清單1()
- da.Fill(ds6) : 合約_dgv.DataSource = ds6.Tables(0) : conn.Close()
- 合約_dgv.Columns(0).FillWeight = 80 : 合約_dgv.Columns(5).FillWeight = 200 : 合約_dgv.Columns(26).FillWeight = 50
- 合約_dgv.Columns(27).FillWeight = 50 : 合約_dgv.Columns(28).FillWeight = 50
- For i As Integer = 1 To 29 : 合約_dgv.Columns(i).Visible = False : Next
- 合約_dgv.Columns(5).Visible = True : 合約_dgv.Columns(26).Visible = True : 合約_dgv.Columns(27).Visible = True : 合約_dgv.Columns(28).Visible = True
- End Sub
- Private Sub Set_進度清單()
- Dim ds5 As New DataSet : 合約2_dgv.DataSource = Nothing : ds5.Clear()
- 合約2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 合約2_dgv.ColumnHeadersHeight = 25 : 合約2_dgv.AllowUserToAddRows = False
- PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text : PA45 = 工程執行主管_cb.Text
- SQL_進度清單()
- da.Fill(ds5) : 合約2_dgv.DataSource = ds5.Tables(0) : conn.Close()
- 合約2_dgv.Columns(1).Visible = False : 合約2_dgv.Columns(2).Visible = False : 合約2_dgv.Columns(3).Visible = False : 合約2_dgv.Columns(4).Visible = False
- 合約2_dgv.Columns(5).Visible = False : 合約2_dgv.Columns(6).Visible = False : 合約2_dgv.Columns(7).Visible = False : 合約2_dgv.Columns(8).Visible = False
- 合約2_dgv.Columns(9).Visible = False : 合約2_dgv.Columns(10).Visible = False
- 合約2_dgv.Columns(0).ReadOnly = True
- If 系統語言 = "繁體中文" Then
- 合約2_dgv.Columns(表頭(1)).FillWeight = 250
- If 放大 = True Then : 合約2_dgv.Columns(表頭(1)).Visible = True : 合約2_dgv.Columns(表頭(2)).Visible = False
- Else : 合約2_dgv.Columns(表頭(1)).Visible = False : 合約2_dgv.Columns(表頭(2)).Visible = False : End If
- Else
- 合約2_dgv.Columns(表頭(2)).FillWeight = 250
- If 放大 = True Then : 合約2_dgv.Columns(表頭(1)).Visible = False : 合約2_dgv.Columns(表頭(2)).Visible = True
- Else : 合約2_dgv.Columns(表頭(1)).Visible = False : 合約2_dgv.Columns(表頭(2)).Visible = False : End If
- End If
- '--------移到錨定地點--------------------------------------------------------------------------------------------------------------------------------------------------------------
- If 合約編號_tb.Text <> "" Then : Dim searchString As String = 合約編號_tb.Text
- For Each row As DataGridViewRow In 合約2_dgv.Rows
- If row.Cells(表頭(0)).Value IsNot Nothing AndAlso row.Cells(表頭(0)).Value.ToString() = searchString Then : 合約2_dgv.CurrentCell = row.Cells(表頭(0)) : Exit For : End If
- Next
- End If
- If Panel2.Visible = False Then
- Panel2.Visible = True : Panel4.Location = New System.Drawing.Point(162, 0) : Panel4.Size = New System.Drawing.Point(Panel4.Size.Width - 162, Panel4.Size.Height)
- 甘特圖_gv.Ratio = 565 / 甘特圖_gv.Size.Width
- End If
- End Sub
- Private Sub Set_未建立進度清單()
- Dim ds5 As New DataSet : 未建清單_dgv.DataSource = Nothing : ds5.Clear()
- 未建清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 未建清單_dgv.ColumnHeadersHeight = 25 : 未建清單_dgv.AllowUserToAddRows = False
- PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text : PA45 = 工程執行主管_cb.Text
- SQL未建立甘特圖清單()
- da.Fill(ds5) : 未建清單_dgv.DataSource = ds5.Tables(0) : conn.Close()
- 未建清單_dgv.Columns(1).Visible = False : 未建清單_dgv.Columns(2).Visible = False : 未建清單_dgv.Columns(3).Visible = False : 未建清單_dgv.Columns(4).Visible = False
- 未建清單_dgv.Columns(5).Visible = False : 未建清單_dgv.Columns(6).Visible = False : 未建清單_dgv.Columns(7).Visible = False : 未建清單_dgv.Columns(8).Visible = False
- 未建清單_dgv.Columns(9).Visible = False : 未建清單_dgv.Columns(10).Visible = False : 未建清單_dgv.Columns(11).Visible = False
- 未建清單_dgv.Columns(0).ReadOnly = True
- For i As Integer = 0 To 未建清單_dgv.Rows.Count - 1
- If Strings.Left(未建清單_dgv("乙方", i).Value.ToString, 2) = "HX" Then : 未建清單_dgv("乙方", i).Value = "HX" : Else : 未建清單_dgv("乙方", i).Value = "PGS" : End If
- Dim strA As String = 未建清單_dgv("開始日期", i).Value.ToString : Dim dateA As Date = Date.ParseExact(strA, "yyyy/MM/dd", DateTimeFormatInfo.InvariantInfo)
- Dim days As Integer = 未建清單_dgv("工期", i).Value.ToString : Dim newDate As Date = dateA.AddDays(days) : 未建清單_dgv("結束日期", i).Value = newDate.ToString("yyyy/MM/dd")
- 未建清單_dgv("間距", i).Value = "月"
- Next
- If 系統語言 = "繁體中文" Then
- 未建清單_dgv.Columns(表頭(1)).FillWeight = 250 : 未建清單_dgv.Columns(表頭(1)).Visible = True : 未建清單_dgv.Columns(表頭(2)).Visible = False
- Else
- 未建清單_dgv.Columns(表頭(2)).FillWeight = 250 : 未建清單_dgv.Columns(表頭(1)).Visible = False : 未建清單_dgv.Columns(表頭(2)).Visible = True
- End If
- End Sub
- Private Sub 甲方條件下拉清單讀取()
- SQL合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : End While : conn.Close()
- End Sub
- Private Sub 執行主管下拉清單讀取()
- SQL執行主管下拉() : 帳號_cb.Items.Clear() : 職稱_cb.Items.Clear() : 工程執行主管_cb.Items.Clear()
- 帳號_cb.Items.Add("") : 職稱_cb.Items.Add("") : 工程執行主管_cb.Items.Add("")
- While (dr.Read()) : 帳號_cb.Items.Add(dr("帳號")) : 職稱_cb.Items.Add(dr("職稱")) : 工程執行主管_cb.Items.Add(dr("姓名")) : End While : conn.Close()
- End Sub
- Private Sub Set_語言()
- 語言_dgv.DataSource = Nothing
- 語言_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 語言_dgv.ColumnHeadersHeight = 25
- 語言_dgv.AllowUserToAddRows = False
- For i As Integer = 0 To 語言_dgv.Rows.Count - 1 : 語言_dgv.Rows.RemoveAt(0) : Next
- If File.Exists(Str + "\LANGUAGE_FILE.csv") Then
- Dim filereader = My.Computer.FileSystem.OpenTextFileReader(Str + "\LANGUAGE_FILE.csv", System.Text.Encoding.Default)
- Dim line As String = filereader.ReadLine()
- While Not (line Is Nothing)
- line = filereader.ReadLine()
- If line <> Nothing Then
- line = line.Replace("""", "")
- If Strings.Left(line, 4) = "G000" Or Strings.Left(line, 8) = "H001-108" Or Strings.Left(line, 8) = "H110-118" Or Strings.Left(line, 4) = 介面 Then
- If 系統語言 = "繁體中文" Then
- If Strings.Mid(line, 10, 2) = "CH" Then : 語言_dgv.Rows.Insert(0)
- 語言_dgv.Rows(0).Cells(0).Value = Strings.Left(line, 11)
- If Strings.Mid(line, 13, 300).EndsWith(",") Then
- 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300).Substring(0, Strings.Mid(line, 13, 300).Length - 1)
- Else : 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300) : End If
- End If
- ElseIf 系統語言 = "English" Then
- If Strings.Mid(line, 10, 2) = "EN" Then : 語言_dgv.Rows.Insert(0)
- 語言_dgv.Rows(0).Cells(0).Value = Strings.Left(line, 11)
- If Strings.Mid(line, 13, 300).EndsWith(",") Then
- 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300).Substring(0, Strings.Mid(line, 13, 300).Length - 1)
- Else : 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300) : End If
- End If
- ElseIf 系統語言 = "Indonesian" Then
- If Strings.Mid(line, 10, 2) = "IN" Then : 語言_dgv.Rows.Insert(0)
- 語言_dgv.Rows(0).Cells(0).Value = Strings.Left(line, 11)
- If Strings.Mid(line, 13, 300).EndsWith(",") Then
- 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300).Substring(0, Strings.Mid(line, 13, 300).Length - 1)
- Else : 語言_dgv.Rows(0).Cells(1).Value = Strings.Mid(line, 13, 300) : End If
- End If
- End If
- End If
- End If
- End While
- filereader.Close()
- End If
- End Sub
- Private Sub Set_語言查詢()
- RI = -1 : For Each row As DataGridViewRow In 語言_dgv.Rows
- If Strings.Left(row.Cells(0).Value.ToString(), 8) = SK Then
- RI = row.Index : Exit For
- End If
- Next
- End Sub
- Private Sub 語言轉換讀取()
- Set_語言()
- SK = "H001-108" : Set_語言查詢() : Me.Text = 語言_dgv(1, RI).Value.ToString : SK = "G000-108" : Set_語言查詢() : ToolTip1.ToolTipTitle = 語言_dgv(1, RI).Value.ToString
- SK = "G000-198" : Set_語言查詢() : 對話框(0) = 語言_dgv(1, RI).Value.ToString : SK = "G000-113" : Set_語言查詢() : 對話框(1) = 語言_dgv(1, RI).Value.ToString
- SK = "H401-100" : Set_語言查詢() : 對話框(2) = 語言_dgv(1, RI).Value.ToString : SK = "H401-101" : Set_語言查詢() : 對話框(3) = 語言_dgv(1, RI).Value.ToString
- SK = "H401-102" : Set_語言查詢() : 對話框(4) = 語言_dgv(1, RI).Value.ToString : SK = "H401-103" : Set_語言查詢() : 對話框(5) = 語言_dgv(1, RI).Value.ToString
- SK = "H401-104" : Set_語言查詢() : 對話框(6) = 語言_dgv(1, RI).Value.ToString : SK = "H401-105" : Set_語言查詢() : 對話框(7) = 語言_dgv(1, RI).Value.ToString
- SK = "H401-106" : Set_語言查詢() : 對話框(8) = 語言_dgv(1, RI).Value.ToString : SK = "H401-107" : Set_語言查詢() : 對話框(9) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-199" : Set_語言查詢() : 對話框(10) = 語言_dgv(1, RI).Value.ToString : SK = "G000-110" : Set_語言查詢() : 對話框(11) = 語言_dgv(1, RI).Value.ToString
- SK = "H401-108" : Set_語言查詢() : Label7.Text = 語言_dgv(1, RI).Value.ToString : SK = "H110-118" : Set_語言查詢() : Label40.Text = 語言_dgv(1, RI).Value.ToString
- SK = "H401-109" : Set_語言查詢() : Label1.Text = 語言_dgv(1, RI).Value.ToString : SK = "G000-200" : Set_語言查詢() : Label6.Text = 語言_dgv(1, RI).Value.ToString
- SK = "H401-110" : Set_語言查詢() : Label2.Text = 語言_dgv(1, RI).Value.ToString : SK = "H401-116" : Set_語言查詢() : 對話框(30) = 語言_dgv(1, RI).Value.ToString
- SK = "H401-111" : Set_語言查詢() : Label5.Text = 語言_dgv(1, RI).Value.ToString : SK = "G000-201" : Set_語言查詢() : Label8.Text = 語言_dgv(1, RI).Value.ToString
- SK = "H401-112" : Set_語言查詢() : Label3.Text = 語言_dgv(1, RI).Value.ToString : SK = "H401-113" : Set_語言查詢() : Label4.Text = 語言_dgv(1, RI).Value.ToString
- SK = "H401-114" : Set_語言查詢() : 高級編輯_lb.Text = 語言_dgv(1, RI).Value.ToString : SK = "G000-118" : Set_語言查詢() : 對話框(12) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-202" : Set_語言查詢() : 對話框(13) = 語言_dgv(1, RI).Value.ToString : SK = "G000-203" : Set_語言查詢() : 對話框(14) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-204" : Set_語言查詢() : 對話框(15) = 語言_dgv(1, RI).Value.ToString : SK = "G000-205" : Set_語言查詢() : 對話框(16) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-206" : Set_語言查詢() : 對話框(17) = 語言_dgv(1, RI).Value.ToString : SK = "G000-207" : Set_語言查詢() : 對話框(18) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-208" : Set_語言查詢() : 對話框(19) = 語言_dgv(1, RI).Value.ToString : SK = "G000-209" : Set_語言查詢() : 對話框(20) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-210" : Set_語言查詢() : 對話框(21) = 語言_dgv(1, RI).Value.ToString : SK = "G000-211" : Set_語言查詢() : 對話框(22) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-212" : Set_語言查詢() : 對話框(23) = 語言_dgv(1, RI).Value.ToString : SK = "G000-119" : Set_語言查詢() : 對話框(24) = 語言_dgv(1, RI).Value.ToString
- SK = "H401-115" : Set_語言查詢() : 對話框(25) = 語言_dgv(1, RI).Value.ToString : SK = "G000-213" : Set_語言查詢() : 對話框(26) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-214" : Set_語言查詢() : 對話框(27) = 語言_dgv(1, RI).Value.ToString : SK = "G000-120" : Set_語言查詢() : 對話框(28) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-126" : Set_語言查詢() : 對話框(29) = 語言_dgv(1, RI).Value.ToString : SK = "G000-215" : Set_語言查詢() : 表頭(1) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-216" : Set_語言查詢() : 表頭(2) = 語言_dgv(1, RI).Value.ToString : SK = "H401-117" : Set_語言查詢() : 對話框(31) = 語言_dgv(1, RI).Value.ToString
- SK = "G000-156" : Set_語言查詢() : Label379.Text = 語言_dgv(1, RI).Value.ToString : 表頭(0) = 語言_dgv(1, RI).Value.ToString
- End Sub
- Private Sub 縮放2_bt_MouseEnter(sender As Object, e As EventArgs) Handles 縮放2_bt.MouseEnter
- ToolTip1.SetToolTip(Me.縮放2_bt, 對話框(0))
- End Sub
- Private Sub 縮放1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 縮放1_bt.MouseEnter
- ToolTip1.SetToolTip(Me.縮放1_bt, 對話框(0))
- End Sub
- Private Sub 查詢_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢_bt.MouseEnter
- ToolTip1.SetToolTip(Me.查詢_bt, 對話框(1))
- End Sub
- Private Sub 新增主項_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增主項_bt.MouseEnter
- ToolTip1.SetToolTip(Me.新增主項_bt, 對話框(2))
- End Sub
- Private Sub 創建甘特圖_bt_MouseEnter(sender As Object, e As EventArgs) Handles 創建甘特圖_bt.MouseEnter
- ToolTip1.SetToolTip(Me.創建甘特圖_bt, 對話框(3))
- End Sub
- Private Sub 刪除項目_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除項目_bt.MouseEnter
- ToolTip1.SetToolTip(Me.刪除項目_bt, 對話框(4))
- End Sub
- Private Sub 新增子項1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增子項1_bt.MouseEnter
- ToolTip1.SetToolTip(Me.新增子項1_bt, 對話框(5))
- End Sub
- Private Sub 新增子項2_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增子項2_bt.MouseEnter
- ToolTip1.SetToolTip(Me.新增子項2_bt, 對話框(6))
- End Sub
- Private Sub 新增標點1_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增標點1_bt.MouseEnter
- ToolTip1.SetToolTip(Me.新增標點1_bt, 對話框(7))
- End Sub
- Private Sub 新增標點2_bt_MouseEnter(sender As Object, e As EventArgs) Handles 新增標點2_bt.MouseEnter
- ToolTip1.SetToolTip(Me.新增標點2_bt, 對話框(8))
- End Sub
- Private Sub 進度表刪除_bt_MouseEnter(sender As Object, e As EventArgs) Handles 進度表刪除_bt.MouseEnter
- ToolTip1.SetToolTip(Me.進度表刪除_bt, 對話框(9))
- End Sub
- Private Sub 導出_bt_MouseEnter(sender As Object, e As EventArgs) Handles 導出_bt.MouseEnter
- ToolTip1.SetToolTip(Me.導出_bt, 對話框(10))
- End Sub
- Private Sub 存檔_bt_MouseEnter(sender As Object, e As EventArgs) Handles 存檔_bt.MouseEnter
- ToolTip1.SetToolTip(Me.存檔_bt, 對話框(11))
- End Sub
- Private Sub 新甘特圖模板_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Me.MdiParent = HX_PGS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True : HX_PGS_ERP_SYS.WindowState = 2
- H(401) = True : 介面 = "H401" : 語言轉換讀取() : 顯示說明(999, False)
- 視窗2_pl.Visible = False : Panel1.SendToBack()
- If CInt(登入人級別) <= 3 Then : 進度表刪除_bt.Enabled = True : 工程執行主管_cb.Enabled = True
- ElseIf CInt(登入人級別) > 3 Then : 進度表刪除_bt.Enabled = False : 工程執行主管_cb.Enabled = False : End If
- End Sub
- Private Sub 新甘特圖模板_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
- 執行主管下拉清單讀取() : 甲方條件下拉清單讀取() : Set_合約清單() : Set_進度清單() : 新甘特圖模板_Siz()
- End Sub
- Private Sub 新甘特圖模板_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
- MyMod.虛擬桌面開啟()
- End Sub
- Private Sub 新甘特圖模板_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged
- 新甘特圖模板_Siz() : 甘特圖_gv.Ratio = 565 / 甘特圖_gv.Size.Width
- End Sub
- Private Sub 新甘特圖模板_Siz()
- MyMod.清單字體大小調整()
- 合約_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
- 合約2_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", HX_PGS_ERP_SYS.字體_NUD.Value)
- End Sub
- Private Sub 語轉扭_bt_Click(sender As Object, e As EventArgs) Handles 語轉扭_bt.Click
- H(401) = True : 介面 = "H401" : 語言轉換讀取() : Set_進度清單() : Set_未建立進度清單()
- End Sub
- Private Sub 未建清單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 未建清單_dgv.CellClick
- If e.RowIndex = -1 Then : Else : 暫停計算 = True
- 合約編號_cb.Text = 未建清單_dgv("乙方", e.RowIndex).Value.ToString : 合約編號1_tb.Text = 未建清單_dgv("甲方", e.RowIndex).Value.ToString
- 合約編號2_tb.Text = 未建清單_dgv("立約號", e.RowIndex).Value.ToString : 合約編號3_tb.Text = 未建清單_dgv("序號", e.RowIndex).Value.ToString
- 合約編號_tb.Text = 未建清單_dgv(表頭(0), e.RowIndex).Value.ToString : 工程名稱_中_tb.Text = 未建清單_dgv(表頭(1), e.RowIndex).Value.ToString
- 工程名稱_英_tb.Text = 未建清單_dgv(表頭(2), e.RowIndex).Value.ToString : 工程執行主管_cb.Text = 未建清單_dgv("項目負責", e.RowIndex).Value.ToString
- 開始日期_dtp.Value = 未建清單_dgv("開始日期", e.RowIndex).Value.ToString : 結束日期_dtp.Value = 未建清單_dgv("結束日期", e.RowIndex).Value.ToString
- 暫停計算 = False : 時間區間計算() : 可加進度 = True
- 新建甘特圖() : 新增主項_bt.PerformClick() : 新增主項_bt.PerformClick() : 新增主項_bt.PerformClick()
- 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 : 暫停計算 = True
- If 放大 = True Then : 縮放2_bt.PerformClick() : End If
- 合約編號_cb.Text = 合約2_dgv("乙方", e.RowIndex).Value.ToString : 合約編號1_tb.Text = 合約2_dgv("甲方", e.RowIndex).Value.ToString
- 合約編號2_tb.Text = 合約2_dgv("立約號", e.RowIndex).Value.ToString : 合約編號3_tb.Text = 合約2_dgv("序號", e.RowIndex).Value.ToString
- 合約編號_tb.Text = 合約2_dgv(表頭(0), e.RowIndex).Value.ToString : 工程名稱_中_tb.Text = 合約2_dgv(表頭(1), e.RowIndex).Value.ToString
-
- If 合約2_dgv("間距", e.RowIndex).Value.ToString = "天" Then : 天_ch.Checked = True : 周_ch.Checked = False : 月_ch.Checked = False
- ElseIf 合約2_dgv("間距", e.RowIndex).Value.ToString = "周" Then : 天_ch.Checked = False : 周_ch.Checked = True : 月_ch.Checked = False
- ElseIf 合約2_dgv("間距", e.RowIndex).Value.ToString = "月" Then : 天_ch.Checked = False : 周_ch.Checked = False : 月_ch.Checked = True : End If
-
- 暫停計算 = False : 時間區間計算() : 可加進度 = True
-
- Dim ds1 As New DataSet
- PA5 = 合約編號_tb.Text : ds1.Clear() : SQL_工程進度表讀取() : da.Fill(ds1)
- 下載檔案位置1 = Str + "\" & PA5 & "_Items.csv"
- 下載檔案位置2 = Str + "\" & PA5 & "_Links.csv"
- If 下載檔案位置1 <> "" Then : If File.Exists(下載檔案位置1) Then : File.Delete(下載檔案位置1) : End If : End If
- If 下載檔案位置2 <> "" Then : If File.Exists(下載檔案位置2) Then : File.Delete(下載檔案位置2) : End If : End If
- If ds1.Tables(0).Rows.Count > 0 Then
- If IsDBNull(ds1.Tables(0).Rows(0).Item("清單")) = False Then
- Dim imgData1() As Byte : imgData1 = ds1.Tables(0).Rows(0).Item("清單")
- Dim imgData2() As Byte : imgData2 = ds1.Tables(0).Rows(0).Item("連線")
- Dim fs1 As FileStream : fs1 = File.Create(Str + "\" & PA5 & "_Items.csv", imgData1.Length - 1)
- Dim fs2 As FileStream : fs2 = File.Create(Str + "\" & PA5 & "_Links.csv", imgData2.Length - 1)
- fs1.Write(imgData1, 0, imgData1.Length - 1) : fs1.Close()
- fs2.Write(imgData2, 0, imgData2.Length - 1) : fs2.Close()
-
- 檔名 = 合約編號_tb.Text
- 設定清單_dgv.DataSource = Nothing : 清單_dgv.DataSource = Nothing
- 連線清單_dgv.Rows.Clear() : 甘特圖_gv.GanttViewElement.SelectedItem = Nothing
- 甘特圖_gv.Links.Clear() : 連線清單_dgv.Rows.Clear() : 甘特圖_gv.GanttViewElement.SelectedItem = Nothing
- 載入Itemcsv內容() : 載入Linkcsv內容() : 載入甘特圖()
- If 設定清單_dgv.Rows.Count > 0 Then : 載入Links() : End If
- Else : 新建甘特圖() : 新增主項_bt.PerformClick() : 新增主項_bt.PerformClick() : 新增主項_bt.PerformClick() : End If
- End If : conn.Close()
- If 下載檔案位置1 <> "" Then : If File.Exists(下載檔案位置1) Then : File.Delete(下載檔案位置1) : End If : End If
- If 下載檔案位置2 <> "" Then : If File.Exists(下載檔案位置2) Then : File.Delete(下載檔案位置2) : End If : End If
- Panel2.Visible = False : Panel4.Location = New System.Drawing.Point(0, 0) : Panel4.Size = New System.Drawing.Point(Panel4.Size.Width + 162, Panel4.Size.Height)
- 甘特圖_gv.Ratio = 565 / 甘特圖_gv.Size.Width
- 開始日期_dtp.Value = 合約2_dgv("開始日期", e.RowIndex).Value.ToString : 結束日期_dtp.Value = 合約2_dgv("結束日期", e.RowIndex).Value.ToString
- 工程名稱_英_tb.Text = 合約2_dgv(表頭(2), e.RowIndex).Value.ToString : 工程執行主管_cb.Text = 合約2_dgv("項目負責", e.RowIndex).Value.ToString
- End If
- End Sub
- Private Sub 時間區間計算()
- If 天_ch.Checked = True Then : 間距_nud.Value = DateDiff("d", 開始日期_dtp.Value, 結束日期_dtp.Value)
- If 間距_nud.Value > 55 Then : 天_ch.Checked = False : 周_ch.Checked = True : 月_ch.Checked = False
- 間距_nud.Value = DateDiff("ww", 開始日期_dtp.Value, 結束日期_dtp.Value) : End If
- ElseIf 周_ch.Checked = True Then : 間距_nud.Value = DateDiff("ww", 開始日期_dtp.Value, 結束日期_dtp.Value)
- If 間距_nud.Value > 55 Then : 天_ch.Checked = False : 周_ch.Checked = False : 月_ch.Checked = True
- 間距_nud.Value = DateDiff("m", 開始日期_dtp.Value, 結束日期_dtp.Value) : End If
- ElseIf 月_ch.Checked = True Then : 間距_nud.Value = DateDiff("m", 開始日期_dtp.Value, 結束日期_dtp.Value) : End If
- End Sub
- Private Sub 新建甘特圖()
- 設定清單_dgv.DataSource = Nothing : 清單_dgv.DataSource = Nothing
- 連線清單_dgv.Rows.Clear() : 甘特圖_gv.GanttViewElement.SelectedItem = Nothing
- 載入甘特圖() : If 設定清單_dgv.Rows.Count > 0 Then : 載入Links() : End If
- End Sub
- Private Sub 創建甘特圖_bt_Click(sender As Object, e As EventArgs) Handles 創建甘特圖_bt.Click
- Dim XD As Integer = Me.Size.Width : XD = (XD - 750) / 2 : Dim YD As Integer = Me.Size.Height : YD = (YD - 583) / 2
- If 視窗2_pl.Visible = False Then
- 視窗2_pl.Location = New System.Drawing.Point(XD, YD) : 視窗2_pl.BringToFront() : 視窗2_pl.Visible = True : Set_未建立進度清單()
- Else : 視窗2_pl.Visible = False : End If
- End Sub
- Private Sub CanceL2_bt_Click(sender As Object, e As EventArgs) Handles CanceL2_bt.Click
- If 視窗2_pl.Visible = False Then : 視窗2_pl.Visible = True : 視窗2_pl.BringToFront() : Else
- 視窗2_pl.Visible = False : End If
- End Sub
- Private Sub 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged
- Set_合約清單() : Set_進度清單()
- End Sub
- Private Sub 工程執行主管_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工程執行主管_cb.SelectedIndexChanged
- 帳號_cb.SelectedIndex = 工程執行主管_cb.SelectedIndex : 職稱_cb.SelectedIndex = 工程執行主管_cb.SelectedIndex : Set_進度清單()
- End Sub
- Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click
- Dim NX, NY, NX1, NY1 As Integer : NX = 合約2_dgv.Size.Width : NY = 合約2_dgv.Size.Height : NX1 = Panel2.Size.Width : NY1 = Panel2.Size.Height
- If 系統語言 = "繁體中文" Then
- 合約2_dgv.Columns(表頭(1)).FillWeight = 250
- If 放大 = True Then
- 合約2_dgv.Size = New System.Drawing.Point(NX - 400, NY) : 放大 = False : 合約2_dgv.Columns(表頭(1)).Visible = False : 合約2_dgv.Columns(表頭(2)).Visible = False
- Panel2.Size = New System.Drawing.Point(NX1 - 400, NY1)
- Else
- 合約2_dgv.Size = New System.Drawing.Point(NX + 400, NY) : 放大 = True : 合約2_dgv.Columns(表頭(1)).Visible = True : 合約2_dgv.Columns(表頭(2)).Visible = False
- Panel2.Size = New System.Drawing.Point(NX1 + 400, NY1)
- End If
- Else
- 合約2_dgv.Columns(表頭(2)).FillWeight = 250
- If 放大 = True Then
- 合約2_dgv.Size = New System.Drawing.Point(NX - 400, NY) : 放大 = False : 合約2_dgv.Columns(表頭(1)).Visible = False : 合約2_dgv.Columns(表頭(2)).Visible = False
- Panel2.Size = New System.Drawing.Point(NX1 - 400, NY1)
- Else
- 合約2_dgv.Size = New System.Drawing.Point(NX + 400, NY) : 放大 = True : 合約2_dgv.Columns(表頭(1)).Visible = False : 合約2_dgv.Columns(表頭(2)).Visible = True
- Panel2.Size = New System.Drawing.Point(NX1 + 400, NY1)
- End If
- End If
- End Sub
- Private Sub 載入CSV檔()
- 項目清單_dgv.AllowUserToAddRows = False : 項目清單_dgv.AllowUserToDeleteRows = False : 項目清單_dgv.AllowUserToResizeRows = False
- 項目清單_dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill : 項目清單_dgv.ReadOnly = True : 項目清單_dgv.RowHeadersVisible = False
- 項目清單_dgv.Columns.Add("File Name", "File Name") : Dim fileNames() As String = Directory.GetFiles("./GanttView", "*.csv")
- For Each fileName As String In fileNames
- Dim name As String = Path.GetFileNameWithoutExtension(fileName).Split("_"c)(0)
- If Not 項目清單_dgv.Rows.Cast(Of DataGridViewRow)().Any(Function(row) row.Cells("File Name").Value = name) Then : Dim row As String() = {name} : 項目清單_dgv.Rows.Add(row) : End If
- Next
- End Sub
- Private Sub 載入甘特圖()
- 甘特圖_gv.Items.Clear() : 甘特圖_gv.Columns.Clear()
- '新增表格表頭
- Dim titleColumn As New GanttViewTextViewColumn("Title") : Dim startColumn As New GanttViewTextViewColumn("Start") : Dim endColumn As New GanttViewTextViewColumn("End")
- Me.甘特圖_gv.GanttViewElement.Columns.Add(titleColumn) : Me.甘特圖_gv.GanttViewElement.Columns.Add(startColumn) : Me.甘特圖_gv.GanttViewElement.Columns.Add(endColumn)
- Me.甘特圖_gv.GanttViewElement.Columns("Title").HeaderText = 對話框(30)
- Me.甘特圖_gv.GanttViewElement.Columns("Start").HeaderText = Label1.Text
- Me.甘特圖_gv.GanttViewElement.Columns("End").HeaderText = Label2.Text
- '甘特圖時間指標設定
- Dim todayIndicator As GanttViewTodayIndicatorElement = Me.甘特圖_gv.GanttViewElement.GraphicalViewElement.TodayIndicatorElement
- todayIndicator.BackColor = Color.Red : todayIndicator.BackColor2 = Color.Red
- Dim timelineTodayIndicator As GanttViewTimelineTodayIndicatorElement = Me.甘特圖_gv.GanttViewElement.GraphicalViewElement.TimelineTodayIndicatorElement
- timelineTodayIndicator.BackColor = Color.Green : timelineTodayIndicator.BackColor2 = Color.Green
- If 清單_dgv.Rows.Count > 0 Then
- 開始日期_dtp.Value = 清單_dgv.Rows(0).Cells(1).Value.ToString() : 結束日期_dtp.Value = 清單_dgv.Rows(清單_dgv.Rows.Count - 1).Cells(2).Value.ToString()
- For i As Integer = 0 To 清單_dgv.Rows.Count - 1
- Dim progress As Double = 清單_dgv.Rows(i).Cells(3).Value.ToString()
- Dim item As New GanttViewDataItem With {
- .Start = 清單_dgv.Rows(i).Cells(1).Value.ToString(),
- .End = 清單_dgv.Rows(i).Cells(2).Value.ToString(),
- .Progress = progress,
- .Title = 清單_dgv.Rows(i).Cells(0).Value.ToString()
- }
- Dim parentTitle As String = 清單_dgv.Rows(i).Cells(5).Value.ToString() : Dim level As Integer = CInt(清單_dgv.Rows(i).Cells(6).Value.ToString())
- If level = 1 Then : If parentTitle = "Nothing" Then : Me.甘特圖_gv.Items.Add(item) : End If
- ElseIf level = 2 Then : Dim parentIndex As Integer = -1
- For m As Integer = 0 To 甘特圖_gv.Items.Count - 1 : If 甘特圖_gv.Items(m).Title = parentTitle Then : parentIndex = m : End If : Next
- If parentIndex <> -1 Then : 甘特圖_gv.Items(parentIndex).Items.Add(item) : End If
- ElseIf level = 3 Then
- For Each rootItem As GanttViewDataItem In 甘特圖_gv.Items
- For Each childItem As GanttViewDataItem In rootItem.Items
- If childItem.Title = parentTitle Then : 甘特圖_gv.Items(rootItem.Index).Items(childItem.Index).Items.Add(item) : End If
- Next
- Next
- ElseIf level = 4 Then
- Dim parentItems = From rootItem In 甘特圖_gv.Items
- From childItem In rootItem.Items
- From grandchildItem In childItem.Items
- Where grandchildItem.Title = parentTitle
- Select New With {
- .RootIndex = rootItem.Index,
- .ChildIndex = childItem.Index,
- .GrandchildIndex = grandchildItem.Index
- }
- For Each parentItem In parentItems : 甘特圖_gv.Items(parentItem.RootIndex).Items(parentItem.ChildIndex).Items(parentItem.GrandchildIndex).Items.Add(item) : Next
- ElseIf level = 5 Then
- Dim parentItems = From rootItem In 甘特圖_gv.Items
- From childItem In rootItem.Items
- From grandchildItem In childItem.Items
- From fivechildItem In grandchildItem.Items
- Where fivechildItem.Title = parentTitle
- Select New With {
- .RootIndex = rootItem.Index,
- .ChildIndex = childItem.Index,
- .GrandchildIndex = grandchildItem.Index,
- .FiveChildIndex = fivechildItem.Index
- }
- For Each parentItem In parentItems
- 甘特圖_gv.Items(parentItem.RootIndex).Items(parentItem.ChildIndex).Items(parentItem.GrandchildIndex).Items(parentItem.FiveChildIndex).Items.Add(item)
- Next
- End If
- Next
- Else : End If
- 甘特圖_gv.GanttViewElement.GraphicalViewElement.OnePixelTime = New TimeSpan(0, 50, 0)
- Me.甘特圖_gv.GanttViewElement.Columns(0).Width = 300 : Me.甘特圖_gv.GanttViewElement.Columns(1).Width = 130 : Me.甘特圖_gv.GanttViewElement.Columns(2).Width = 130
- End Sub
- Private Sub 載入Links()
- For i As Integer = 0 To 設定清單_dgv.Rows.Count - 1
- Dim linkItem As New GanttViewLinkDataItem With {
- .StartItem = FindItemByTitle(甘特圖_gv.Items, 設定清單_dgv.Rows(i).Cells(0).Value.ToString()),
- .EndItem = FindItemByTitle(甘特圖_gv.Items, 設定清單_dgv.Rows(i).Cells(1).Value.ToString())
- }
- If 設定清單_dgv.Rows(i).Cells(2).Value.ToString() = "FinishToFinish" Then : linkItem.LinkType = 0
- ElseIf 設定清單_dgv.Rows(i).Cells(2).Value.ToString() = "FinishToStart" Then : linkItem.LinkType = 1
- ElseIf 設定清單_dgv.Rows(i).Cells(2).Value.ToString() = "StartToFinish" Then : linkItem.LinkType = 2
- Else : linkItem.LinkType = 3 : End If : Me.甘特圖_gv.Links.Add(linkItem)
- Next
- End Sub
- Private Function FindItemByTitle(items As GanttViewDataItemCollection, title As String) As GanttViewDataItem
- For Each item In items
- If item.Title = title Then : Return item : End If : Dim childItem = FindItemByTitle(item.Items, title) : If childItem IsNot Nothing Then : Return childItem : End If
- Next : Return Nothing
- End Function
- Private Sub 開始日期_rdtp_ValueChanged(sender As Object, e As EventArgs) Handles 開始日期_dtp.ValueChanged
- If 結束日期_dtp.Value >= 開始日期_dtp.Value Then
- 甘特圖_gv.GanttViewElement.GraphicalViewElement.TimelineStart = 開始日期_dtp.Value : 甘特圖_gv.GanttViewElement.GraphicalViewElement.TimelineEnd = 結束日期_dtp.Value
- End If
- End Sub
- Private Sub 結束日期_rdtp_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged
- If 結束日期_dtp.Value >= 開始日期_dtp.Value Then
- 甘特圖_gv.GanttViewElement.GraphicalViewElement.TimelineStart = 開始日期_dtp.Value : 甘特圖_gv.GanttViewElement.GraphicalViewElement.TimelineEnd = 結束日期_dtp.Value
- End If
- End Sub
- Private Sub 項目清單_dgv_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles 項目清單_dgv.CellClick
- If e.RowIndex = -1 Then : Else : 檔名 = 項目清單_dgv.Rows(e.RowIndex).Cells(0).Value.ToString()
- 甘特圖_gv.Links.Clear() : 連線清單_dgv.Rows.Clear() : 甘特圖_gv.GanttViewElement.SelectedItem = Nothing : 載入Itemcsv內容() : 載入Linkcsv內容() : 載入甘特圖()
- If 設定清單_dgv.Rows.Count > 0 Then : 載入Links() : End If
- End If
- End Sub
- Private Sub TraverseItems(ByVal item As GanttViewDataItem, ByVal level As Integer, ItemRows As List(Of String))
- Dim itemElement As GanttGraphicalViewBaseItemElement = Me.甘特圖_gv.GanttViewElement.GraphicalViewElement.GetElement(item)
- If item.Parent Is Nothing Then
- ItemRows.Add(item.Title & "," & item.Start & "," & item.End & "," & item.Progress & "," & item.Index & "," & "Nothing" & "," & item.Level & "," & ColorTranslator.FromHtml(ColorTranslator.ToHtml(itemElement.TaskElement.BackColor)).Name)
- Else
- ItemRows.Add(item.Title & "," & item.Start & "," & item.End & "," & item.Progress & "," & item.Index & "," & item.Parent.Title & "," & item.Level & "," & ColorTranslator.FromHtml(ColorTranslator.ToHtml(itemElement.TaskElement.BackColor)).Name)
- End If
- For Each childItem As GanttViewDataItem In item.Items : TraverseItems(childItem, level + 1, ItemRows) : Next
- End Sub
- Public Class MyRadGanttView
- Inherits RadGanttView
- Public Sub Export(ByVal path As String)
- Dim traverser As New GanttViewTraverser(Me.GanttViewElement) : traverser.TraverseAllItems = True : Dim flatItemsCollection As New List(Of GanttViewDataItem)()
- While traverser.MoveNext() : flatItemsCollection.Add(traverser.Current) : End While : Dim height As Single = flatItemsCollection.Count * Me.ItemHeight + Me.HeaderHeight
- Dim width As Single = CSng((Me.GanttViewElement.GraphicalViewElement.TimelineBehavior.AdjustedTimelineEnd.AddDays(1) -
- Me.GanttViewElement.GraphicalViewElement.TimelineBehavior.AdjustedTimelineStart).TotalSeconds /
- CSng(Me.GanttViewElement.GraphicalViewElement.OnePixelTime.TotalSeconds))
- Dim columnsWidth As Integer = 0
- For Each col As GanttViewTextViewColumn In Me.Columns : If col.Visible Then : columnsWidth += col.Width : End If : Next
- width += columnsWidth : Dim bmp As New Bitmap(CInt(width), CInt(height)) : Me.drawArea = New RectangleF(0, 0, columnsWidth, 100)
- Using grp As Graphics = Graphics.FromImage(bmp) : grp.FillRectangle(Brushes.White, 0, 0, bmp.Width, bmp.Height) : End Using
- MyBase.DrawTextViewAndGraphicalViewToBitmap(bmp) : MyBase.DrawHeaderAndTimelineViewToBitmap(bmp) : bmp.Save(path)
- End Sub
- End Class
- Private Sub 甘特圖_gv_TxtViewCellFormatting(sender As Object, e As GanttViewTextViewCellFormattingEventArgs) Handles 甘特圖_gv.TextViewCellFormatting
- e.CellElement.BackColor = Color.White
- End Sub
- Private Sub 甘特圖_gv_TextViewItemFormatting(sender As Object, e As GanttViewTextViewItemFormattingEventArgs) Handles 甘特圖_gv.TextViewItemFormatting
- If (e.Item.Items.Count > 0) Then : e.ItemElement.DrawFill = True : e.ItemElement.BackColor = Color.LightSeaGreen : e.ItemElement.GradientStyle = GradientStyles.Solid
- ElseIf (e.Item.Start <> e.Item.End) Then : e.ItemElement.DrawFill = True : e.ItemElement.BackColor = Color.LightYellow : e.ItemElement.GradientStyle = GradientStyles.Solid
- Else : e.ItemElement.ResetValue(LightVisualElement.DrawBorderProperty, ValueResetFlags.Local) : e.ItemElement.ResetValue(LightVisualElement.BackColorProperty, ValueResetFlags.Local)
- e.ItemElement.ResetValue(LightVisualElement.GradientStyleProperty, ValueResetFlags.Local)
- End If
- End Sub
- Private Sub 甘特圖_gv_TimelineItemFormatting(sender As Object, e As GanttViewTimelineItemFormattingEventArgs) Handles 甘特圖_gv.TimelineItemFormatting
- Dim currentCulture As CultureInfo = CultureInfo.CurrentCulture
- Dim weekNo As Integer = currentCulture.Calendar.GetWeekOfYear(e.Item.Start, currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek)
- Dim color1 As Color = Color.Black : Dim color2 As Color = Color.White : If weekNo Mod 2 = 0 Then : color1 = Color.White : color2 = Color.Black : End If
- e.ItemElement.TopElement.DrawFill = True : e.ItemElement.TopElement.DrawBorder = False : e.ItemElement.TopElement.GradientStyle = GradientStyles.Solid
- e.ItemElement.TopElement.BackColor = color1 : e.ItemElement.TopElement.ForeColor = color2 : e.ItemElement.Size = New Size(e.ItemElement.Size.Width, 60)
- End Sub
- Private Sub 甘特圖_gv_GraphicalViewItemFormatting(sender As Object, e As GanttViewGraphicalViewItemFormattingEventArgs) Handles 甘特圖_gv.GraphicalViewItemFormatting
- For i As Integer = 0 To 連線清單_dgv.Rows.Count - 2
- Dim startItem2 As GanttViewDataItem = FindItemByTitle(甘特圖_gv.Items, 連線清單_dgv.Rows(i).Cells(0).Value.ToString())
- Dim endItem2 As GanttViewDataItem = FindItemByTitle(甘特圖_gv.Items, 連線清單_dgv.Rows(i).Cells(1).Value.ToString())
- If startItem2 IsNot Nothing AndAlso endItem2 IsNot Nothing Then
- If startItem2.Title.Contains("New Item") Or endItem2.Title.Contains("New Item") Then : Else
- If endItem2.Start < startItem2.End Then
- Dim totalDuration As TimeSpan = endItem2.End - endItem2.Start : endItem2.Start = startItem2.End : endItem2.End = endItem2.Start + totalDuration
- End If
- End If
- End If
- Next
- For Each row In 清單_dgv.Rows
- If row.Cells(0).Value.ToString() = e.Item.Title Then : e.ItemElement.TaskElement.BackColor = Color.FromName(row.Cells(7).Value.ToString()) : Exit For : End If
- Next
- End Sub
- Private Sub 甘特圖_gv_GraphicalViewLinkItemFormatting(sender As Object, e As GanttViewLinkItemFormattingEventArgs) Handles 甘特圖_gv.GraphicalViewLinkItemFormatting
- Dim penColor As Color = Color.Black : Dim dash As DashStyle = DashStyle.Solid
- Select Case e.Link.LinkType
- Case TasksLinkType.FinishToFinish : dash = DashStyle.DashDotDot : penColor = Color.Red : Exit Select
- Case TasksLinkType.FinishToStart : dash = DashStyle.Dash : penColor = Color.Green : Exit Select
- Case TasksLinkType.StartToFinish : dash = DashStyle.DashDot : penColor = Color.Blue : Exit Select
- Case TasksLinkType.StartToStart : dash = DashStyle.Dot : penColor = Color.Black : Exit Select
- End Select
- Dim pen As New Pen(penColor) : pen.DashStyle = dash : pen.Width = 3 : pen.LineJoin = LineJoin.Bevel : pen.EndCap = LineCap.ArrowAnchor : e.Pen = pen
- End Sub
- Private Sub 甘特圖_gv_ToolTipTextNeeded(sender As Object, e As ToolTipTextNeededEventArgs) Handles 甘特圖_gv.ToolTipTextNeeded
- Dim taskElement As GanttViewTaskElement = TryCast(sender, GanttViewTaskElement)
- Dim mileStone As GanttViewMilestoneElement = TryCast(sender, GanttViewMilestoneElement)
- Dim summaryItem As GanttViewSummaryElement = TryCast(sender, GanttViewSummaryElement)
- If mileStone IsNot Nothing Then
- Dim itemElement As GanttViewMilestoneItemElement = TryCast(mileStone.Parent, GanttViewMilestoneItemElement)
- e.ToolTipText = itemElement.Data.Title & " : " & itemElement.Data.Start.ToShortDateString() & " - " + itemElement.Data.[End].ToShortDateString()
- End If
- If summaryItem IsNot Nothing Then
- Dim itemElement As GanttGraphicalViewBaseItemElement = TryCast(summaryItem.Parent, GanttGraphicalViewBaseItemElement)
- e.ToolTipText = itemElement.Data.Title & " : " & itemElement.Data.Start.ToShortDateString() & " - " + itemElement.Data.[End].ToShortDateString()
- End If
- If taskElement IsNot Nothing Then
- Dim itemElement As GanttGraphicalViewBaseItemElement = TryCast(taskElement.Parent, GanttGraphicalViewBaseItemElement)
- If itemElement IsNot Nothing Then
- e.ToolTipText = itemElement.Data.Title & " : " & itemElement.Data.Start.ToShortDateString() & " - " + itemElement.Data.[End].ToShortDateString()
- End If
- End If
- End Sub
- Private Sub 甘特圖_gv_SelectedItemChanged(sender As Object, e As GanttViewSelectedItemChangedEventArgs) Handles 甘特圖_gv.SelectedItemChanged
- If 甘特圖_gv.SelectedItem IsNot Nothing AndAlso 甘特圖_gv.SelectedItem.Progress.ToString() <> "" Then
- 進度_nud.Value = 甘特圖_gv.SelectedItem.Progress
- End If
- End Sub
- Private Sub 甘特圖_gv_LinkAdding(sender As Object, e As GanttViewLinkAddingEventArgs) Handles 甘特圖_gv.LinkAdding '==========連線環狀判斷、是否往後移動判斷=======
- Dim startItem As GanttViewDataItem = e.Link.StartItem : Dim endItem As GanttViewDataItem = e.Link.EndItem
- If CheckCircularDependency(startItem, endItem) Then : e.Cancel = True : End If ' 檢查新增的連結是否會形成環狀
- If IsNothing(startItem.Title) = False Then
- If startItem.Title.Contains("<New Item>") Or endItem.Title.Contains("<New Item>") Or startItem.Title.Contains("<New Child>") Or
- endItem.Title.Contains("<New Child>") Or startItem.Title.Contains("<New Milestone>") Or endItem.Title.Contains("<New Milestone>") Then : e.Cancel = True
- End If
- If e.Cancel = False Then
- If endItem.Start <= startItem.End And e.Link.LinkType = TasksLinkType.FinishToStart Then
- Dim totalDuration As TimeSpan = endItem.End - endItem.Start : endItem.Start = startItem.End : endItem.End = endItem.Start + totalDuration
- End If
- Dim row() As String = {startItem.Title, endItem.Title, e.Link.LinkType.ToString} : 連線清單_dgv.Rows.Add(row)
- End If
- End If
- End Sub
- Private Sub 甘特圖_gv_LinkRemove(sender As Object, e As GanttViewLinkRemovedEventArgs) Handles 甘特圖_gv.LinkRemoved
- For Each row In 連線清單_dgv.Rows
- If row.Cells(0).Value.ToString() = e.Link.StartItem.Title And row.Cells(1).Value.ToString() = e.Link.EndItem.Title And
- row.Cells(2).Value.ToString() = e.Link.LinkType.ToString() Then : 連線清單_dgv.Rows.Remove(row) : Exit For
- End If
- Next
- End Sub
- Private Sub 甘特圖_gv_ItemAdded(sender As Object, e As GanttViewItemAddedEventArgs) Handles 甘特圖_gv.ItemAdded
- If e.Item.Level >= 6 Then : 甘特圖_gv.SelectedItem.Items.Remove(e.Item) : End If
- End Sub
- Private Function CheckCircularDependency(startItem As GanttViewDataItem, endItem As GanttViewDataItem) As Boolean
- For Each link As GanttViewLinkDataItem In 甘特圖_gv.Links ' 檢查已經存在的連結是否和當前新增的連結形成環狀
- If link.StartItem Is endItem AndAlso link.EndItem Is startItem Then : Return True
- ElseIf link.EndItem Is startItem AndAlso CheckCircularDependency(link.StartItem, endItem) Then : Return True : End If
- Next : Return False
- End Function
- Private Sub 進度條_rtb_ValueChanged(sender As Object, e As EventArgs) Handles 進度條_rtb.ValueChanged
- Me.甘特圖_gv.GanttViewElement.GraphicalViewElement.OnePixelTime = New TimeSpan(0, CInt(Fix(Me.進度條_rtb.Value)), 0)
- End Sub
- Private Sub 載入Itemcsv內容()
- Try
- Dim dt As New DataTable() : Dim filePath As String = Str + "\" & 檔名 & "_Items.csv"
- If File.Exists(filePath) Then
- Using reader As New StreamReader(filePath) : Dim headers() As String = reader.ReadLine().Split(","c)
- For Each header As String In headers : dt.Columns.Add(header) : Next
- While Not reader.EndOfStream : Dim row() As String = reader.ReadLine().Split(","c) : dt.Rows.Add(row) : End While
- End Using
- End If
- 清單_dgv.AllowUserToAddRows = False : 清單_dgv.AllowUserToDeleteRows = False : 清單_dgv.AllowUserToResizeRows = False
- 清單_dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill : 清單_dgv.ReadOnly = True : 清單_dgv.RowHeadersVisible = False : 清單_dgv.DataSource = dt
- For i As Integer = 0 To 清單_dgv.Rows.Count - 1
- If Strings.Left(清單_dgv.Rows(i).Cells("Color").Value.ToString(), 1) = "L" Then : Else
- 清單_dgv.Rows(i).Cells("Color").Value = "LightGray"
- End If
- Next
- Catch ex As Exception : MGB(對話框(31), 1) : End Try
- End Sub
- Private Sub 載入Linkcsv內容()
- Dim dt As New DataTable() : Dim filePath As String = Str + "\" & 檔名 & "_Links.csv"
- If File.Exists(filePath) Then
- Using reader As New StreamReader(filePath) : Dim headers() As String = reader.ReadLine().Split(","c)
- For Each header As String In headers : dt.Columns.Add(header) : Next
- While Not reader.EndOfStream : Dim row() As String = reader.ReadLine().Split(","c) : dt.Rows.Add(row) : End While
- End Using
- End If
- 設定清單_dgv.AllowUserToAddRows = False : 設定清單_dgv.AllowUserToDeleteRows = False : 設定清單_dgv.AllowUserToResizeRows = False
- 設定清單_dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill : 設定清單_dgv.ReadOnly = True : 設定清單_dgv.RowHeadersVisible = False : 設定清單_dgv.DataSource = dt
- End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 導出_bt.Click
- Dim sfd As New SaveFileDialog()
- sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
- sfd.Filter = "PNG檔案 (*.png)|*.png" : sfd.FileName = 合約編號_tb.Text & ".png" '取得存檔路徑
- If sfd.ShowDialog() = DialogResult.OK Then '在這裡進行檔案存檔的程式碼
- Dim saveFilePath As String = sfd.FileName
- 甘特圖_gv.Export(saveFilePath) : MGB(對話框(29), 1)
- End If
- End Sub
- Private Sub 新增主項_bt_Click(sender As Object, e As EventArgs) Handles 新增主項_bt.Click
- Dim newItem As New GanttViewDataItem() : newItem.Start = 開始日期_dtp.Value : newItem.End = 開始日期_dtp.Value.AddDays(3)
- newItem.Title = "<New Item>" : 甘特圖_gv.Items.Add(newItem)
- End Sub
- Private Sub 工程進度表檔案更新()
- 檔名 = 合約編號_tb.Text
- 下載檔案位置1 = Str + "\" & 檔名 & "_Items.csv"
- 下載檔案位置2 = Str + "\" & 檔名 & "_Links.csv"
- If 下載檔案位置1 <> "" Then : If File.Exists(下載檔案位置1) Then : File.Delete(下載檔案位置1) : End If : End If
- If 下載檔案位置2 <> "" Then : If File.Exists(下載檔案位置2) Then : File.Delete(下載檔案位置2) : End If : End If
- '==========Links.csv==================
- Dim filePath As String = Str + "\" & 檔名 & "_Links.csv" : Dim LinkRows As New List(Of String)()
- For i As Integer = 0 To 甘特圖_gv.Links.Count - 1
- LinkRows.Add(甘特圖_gv.Links(i).StartItem.Title & "," & 甘特圖_gv.Links(i).EndItem.Title & "," & 甘特圖_gv.Links(i).LinkType.ToString())
- Next
- File.WriteAllText(filePath, "StartItem, EndItem, LinkType" & Environment.NewLine)
- File.AppendAllLines(filePath, LinkRows)
- '============Items.csv===============
- filePath = Str + "\" & 檔名 & "_Items.csv" : Dim ItemRows As New List(Of String)()
- For Each rootItem As GanttViewDataItem In 甘特圖_gv.Items : TraverseItems(rootItem, 0, ItemRows) : Next
- File.WriteAllText(filePath, "Title,Start,End,Progress,index,Parent,Level,Color" & Environment.NewLine)
- File.AppendAllLines(filePath, ItemRows)
- '========
- 載入Itemcsv內容() : 載入Linkcsv內容()
- PA49 = 下載檔案位置1 : PA1 = 合約編號_tb.Text : SQL_工程責任表_新增檔案1()
- PA49 = 下載檔案位置2 : PA1 = 合約編號_tb.Text : SQL_工程責任表_新增檔案2()
- If 下載檔案位置1 <> "" Then : If File.Exists(下載檔案位置1) Then : File.Delete(下載檔案位置1) : End If : End If
- If 下載檔案位置2 <> "" Then : If File.Exists(下載檔案位置2) Then : File.Delete(下載檔案位置2) : End If : End If
- End Sub
- Private Sub 進度表刪除_bt_Click(sender As Object, e As EventArgs) Handles 進度表刪除_bt.Click
- If 合約編號_tb.Text = "" Then : MGB(對話框(25), 1) : Else
- MGB(對話框(26), 2)
- If 訊息回應 = "YES" Then
- INB(對話框(27)) : PA = 訊息回應
- If PA = "YES" Then : PA = 合約編號_tb.Text
- SQL_工程進度表_刪除總表2() : SQL_工程進度表_刪除總表1() : SQL_工程進度表_刪除總表3() : MGB(對話框(28), 1) : Set_進度清單()
- End If
- End If
- End If
- End Sub
- Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
- Dim 合約編號條件 As Boolean = True
- If 合約編號_cb.Text = "" Then : MGB(對話框(13), 1) : 合約編號條件 = False : End If
- If 合約編號1_tb.Text = "" Then : MGB(對話框(14), 1) : 合約編號條件 = False : Else
- Dim d As Int32
- For index = 0 To 合約編號1_tb.Text.Length - 1
- d = Asc(合約編號1_tb.Text(index))
- Dim 可能不行 As Boolean = False
- If (d < 65 Or d > 90) Then : 可能不行 = True : End If 'c變數若在65~90是大寫的英文字母
- If 可能不行 = True Then
- If (d < 97 Or d > 122) Then : 可能不行 = True : Else : 可能不行 = False : End If 'c變數若在97~122是小寫的英文字母
- If 可能不行 = True Then '然後查表, c變數若在48~57, 表示它是數字,
- If (d < 48 Or d > 57) Then : MGB(對話框(15), 1) : 合約編號條件 = False : Exit For : End If
- End If
- End If
- Next
- End If
- If 合約編號2_tb.Text = "" Then : MGB(對話框(16), 1) : 合約編號條件 = False : End If
- Dim c As Int32 '然後查表, c變數若在48~57, 表示它是數字,
- For index = 0 To 合約編號2_tb.Text.Length - 1
- c = Asc(合約編號2_tb.Text(index))
- If c < 48 Or c > 57 Then : MGB(對話框(17), 1) : 合約編號條件 = False : Exit For : Else
- If Len(合約編號2_tb.Text) <> 6 Then : MGB(對話框(18), 1) : 合約編號條件 = False : Exit For : End If
- End If
- Next
- If 合約編號3_tb.Text = "" Then : MGB(對話框(19), 1) : 合約編號條件 = False
- ElseIf IsNumeric(合約編號3_tb.Text) = False Then : MGB(對話框(20), 1) : 合約編號條件 = False
- End If
- If 工程執行主管_cb.Text = "" Then : MGB(對話框(21), 1) : 合約編號條件 = False : End If
- If 工程名稱_中_tb.Text = "" Then : MGB(對話框(22), 1) : 合約編號條件 = False : End If
- If 工程名稱_英_tb.Text = "" Then : MGB(對話框(23), 1) : 合約編號條件 = False : End If
- If 合約編號條件 = True Then
- SQL_工程責任表_最後一筆資料()
- If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 9)) : Else : EDR = 0 : End If
- conn.Close() : EDR += 1
- If EDR < 10 Then : ESTR = "PR" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "PR" & "0000000" & EDR
- ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "PR" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "PR" & "00000" & EDR
- ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "PR" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "PR" & "000" & EDR
- ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "PR" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "PR" & "0" & EDR
- ElseIf EDR > 99999999 Then : ESTR = "PR" & EDR : End If : PA9 = ESTR
-
- PA = 合約編號_tb.Text : PA2 = 工程執行主管_cb.Text : PA3 = 帳號_cb.Text : PA4 = 職稱_cb.Text : PA5 = 工程名稱_中_tb.Text : PA6 = 工程名稱_英_tb.Text
- PA7 = Strings.Format(開始日期_dtp.Value, "yyyy/MM/dd") : PA8 = Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd")
- If 天_ch.Checked = True Then : PA1 = "天" : ElseIf 周_ch.Checked = True Then : PA1 = "周" : ElseIf 月_ch.Checked = True Then : PA1 = "月" : End If
- SQL_工程責任表_資料重複認證()
- If dr.Read() Then
- SQL_工程責任表_修改資料() : 工程進度表檔案更新() : Set_進度清單() : MGB(對話框(24), 1)
- Else
- SQL_工程責任表_新增資料() : 工程進度表檔案更新() : Set_進度清單() : MGB(對話框(12), 1)
- End If
- End If
- End Sub
- Private Sub 刪除項目_bt_Click(sender As Object, e As EventArgs) Handles 刪除項目_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then
- Dim children As List(Of GanttViewDataItem) = New List(Of GanttViewDataItem)() : Dim queue As Queue(Of GanttViewDataItem) = New Queue(Of GanttViewDataItem)()
- queue.Enqueue(Me.甘特圖_gv.GanttViewElement.SelectedItem)
-
- Do While queue.Count > 0
- Dim item As GanttViewDataItem = queue.Dequeue() : children.Add(item)
-
- If Not item.Items Is Nothing AndAlso item.Items.Count > 0 Then : Dim i As Integer = 0
- Do While i < item.Items.Count
- queue.Enqueue(item.Items(i)) : i += 1
- Loop
- End If
- Loop
- Dim j As Integer = 0
- Do While j < Me.甘特圖_gv.GanttViewElement.Links.Count
- If children.Contains(Me.甘特圖_gv.GanttViewElement.Links(j).StartItem) OrElse children.Contains(Me.甘特圖_gv.GanttViewElement.Links(j).EndItem) Then
- Me.甘特圖_gv.GanttViewElement.Links.RemoveAt(j) : Else : j += 1
- End If
- Loop
- If Me.甘特圖_gv.GanttViewElement.SelectedItem.Parent Is Nothing Then : Me.甘特圖_gv.GanttViewElement.Items.Remove(Me.甘特圖_gv.GanttViewElement.SelectedItem)
- Else : Me.甘特圖_gv.GanttViewElement.SelectedItem.Parent.Items.Remove(Me.甘特圖_gv.GanttViewElement.SelectedItem) : End If
- End If
- End Sub
- Private Sub 進度_nud_ValueChanged(sender As Object, e As EventArgs) Handles 進度_nud.ValueChanged
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then
- Dim selectedItem As GanttViewDataItem = Me.甘特圖_gv.GanttViewElement.SelectedItem : selectedItem.Progress = 進度_nud.Value
- End If
- End Sub
- Private Sub 新增子項1_bt_Click(sender As Object, e As EventArgs) Handles 新增子項1_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then
- Dim newItem As GanttViewDataItem = New GanttViewDataItem() : newItem.Start = Me.甘特圖_gv.GanttViewElement.SelectedItem.Start
- newItem.End = Me.甘特圖_gv.GanttViewElement.SelectedItem.End : newItem.Title = "<New Child>"
- Me.甘特圖_gv.GanttViewElement.SelectedItem.Items.Insert(0, newItem)
- End If
- End Sub
- Private Sub 新增子項2_bt_Click(sender As Object, e As EventArgs) Handles 新增子項2_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then
- Dim newItem As GanttViewDataItem = New GanttViewDataItem() : newItem.Start = Me.甘特圖_gv.GanttViewElement.SelectedItem.Start
- newItem.End = Me.甘特圖_gv.GanttViewElement.SelectedItem.End : newItem.Title = "<New Child>"
- Me.甘特圖_gv.GanttViewElement.SelectedItem.Items.Insert(Me.甘特圖_gv.GanttViewElement.SelectedItem.Items.Count, newItem)
- End If
- End Sub
- Private Sub 新增標點1_bt_Click(sender As Object, e As EventArgs) Handles 新增標點1_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then : Dim newItem As GanttViewDataItem = New GanttViewDataItem()
- newItem.Start = Me.甘特圖_gv.GanttViewElement.SelectedItem.Start : newItem.End = newItem.Start : newItem.Title = "<New Milestone>"
- Me.甘特圖_gv.GanttViewElement.SelectedItem.Items.Insert(0, newItem)
- End If
- End Sub
- Private Sub 新增標點2_bt_Click(sender As Object, e As EventArgs) Handles 新增標點2_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then : Dim newItem As GanttViewDataItem = New GanttViewDataItem()
- newItem.Start = Me.甘特圖_gv.GanttViewElement.SelectedItem.Start : newItem.End = newItem.Start : newItem.Title = "<New Milestone>"
- Me.甘特圖_gv.GanttViewElement.SelectedItem.Items.Insert(Me.甘特圖_gv.GanttViewElement.SelectedItem.Items.Count, newItem)
- End If
- End Sub
- '==========變色按鈕===============
- Private Sub 紅色_bt_Click(sender As Object, e As EventArgs) Handles 紅色_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then : Dim selectedItem As GanttViewDataItem = Me.甘特圖_gv.GanttViewElement.SelectedItem
- Dim itemElement As GanttGraphicalViewBaseItemElement = Me.甘特圖_gv.GanttViewElement.GraphicalViewElement.GetElement(selectedItem)
- itemElement.TaskElement.BackColor = Color.LightPink
- For Each row In 清單_dgv.Rows
- If row.Cells(0).Value.ToString() = 甘特圖_gv.GanttViewElement.SelectedItem.Title Then : row.Cells(7).Value = "LightPink" : Exit For : End If
- Next
- End If
- End Sub
- Private Sub 綠色_bt_Click(sender As Object, e As EventArgs) Handles 綠色_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then : Dim selectedItem As GanttViewDataItem = Me.甘特圖_gv.GanttViewElement.SelectedItem
- Dim itemElement As GanttGraphicalViewBaseItemElement = Me.甘特圖_gv.GanttViewElement.GraphicalViewElement.GetElement(selectedItem)
- itemElement.TaskElement.BackColor = Color.LimeGreen
- For Each row In 清單_dgv.Rows
- If row.Cells(0).Value.ToString() = 甘特圖_gv.GanttViewElement.SelectedItem.Title Then : row.Cells(7).Value = "LimeGreen" : Exit For : End If
- Next
- End If
- End Sub
- Private Sub 藍色_bt_Click(sender As Object, e As EventArgs) Handles 藍色_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then : Dim selectedItem As GanttViewDataItem = Me.甘特圖_gv.GanttViewElement.SelectedItem
- Dim itemElement As GanttGraphicalViewBaseItemElement = Me.甘特圖_gv.GanttViewElement.GraphicalViewElement.GetElement(selectedItem)
- itemElement.TaskElement.BackColor = Color.LightSkyBlue
- For Each row In 清單_dgv.Rows
- If row.Cells(0).Value.ToString() = 甘特圖_gv.GanttViewElement.SelectedItem.Title Then : row.Cells(7).Value = "LightSkyBlue" : Exit For : End If
- Next
- End If
- End Sub
- Private Sub 黃色_bt_Click(sender As Object, e As EventArgs) Handles 黃色_bt.Click
- If Not Me.甘特圖_gv.GanttViewElement.SelectedItem Is Nothing Then : Dim selectedItem As GanttViewDataItem = Me.甘特圖_gv.GanttViewElement.SelectedItem
- Dim itemElement As GanttGraphicalViewBaseItemElement = Me.甘特圖_gv.GanttViewElement.GraphicalViewElement.GetElement(selectedItem)
- itemElement.TaskElement.BackColor = Color.LightGoldenrodYellow
- For Each row In 清單_dgv.Rows
- If row.Cells(0).Value.ToString() = 甘特圖_gv.GanttViewElement.SelectedItem.Title Then : row.Cells(7).Value = "LightGoldenrodYellow" : Exit For : End If
- Next
- End If
- End Sub
- Private Sub 縮放1_bt_Click(sender As Object, e As EventArgs) Handles 縮放1_bt.Click
- If Panel2.Visible = True Then
- Panel2.Visible = False : Panel4.Location = New System.Drawing.Point(0, 0) : Panel4.Size = New System.Drawing.Point(Panel4.Size.Width + 162, Panel4.Size.Height)
- 甘特圖_gv.Ratio = 565 / 甘特圖_gv.Size.Width
- Else
- Panel2.Visible = True : Panel4.Location = New System.Drawing.Point(162, 0) : Panel4.Size = New System.Drawing.Point(Panel4.Size.Width - 162, Panel4.Size.Height)
- 甘特圖_gv.Ratio = 565 / 甘特圖_gv.Size.Width
- End If
- End Sub
- Private Sub Panel2_MouseMove(sender As Object, e As MouseEventArgs) Handles Panel2.MouseMove
- Dim mousePos As Point = e.Location ' 滑鼠在 Panel 內的位置
- Dim panelRect As Rectangle = Panel2.ClientRectangle ' Panel 的邊界
- Dim rightRect As New Rectangle(panelRect.Right - 10, panelRect.Top, 10, panelRect.Height) ' Panel 右邊界
- If rightRect.Contains(mousePos) Then ' 碰到右邊界,執行事件 C
- If Panel2.Visible = True Then
- Panel2.Visible = False : Panel4.Location = New System.Drawing.Point(0, 0)
- Panel4.Size = New System.Drawing.Point(Panel4.Size.Width + 162, Panel4.Size.Height)
- 甘特圖_gv.Ratio = 565 / 甘特圖_gv.Size.Width
- End If
- End If
- End Sub
- Private Sub Panel4_MouseMove(sender As Object, e As MouseEventArgs) Handles Panel4.MouseMove
- Dim mousePos As Point = e.Location ' 滑鼠在 Panel 內的位置
- Dim panelRect As Rectangle = Panel4.ClientRectangle ' Panel 的邊界
- Dim leftRect As New Rectangle(panelRect.Left, panelRect.Top, 10, panelRect.Height) ' Panel 左邊界
- If leftRect.Contains(mousePos) Then ' 碰到左邊界,執行事件 A
- If Panel2.Visible = False Then
- Panel2.Visible = True : Panel4.Location = New System.Drawing.Point(162, 0)
- Panel4.Size = New System.Drawing.Point(Panel4.Size.Width - 162, Panel4.Size.Height)
- 甘特圖_gv.Ratio = 565 / 甘特圖_gv.Size.Width
- End If
- End If
- End Sub
-
- Dim OldX, OldY As Long
- Dim drag As Boolean
- Private Sub 視窗2_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseDown
- If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If
- End Sub
- Private Sub 視窗2_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseMove
- If drag Then : 視窗2_pl.Left = 視窗2_pl.Left + e.X - OldX : 視窗2_pl.Top = 視窗2_pl.Top + e.Y - OldY : End If
- End Sub
- Private Sub 視窗2_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗2_pl.MouseUp
- drag = False
- End Sub
- End Class
|