Няма описание
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 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. Public Class 合約驗收控制表
  2. ReadOnly ds2 As New DataSet
  3. Dim 存檔, 簽回檔 As Boolean
  4. Private Sub Set_驗收清單()
  5. 驗收單_dgv.DataSource = Nothing : ds2.Clear()
  6. 驗收單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  7. 驗收單_dgv.ColumnHeadersHeight = 40 : 驗收單_dgv.AllowUserToAddRows = False
  8. PA46 = 合約編號1_cb.Text : PA47 = 工程期1_ch.Text
  9. If 全部資料_ch.Checked = True And 請款未結束_ch.Checked = False And 請款已結束_ch.Checked = False Then
  10. SQL2 = "WHERE 約號甲方 Like N'%" & PA46 & "%' AND 合約期數 LIKE N'%" & PA47 & "%' AND (合約編號 LIKE N'%" & PA & "%' OR 客戶名稱 LIKE N'%" & PA & "%' OR
  11. 負責人A LIKE N'%" & PA & "%' OR 工程地點 LIKE N'%" & PA & "%' OR 客戶地址 LIKE N'%" & PA & "%' OR 工程名稱_中 LIKE N'%" & PA & "%' OR
  12. 工程名稱_英 LIKE N'%" & PA & "%') AND (合約停止 = 0 OR 合約停止 IS NULL) AND (報價放行 = 1) "
  13. ElseIf 全部資料_ch.Checked = False And 請款未結束_ch.Checked = True And 請款已結束_ch.Checked = False Then
  14. SQL2 = "WHERE (驗收結果 = 0 OR 驗收結果 IS NULL) AND 約號甲方 Like N'%" & PA46 & "%' AND 合約期數 LIKE N'%" & PA47 & "%' AND (合約編號 LIKE N'%" & PA & "%' OR
  15. 客戶名稱 LIKE N'%" & PA & "%' OR 負責人A LIKE N'%" & PA & "%' OR 工程地點 LIKE N'%" & PA & "%' OR 客戶地址 LIKE N'%" & PA & "%' OR
  16. 工程名稱_中 LIKE N'%" & PA & "%' OR 工程名稱_英 LIKE N'%" & PA & "%') AND (合約停止 = 0 OR 合約停止 IS NULL) AND (報價放行 = 1) "
  17. ElseIf 全部資料_ch.Checked = False And 請款未結束_ch.Checked = False And 請款已結束_ch.Checked = True Then
  18. SQL2 = "WHERE 驗收結果 = 1 AND 約號甲方 Like N'%" & PA46 & "%' AND 合約期數 LIKE N'%" & PA47 & "%' AND (合約編號 LIKE N'%" & PA & "%' OR
  19. 客戶名稱 LIKE N'%" & PA & "%' OR 負責人A LIKE N'%" & PA & "%' OR 工程地點 LIKE N'%" & PA & "%' OR 客戶地址 LIKE N'%" & PA & "%' OR
  20. 工程名稱_中 LIKE N'%" & PA & "%' OR 工程名稱_英 LIKE N'%" & PA & "%') AND (合約停止 = 0 OR 合約停止 IS NULL) AND (報價放行 = 1) "
  21. End If
  22. SQL_合約驗收控制表查詢()
  23. da.Fill(ds2) : 驗收單_dgv.DataSource = ds2.Tables(0) : conn.Close()
  24. 驗收單_dgv.Columns(0).FillWeight = 120 : 驗收單_dgv.Columns(1).FillWeight = 350 : 驗收單_dgv.Columns(2).FillWeight = 50 : 驗收單_dgv.Columns(3).FillWeight = 100
  25. 驗收單_dgv.Columns(4).FillWeight = 100 : 驗收單_dgv.Columns(5).FillWeight = 60 : 驗收單_dgv.Columns(6).FillWeight = 100 : 驗收單_dgv.Columns(7).FillWeight = 40
  26. 驗收單_dgv.Columns(8).FillWeight = 40 : 驗收單_dgv.Columns(9).FillWeight = 200 : 驗收單_dgv.Columns(10).FillWeight = 200
  27. 驗收單_dgv.Columns("簽回").FillWeight = 40 : 驗收單_dgv.Columns("簽回檔圖庫").Visible = False
  28. 驗收單_dgv.Columns("工期").DefaultCellStyle.Format = "#,##0" : 驗收單_dgv.Columns("已完成/未完成天數").DefaultCellStyle.Format = "#,##0"
  29. 驗收單_dgv.Columns("工期").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  30. 驗收單_dgv.Columns("已完成/未完成天數").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  31. 驗收單_dgv.Columns("立約日期").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  32. 驗收單_dgv.Columns("驗收開始日期").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  33. 驗收單_dgv.Columns("驗收完成日期").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  34. 驗收單_dgv.Columns("保固期限").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
  35. Dim 驗收日 As String
  36. For i As Integer = 0 To 驗收單_dgv.Rows.Count - 1
  37. If IsDBNull(驗收單_dgv("簽回", i).Value) = True Then : 驗收單_dgv("簽回", i).Value = False : End If
  38. If 驗收單_dgv.Rows(i).Cells("驗收開始日期").Value.ToString = "" Then
  39. 驗收日 = Today()
  40. Else
  41. 驗收日 = 驗收單_dgv.Rows(i).Cells("驗收開始日期").Value.ToString
  42. End If
  43. 驗收單_dgv.Rows(i).Cells("已完成/未完成天數").Value = DateDiff("d", 驗收單_dgv.Rows(i).Cells("立約日期").Value.ToString, 驗收日)
  44. Next
  45. If 系統分區控制 = True Then
  46. Set_清單_dgv_下拉式清單1() : 驗收單_dgv.Columns(12).Visible = False
  47. 驗收單_dgv.Columns("工地驗收備註").Visible = False : 驗收單_dgv.Columns("驗收備註").Visible = True
  48. Else
  49. 驗收單_dgv.Columns("工地驗收備註").Visible = True : 驗收單_dgv.Columns("工地驗收備註").FillWeight = 200
  50. 驗收單_dgv.Columns("驗收備註").Visible = False
  51. End If
  52. End Sub
  53. Private Sub Set_清單_dgv_下拉式清單1()
  54. Dim Col As New DataGridViewComboBoxColumn With {
  55. .FillWeight = 100,
  56. .DataPropertyName = "工程主管"
  57. }
  58. SQL執行主管下拉()
  59. Col.Items.Clear() : Col.Items.Add("")
  60. While (dr.Read()) : Col.Items.Add(dr("姓名")) : End While : conn.Close()
  61. Col.HeaderText = "工程主管" : Col.Name = "工程主管"
  62. 驗收單_dgv.Columns.Insert(11, Col)
  63. End Sub
  64. Private Sub 甲方條件下拉清單讀取()
  65. SQL合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : End While : conn.Close()
  66. End Sub
  67. Private Sub 合約驗收控制表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  68. Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  69. 甲方條件下拉清單讀取() : Set_驗收清單() : 合約報價單_Siz()
  70. If 系統分區控制 = True Then : 驗收完成_bt.Text = "驗收完成" : 指定存檔_bt.Enabled = True : Else : 驗收完成_bt.Text = "修改存檔" : 指定存檔_bt.Enabled = False : End If
  71. End Sub
  72. Private Sub 合約驗收控制表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  73. End Sub
  74. Private Sub 合約報價單_Siz()
  75. MyModule1.清單字體大小調整()
  76. 驗收單_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", GCM_ERP_SYS.字體_NUD.Value)
  77. End Sub
  78. Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove
  79. timeNow = 0 : GCM_ERP_SYS.Timer1.Enabled = False : GCM_ERP_SYS.Timer1.Enabled = True
  80. End Sub
  81. Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress
  82. timeNow = 0 : GCM_ERP_SYS.Timer1.Enabled = False : GCM_ERP_SYS.Timer1.Enabled = True
  83. End Sub
  84. Private Sub 驗收單_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 驗收單_dgv.RowPostPaint
  85. Dim linePen As New Pen(Color.Blue, 2)
  86. If e.RowIndex = 驗收單_dgv.Rows.Count - 1 Then
  87. Exit Sub
  88. Else
  89. If 驗收單_dgv("驗收開始日期", e.RowIndex).Value.ToString <> "" And 驗收單_dgv("驗收開始日期", e.RowIndex + 1).Value.ToString = "" Then
  90. Dim startX As Integer = IIf(驗收單_dgv.RowHeadersVisible, 驗收單_dgv.RowHeadersWidth, 0)
  91. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  92. Dim endX As Integer = startX + 驗收單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 驗收單_dgv.HorizontalScrollingOffset
  93. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  94. Exit Sub
  95. End If
  96. End If
  97. End Sub
  98. Private Sub 驗收單_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 驗收單_dgv.CellClick
  99. If e.RowIndex = -1 Then : Else
  100. 圖片庫 = 驗收單_dgv("簽回檔圖庫", e.RowIndex).Value.ToString : 簽回檔 = 驗收單_dgv("簽回", e.RowIndex).Value
  101. 合約編號_tb.Text = 驗收單_dgv("合約編號", e.RowIndex).Value.ToString : 保固_cb.Text = 驗收單_dgv("保固期限", e.RowIndex).Value.ToString
  102. 立約日期_dtp.Value = 驗收單_dgv("立約日期", e.RowIndex).Value.ToString : 合約工期_nud.Value = 驗收單_dgv("工期", e.RowIndex).Value.ToString
  103. If 系統分區控制 = True Then : 備註_tb.Text = 驗收單_dgv("驗收備註", e.RowIndex).Value.ToString
  104. Else : 備註_tb.Text = 驗收單_dgv("工地驗收備註", e.RowIndex).Value.ToString : End If
  105. If 驗收單_dgv("驗收開始日期", e.RowIndex).Value.ToString = "" Then : 驗收日期_dtp.Value = Today() : 存檔 = False
  106. Else : 驗收日期_dtp.Value = 驗收單_dgv("驗收開始日期", e.RowIndex).Value.ToString : 存檔 = True : End If
  107. If 驗收單_dgv("驗收完成日期", e.RowIndex).Value.ToString = "" Then : 驗收完成_dtp.Value = Today()
  108. Else : 驗收完成_dtp.Value = 驗收單_dgv("驗收完成日期", e.RowIndex).Value.ToString : End If
  109. 工程天數_nud.Value = DateDiff("d", 立約日期_dtp.Value, 驗收日期_dtp.Value) : 日期差異_nud.Value = 合約工期_nud.Value - 工程天數_nud.Value
  110. End If
  111. End Sub
  112. Private Sub 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged
  113. PA = 關鍵字搜尋_tb.Text : Set_驗收清單()
  114. End Sub
  115. Private Sub 工程期1_ch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工程期1_ch.SelectedIndexChanged
  116. PA = 關鍵字搜尋_tb.Text : Set_驗收清單()
  117. End Sub
  118. Private Sub 全部資料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 全部資料_ch.Click
  119. PA = 關鍵字搜尋_tb.Text : 全部資料_ch.Checked = True : 請款未結束_ch.Checked = False : 請款已結束_ch.Checked = False : Set_驗收清單()
  120. End Sub
  121. Private Sub 請款未結束_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 請款未結束_ch.Click
  122. PA = 關鍵字搜尋_tb.Text : 全部資料_ch.Checked = False : 請款未結束_ch.Checked = True : 請款已結束_ch.Checked = False : Set_驗收清單()
  123. End Sub
  124. Private Sub 請款已結束_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 請款已結束_ch.Click
  125. PA = 關鍵字搜尋_tb.Text : 全部資料_ch.Checked = False : 請款未結束_ch.Checked = False : 請款已結束_ch.Checked = True : Set_驗收清單()
  126. End Sub
  127. Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click
  128. PA = 關鍵字搜尋_tb.Text : Set_驗收清單()
  129. End Sub
  130. Private Sub 驗收完成_bt_Click(sender As Object, e As EventArgs) Handles 驗收完成_bt.Click
  131. If 合約編號_tb.Text = "" Then
  132. If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要完成驗收的合約!!") : Else : MsgBox("Please select the contract to complete the acceptance first!!") : End If : Else
  133. 系統分區控制 = True
  134. If 系統分區控制 = True Then
  135. If 存檔 = False Then
  136. If 系統語言 = "繁體中文" Then : MsgBox("該合約沒有開始驗收,所以無法完成驗收!!")
  137. Else : MsgBox("The contract has not started acceptance, so the acceptance cannot be completed!!") : End If : Else
  138. If 保固_cb.Text = "" Then
  139. If 系統語言 = "繁體中文" Then : MsgBox("沒有保固期限,無法存檔!!") : Else : MsgBox("No warranty period, no archive!!") : End If : Else
  140. If 驗收日期_dtp.Value > 驗收完成_dtp.Value Then
  141. If 系統語言 = "繁體中文" Then : MsgBox("驗收完成日不可能小於驗收開始日期!!")
  142. Else : MsgBox("The acceptance completion date cannot be less than the acceptance start date!!") : End If : Else
  143. Dim SS, SS1 As String
  144. If 系統語言 = "繁體中文" Then : SS = "驗收完成日期為 " : SS1 = " 是否正確??"
  145. Else : SS = "Acceptance completion date is " : SS1 = " is it right or not??" : End If
  146. Dim aa As MsgBoxResult = MsgBox(SS & Strings.Format(驗收完成_dtp.Value, "yyyy/MM/dd") & SS1, MsgBoxStyle.OkCancel)
  147. If aa = MsgBoxResult.Ok Then
  148. PA = 合約編號_tb.Text : PA1 = Strings.Format(驗收完成_dtp.Value, "yyyy/MM/dd") : PA2 = "1" : PA3 = 備註_tb.Text : PA4 = 保固_cb.Text
  149. PA5 = 合約工期_nud.Value
  150. SQL_控制表_驗收修改2() : PA = "" : Set_驗收清單() : 存檔 = False
  151. If 系統語言 = "繁體中文" Then : MsgBox("驗收回報完成!!") : Else : MsgBox("Acceptance return completed!!") : End If
  152. End If
  153. End If
  154. End If
  155. End If
  156. Else
  157. PA = 合約編號_tb.Text : PA3 = 備註_tb.Text : SQL_控制表_驗收修改3() : PA = "" : Set_驗收清單()
  158. If 系統語言 = "繁體中文" Then : MsgBox("備註存檔完成!!") : Else : MsgBox("Remarks Archive Complete!!") : End If
  159. End If
  160. End If
  161. End Sub
  162. Private Sub 指定存檔_bt_Click(sender As Object, e As EventArgs) Handles 指定存檔_bt.Click
  163. For I As Integer = 0 To 驗收單_dgv.Rows.Count - 1
  164. PA = 驗收單_dgv("合約編號", I).Value.ToString : PA3 = 驗收單_dgv("工程主管", I).Value.ToString : SQL_控制表_驗收修改4()
  165. Next : If 系統語言 = "繁體中文" Then : MsgBox("工程主管指定完成!!") : Else : MsgBox("Designated by the engineering director to complete!!") : End If
  166. End Sub
  167. Private Sub 查閱文件_bt_Click(sender As Object, e As EventArgs) Handles 查閱文件_bt.Click
  168. If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇合約!!") : Else : MsgBox("Please select a contract first!!") : End If : Else
  169. If 簽回檔 = False Then : If 系統語言 = "繁體中文" Then : MsgBox("該合約還沒有建立驗收簽回文件!!") : Else : MsgBox("The contract has not yet established the acceptance check-back document!!") : End If : Else
  170. PA1 = 合約編號_tb.Text : PA2 = "驗收" : 文件查閱視窗.ShowDialog()
  171. End If
  172. End If
  173. End Sub
  174. End Class