Imports System.IO Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle Imports Microsoft.Office.Interop.Excel.Constants Imports Microsoft.Office.Interop.Excel.XlBordersIndex Imports Microsoft.Office.Interop.Excel.XlLineStyle Imports Microsoft.Office.Interop.Excel.XlBorderWeight Imports Microsoft.Office.Interop.Excel.XlThemeFont Imports Microsoft.Office.Interop.Excel.XlThemeColor Imports Microsoft.Office.Interop.Excel.XlWindowState Imports Microsoft.Office.Interop.Excel Public Class 合約報價單 ReadOnly ds4, ds7, ds8, ds9, ds13, ds10, ds11, ds16 As New DataSet Dim KKK2, 物料規格, ESTR, 目前選擇, 條件選擇 As String Dim EDR, A1, A2, A3, B2, B3, AA1, AA2, AA3, BB2, BB3, OX1, OY1, OY2, 選取位置, NUM1, DGV_X, DGV_Y, XN1, XN2 As Integer Dim 啟動運算, 已超出, 放大, 不再動作1, 簽回檔, 複製報價, 介面啟動 As Boolean Dim 人民幣匯率, 美金匯率, 印尼匯率, 匯率1 As Double Dim xlApp As Application : Dim xlBook As Workbook : Dim xlSheet As Worksheet Private Sub Set_主管清單() Dim ds1 As New DataSet : 主管_dgv.DataSource = Nothing : ds1.Clear() 主管_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 主管_dgv.ColumnHeadersHeight = 25 主管_dgv.AllowUserToAddRows = False 主管_dgv.RowTemplate.Height = 45 SQL_系統組織結構圖_單位主管1() da.Fill(ds1) : 主管_dgv.DataSource = ds1.Tables(0) : conn.Close() 主管_dgv.Columns(0).FillWeight = 100 : 主管_dgv.Columns(1).FillWeight = 50 : 主管_dgv.Columns(2).FillWeight = 150 End Sub Private Sub Set_合約清單1() Dim ds6 As New DataSet 合約1_dgv.DataSource = Nothing : ds6.Clear() 合約1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 合約1_dgv.ColumnHeadersHeight = 25 : 合約1_dgv.AllowUserToAddRows = False PA = 關鍵字搜尋1_tb.Text : PA46 = 合約編號2_cb.Text SQL_合約清單_報價用() da.Fill(ds6) : 合約1_dgv.DataSource = ds6.Tables(0) : conn.Close() 合約1_dgv.Columns(0).FillWeight = 130 : 合約1_dgv.Columns("工程名稱_中").FillWeight = 280 : 合約1_dgv.Columns("簽回").FillWeight = 40 : 合約1_dgv.Columns("審核通過").FillWeight = 40 合約1_dgv.Columns("停止").FillWeight = 40 For i As Integer = 1 To 38 : 合約1_dgv.Columns(i).Visible = False : Next For i As Integer = 0 To 合約1_dgv.Rows.Count - 1 If IsDBNull(合約1_dgv("停止", i).Value) = True Then : 合約1_dgv("停止", i).Value = False : End If If IsDBNull(合約1_dgv("簽回", i).Value) = True Then : 合約1_dgv("簽回", i).Value = False : End If Next 合約1_dgv.Columns("工程名稱_中").Visible = True End Sub Private Sub Set_合約報價明細表1() Dim ds14 As New DataSet 報價明細表2_dgv.DataSource = Nothing : ds14.Clear() : 報價明細表2_dgv.Columns.Clear() 報價明細表2_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 報價明細表2_dgv.ColumnHeadersHeight = 40 : 報價明細表2_dgv.AllowUserToAddRows = False : 報價明細表2_dgv.RowTemplate.Height = 45 報價明細表2_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True PA = 合約編號_1_tb.Text : SQL_合約報價明細表() da.Fill(ds14) : 報價明細表2_dgv.DataSource = ds14.Tables(0) : conn.Close() 報價明細表2_dgv.Columns(0).FillWeight = 50 : 報價明細表2_dgv.Columns(1).FillWeight = 50 : 報價明細表2_dgv.Columns(2).FillWeight = 200 報價明細表2_dgv.Columns(3).FillWeight = 50 : 報價明細表2_dgv.Columns(4).FillWeight = 50 : 報價明細表2_dgv.Columns(5).FillWeight = 80 報價明細表2_dgv.Columns(6).FillWeight = 80 : 報價明細表2_dgv.Columns(7).FillWeight = 100 : 報價明細表2_dgv.Columns(8).FillWeight = 50 報價明細表2_dgv.Columns(34).FillWeight = 80 : 報價明細表2_dgv.Columns(33).FillWeight = 40 : 報價明細表2_dgv.Columns(6).FillWeight = 50 報價明細表2_dgv.Columns(42).FillWeight = 20 : 報價明細表2_dgv.Columns(43).FillWeight = 20 : 報價明細表2_dgv.Columns(44).FillWeight = 20 報價明細表2_dgv.Columns(45).FillWeight = 20 : 報價明細表2_dgv.Columns(46).FillWeight = 20 : 報價明細表2_dgv.Columns(47).FillWeight = 20 報價明細表2_dgv.Columns(48).FillWeight = 20 : 報價明細表2_dgv.Columns(49).FillWeight = 20 : 報價明細表2_dgv.Columns(50).FillWeight = 20 報價明細表2_dgv.Columns(50).FillWeight = 20 : 報價明細表2_dgv.Columns("料號").FillWeight = 30 : 報價明細表2_dgv.Columns("S").Visible = False For I As Integer = 0 To 58 : 報價明細表2_dgv.Columns(I).Visible = False : Next 報價明細表2_dgv.Columns("QTY").DefaultCellStyle.Format = "#,##0" 報價明細表2_dgv.Columns("UNIT").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 報價明細表2_dgv.Columns("QTY").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 報價明細表2_dgv.Columns("ITEM").Visible = True : 報價明細表2_dgv.Columns("DESCRIPTION").Visible = True : 報價明細表2_dgv.Columns("UNIT").Visible = True 報價明細表2_dgv.Columns("QTY").Visible = True : 報價明細表2_dgv.Columns("料號").Visible = True 報價明細表2_dgv.Columns("ITEM").ReadOnly = True : 報價明細表2_dgv.Columns("DESCRIPTION").ReadOnly = True : 報價明細表2_dgv.Columns("UNIT").ReadOnly = True 報價明細表2_dgv.Columns("QTY").ReadOnly = True : 報價明細表2_dgv.Columns("料號").ReadOnly = True Set_報價係數_dgv_勾選項() 報價明細表2_dgv.Columns("選擇").FillWeight = 30 For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1 If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString = "" Then 報價明細表2_dgv.Rows(i).Cells("D1").Value = False : 報價明細表2_dgv.Rows(i).Cells("D2").Value = False 報價明細表2_dgv.Rows(i).Cells("D3").Value = False : 報價明細表2_dgv.Rows(i).Cells("D4").Value = False 報價明細表2_dgv.Rows(i).Cells("D5").Value = False : 報價明細表2_dgv.Rows(i).Cells("D6").Value = False 報價明細表2_dgv.Rows(i).Cells("D7").Value = False : 報價明細表2_dgv.Rows(i).Cells("D8").Value = False End If If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then If 報價明細表2_dgv.Rows(i).Cells("預設").Value = True Then 報價明細表2_dgv.Rows(i).Cells("D1").Value = 報價明細表2_dgv.Rows(i).Cells("S1").Value : 報價明細表2_dgv.Rows(i).Cells("D2").Value = 報價明細表2_dgv.Rows(i).Cells("S2").Value 報價明細表2_dgv.Rows(i).Cells("D3").Value = 報價明細表2_dgv.Rows(i).Cells("S3").Value : 報價明細表2_dgv.Rows(i).Cells("D4").Value = 報價明細表2_dgv.Rows(i).Cells("S4").Value 報價明細表2_dgv.Rows(i).Cells("D5").Value = 報價明細表2_dgv.Rows(i).Cells("S5").Value : 報價明細表2_dgv.Rows(i).Cells("D6").Value = 報價明細表2_dgv.Rows(i).Cells("S6").Value 報價明細表2_dgv.Rows(i).Cells("D7").Value = 報價明細表2_dgv.Rows(i).Cells("S7").Value : 報價明細表2_dgv.Rows(i).Cells("D8").Value = 報價明細表2_dgv.Rows(i).Cells("S8").Value End If Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = "" If 詳細資料_ch.Checked = True Then If 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D1").Value = True Then ZA1 = 報價明細表2_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D2").Value = True Then ZA2 = 報價明細表2_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D3").Value = True Then ZA3 = 報價明細表2_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D4").Value = True Then ZA4 = 報價明細表2_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D5").Value = True Then ZA5 = 報價明細表2_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D6").Value = True Then ZA6 = 報價明細表2_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D7").Value = True Then ZA7 = 報價明細表2_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D8").Value = True Then ZA8 = 報價明細表2_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & 報價明細表2_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If Else If 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D1").Value = True Then ZA1 = 報價明細表2_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D2").Value = True Then ZA2 = 報價明細表2_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D3").Value = True Then ZA3 = 報價明細表2_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D4").Value = True Then ZA4 = 報價明細表2_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D5").Value = True Then ZA5 = 報價明細表2_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D6").Value = True Then ZA6 = 報價明細表2_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D7").Value = True Then ZA7 = 報價明細表2_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If If 報價明細表2_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表2_dgv.Rows(i).Cells("D8").Value = True Then ZA8 = 報價明細表2_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If End If If 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then 報價明細表2_dgv.Rows(i).Cells("DESCRIPTION").Value = 報價明細表2_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格 End If End If : 報價明細表2_dgv.Rows(i).Cells("預設").Value = False Next End Sub Private Sub Set_報價係數_dgv_勾選項() Dim Col As New DataGridViewCheckBoxColumn With { .FillWeight = 30, .DataPropertyName = "選擇" } Col.HeaderText = "選擇" : Col.Name = "選擇" 報價明細表2_dgv.Columns.Insert(0, Col) End Sub Private Sub Set_合約文件圖庫資料庫狀態() Dim ds9 As New DataSet : 圖庫清單_dgv.DataSource = Nothing : ds9.Clear() 圖庫清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 圖庫清單_dgv.ColumnHeadersHeight = 25 圖庫清單_dgv.AllowUserToAddRows = False 表頭(165) = "資料庫" : 表頭(166) = "狀態" SQL_工程文件資料庫管理查詢() da.Fill(ds9) : 圖庫清單_dgv.DataSource = ds9.Tables(0) : conn.Close() 圖庫清單_dgv.Columns(0).FillWeight = 100 : 圖庫清單_dgv.Columns(1).FillWeight = 20 End Sub Private Sub Set_BOM表控制() Dim ds6 As New DataSet BOM表控制_dgv.DataSource = Nothing : ds6.Clear() BOM表控制_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing BOM表控制_dgv.ColumnHeadersHeight = 25 : BOM表控制_dgv.AllowUserToAddRows = False : BOM表控制_dgv.RowTemplate.Height = 45 SQL_BOM表控制1() da.Fill(ds6) : BOM表控制_dgv.DataSource = ds6.Tables(0) : conn.Close() BOM表控制_dgv.Columns(0).FillWeight = 15 : BOM表控制_dgv.Columns(1).FillWeight = 100 : BOM表控制_dgv.Columns(2).Visible = False BOM表控制_dgv.Columns(0).ReadOnly = True : BOM表控制_dgv.Columns(1).ReadOnly = True For i As Integer = 0 To BOM表控制_dgv.Rows.Count - 1 : BOM表控制_dgv.Rows(i).Cells("項次").Value = i + 1 : Next End Sub Private Sub Set_BOM表明細() Dim ds6 As New DataSet BOM表明細_dgv.DataSource = Nothing : ds6.Clear() BOM表明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing BOM表明細_dgv.ColumnHeadersHeight = 25 : BOM表明細_dgv.AllowUserToAddRows = False : BOM表明細_dgv.RowTemplate.Height = 45 SQL_BOM表明細() da.Fill(ds6) : BOM表明細_dgv.DataSource = ds6.Tables(0) : conn.Close() BOM表明細_dgv.Columns(0).FillWeight = 30 : BOM表明細_dgv.Columns(0).Visible = False : BOM表明細_dgv.Columns(1).FillWeight = 30 BOM表明細_dgv.Columns(2).FillWeight = 250 : BOM表明細_dgv.Columns(3).FillWeight = 30 : BOM表明細_dgv.Columns(4).FillWeight = 30 BOM表明細_dgv.Columns(5).FillWeight = 30 : BOM表明細_dgv.Columns(6).Visible = False For i As Integer = 7 To 34 : BOM表明細_dgv.Columns(i).Visible = False : Next BOM表明細_dgv.Columns("數量").DefaultCellStyle.Format = "#,##0" BOM表明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter BOM表明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter For i As Integer = 0 To 5 : BOM表明細_dgv.Columns(i).ReadOnly = True : Next For i As Integer = 3 To 4 : BOM表明細_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next For i As Integer = 0 To BOM表明細_dgv.Rows.Count - 1 BOM表明細_dgv.Rows(i).Cells("項次").Value = i + 1 If BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = "" If 詳細資料1_ch.Checked = True Then If BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then ZA1 = BOM表明細_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If If BOM表明細_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then ZA2 = BOM表明細_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A2").Value If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then ZA3 = BOM表明細_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A3").Value If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then ZA4 = BOM表明細_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A4").Value If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then ZA5 = BOM表明細_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A5").Value If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then ZA6 = BOM表明細_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A6").Value If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then ZA7 = BOM表明細_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A7").Value If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then ZA8 = BOM表明細_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & BOM表明細_dgv.Rows(i).Cells("A8").Value If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If Else If BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then ZA1 = BOM表明細_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If If BOM表明細_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then ZA2 = BOM表明細_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then ZA3 = BOM表明細_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then ZA4 = BOM表明細_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then ZA5 = BOM表明細_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then ZA6 = BOM表明細_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then ZA7 = BOM表明細_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If If BOM表明細_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then ZA8 = BOM表明細_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If End If If BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then BOM表明細_dgv.Rows(i).Cells("項目").Value = BOM表明細_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格 End If End If Next End Sub Private Sub Set_合約報價係數() 報價係數_dgv.DataSource = Nothing : ds16.Clear() 報價係數_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 報價係數_dgv.ColumnHeadersHeight = 25 : 報價係數_dgv.AllowUserToAddRows = False 報價係數1_dgv.DataSource = Nothing : ds16.Clear() 報價係數1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 報價係數1_dgv.ColumnHeadersHeight = 25 : 報價係數1_dgv.AllowUserToAddRows = False SQL_合約報價係數() da.Fill(ds16) : 報價係數_dgv.DataSource = ds16.Tables(0) : 報價係數1_dgv.DataSource = ds16.Tables(0) : conn.Close() 報價係數_dgv.Columns(0).Visible = False : 報價係數_dgv.Columns(1).Visible = False : 報價係數_dgv.Columns(2).FillWeight = 80 報價係數_dgv.Columns(3).FillWeight = 40 : 報價係數_dgv.Columns(4).FillWeight = 30 報價係數_dgv.Columns(3).DefaultCellStyle.Format = "#,##0" 報價係數_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 報價係數_dgv.Columns(2).ReadOnly = True : 報價係數_dgv.Columns(3).ReadOnly = True : 報價係數_dgv.Columns(4).ReadOnly = True 報價係數1_dgv.Columns(0).Visible = False : 報價係數1_dgv.Columns(1).Visible = False : 報價係數1_dgv.Columns(2).FillWeight = 80 報價係數1_dgv.Columns(3).FillWeight = 40 : 報價係數1_dgv.Columns(4).FillWeight = 30 報價係數1_dgv.Columns(3).DefaultCellStyle.Format = "#,##0" 報價係數1_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 報價係數1_dgv.Columns(2).ReadOnly = True : 報價係數1_dgv.Columns(3).ReadOnly = True : 報價係數1_dgv.Columns(4).ReadOnly = True End Sub Private Sub Set_合約報價總表() If 介面啟動 = True Then Dim ds15 As New DataSet If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)" ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If 報價總表_dgv.DataSource = Nothing : ds15.Clear() 報價總表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 報價總表_dgv.ColumnHeadersHeight = 40 : 報價總表_dgv.AllowUserToAddRows = False : 報價總表_dgv.RowTemplate.Height = 45 報價總表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True SQL_合約報價總表() : 啟動運算 = False da.Fill(ds15) : 報價總表_dgv.DataSource = ds15.Tables(0) : conn.Close() 報價總表_dgv.Columns(0).Visible = False : 報價總表_dgv.Columns(8).Visible = False 報價總表_dgv.Columns(0).FillWeight = 50 : 報價總表_dgv.Columns(1).FillWeight = 50 : 報價總表_dgv.Columns(2).FillWeight = 210 報價總表_dgv.Columns(3).FillWeight = 50 : 報價總表_dgv.Columns(4).FillWeight = 50 : 報價總表_dgv.Columns(5).FillWeight = 80 報價總表_dgv.Columns(6).FillWeight = 80 : 報價總表_dgv.Columns(7).FillWeight = 90 : 報價總表_dgv.Columns(9).FillWeight = 50 For i As Integer = 4 To 6 : 報價總表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next For i As Integer = 4 To 6 : 報價總表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : Next For i As Integer = 0 To 7 : 報價總表_dgv.Columns(i).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter : Next 報價總表_dgv.Columns(2).ReadOnly = True : 報價總表_dgv.Columns(6).ReadOnly = True 報價總表_dgv.EditMode = DataGridViewEditMode.EditOnEnter 啟動運算 = True : 報價總表_dgv_自動計算() If DGV位置1.Value >= 報價總表_dgv.Rows.Count Then : DGV位置1.Value = 報價總表_dgv.Rows.Count - 1 : End If If DGV位置1.Value > 0 Then : 報價總表_dgv.CurrentCell = 報價總表_dgv.Rows(DGV位置1.Value).Cells(1) : End If End If End Sub Private Sub Set_合約報價明細表格式() 報價明細表_dgv.Columns(0).FillWeight = 45 : 報價明細表_dgv.Columns(1).FillWeight = 45 : 報價明細表_dgv.Columns(2).FillWeight = 200 報價明細表_dgv.Columns(3).FillWeight = 45 : 報價明細表_dgv.Columns(4).FillWeight = 45 : 報價明細表_dgv.Columns(5).FillWeight = 100 報價明細表_dgv.Columns(6).FillWeight = 100 : 報價明細表_dgv.Columns(7).FillWeight = 70 : 報價明細表_dgv.Columns(8).FillWeight = 50 報價明細表_dgv.Columns(34).FillWeight = 80 : 報價明細表_dgv.Columns(33).FillWeight = 40 報價明細表_dgv.Columns(42).FillWeight = 20 : 報價明細表_dgv.Columns(43).FillWeight = 20 : 報價明細表_dgv.Columns(44).FillWeight = 20 報價明細表_dgv.Columns(45).FillWeight = 20 : 報價明細表_dgv.Columns(46).FillWeight = 20 : 報價明細表_dgv.Columns(47).FillWeight = 20 報價明細表_dgv.Columns(48).FillWeight = 20 : 報價明細表_dgv.Columns(49).FillWeight = 20 : 報價明細表_dgv.Columns(50).FillWeight = 20 If 利潤表_ch.Checked = False Then : 報價明細表_dgv.Columns("S").FillWeight = 20 : Else : 報價明細表_dgv.Columns("S").FillWeight = 40 : End If End Sub Private Sub Set_合約報價明細表() If 介面啟動 = True Then Dim ds14 As New DataSet If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)" ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If 報價明細表_dgv.DataSource = Nothing : ds14.Clear() 報價明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 報價明細表_dgv.ColumnHeadersHeight = 40 : 報價明細表_dgv.AllowUserToAddRows = False : 報價明細表_dgv.RowTemplate.Height = 45 報價明細表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True 報價明細表1_dgv.DataSource = Nothing : ds14.Clear() 報價明細表1_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 報價明細表1_dgv.ColumnHeadersHeight = 40 : 報價明細表1_dgv.AllowUserToAddRows = False : 報價明細表1_dgv.RowTemplate.Height = 45 報價明細表1_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True PA = 合約編號_tb.Text : SQL_合約報價明細表() da.Fill(ds14) : 報價明細表_dgv.DataSource = ds14.Tables(0) : 報價明細表1_dgv.DataSource = ds14.Tables(0) : conn.Close() 報價明細表1_dgv.Columns("流水號").FillWeight = 50 : 報價明細表1_dgv.Columns(6).FillWeight = 60 : 報價明細表1_dgv.Columns(2).FillWeight = 200 報價明細表1_dgv.Columns(1).FillWeight = 40 Set_報價係數_dgv_下拉式清單1() For i As Integer = 4 To 6 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next For i As Integer = 9 To 17 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Format = "#,##0" : Next 報價明細表1_dgv.Columns(6).DefaultCellStyle.Format = "#,##0" 報價明細表_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.00" For i As Integer = 3 To 6 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next For i As Integer = 8 To 17 : 報價明細表_dgv.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : Next 報價明細表1_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight For i As Integer = 10 To 12 : 報價明細表_dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next For i As Integer = 14 To 16 : 報價明細表_dgv.Columns(i).DefaultCellStyle.BackColor = Color.MistyRose : Next If 利潤表_ch.Checked = True Then : Set_報價明細表_dgv_利潤表開啟() : Else : Set_報價明細表_dgv_利潤表關閉() : End If For i As Integer = 0 To 58 : 報價明細表1_dgv.Columns(i).Visible = False : Next For I As Integer = 18 To 58 : 報價明細表_dgv.Columns(I).Visible = False : Next 報價明細表_dgv.Columns(0).Visible = False : 報價明細表1_dgv.Columns(1).Visible = True : 報價明細表1_dgv.Columns(2).Visible = True : 報價明細表1_dgv.Columns(6).Visible = True 報價明細表1_dgv.Columns("流水號").Visible = True 報價明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : 報價明細表1_dgv.EditMode = DataGridViewEditMode.EditOnEnter '報價明細表_dgv.Columns(1).ReadOnly = True 報價明細表_dgv.Columns(2).ReadOnly = True : 報價明細表_dgv.Columns(4).ReadOnly = True : 報價明細表_dgv.Columns(5).ReadOnly = True 報價明細表_dgv.Columns(6).ReadOnly = True : 報價明細表_dgv.Columns(10).ReadOnly = True : 報價明細表_dgv.Columns(11).ReadOnly = True : 報價明細表_dgv.Columns(12).ReadOnly = True 報價明細表_dgv.Columns(14).ReadOnly = True : 報價明細表_dgv.Columns(15).ReadOnly = True : 報價明細表_dgv.Columns(16).ReadOnly = True : 報價明細表_dgv.Columns(17).ReadOnly = True 報價明細表1_dgv.Columns(1).ReadOnly = True : 報價明細表1_dgv.Columns(2).ReadOnly = True : 報價明細表1_dgv.Columns(4).ReadOnly = True : 報價明細表1_dgv.Columns(5).ReadOnly = True 報價明細表1_dgv.Columns(6).ReadOnly = True : 報價明細表1_dgv.Columns(10).ReadOnly = True : 報價明細表1_dgv.Columns(11).ReadOnly = True : 報價明細表1_dgv.Columns(12).ReadOnly = True 報價明細表1_dgv.Columns(14).ReadOnly = True : 報價明細表1_dgv.Columns(15).ReadOnly = True : 報價明細表1_dgv.Columns(16).ReadOnly = True : 報價明細表1_dgv.Columns(17).ReadOnly = True 報價明細表_dgv_物料顯示() : 啟動運算 = True : 報價明細表_dgv_自動計算() If DGV位置2.Value >= 報價明細表_dgv.Rows.Count Then : DGV位置2.Value = 報價明細表_dgv.Rows.Count - 1 : End If If DGV位置2.Value > 0 Then : 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(DGV位置2.Value).Cells(1) : End If For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 : 報價明細表_dgv.Rows(i).Cells("S").Value = False : Next Set_合約報價明細表格式() End If End Sub Private Sub Set_報價係數_dgv_下拉式清單1() Dim Col As New DataGridViewComboBoxColumn With { .FillWeight = 60, .DataPropertyName = "材料係數" } SQL_合約報價係數_下拉() Col.Items.Clear() While (dr.Read()) : Col.Items.Add(dr("項目")) : End While : conn.Close() Col.HeaderText = "係數" : Col.Name = "係數" 報價明細表_dgv.Columns.Insert(60, Col) End Sub Private Sub Set_報價明細表_dgv_利潤表關閉() If 報價明細表_dgv.Rows.Count > 0 Then 利潤表_ch.Checked = False : For i As Integer = 8 To 17 : 報價明細表_dgv.Columns(i).Visible = False : Next 報價明細表_dgv.Columns(33).Visible = False : 報價明細表_dgv.Columns(7).Visible = True : 報價明細表_dgv.Columns(4).Visible = True End If End Sub Private Sub Set_報價明細表_dgv_利潤表開啟() If 報價明細表_dgv.Rows.Count > 0 Then For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = False : Next 報價明細表_dgv.Columns(8).Visible = True : 報價明細表_dgv.Columns(17).Visible = True : 報價明細表_dgv.Columns(33).Visible = True 報價明細表_dgv.Columns(7).Visible = False : 報價明細表_dgv.Columns(4).Visible = False : 利潤表_ch.Checked = True If 工資_ch.Checked = True Then : For i As Integer = 9 To 12 : 報價明細表_dgv.Columns(i).Visible = True : Next Else : For i As Integer = 9 To 12 : 報價明細表_dgv.Columns(i).Visible = False : Next : End If If 材料_ch.Checked = True Then : For i As Integer = 13 To 16 : 報價明細表_dgv.Columns(i).Visible = True : Next Else : For i As Integer = 13 To 16 : 報價明細表_dgv.Columns(i).Visible = False : Next : End If End If End Sub Private Sub Set_合約範例() Dim ds12 As New DataSet 範例文本_dgv.DataSource = Nothing : ds12.Clear() 範例文本_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 範例文本_dgv.ColumnHeadersHeight = 25 : 範例文本_dgv.AllowUserToAddRows = False SQL_合約清單_範本() da.Fill(ds12) : 範例文本_dgv.DataSource = ds12.Tables(0) : conn.Close() 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 PA = 關鍵字搜尋_tb.Text : PA46 = 合約編號1_cb.Text : PA47 = 工程期1_ch.Text SQL_合約清單_報價用() da.Fill(ds6) : 合約_dgv.DataSource = ds6.Tables(0) : conn.Close() 合約_dgv.Columns(0).FillWeight = 130 : 合約_dgv.Columns("工程名稱_中").FillWeight = 280 : 合約_dgv.Columns("簽回").FillWeight = 40 : 合約_dgv.Columns("審核通過").FillWeight = 40 合約_dgv.Columns("停止").FillWeight = 40 For i As Integer = 1 To 38 : 合約_dgv.Columns(i).Visible = False : Next For i As Integer = 0 To 合約_dgv.Rows.Count - 1 If IsDBNull(合約_dgv("停止", i).Value) = True Then : 合約_dgv("停止", i).Value = False : End If If IsDBNull(合約_dgv("簽回", i).Value) = True Then : 合約_dgv("簽回", i).Value = False : End If Next If 放大 = True Then 合約_dgv.Columns("工程名稱_中").Visible = True : 合約_dgv.Columns("審核通過").Visible = True : 合約_dgv.Columns("停止").Visible = True Else 合約_dgv.Columns("工程名稱_中").Visible = False : 合約_dgv.Columns("審核通過").Visible = False : 合約_dgv.Columns("停止").Visible = False 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 SQL_合約試算控制表_查詢() da.Fill(ds5) : 試算控制表_dgv.DataSource = ds5.Tables(0) : conn.Close() For i As Integer = 0 To 40 : 合約試算表頭(i) = i & "." : Next If 試算控制表_dgv.Rows.Count > 0 Then : For i As Integer = 0 To 試算控制表_dgv.Rows.Count - 1 : 合約試算表頭(i + 1) = 試算控制表_dgv("樓層/迴路", i).Value.ToString : Next : End If Set_試算明細表() End Sub Private Sub Set_試算明細表() Dim DS7 As New DataSet 試算表_dgv.DataSource = Nothing : DS7.Clear() 試算表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 試算表_dgv.ColumnHeadersHeight = 120 : 試算表_dgv.AllowUserToAddRows = False : 試算表_dgv.RowTemplate.Height = 45 SQL_合約試算明細表_查詢() da.Fill(DS7) : 試算表_dgv.DataSource = DS7.Tables(0) : conn.Close() 試算表_dgv.Columns(0).Frozen = True : 試算表_dgv.Columns(1).Frozen = True : 試算表_dgv.Columns(2).Frozen = True 試算表_dgv.Columns(0).Visible = False For I As Integer = 45 To 54 : 試算表_dgv.Columns(I).Visible = False : Next 試算表_dgv.Columns(1).Width = 100 : 試算表_dgv.Columns(2).Width = 150 : 試算表_dgv.Columns(43).Width = 30 : 試算表_dgv.Columns(44).Width = 50 試算表_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 試算表_dgv.Columns(44).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 試算表_dgv.Columns(44).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 試算表_dgv.Columns(44).DefaultCellStyle.Format = "#,##0" If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2 Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If 試算表_dgv.Columns(1).ReadOnly = True : 試算表_dgv.Columns(2).ReadOnly = True : 試算表_dgv.Columns(44).ReadOnly = True Dim 開始 As Integer = 3 : Dim 結束 As Integer = 42 For I As Integer = 開始 To 結束 : 試算表_dgv.Columns(I).Width = 80 試算表_dgv.Columns(I).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 試算表_dgv.Columns(I).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter 試算表_dgv.Columns(I).DefaultCellStyle.Format = "#,##0.0" Next Dim 表頭數 As Integer = 試算控制表_dgv.Rows.Count If 表頭數 = 0 Then For I As Integer = 開始 To 結束 : 試算表_dgv.Columns(I).Visible = False : Next ElseIf 表頭數 > 0 Then For I As Integer = 開始 To 表頭數 + 2 : 試算表_dgv.Columns(I).Visible = True : Next For I As Integer = 表頭數 + 3 To 結束 : 試算表_dgv.Columns(I).Visible = False : Next End If For i As Integer = 0 To 試算表_dgv.Rows.Count - 1 '-------------------------規格合併呈現---------------------------------------------------------------------------------------------------------------------------------------- If i = 0 Then PA3 = 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取() If dr.Read() Then AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8") End If : conn.Close() Else If 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value.ToString <> 試算表_dgv.Rows(i - 1).Cells("規格庫抬頭指定").Value.ToString Then PA3 = 試算表_dgv.Rows(i).Cells("規格庫抬頭指定").Value : SQL_規格庫抬頭讀取() If dr.Read() Then AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8") End If : conn.Close() End If End If Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = "" If 詳細資料3_ch.Checked = True Then If 試算表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then ZA1 = AAA1 & "=" & 試算表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If If 試算表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : ZA2 = AAA2 & "=" & 試算表_dgv.Rows(i).Cells("A2").Value If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If If 試算表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : ZA3 = AAA3 & "=" & 試算表_dgv.Rows(i).Cells("A3").Value If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If If 試算表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : ZA4 = AAA4 & "=" & 試算表_dgv.Rows(i).Cells("A4").Value If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If If 試算表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : ZA5 = AAA5 & "=" & 試算表_dgv.Rows(i).Cells("A5").Value If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If If 試算表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : ZA6 = AAA6 & "=" & 試算表_dgv.Rows(i).Cells("A6").Value If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If If 試算表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : ZA7 = AAA7 & "=" & 試算表_dgv.Rows(i).Cells("A7").Value If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If If 試算表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : ZA8 = AAA8 & "=" & 試算表_dgv.Rows(i).Cells("A8").Value If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If Else If 試算表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : ZA1 = 試算表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If If 試算表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then ZA2 = 試算表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If If 試算表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then ZA3 = 試算表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If If 試算表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then ZA4 = 試算表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If If 試算表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then ZA5 = 試算表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If If 試算表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then ZA6 = 試算表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If If 試算表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then ZA7 = 試算表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If If 試算表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then ZA8 = 試算表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If End If 試算表_dgv.Rows(i).Cells("樓層/迴路").Value = 物料規格 Next End Sub Private Sub Set_語言() 語言_dgv.DataSource = Nothing : ds13.Clear() 語言_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 語言_dgv.ColumnHeadersHeight = 25 : 語言_dgv.AllowUserToAddRows = False SQL_系統語言導入() da.Fill(ds13) : 語言_dgv.DataSource = ds13.Tables(0) : conn.Close() End Sub Private Sub 語言轉換讀取() Set_語言() : conn.Close() For i As Integer = 0 To 語言_dgv.Rows.Count - 1 If 語言_dgv("控件", i).Value.ToString = "物料清單_dgv_單位" Then : 表頭(16) = 語言_dgv("內容", i).Value.ToString : End If Next End Sub Private Sub Set_DGV1載入前設定() 物料清單_dgv.DataSource = Nothing : ds4.Clear() 物料清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 物料清單_dgv.ColumnHeadersHeight = 25 : 物料清單_dgv.AllowUserToAddRows = False If 小間距_ch.Checked = False And 中間距_ch.Checked = False And 大間距_ch.Checked = True Then : 物料清單_dgv.RowTemplate.Height = 65 ElseIf 小間距_ch.Checked = False And 中間距_ch.Checked = True And 大間距_ch.Checked = False Then : 物料清單_dgv.RowTemplate.Height = 45 ElseIf 小間距_ch.Checked = True And 中間距_ch.Checked = False And 大間距_ch.Checked = False Then : 物料清單_dgv.RowTemplate.Height = 25 End If : ConnOpen_ERP() End Sub Private Sub Set_清單1() PA1 = 群組碼_tb.Text : Set_DGV1載入前設定() : SQL_合約試算分表_物料清單一() : Set_DG1載入後設定() End Sub Private Sub Set_DG1載入後設定() CmdSet_For_DGV() : da.Fill(ds4) : 物料清單_dgv.DataSource = ds4.Tables(0) : conn.Close() 物料清單_dgv.Columns(0).Visible = False : 物料清單_dgv.Columns(1).FillWeight = 80 : 物料清單_dgv.Columns(2).FillWeight = 175 : 物料清單_dgv.Columns(3).Visible = False 物料清單_dgv.Columns(4).Visible = False : 物料清單_dgv.Columns(5).FillWeight = 45 物料清單_dgv.Columns(0).ReadOnly = True : 物料清單_dgv.Columns(1).ReadOnly = True : 物料清單_dgv.Columns(2).ReadOnly = True For i As Integer = 0 To 物料清單_dgv.Rows.Count - 1 : 物料清單_dgv(0, i).Value = i + 1 : Next If 低網速模式 = False Then 物料清單_dgv.Columns(6).FillWeight = 50 : 物料清單_dgv.Columns(6).Visible = True Dim mycol As DataGridViewImageColumn = 物料清單_dgv.Columns("圖檔") : mycol.ImageLayout = DataGridViewImageCellLayout.Zoom Else If 物料清單_dgv.Columns.Count = 7 Then : 物料清單_dgv.Columns(6).Visible = False : End If End If End Sub Private Sub Set_合約明細1() 第1期_dgv.DataSource = Nothing : ds7.Clear() 第1期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 第1期_dgv.ColumnHeadersHeight = 25 : 第1期_dgv.AllowUserToAddRows = False SQL_合約明細讀取() da.Fill(ds7) : 第1期_dgv.DataSource = ds7.Tables(0) : conn.Close() 第1期_dgv.Columns(0).Visible = False : 第1期_dgv.Columns(1).Visible = False : 第1期_dgv.Columns(2).FillWeight = 20 : 第1期_dgv.Columns(3).FillWeight = 140 第1期_dgv.Columns(4).FillWeight = 20 : 第1期_dgv.Columns(5).FillWeight = 50 第1期_dgv.Columns(2).ReadOnly = True : 第1期_dgv.Columns(5).ReadOnly = True 第1期_dgv.EditMode = DataGridViewEditMode.EditOnEnter 第1期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第1期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第1期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0" 第1期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第1期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight End Sub Private Sub Set_合約明細2() 第2期_dgv.DataSource = Nothing : ds8.Clear() 第2期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 第2期_dgv.ColumnHeadersHeight = 25 : 第2期_dgv.AllowUserToAddRows = False SQL_合約明細讀取() da.Fill(ds8) : 第2期_dgv.DataSource = ds8.Tables(0) : conn.Close() 第2期_dgv.Columns(0).Visible = False : 第2期_dgv.Columns(1).Visible = False : 第2期_dgv.Columns(2).FillWeight = 20 : 第2期_dgv.Columns(3).FillWeight = 140 第2期_dgv.Columns(4).FillWeight = 20 : 第2期_dgv.Columns(5).FillWeight = 50 第2期_dgv.Columns(2).ReadOnly = True : 第2期_dgv.Columns(5).ReadOnly = True 第2期_dgv.EditMode = DataGridViewEditMode.EditOnEnter 第2期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第2期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第2期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0" 第2期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第2期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight End Sub Private Sub Set_合約明細3() 第3期_dgv.DataSource = Nothing : ds9.Clear() 第3期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 第3期_dgv.ColumnHeadersHeight = 25 第3期_dgv.AllowUserToAddRows = False SQL_合約明細讀取() da.Fill(ds9) : 第3期_dgv.DataSource = ds9.Tables(0) : conn.Close() 第3期_dgv.Columns(0).Visible = False : 第3期_dgv.Columns(1).Visible = False : 第3期_dgv.Columns(2).FillWeight = 20 : 第3期_dgv.Columns(3).FillWeight = 140 第3期_dgv.Columns(4).FillWeight = 20 : 第3期_dgv.Columns(5).FillWeight = 50 第3期_dgv.Columns(2).ReadOnly = True : 第3期_dgv.Columns(5).ReadOnly = True 第3期_dgv.EditMode = DataGridViewEditMode.EditOnEnter 第3期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第3期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第3期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0" 第3期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第3期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight End Sub Private Sub Set_合約明細4() 第4期_dgv.DataSource = Nothing : ds10.Clear() 第4期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 第4期_dgv.ColumnHeadersHeight = 25 : 第4期_dgv.AllowUserToAddRows = False SQL_合約明細讀取() da.Fill(ds10) : 第4期_dgv.DataSource = ds10.Tables(0) : conn.Close() 第4期_dgv.Columns(0).Visible = False : 第4期_dgv.Columns(1).Visible = False : 第4期_dgv.Columns(2).FillWeight = 20 : 第4期_dgv.Columns(3).FillWeight = 140 第4期_dgv.Columns(4).FillWeight = 20 : 第4期_dgv.Columns(5).FillWeight = 50 第4期_dgv.Columns(2).ReadOnly = True : 第4期_dgv.Columns(5).ReadOnly = True 第4期_dgv.EditMode = DataGridViewEditMode.EditOnEnter 第4期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第4期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第4期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0" 第4期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第4期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight End Sub Private Sub Set_合約明細5() 第5期_dgv.DataSource = Nothing : ds11.Clear() 第5期_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 第5期_dgv.ColumnHeadersHeight = 25 : 第5期_dgv.AllowUserToAddRows = False SQL_合約明細讀取() da.Fill(ds11) : 第5期_dgv.DataSource = ds11.Tables(0) : conn.Close() 第5期_dgv.Columns(0).Visible = False : 第5期_dgv.Columns(1).Visible = False : 第5期_dgv.Columns(2).FillWeight = 20 : 第5期_dgv.Columns(3).FillWeight = 140 第5期_dgv.Columns(4).FillWeight = 20 : 第5期_dgv.Columns(5).FillWeight = 50 第5期_dgv.Columns(2).ReadOnly = True : 第5期_dgv.Columns(5).ReadOnly = True 第5期_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 第5期_dgv.Columns(4).DefaultCellStyle.Format = "#,##0.00" : 第5期_dgv.Columns(5).DefaultCellStyle.Format = "#,##0" 第5期_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 第5期_dgv.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight End Sub Private Sub 係數表下拉清單1() SQL_合約係數表下拉1() : 係數項目_cb.Items.Clear() : While (dr.Read()) : 係數項目_cb.Items.Add(dr("項目")) : End While : conn.Close() End Sub Private Sub 係數表下拉清單2() SQL_合約係數表下拉2() : 係數單位_cb.Items.Clear() : While (dr.Read()) : 係數單位_cb.Items.Add(dr("單位")) : End While : conn.Close() End Sub Private Sub 合約試算分下拉清單() PA = 合約編號_tb.Text : SQL_合約試算分表查詢() : 試算表_cb.Items.Clear() : While (dr.Read()) : 試算表_cb.Items.Add(dr("試算表")) : End While : conn.Close() End Sub Private Sub 合約試算控制下拉清單() PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : SQL_合約試算控制表查詢() : 樓層_迴路_cb.Items.Clear() : While (dr.Read()) : 樓層_迴路_cb.Items.Add(dr("樓層/迴路")) : End While : conn.Close() End Sub Private Sub 群組碼_cb_語轉_下拉表單資料載入() SQL_群組碼_語轉_下拉清單() : 新群組1_cb.Items.Clear() : While (dr.Read()) : 新群組1_cb.Items.Add(dr("群組")) : End While : conn.Close() End Sub Private Sub 群組編碼_cb_下拉表單資料載入() SQL_群組碼_下拉清單() : 群組編碼_cb.Items.Clear() : While (dr.Read()) : 群組編碼_cb.Items.Add(dr("群組碼")) : End While : conn.Close() End Sub Private Sub 合約種類下拉清單讀取() SQL_合約種類讀取() : 合約種類_cb.Items.Clear() : While (dr.Read()) : 合約種類_cb.Items.Add(dr("中")) : End While : conn.Close() End Sub Private Sub 客戶名稱下拉清單讀取() SQL_客戶名稱讀取() : 客戶名稱_tb.Items.Clear() : While (dr.Read()) : 客戶名稱_tb.Items.Add(dr("客戶名稱")) : End While : conn.Close() End Sub Private Sub 我司負責人下拉清單讀取() SQL負責人B讀取() : 負責人_B_cb.Items.Clear() : While (dr.Read()) : 負責人_B_cb.Items.Add(dr("負責人B")) : End While : conn.Close() End Sub Private Sub 甲方條件下拉清單讀取() SQL合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : 合約編號2_cb.Items.Clear() : 合約編號2_cb.Items.Add("") 甲方_cb.Items.Clear() : 甲方_cb.Items.Add("") While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : 合約編號2_cb.Items.Add(dr("約號甲方")) : 甲方_cb.Items.Add(dr("約號甲方")) : End While : conn.Close() End Sub Private Sub 預設資料() 合約種類_cb.Text = "" : 合約種類_tb.Text = "" : 客戶名稱_tb.Text = "" : 負責人_A_cb.Text = "" 工程地點_tb.Text = "" : 客戶地址_tb.Text = "" : 工程名稱_中_tb.Text = "" : 工程名稱_英_tb.Text = "" : 負責人_B_cb.Text = "" : CH2.Checked = True : 立約日期_dtp.Value = Today() 我司地址_tb.Text = "" : 廠區_中文_tb.Text = "" NUD3.Value = 0 : 工程款1_nud.Value = 30 : 工程款2_nud.Value = 40 : 工程款3_nud.Value = 20 : 工程款4_nud.Value = 5 : 工程款5_nud.Value = 5 : 工期_nud.Value = 180 最高扣款_英_bt.Text = "5 (five)%." : 逾期_bt.Text = "0.0005% (萬分之五)" : 頁數_bt.Text = "16" 最高扣款_bt.Text = "5% (百分之五)" : 逾期_英_bt.Text = "0.0005% (null point null null null five percent)" Set_合約清單() : 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取() 合約種類_cb.SelectedIndex = 0 第1期_dgv.DataSource = Nothing : ds7.Clear() : 第2期_dgv.DataSource = Nothing : ds8.Clear() : 第3期_dgv.DataSource = Nothing : ds9.Clear() 第4期_dgv.DataSource = Nothing : ds10.Clear() : 第5期_dgv.DataSource = Nothing : ds11.Clear() End Sub Private Sub 預設資料1() 工程地點_tb.Text = "" : 工程名稱_中_tb.Text = "" : 工程名稱_英_tb.Text = "" : 負責人_B_cb.Text = "" : CH2.Checked = True : 立約日期_dtp.Value = Today() If 選擇公司_cb.Text = "G.C.M. Smart Enterprise LTD." Then : 我司地址_tb.Text = "屏東縣萬丹鄉麟洛鄉中山路382-103號" : Else 我司地址_tb.Text = "J.Kaliandra 1 no 1E blok F6 Lantai 2 Delta Silicon II Lippo Cikarang ,Desa Cicau ,Kec. Cikarang Pusat, Kab Bekasi" End If 廠區_中文_tb.Text = "" NUD3.Value = 0 : 工程款1_nud.Value = 30 : 工程款2_nud.Value = 40 : 工程款3_nud.Value = 20 : 工程款4_nud.Value = 5 : 工程款5_nud.Value = 5 : 工期_nud.Value = 180 最末頁_cb.Text = "16" : 最高扣款_英_bt.Text = "5 (five)%." : 逾期_bt.Text = "0.0005% (萬分之五)" : 頁數_bt.Text = "16" 最高扣款_bt.Text = "5% (百分之五)" : 逾期_英_bt.Text = "0.0005% (null point null null null five percent)" Set_合約清單() : 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取() 合約種類_cb.SelectedIndex = 0 第1期_dgv.DataSource = Nothing : ds7.Clear() : 第2期_dgv.DataSource = Nothing : ds8.Clear() : 第3期_dgv.DataSource = Nothing : ds9.Clear() 第4期_dgv.DataSource = Nothing : ds10.Clear() : 第5期_dgv.DataSource = Nothing : ds11.Clear() End Sub Private Sub 匯率() PA48 = Strings.Left(Strings.Format(立約日期_dtp.Value, "yyyyMMdd"), 4) : PA49 = Strings.Mid(Strings.Format(立約日期_dtp.Value, "yyyyMMdd"), 5, 2) SQL_匯率查詢() If dr.Read() Then 人民幣匯率 = dr("中心匯率").ToString : 美金匯率 = dr("美金匯率").ToString : 印尼匯率 = dr("印尼匯率").ToString : conn.Close() : dr.Close() If 台幣_ch.Checked = True Then : 匯率1 = 1 / 印尼匯率 ElseIf 人民幣_ch.Checked = True Then : 匯率1 = 人民幣匯率 / 印尼匯率 ElseIf 美金_ch.Checked = True Then : 匯率1 = 美金匯率 / 印尼匯率 ElseIf 印尼盾_ch.Checked = True Then : 匯率1 = 1 / 印尼匯率 End If Else conn.Close() : dr.Close() If 系統語言 = "繁體中文" Then : MsgBox("請通知 [財務主管]新增匯率資料!!") Else : MsgBox("Please notify [Treasurer] to add exchange rate information!!") : End If If 台幣_ch.Checked = True Then : 匯率1 = 1 / 0.002 ElseIf 人民幣_ch.Checked = True Then : 匯率1 = 4.5 / 0.002 ElseIf 美金_ch.Checked = True Then : 匯率1 = 31 / 0.002 ElseIf 印尼盾_ch.Checked = True Then : 匯率1 = 1 End If End If End Sub Private Sub 合約報價單_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 介面 = "H401" : 語言轉換讀取() Me.KeyPreview = True : 介面啟動 = True 合約編號2_tb.Enabled = False : 合約編號3_tb.Enabled = False : CH1.Checked = False : CH2.Checked = True : NUD1.Enabled = False : NUD3.Enabled = True : 合約_lb.Text = "合約" 小間距_ch.Checked = True : 視窗1_pl.Visible = False : 視窗2_pl.Visible = False : 視窗3_pl.Visible = False : 視窗4_pl.Visible = False : 直接輸入_ch.Checked = True 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False 使用計算機_ch.Checked = False : SQL2 = "" If CInt(登入人級別) <= 5 Then : 合約停止_ch.Enabled = True : 刪除合約_bt.Enabled = True : Else : 合約停止_ch.Enabled = False : 刪除合約_bt.Enabled = False : End If 縮放1_bt.PerformClick() : 物料清單_dgv.BringToFront() : Panel1.SendToBack() : 縮放_bt.PerformClick() : 不再動作1 = True A1 = 空間1.Location.X : A2 = 錨點1.Location.X : B2 = 空間2.Location.Y : A3 = 空間2.Size.Width : B3 = 空間2.Size.Height AA1 = 合約_dgv.Location.X : AA2 = 錨點2.Location.X : BB2 = 空間3.Location.Y : AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height OX1 = 報價係數_dgv.Size.Width : OY1 = 報價係數_dgv.Size.Height : OY2 = 報價明細表_dgv.Size.Height 中文大寫3_ch.Checked = False : 中文小寫3_ch.Checked = True ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("一") : ITEM4_cb.Items.Add("二") : ITEM4_cb.Items.Add("三") : ITEM4_cb.Items.Add("四") ITEM4_cb.Items.Add("五") : ITEM4_cb.Items.Add("六") : ITEM4_cb.Items.Add("七") : ITEM4_cb.Items.Add("八") : ITEM4_cb.Items.Add("九") : ITEM4_cb.Items.Add("十") ITEM4_cb.Items.Add("十一") : ITEM4_cb.Items.Add("十二") : ITEM4_cb.Items.Add("十三") : ITEM4_cb.Items.Add("十四") : ITEM4_cb.Items.Add("十五") : ITEM4_cb.Items.Add("十六") ITEM4_cb.Items.Add("十七") : ITEM4_cb.Items.Add("十八") : ITEM4_cb.Items.Add("十九") : ITEM4_cb.Items.Add("二十") 預估工資總成本_tb.Text = "0" : 預估材料總成本_tb.Text = "0" : 預估工資總報價_tb.Text = "0" : 預估材料總報價_tb.Text = "0" : 預估利潤_tb.Text = "0" 總成本_tb.Text = "0" : 總報價_tb.Text = "0" : 利潤比1_tb.Text = "0 %" : 利潤比2_tb.Text = "0 %" : 利潤比3_tb.Text = "0 %" : 利潤比4_tb.Text = "0 %" 未折價前_tb.Text = "0" : 報價小計_tb.Text = "0" : 折讓比例_nud.Value = "0" : 歸零位數_nud.Value = "0" : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False 歸零數_tb.Visible = False If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)" ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMD)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If 合約報價單_Siz() End Sub Private Sub 合約報價單_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged 合約報價單_Siz() A1 = 空間1.Location.X : A2 = 錨點1.Location.X : B2 = 空間2.Location.Y AA1 = 合約_dgv.Location.X : AA2 = 錨點2.Location.X : BB2 = 空間3.Location.Y If 空間1.Visible = False Then : A3 = 空間2.Size.Width : B3 = 空間2.Size.Height : A3 -= (A2 - A1) : End If If 合約_dgv.Visible = False Then : AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height : AA3 -= (AA2 - AA1) : End If End Sub Private Sub 合約報價單_Siz() MyModule1.清單字體大小調整() 合約_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) 合約1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) 報價係數_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) 報價總表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) 報價明細表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) BOM表控制_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) BOM表明細_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) 報價明細表1_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) 報價明細表2_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) End Sub Private Sub 合約報價單_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown Set_合約清單1() : Set_合約清單() : 群組碼_cb_語轉_下拉表單資料載入() : 群組編碼_cb_下拉表單資料載入() : 係數表下拉清單1() : 係數表下拉清單2() : 甲方條件下拉清單讀取() : Set_BOM表控制() 新群組1_cb.SelectedIndex = 0 : PA = "範本" : Set_合約範例() : 預設資料() : Set_合約文件圖庫資料庫狀態() End Sub Private Sub 合約報價單_Closing(sender As Object, e As EventArgs) Handles MyBase.Closed GCM_ERP_SYS.WindowState = 0 End Sub Private Sub 登入閒置控制_MouseMove(sender As Object, e As EventArgs) Handles MyBase.MouseMove timeNow = 0 : GCM_ERP_SYS.Timer1.Enabled = False : GCM_ERP_SYS.Timer1.Enabled = True End Sub Private Sub 登入閒置控制_KeyPress(sender As Object, e As EventArgs) Handles MyBase.KeyPress timeNow = 0 : GCM_ERP_SYS.Timer1.Enabled = False : GCM_ERP_SYS.Timer1.Enabled = True End Sub Private Sub Form_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown If e.Control And e.KeyCode = Keys.S Then If TabControl1.SelectedIndex = 0 Then : 報價總表存檔_bt.PerformClick() ElseIf TabControl1.SelectedIndex <> 0 Then : 報價明細表存檔_bt.PerformClick() : End If End If If e.KeyCode = Keys.F1 Then If TabControl1.SelectedIndex = 0 Then : If 鍵盤鎖定1_ch.Checked = True Then : 鍵盤鎖定1_ch.Checked = False : Else : 鍵盤鎖定1_ch.Checked = True : End If ElseIf TabControl1.SelectedIndex <> 0 Then : If 鍵盤鎖定2_ch.Checked = True Then : 鍵盤鎖定2_ch.Checked = False : Else : 鍵盤鎖定2_ch.Checked = True : End If : End If End If If TabControl1.SelectedIndex = 0 Then If 鍵盤鎖定1_ch.Checked = True Then Select Case e.KeyCode Case Keys.NumPad1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.NumPad0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Decimal : Me.ActiveControl = 小數點_bt : 小數點_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.D0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.OemPeriod : Me.ActiveControl = 小數點_bt : 小數點_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Delete : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Multiply : Me.ActiveControl = 乘_bt : 乘_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Subtract : Me.ActiveControl = 減_bt : 減_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.OemMinus : Me.ActiveControl = 減_bt : 減_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Add : Me.ActiveControl = 加_bt : 加_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Oemplus : Me.ActiveControl = 加_bt : 加_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Oem2 : Me.ActiveControl = 除_bt : 除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Divide : Me.ActiveControl = 除_bt : 除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Back : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Return : Me.ActiveControl = 倒退_bt : 倒退_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() Case Keys.Escape : Me.ActiveControl = 清除_bt : 清除_bt.PerformClick() : Me.ActiveControl = 等於_bt : 等於_bt.Focus() End Select End If ElseIf TabControl1.SelectedIndex <> 0 Then If 鍵盤鎖定2_ch.Checked = True Then Select Case e.KeyCode Case Keys.NumPad1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.NumPad0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Decimal : Me.ActiveControl = 小數點1_bt : 小數點1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D1 : Me.ActiveControl = A1_bt : A1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D2 : Me.ActiveControl = A2_bt : A2_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D3 : Me.ActiveControl = A3_bt : A3_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D4 : Me.ActiveControl = A4_bt : A4_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D5 : Me.ActiveControl = A5_bt : A5_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D6 : Me.ActiveControl = A6_bt : A6_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D7 : Me.ActiveControl = A7_bt : A7_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D8 : Me.ActiveControl = A8_bt : A8_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D9 : Me.ActiveControl = A9_bt : A9_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.D0 : Me.ActiveControl = A0_bt : A0_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.OemPeriod : Me.ActiveControl = 小數點1_bt : 小數點1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Delete : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Multiply : Me.ActiveControl = 乘1_bt : 乘1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Subtract : Me.ActiveControl = 減1_bt : 減1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.OemMinus : Me.ActiveControl = 減1_bt : 減1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Add : Me.ActiveControl = 加1_bt : 加1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Oemplus : Me.ActiveControl = 加1_bt : 加1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Oem2 : Me.ActiveControl = 除1_bt : 除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Divide : Me.ActiveControl = 除1_bt : 除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Back : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Return : Me.ActiveControl = 倒退1_bt : 倒退1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() Case Keys.Escape : Me.ActiveControl = 清除1_bt : 清除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt : 等於1_bt.Focus() End Select End If End If End Sub Private Sub 報價明細表2_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 報價明細表2_dgv.CellClick If e.RowIndex = -1 Then : Else If 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True Then 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = False Else 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True End If 物料圖1_pb.Image = Nothing If 報價明細表2_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else PA2 = 報價明細表2_dgv.Rows(e.RowIndex).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) 物料圖1_pb.Image = Bitmap.FromStream(oStream) End While : conn.Close() : 物料圖1_pb.SizeMode = 4 End If '------------數字為0隱藏----------------------------------------------------------------------------------------------- For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1 If IsDBNull(報價明細表2_dgv.Rows(i).Cells("QTY").Value) Then : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.White : Else If 報價明細表2_dgv.Rows(i).Cells("QTY").Value = 0 Then : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.White Else : 報價明細表2_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.Black : End If : End If Next If 報價明細表2_dgv.Rows(e.RowIndex).Cells("選擇").Value = True Then 報價明細表2_dgv.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.LightGreen Else : 報價明細表2_dgv.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.White : End If End If 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 合約編號_1_tb.Text = 合約1_dgv.Rows(e.RowIndex).Cells("合約編號").Value : Set_合約報價明細表1() If 放大 = True Then : 縮放2_bt.PerformClick() : End If End If End Sub Private Sub BOM表控制_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles BOM表控制_dgv.CellClick If e.RowIndex = -1 Then : Else 主項目_tb.Text = BOM表控制_dgv.Rows(e.RowIndex).Cells("項目").Value.ToString : 項目流水_tb.Text = BOM表控制_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString PA = 項目流水_tb.Text : Set_BOM表明細() End If End Sub Private Sub BOM表明細_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles BOM表明細_dgv.CellClick If e.RowIndex = -1 Then : Else 物料圖1_pb.Image = Nothing If BOM表明細_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else PA2 = BOM表明細_dgv.Rows(e.RowIndex).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) 物料圖1_pb.Image = Bitmap.FromStream(oStream) End While : conn.Close() : 物料圖1_pb.SizeMode = 4 End If End If End Sub Private Sub 合約讀取() 試算表_cb.Items.Clear() : 試算表_cb.Text = "試算表1" : 表號_tb.Text = "B01" '---------合約生成-------------------------------------------------------------------------------------------------------------- 合約種類下拉清單讀取() : 客戶名稱下拉清單讀取() : 我司負責人下拉清單讀取() If Strings.Left(合約_dgv("合約編號", 選取位置).Value.ToString, 3) = "GCM" Then : 合約編號_cb.Text = "GCM" : Else : 合約編號_cb.Text = "ICS" : End If 合約編號1_tb.Text = 合約_dgv("約號甲方", 選取位置).Value.ToString : 合約編號2_tb.Text = 合約_dgv("約號排序", 選取位置).Value.ToString 合約編號3_tb.Text = 合約_dgv("約號尾序", 選取位置).Value.ToString : 報價說明_tb.Text = 合約_dgv("報價說明", 選取位置).Value.ToString 客戶名稱_tb.Text = 合約_dgv("客戶名稱", 選取位置).Value.ToString : 負責人_A_cb.Text = 合約_dgv("負責人A", 選取位置).Value.ToString 工程地點_tb.Text = 合約_dgv("工程地點", 選取位置).Value.ToString : 客戶地址_tb.Text = 合約_dgv("客戶地址", 選取位置).Value.ToString 工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString 負責人_B_cb.Text = 合約_dgv("負責人B", 選取位置).Value.ToString : 我司地址_tb.Text = 合約_dgv("我司地址", 選取位置).Value.ToString CH2.Checked = True : NUD3.Value = 合約_dgv("工程總價", 選取位置).Value : 工程款1_nud.Value = 合約_dgv("第一期比例", 選取位置).Value 工程款2_nud.Value = 合約_dgv("第二期比例", 選取位置).Value : 工程款3_nud.Value = 合約_dgv("第三期比例", 選取位置).Value 工程款4_nud.Value = 合約_dgv("第四期比例", 選取位置).Value : 工程款5_nud.Value = 合約_dgv("第五期比例", 選取位置).Value 工期_nud.Value = 合約_dgv("工期", 選取位置).Value : 逾期_bt.Text = 合約_dgv("逾期_中", 選取位置).Value.ToString 最高扣款_bt.Text = 合約_dgv("最高扣罰_中", 選取位置).Value.ToString : 逾期_英_bt.Text = 合約_dgv("逾期_英", 選取位置).Value.ToString 最高扣款_英_bt.Text = 合約_dgv("最高扣罰_英", 選取位置).Value.ToString : 減價_bt.Text = 合約_dgv("減價", 選取位置).Value.ToString 廠區_中文_tb.Text = 合約_dgv("工程廠區", 選取位置).Value.ToString : 最末頁_cb.Text = 合約_dgv("頁數", 選取位置).Value.ToString 立約日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value : 合約種類_cb.Text = 合約_dgv("合約種類", 選取位置).Value.ToString 合約停止_ch.Checked = 合約_dgv("停止", 選取位置).Value If 合約_dgv("幣別", 選取位置).Value.ToString = “美金“ Then : 美金_ch.Checked = True : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "台幣" Then : 美金_ch.Checked = False : 台幣_ch.Checked = True : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "人民幣" Then : 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = True : 印尼盾_ch.Checked = False ElseIf 合約_dgv("幣別", 選取位置).Value.ToString = "印尼盾" Then : 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = True End If 折讓比例_nud.Value = 合約_dgv(“折讓比例", 選取位置).Value : 歸零位數_nud.Value = 合約_dgv("歸零位數", 選取位置).Value 稅前歸零_ch.Checked = 合約_dgv("稅前歸零", 選取位置).Value : 稅後歸零_ch.Checked = 合約_dgv(“稅後歸零", 選取位置).Value 圖片庫 = 合約_dgv("簽回檔圖庫", 選取位置).Value.ToString : 簽回檔 = 合約_dgv("簽回", 選取位置).Value PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5() '---------試算表-------------------------------------------------------------------------------------------------------------- 合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString PA = 合約_dgv("合約編號", 選取位置).Value.ToString : SQL_合約試算分表查詢() If dr.Read() Then 試算表_cb.Items.Clear() : conn.Close() : SQL_合約試算分表查詢() : While (dr.Read()) : 試算表_cb.Items.Add(dr("試算表")) : End While conn.Close() : 試算表_cb.SelectedIndex = 0 : 表號_tb.Text = "B01" : PA2 = 表號_tb.Text : SQL_合約試算控制表查詢() If dr.Read() Then 樓層_迴路_cb.Items.Clear() : conn.Close() : SQL_合約試算控制表查詢() : While (dr.Read()) : 樓層_迴路_cb.Items.Add(dr("樓層/迴路")) : End While : conn.Close() 樓層_迴路_cb.SelectedIndex = 0 : 表頭_tb.Text = "A01" : Set_合約試算控制表_查詢() Else 樓層_迴路_cb.Items.Clear() : 表頭_tb.Text = "" : Set_合約試算控制表_查詢() End If : conn.Close() Else conn.Close() : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_新增() End If : conn.Close() '---------報價單-------------------------------------------------------------------------------------------------------------- 報價單合約編號_tb.Text = 合約_dgv("合約編號", 選取位置).Value.ToString : 報價單客戶名稱_cb.Text = 合約_dgv("客戶名稱", 選取位置).Value.ToString 報價工程名稱_中_tb.Text = 合約_dgv("工程名稱_中", 選取位置).Value.ToString : 報價工程名稱_英_tb.Text = 合約_dgv("工程名稱_英", 選取位置).Value.ToString 報價單立約日期_dtp.Value = 合約_dgv("立約日期", 選取位置).Value.ToString PA = 合約編號_tb.Text : 合約_lb.Text = "合約" Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表() : 報價總表_dgv_自動計算() If 報價明細表_dgv.Rows.Count = 0 Then : For i As Integer = 1 To 3 : 新增資料2_bt.PerformClick() : Next : 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 : 選取位置 = e.RowIndex : 合約讀取() : End If : 縮放2_bt.PerformClick() : 縮放1_bt.PerformClick() End Sub Private Sub 試算表_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 試算表_dgv.CellClick If e.RowIndex = -1 Then : Else If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then If e.ColumnIndex > 1 And e.ColumnIndex < 40 Then 計算機.ShowDialog() : If IsNumeric(PA30) Then : 試算表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = PA30 : 試算表計算() : End If End If End If : 料號1_tb.Text = 試算表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString PA2 = Strings.StrReverse(Strings.Mid(Strings.StrReverse(試算表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString), 6, 50)) : 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) End While : conn.Close() : 物料圖_pb.SizeMode = 4 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 PA = 物料清單_dgv(1, e.RowIndex).Value.ToString PA1 = 物料清單_dgv.Rows(e.RowIndex).Cells("群組碼").Value : PA2 = 物料清單_dgv.Rows(e.RowIndex).Cells("料號原則").Value 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 '------------------------------------------------------------------------------------------------------------------------------------------ SQL_建築物料請購單申請_物料規格讀取() If dr.Read() Then : KKK2 = dr("規格庫編號") : PA3 = dr("規格庫抬頭指定") : PA4 = dr("群組碼") : End If : conn.Close() '------------------------------------------------------------------------------------------------------------------------------------------ SQL_規格庫抬頭讀取() If dr.Read() Then : AAA1 = dr("A1") : AAA2 = dr("A2") : AAA3 = dr("A3") : AAA4 = dr("A4") : AAA5 = dr("A5") : AAA6 = dr("A6") : AAA7 = dr("A7") : AAA8 = dr("A8") : End If conn.Close() '------------------------------------------------------------------------------------------------------------------------------------------ Dim ds3 As New DataSet 物料規格_dgv.DataSource = Nothing : ds3.Clear() 物料規格_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 物料規格_dgv.ColumnHeadersHeight = 25 : 物料規格_dgv.AllowUserToAddRows = False : 物料規格_dgv.RowTemplate.Height = 20 If KKK2 = "SQLB03" Then : SQL_物料規格_SQLB03() : ElseIf KKK2 = "SQLB04" Then : SQL_物料規格_SQLB04() : ElseIf KKK2 = "SQLB05" Then : SQL_物料規格_SQLB05() ElseIf KKK2 = "SQLB06" Then : SQL_物料規格_SQLB06() : ElseIf KKK2 = "SQLB07" Then : SQL_物料規格_SQLB07() : ElseIf KKK2 = "SQLB08" Then : SQL_物料規格_SQLB08() : End If da.Fill(ds3) : 物料規格_dgv.DataSource = ds3.Tables(0) : conn.Close() : 料號1_tb.Text = "" 物料規格_dgv.Columns(0).Visible = False : 物料規格_dgv.Columns(1).Visible = False : 物料規格_dgv.Columns(3).Visible = False 物料規格_dgv.Columns(2).Width = 17 : 物料規格_dgv.Columns(12).Visible = False : 物料規格_dgv.Columns(13).Visible = False : 物料規格_dgv.Columns(14).Visible = False 物料規格_dgv.Columns(15).Visible = False If KKK2 = "SQLB03" Then 物料規格_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(4).FillWeight = 213 : 物料規格_dgv.Columns(5).FillWeight = 213 : 物料規格_dgv.Columns(6).FillWeight = 214 ElseIf KKK2 = "SQLB04" Then 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = False : 物料規格_dgv.Columns(9).Visible = False : 物料規格_dgv.Columns(10).Visible = False 物料規格_dgv.Columns(11).Visible = False 物料規格_dgv.Columns(4).FillWeight = 160 : 物料規格_dgv.Columns(5).FillWeight = 160 : 物料規格_dgv.Columns(6).FillWeight = 160 : 物料規格_dgv.Columns(7).FillWeight = 160 ElseIf KKK2 = "SQLB05" Then 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = False : 物料規格_dgv.Columns(10).Visible = False 物料規格_dgv.Columns(11).Visible = False 物料規格_dgv.Columns(4).FillWeight = 128 : 物料規格_dgv.Columns(5).FillWeight = 128 : 物料規格_dgv.Columns(6).FillWeight = 128 : 物料規格_dgv.Columns(7).FillWeight = 128 物料規格_dgv.Columns(8).FillWeight = 128 ElseIf KKK2 = "SQLB06" Then 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = False 物料規格_dgv.Columns(11).Visible = False 物料規格_dgv.Columns(4).FillWeight = 106 : 物料規格_dgv.Columns(5).FillWeight = 107 : 物料規格_dgv.Columns(6).FillWeight = 106 : 物料規格_dgv.Columns(7).FillWeight = 107 物料規格_dgv.Columns(8).FillWeight = 106 : 物料規格_dgv.Columns(9).FillWeight = 108 ElseIf KKK2 = "SQLB07" Then 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = True 物料規格_dgv.Columns(11).Visible = False 物料規格_dgv.Columns(4).FillWeight = 91 : 物料規格_dgv.Columns(5).FillWeight = 92 : 物料規格_dgv.Columns(6).FillWeight = 91 : 物料規格_dgv.Columns(7).FillWeight = 92 物料規格_dgv.Columns(8).FillWeight = 91 : 物料規格_dgv.Columns(9).FillWeight = 92 : 物料規格_dgv.Columns(10).FillWeight = 91 ElseIf KKK2 = "SQLB08" Then 物料規格_dgv.Columns(7).Visible = True : 物料規格_dgv.Columns(8).Visible = True : 物料規格_dgv.Columns(9).Visible = True : 物料規格_dgv.Columns(10).Visible = True 物料規格_dgv.Columns(11).Visible = True 物料規格_dgv.Columns(4).FillWeight = 80 : 物料規格_dgv.Columns(5).FillWeight = 80 : 物料規格_dgv.Columns(6).FillWeight = 80 : 物料規格_dgv.Columns(7).FillWeight = 80 物料規格_dgv.Columns(8).FillWeight = 80 : 物料規格_dgv.Columns(9).FillWeight = 80 : 物料規格_dgv.Columns(10).FillWeight = 80 : 物料規格_dgv.Columns(11).FillWeight = 80 End If 物料規格_dgv.EditMode = DataGridViewEditMode.EditOnEnter For i As Integer = 0 To 11 : 物料規格_dgv.Columns(i).ReadOnly = True : Next For i As Integer = 0 To 物料規格_dgv.Rows.Count - 1 物料規格_dgv.Rows(i).Cells("No").Value = i + 1 : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = 0 If Not IsNumeric(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) Then : MessageBox.Show("欄位輸入必須為數值") ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) > 0 Then : 物料規格_dgv.Rows(i).Cells("Pilih").Value = True ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) <= 0 Then : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0" 物料規格_dgv.Rows(i).Cells("Pilih").Value = False End If Next i 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.Rows(e.RowIndex).Cells("項目").Value.ToString : 係數單位_cb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("單位").Value.ToString 係數_nup.Value = 報價係數_dgv.Rows(e.RowIndex).Cells("係數").Value : 係數流水號_tb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString 係數合約號_tb.Text = 報價係數_dgv.Rows(e.RowIndex).Cells("合約號碼").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 料號1_tb.Text = 物料規格_dgv.Rows(e.RowIndex).Cells("Nomor_Bagian").Value.ToString : 料號_tb.Text = 物料規格_dgv.Rows(e.RowIndex).Cells("Nomor_Bagian").Value.ToString PA47 = 料號_tb.Text : SQL_採購單價查詢() If dr.Read Then : 最後採購日_tb.Text = Strings.Left(dr("採購日"), 4) & "/" & Strings.Mid(dr("採購日"), 5, 2) & "/" & Strings.Right(dr("採購日"), 2) 歷史單價_tb.Text = Strings.Format(CInt(dr("單價").ToString), "#,##0") : Else : 最後採購日_tb.Text = "" : 歷史單價_tb.Text = "0" End If 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 : DGV位置1.Value = e.RowIndex 總表流水_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString : ITEM1_cb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString() 單位_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 備註_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("REMARKS").Value.ToString() 內容_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString() 合計項_cb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項3_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString() If 合計項_cb.Text = 內容_tb.Text Then : Else : 合計項_cb.Text = "" : End If DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項_tb.Text = e.RowIndex If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Then If 目前選擇 = "寫入資料" Then : X_3_tb.Text = e.ColumnIndex : Y_3_tb.Text = e.RowIndex Else If IsDBNull(報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then : 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0 : End If 數值2_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value End If End If 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 : DGV位置2.Value = e.RowIndex If 啟用批量選擇_ch.Checked = True Then If 報價明細表_dgv("S", e.RowIndex).Value = True Then 報價明細表_dgv("S", e.RowIndex).Value = False : 報價明細表_dgv.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Black Else 報價明細表_dgv("S", e.RowIndex).Value = True : 報價明細表_dgv.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Red End If End If 明細表流水_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString : ITEM2_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString() 單位1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 備註1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("REMARKS").Value.ToString() 內容1_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : 選擇項2_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString() 合計項1_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() : ITEM3_cb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString() 料號_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString() : 申請數_nud.Value = 報價明細表_dgv.Rows(e.RowIndex).Cells("QTY").Value.ToString() 單位2_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() 物料圖1_pb.Image = Nothing If 報價明細表_dgv.Rows(e.RowIndex).Cells("料號原則").Value.ToString = "" Then : Else PA2 = 報價明細表_dgv.Rows(e.RowIndex).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) 物料圖1_pb.Image = Bitmap.FromStream(oStream) End While : conn.Close() : 物料圖1_pb.SizeMode = 4 End If If 合計項1_cb.Text = 內容1_tb.Text Then : Else : 合計項1_cb.Text = "" : End If DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項1_tb.Text = e.RowIndex If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Or DGV_X = 8 Or DGV_X = 9 Or DGV_X = 10 Or DGV_X = 11 Or DGV_X = 12 Or DGV_X = 13 Or DGV_X = 14 Or DGV_X = 15 Or DGV_X = 16 Or DGV_X = 17 Then If 目前選擇 = "寫入資料" Then : X_2_tb.Text = e.ColumnIndex : Y_2_tb.Text = e.RowIndex Else If IsDBNull(報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value) Then : 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 0 : End If 數值4_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value End If End If End If 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 If IsDBNull(報價係數1_dgv.Rows(e.RowIndex).Cells(3).Value) Then : 數值4_tb.Text = 0 : Else : 數值4_tb.Text = 報價係數1_dgv.Rows(e.RowIndex).Cells(3).Value : End If End If 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 If IsDBNull(報價明細表1_dgv.Rows(e.RowIndex).Cells(6).Value) Then : 數值2_tb.Text = 0 : Else : 數值2_tb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells(6).Value : End If ITEM1_cb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("ITEM").Value.ToString() : 內容_tb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() 單位_tb.Text = 報價明細表1_dgv.Rows(e.RowIndex).Cells("UNIT").Value.ToString() : 連動編號_tb.Text = "" End If End Sub Private Sub 報價明細表1_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表1_dgv.CellDoubleClick If e.RowIndex = -1 Then : Else 報價總表_dgv.Rows(DGV位置1.Value).Cells("明細連動").Value = 報價明細表1_dgv.Rows(e.RowIndex).Cells("流水號").Value.ToString() End If End Sub Private Sub 報價總表_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellDoubleClick If e.RowIndex = -1 Then : Else If 視窗2_pl.Visible = True Then DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項_tb.Text = e.RowIndex If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Then 報價總表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = NUD_03.Value : 清除_bt.PerformClick() : Me.ActiveControl = 等於_bt End If End If 連動編號_tb.Text = 報價總表_dgv.Rows(e.RowIndex).Cells("明細連動").Value.ToString Me.TabControl1.SelectedTab = Me.工程合約報價明細_tc Dim 查詢 As Boolean For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString() Then 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(i).Cells(1) : 查詢 = True : Exit For : Else : 查詢 = False End If Next If 查詢 = False Then If DGV位置2.Value >= 報價明細表_dgv.Rows.Count Then : DGV位置2.Value = 報價明細表_dgv.Rows.Count - 1 : End If If DGV位置2.Value > 0 Then : 報價明細表_dgv.CurrentCell = 報價明細表_dgv.Rows(DGV位置2.Value).Cells(1) : End If End If End If End Sub Private Sub 報價明細表_dgv_CellDoubleClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellDoubleClick If e.RowIndex = -1 Then : Else If 視窗3_pl.Visible = True Then DGV_X = e.ColumnIndex : DGV_Y = e.RowIndex : 選擇項1_tb.Text = e.RowIndex If DGV_X = 4 Or DGV_X = 5 Or DGV_X = 6 Or DGV_X = 8 Or DGV_X = 9 Or DGV_X = 13 Then 報價明細表_dgv.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = NUD_06.Value : 清除1_bt.PerformClick() : Me.ActiveControl = 等於1_bt End If End If End If End Sub Private Sub 報價總表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 報價總表_dgv.CellEndEdit If 啟動運算 = True Then : 報價總表_dgv_自動計算() : End If End Sub Private Sub 報價明細表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 報價明細表_dgv.CellEndEdit If 啟動運算 = True Then : 報價明細表_dgv_物料顯示() : 報價明細表_dgv_自動計算() : 報價總表_dgv_自動計算() : End If End Sub Private Sub 試算表_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 試算表_dgv.CellEnter 試算表計算() End Sub Private Sub 物料規格_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 物料規格_dgv.CellEnter For i As Integer = 0 To 物料規格_dgv.Rows.Count - 1 If Not IsNumeric(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) Then MessageBox.Show("欄位輸入必須為數值") : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0" : 物料規格_dgv.Rows(i).Cells("Pilih").Value = False ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) > 0 Then : 物料規格_dgv.Rows(i).Cells("Pilih").Value = True ElseIf Val(物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value) <= 0 Then : 物料規格_dgv.Rows(i).Cells("申請數 Terapkan").Value = "0" 物料規格_dgv.Rows(i).Cells("Pilih").Value = False End If Next i End Sub Private Sub 試算表計算() For i As Integer = 0 To 試算表_dgv.Rows.Count - 1 If 試算表_dgv.Rows(i).Cells("係數").Value = False Then 試算表_dgv.Rows(i).Cells("Total").Value = 試算表_dgv.Rows(i).Cells(3).Value + 試算表_dgv.Rows(i).Cells(4).Value + 試算表_dgv.Rows(i).Cells(5).Value + 試算表_dgv.Rows(i).Cells(6).Value + 試算表_dgv.Rows(i).Cells(7).Value + 試算表_dgv.Rows(i).Cells(8).Value + 試算表_dgv.Rows(i).Cells(9).Value + 試算表_dgv.Rows(i).Cells(10).Value + 試算表_dgv.Rows(i).Cells(11).Value + 試算表_dgv.Rows(i).Cells(12).Value + 試算表_dgv.Rows(i).Cells(13).Value + 試算表_dgv.Rows(i).Cells(14).Value + 試算表_dgv.Rows(i).Cells(15).Value + 試算表_dgv.Rows(i).Cells(16).Value + 試算表_dgv.Rows(i).Cells(17).Value + 試算表_dgv.Rows(i).Cells(18).Value + 試算表_dgv.Rows(i).Cells(19).Value + 試算表_dgv.Rows(i).Cells(20).Value + 試算表_dgv.Rows(i).Cells(21).Value + 試算表_dgv.Rows(i).Cells(22).Value + 試算表_dgv.Rows(i).Cells(23).Value + 試算表_dgv.Rows(i).Cells(24).Value + 試算表_dgv.Rows(i).Cells(25).Value + 試算表_dgv.Rows(i).Cells(26).Value + 試算表_dgv.Rows(i).Cells(27).Value + 試算表_dgv.Rows(i).Cells(28).Value + 試算表_dgv.Rows(i).Cells(29).Value + 試算表_dgv.Rows(i).Cells(30).Value + 試算表_dgv.Rows(i).Cells(31).Value + 試算表_dgv.Rows(i).Cells(32).Value + 試算表_dgv.Rows(i).Cells(33).Value + 試算表_dgv.Rows(i).Cells(34).Value + 試算表_dgv.Rows(i).Cells(35).Value + 試算表_dgv.Rows(i).Cells(36).Value + 試算表_dgv.Rows(i).Cells(37).Value + 試算表_dgv.Rows(i).Cells(38).Value + 試算表_dgv.Rows(i).Cells(39).Value + 試算表_dgv.Rows(i).Cells(40).Value + 試算表_dgv.Rows(i).Cells(41).Value + 試算表_dgv.Rows(i).Cells(42).Value Else 試算表_dgv.Rows(i).Cells("Total").Value = (試算表_dgv.Rows(i).Cells(3).Value + 試算表_dgv.Rows(i).Cells(4).Value + 試算表_dgv.Rows(i).Cells(5).Value + 試算表_dgv.Rows(i).Cells(6).Value + 試算表_dgv.Rows(i).Cells(7).Value + 試算表_dgv.Rows(i).Cells(8).Value + 試算表_dgv.Rows(i).Cells(9).Value + 試算表_dgv.Rows(i).Cells(10).Value + 試算表_dgv.Rows(i).Cells(11).Value + 試算表_dgv.Rows(i).Cells(12).Value + 試算表_dgv.Rows(i).Cells(13).Value + 試算表_dgv.Rows(i).Cells(14).Value + 試算表_dgv.Rows(i).Cells(15).Value + 試算表_dgv.Rows(i).Cells(16).Value + 試算表_dgv.Rows(i).Cells(17).Value + 試算表_dgv.Rows(i).Cells(18).Value + 試算表_dgv.Rows(i).Cells(19).Value + 試算表_dgv.Rows(i).Cells(20).Value + 試算表_dgv.Rows(i).Cells(21).Value + 試算表_dgv.Rows(i).Cells(22).Value + 試算表_dgv.Rows(i).Cells(23).Value + 試算表_dgv.Rows(i).Cells(24).Value + 試算表_dgv.Rows(i).Cells(25).Value + 試算表_dgv.Rows(i).Cells(26).Value + 試算表_dgv.Rows(i).Cells(27).Value + 試算表_dgv.Rows(i).Cells(28).Value + 試算表_dgv.Rows(i).Cells(29).Value + 試算表_dgv.Rows(i).Cells(30).Value + 試算表_dgv.Rows(i).Cells(31).Value + 試算表_dgv.Rows(i).Cells(32).Value + 試算表_dgv.Rows(i).Cells(33).Value + 試算表_dgv.Rows(i).Cells(34).Value + 試算表_dgv.Rows(i).Cells(35).Value + 試算表_dgv.Rows(i).Cells(36).Value + 試算表_dgv.Rows(i).Cells(37).Value + 試算表_dgv.Rows(i).Cells(38).Value + 試算表_dgv.Rows(i).Cells(39).Value + 試算表_dgv.Rows(i).Cells(40).Value + 試算表_dgv.Rows(i).Cells(41).Value + 試算表_dgv.Rows(i).Cells(42).Value) / 100 * (100 + 係數_nud.Value) End If Next i End Sub Private Sub 報價總表_dgv_自動計算() For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString <> "" Then For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString Then 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 報價明細表_dgv.Rows(ii).Cells("AMOUNT" & 幣別).Value.ToString : Exit For End If Next End If Next Dim 合計, 合計無管, 稅金 As Double : 合計 = 0 : 稅金 = 0 For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 '---------計算項目------------------------------------------------------------------------------------------------------------------------------------- If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "^" Then : Else If IsDBNull(報價總表_dgv.Rows(i).Cells("QTY").Value) Then : 報價總表_dgv.Rows(i).Cells("QTY").Value = 0 : End If If IsDBNull(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value) Then : 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 0 : End If 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("QTY").Value) * CLng(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value) End If '---------管理費加總------------------------------------------------------------------------------------------------------------------------------------- If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "@" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "^" And 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString <> "折讓 Discount" Then 合計無管 += 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value End If If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 0%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 1%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.01) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 2%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.02) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 3%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.03) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 4%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.04) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 5%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.05) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 6%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.06) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 7%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.07) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 8%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.08) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 9%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.09) ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "管理費 10%" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計無管 * 0.1) End If '---------計算彙總------------------------------------------------------------------------------------------------------------------------------------- If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" And 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "@" Then 合計 += 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value End If If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "合 計 Total" Then : 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 合計 : End If If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 0% Tax" Then 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0) : 稅金 = 合計 * 0 : 稅額顯示_lb.Text = "PPN 0%稅額 = Rp. " ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 5% Tax" Then 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0.05) : 稅金 = 合計 * 0.05 : 稅額顯示_lb.Text = "PPN 5%稅額 = Rp. " ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 10% Tax" Then 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0.1) : 稅金 = 合計 * 0.1 : 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " ElseIf 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "稅金 11% Tax" Then 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 * 0.11) : 稅金 = 合計 * 0.11 : 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " End If If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "總計 Grand Total" Then 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(合計 + Fix(稅金)) If Strings.Right(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString, 3) = "001" Then 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) - 1 ElseIf Strings.Right(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString, 3) = "999" Then 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) + 1 End If NUD3.Value = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) End If '------------數字為0隱藏----------------------------------------------------------------------------------------------- If IsDBNull(報價總表_dgv.Rows(i).Cells(4).Value) Then : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White : Else If 報價總表_dgv.Rows(i).Cells(4).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White Else : 報價總表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.Black : End If : End If If IsDBNull(報價總表_dgv.Rows(i).Cells(5).Value) Then : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White : Else If 報價總表_dgv.Rows(i).Cells(5).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White Else : 報價總表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.Black : End If : End If If IsDBNull(報價總表_dgv.Rows(i).Cells(6).Value) Then : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White : Else If 報價總表_dgv.Rows(i).Cells(6).Value = 0 Then : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White Else : 報價總表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.Black : End If : End If Next '------------彙總計算----------------------------------------------------------------------------------------------- Dim 折讓 As Long = 0 : 未折價前_tb.Text = "0" : 報價小計_tb.Text = "0" For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Or 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then : Else 未折價前_tb.Text = CLng(未折價前_tb.Text) + CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) End If If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Then : Else 報價小計_tb.Text = CLng(報價小計_tb.Text) + CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) End If If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then 折讓 += CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value) End If Next 預估利潤_tb.Text = Strings.Format(CLng(總報價_tb.Text) - (CLng(總成本_tb.Text) - 折讓), "#,##0") If (CLng(總報價_tb.Text) + 折讓) = 0 Then : 利潤比4_tb.Text = "0 %" : Else 利潤比4_tb.Text = Strings.Format((1 - ((CLng(總成本_tb.Text)) / (CLng(總報價_tb.Text) + 折讓))) * 100, "#,##0") & " %" End If 未折價前_tb.Text = Strings.Format(CLng(未折價前_tb.Text), "#,##0") : 報價小計_tb.Text = Strings.Format(CLng(報價小計_tb.Text), "#,##0") End Sub Private Sub 報價明細表_dgv_物料顯示() For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString = "" Then 報價明細表_dgv.Rows(i).Cells("D1").Value = False : 報價明細表_dgv.Rows(i).Cells("D2").Value = False 報價明細表_dgv.Rows(i).Cells("D3").Value = False : 報價明細表_dgv.Rows(i).Cells("D4").Value = False 報價明細表_dgv.Rows(i).Cells("D5").Value = False : 報價明細表_dgv.Rows(i).Cells("D6").Value = False 報價明細表_dgv.Rows(i).Cells("D7").Value = False : 報價明細表_dgv.Rows(i).Cells("D8").Value = False End If If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then If 報價明細表_dgv.Rows(i).Cells("預設").Value = True Then 報價明細表_dgv.Rows(i).Cells("D1").Value = 報價明細表_dgv.Rows(i).Cells("S1").Value : 報價明細表_dgv.Rows(i).Cells("D2").Value = 報價明細表_dgv.Rows(i).Cells("S2").Value 報價明細表_dgv.Rows(i).Cells("D3").Value = 報價明細表_dgv.Rows(i).Cells("S3").Value : 報價明細表_dgv.Rows(i).Cells("D4").Value = 報價明細表_dgv.Rows(i).Cells("S4").Value 報價明細表_dgv.Rows(i).Cells("D5").Value = 報價明細表_dgv.Rows(i).Cells("S5").Value : 報價明細表_dgv.Rows(i).Cells("D6").Value = 報價明細表_dgv.Rows(i).Cells("S6").Value 報價明細表_dgv.Rows(i).Cells("D7").Value = 報價明細表_dgv.Rows(i).Cells("S7").Value : 報價明細表_dgv.Rows(i).Cells("D8").Value = 報價明細表_dgv.Rows(i).Cells("S8").Value End If Dim ZA1, ZA2, ZA3, ZA4, ZA5, ZA6, ZA7, ZA8 As String : 物料規格 = "" If 詳細資料2_ch.Checked = True Then If 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D1").Value = True Then ZA1 = 報價明細表_dgv.Rows(i).Cells("AA1").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If If 報價明細表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D2").Value = True Then ZA2 = 報價明細表_dgv.Rows(i).Cells("AA2").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D3").Value = True Then ZA3 = 報價明細表_dgv.Rows(i).Cells("AA3").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D4").Value = True Then ZA4 = 報價明細表_dgv.Rows(i).Cells("AA4").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D5").Value = True Then ZA5 = 報價明細表_dgv.Rows(i).Cells("AA5").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D6").Value = True Then ZA6 = 報價明細表_dgv.Rows(i).Cells("AA6").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D7").Value = True Then ZA7 = 報價明細表_dgv.Rows(i).Cells("AA7").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D8").Value = True Then ZA8 = 報價明細表_dgv.Rows(i).Cells("AA8").Value.ToString & "=" & 報價明細表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If Else If 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D1").Value = True Then ZA1 = 報價明細表_dgv.Rows(i).Cells("A1").Value.ToString : 物料規格 = ZA1 : End If : End If If 報價明細表_dgv.Rows(i).Cells("A2").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D2").Value = True Then ZA2 = 報價明細表_dgv.Rows(i).Cells("A2").Value : If 物料規格 = "" Then : 物料規格 = ZA2 : Else : 物料規格 = 物料規格 + "、" + ZA2 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A3").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D3").Value = True Then ZA3 = 報價明細表_dgv.Rows(i).Cells("A3").Value : If 物料規格 = "" Then : 物料規格 = ZA3 : Else : 物料規格 = 物料規格 + "、" + ZA3 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A4").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D4").Value = True Then ZA4 = 報價明細表_dgv.Rows(i).Cells("A4").Value : If 物料規格 = "" Then : 物料規格 = ZA4 : Else : 物料規格 = 物料規格 + "、" + ZA4 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A5").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D5").Value = True Then ZA5 = 報價明細表_dgv.Rows(i).Cells("A5").Value : If 物料規格 = "" Then : 物料規格 = ZA5 : Else : 物料規格 = 物料規格 + "、" + ZA5 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A6").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D6").Value = True Then ZA6 = 報價明細表_dgv.Rows(i).Cells("A6").Value : If 物料規格 = "" Then : 物料規格 = ZA6 : Else : 物料規格 = 物料規格 + "、" + ZA6 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A7").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D7").Value = True Then ZA7 = 報價明細表_dgv.Rows(i).Cells("A7").Value : If 物料規格 = "" Then : 物料規格 = ZA7 : Else : 物料規格 = 物料規格 + "、" + ZA7 : End If : End If : End If If 報價明細表_dgv.Rows(i).Cells("A8").Value.ToString <> "" Then : If 報價明細表_dgv.Rows(i).Cells("D8").Value = True Then ZA8 = 報價明細表_dgv.Rows(i).Cells("A8").Value : If 物料規格 = "" Then : 物料規格 = ZA8 : Else : 物料規格 = 物料規格 + "、" + ZA8 : End If : End If : End If End If If 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString <> "" Then 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value = 報價明細表_dgv.Rows(i).Cells("品名").Value.ToString & " " & 物料規格 End If End If : 報價明細表_dgv.Rows(i).Cells("預設").Value = False Next End Sub Private Sub 報價明細表_dgv_自動計算() Dim 合計, 利潤, 工資係數, 工資成本, 工資利潤, 材料係數, 材料成本, 材料利潤 As Double : 合計 = 0 : 工資係數 = 0 For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1 If 報價係數_dgv.Rows(i).Cells("項目").Value.ToString = "工資利潤" Then : 工資係數 = 報價係數_dgv.Rows(i).Cells("係數").Value.ToString : Exit For : End If Next For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 報價明細表_dgv.Rows(i).Cells("QTY").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString '------------------------------------工資計算----------------------------------------------------------------------------------------------------------- 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value * 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value * 工資係數 / 100 Else : 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value = 0 : End If 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value '------------------------------------材料計算----------------------------------------------------------------------------------------------------------- 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value = 報價明細表_dgv.Rows(i).Cells("實際數量").Value * 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value If 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString = "" Then : 材料係數 = 100 : Else : 材料係數 = 100 For ii As Integer = 0 To 報價係數_dgv.Rows.Count - 1 If 報價係數_dgv.Rows(ii).Cells("項目").Value.ToString = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString Then 材料係數 = 報價係數_dgv.Rows(ii).Cells("係數").Value.ToString : Exit For : End If Next End If If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value * 材料係數 / 100 Else : 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value = 0 : End If 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value 報價明細表_dgv.Rows(i).Cells("利潤").Value = 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value + 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value - 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value - 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value '------------------------------------報價單呈現----------------------------------------------------------------------------------------------------------- If 報價明細表_dgv.Rows(i).Cells("不計").Value = False Then 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value + 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value * 報價明細表_dgv.Rows(i).Cells("QTY").Value Else 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = 0 : 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 0 End If '------------------------------------報價合計計算----------------------------------------------------------------------------------------------------------- If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString <> "*" Then 合計 += 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value : 利潤 += 報價明細表_dgv.Rows(i).Cells("利潤").Value 工資成本 += 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value : 工資利潤 += 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value 材料成本 += 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value : 材料利潤 += 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value End If If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Then 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value = 合計 : 合計 = 0 : 報價明細表_dgv.Rows(i).Cells("利潤").Value = 利潤 : 利潤 = 0 報價明細表_dgv.Rows(i).Cells("工資成本後價").Value = 工資成本 : 工資成本 = 0 : 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value = 工資利潤 : 工資利潤 = 0 報價明細表_dgv.Rows(i).Cells("材料成本後價").Value = 材料成本 : 材料成本 = 0 : 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value = 材料利潤 : 材料利潤 = 0 End If '------------數字為0隱藏----------------------------------------------------------------------------------------------- If IsDBNull(報價明細表_dgv.Rows(i).Cells(4).Value) Then : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White : Else If 報價明細表_dgv.Rows(i).Cells(4).Value.ToString = "" Then : Else If 報價明細表_dgv.Rows(i).Cells(4).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.White Else : 報價明細表_dgv.Rows(i).Cells(4).Style.ForeColor = Color.Black : End If : End If End If If IsDBNull(報價明細表_dgv.Rows(i).Cells(5).Value) Then : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White : Else If 報價明細表_dgv.Rows(i).Cells(5).Value.ToString = "" Then : Else If 報價明細表_dgv.Rows(i).Cells(5).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.White Else : 報價明細表_dgv.Rows(i).Cells(5).Style.ForeColor = Color.Black : End If : End If End If If IsDBNull(報價明細表_dgv.Rows(i).Cells(6).Value) Then : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White : Else If 報價明細表_dgv.Rows(i).Cells(6).Value.ToString = "" Then : Else If 報價明細表_dgv.Rows(i).Cells(6).Value = 0 Then : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.White Else : 報價明細表_dgv.Rows(i).Cells(6).Style.ForeColor = Color.Black : End If End If End If Next 工資成本 = 0 : 材料成本 = 0 : 工資利潤 = 0 : 材料利潤 = 0 For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString = "*" Then 工資成本 += CLng(報價明細表_dgv.Rows(i).Cells("工資成本後價").Value) 材料成本 += CLng(報價明細表_dgv.Rows(i).Cells("材料成本後價").Value) 工資利潤 += CLng(報價明細表_dgv.Rows(i).Cells("工資報價後價").Value) 材料利潤 += CLng(報價明細表_dgv.Rows(i).Cells("材料報價後價").Value) End If Next 預估工資總成本_tb.Text = Strings.Format(工資成本, "#,##0") : 預估材料總成本_tb.Text = Strings.Format(材料成本, "#,##0") : 預估工資總報價_tb.Text = Strings.Format(工資利潤, "#,##0") 預估材料總報價_tb.Text = Strings.Format(材料利潤, "#,##0") ': 預估利潤_tb.Text = Strings.Format((材料利潤 + 工資利潤) - (材料成本 + 工資成本), "#,##0") 總成本_tb.Text = Strings.Format(工資成本 + 材料成本, "#,##0") : 總報價_tb.Text = Strings.Format(工資利潤 + 材料利潤, "#,##0") If 工資利潤 = 0 Then : 利潤比1_tb.Text = "0 %" : Else 利潤比1_tb.Text = Strings.Format((1 - ((工資成本) / (工資利潤))) * 100, "#,##0") & " %" End If If 材料利潤 = 0 Then : 利潤比2_tb.Text = "0 %" : Else 利潤比2_tb.Text = Strings.Format((1 - ((材料成本) / (材料利潤))) * 100, "#,##0") & " %" End If If (材料利潤 + 工資利潤) = 0 Then : 利潤比3_tb.Text = "0 %" : Else 利潤比3_tb.Text = Strings.Format((1 - ((材料成本 + 工資成本) / (材料利潤 + 工資利潤))) * 100, "#,##0") & " %" End If End Sub Private Sub 報價總表_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 報價總表_dgv.MouseUp 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If If 報價總表_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If If 報價總表_dgv.SelectedCells.Count > 0 Then If 報價總表_dgv.SelectedCells(0).ColumnIndex = 4 Or 報價總表_dgv.SelectedCells(0).ColumnIndex = 5 Or 報價總表_dgv.SelectedCells(0).ColumnIndex = 6 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 報價總表_dgv.SelectedCells.Count - 1 Dim 變數 As String = "" : Dim 取變數 As String 取變數 = 報價總表_dgv.Rows(報價總表_dgv.SelectedCells.Item(i).RowIndex).Cells(報價總表_dgv.SelectedCells.Item(i).ColumnIndex).Value For ii As Integer = 1 To Len(取變數) If ii = 1 Then : 變數 = Strings.Left(取變數, ii) : Else : If Strings.Mid(取變數, ii, 1) <> "," Then : 變數 &= Strings.Mid(取變數, ii, 1) : End If : End If Next : x += Val(變數) Next i : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(x, "#,##0") Else : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0") End If Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0") End If End If End Sub Private Sub 報價明細表_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 報價明細表_dgv.MouseUp 'If 明細_dgv.SelectedCells.Count = 1 Then : MsgBox(明細_dgv.SelectedCells(0).ColumnIndex & " " & 明細_dgv.SelectedCells(0).RowIndex) : End If If 報價明細表_dgv.SelectedCells.Count = 1 Then : 已超出 = False : End If If 報價明細表_dgv.SelectedCells.Count > 0 Then If 報價明細表_dgv.SelectedCells(0).ColumnIndex = 4 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 5 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 6 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 8 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 9 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 10 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 11 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 12 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 13 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 14 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 15 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 16 Or 報價明細表_dgv.SelectedCells(0).ColumnIndex = 17 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 報價明細表_dgv.SelectedCells.Count - 1 Dim 變數 As String = "" : Dim 取變數 As String 取變數 = 報價明細表_dgv.Rows(報價明細表_dgv.SelectedCells.Item(i).RowIndex).Cells(報價明細表_dgv.SelectedCells.Item(i).ColumnIndex).Value For ii As Integer = 1 To Len(取變數) If ii = 1 Then : 變數 = Strings.Left(取變數, ii) : Else : If Strings.Mid(取變數, ii, 1) <> "," Then : 變數 &= Strings.Mid(取變數, ii, 1) : End If : End If Next : x += Val(變數) Next i : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(x, "#,##0") Else : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0") End If Else : 已超出 = True : GCM_ERP_SYS.合計_TSSL.Text = "Total : " & Strings.Format(0, "#,##0") End If End If End Sub Private Sub 第1期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第1期_dgv.CellEnter If Not IsNumeric(第1期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If 第1期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第1期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else Dim nn As Integer For i As Integer = 0 To 第1期_dgv.Rows.Count - 1 : nn += 第1期_dgv.Rows(i).Cells("比例").Value : Next If nn > 工程款1_nud.Value Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "第一期的細項比例不可大於" : Else : SS = "The proportion of the details of the first phase cannot be greater than" : End If MsgBox(SS & Strings.Format(工程款1_nud.Value, "#,##0.00") & " % !!") 第1期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第1期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else For i As Integer = 0 To 第1期_dgv.Rows.Count - 1 第1期_dgv.Rows(i).Cells("金額").Value = 第1期_dgv.Rows(i).Cells("比例").Value * 金額1_und.Value / 工程款1_nud.Value Next i End If End If End Sub Private Sub 第2期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第2期_dgv.CellEnter If Not IsNumeric(第2期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If 第2期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第2期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else Dim nn As Integer For i As Integer = 0 To 第2期_dgv.Rows.Count - 1 : nn += 第2期_dgv.Rows(i).Cells("比例").Value : Next If nn > 工程款2_nud.Value Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "第二期的細項比例不可大於" : Else : SS = "The proportion of the details of the second phase cannot be greater than" : End If MsgBox(SS & Strings.Format(工程款2_nud.Value, "#,##0.00") & " % !!") 第2期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第2期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else For i As Integer = 0 To 第2期_dgv.Rows.Count - 1 第2期_dgv.Rows(i).Cells("金額").Value = 第2期_dgv.Rows(i).Cells("比例").Value * 金額2_und.Value / 工程款2_nud.Value Next i End If End If End Sub Private Sub 第3期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第3期_dgv.CellEnter If Not IsNumeric(第3期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If 第3期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第3期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else Dim nn As Integer For i As Integer = 0 To 第3期_dgv.Rows.Count - 1 : nn += 第3期_dgv.Rows(i).Cells("比例").Value : Next If nn > 工程款3_nud.Value Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "第三期的細項比例不可大於" : Else : SS = "The proportion of the details of the third phase cannot be greater than" : End If MsgBox(SS & Strings.Format(工程款3_nud.Value, "#,##0.00") & " % !!") 第3期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第3期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else For i As Integer = 0 To 第3期_dgv.Rows.Count - 1 第3期_dgv.Rows(i).Cells("金額").Value = 第3期_dgv.Rows(i).Cells("比例").Value * 金額3_und.Value / 工程款3_nud.Value Next i End If End If End Sub Private Sub 第4期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第4期_dgv.CellEnter If Not IsNumeric(第4期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If 第4期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第4期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else Dim nn As Integer For i As Integer = 0 To 第4期_dgv.Rows.Count - 1 : nn += 第4期_dgv.Rows(i).Cells("比例").Value : Next If nn > 工程款4_nud.Value Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "第四期的細項比例不可大於" : Else : SS = "The proportion of the details of the fourth phase cannot be greater than" : End If MsgBox(SS & Strings.Format(工程款4_nud.Value, "#,##0.00") & " % !!") 第4期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第4期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else For i As Integer = 0 To 第4期_dgv.Rows.Count - 1 第4期_dgv.Rows(i).Cells("金額").Value = 第4期_dgv.Rows(i).Cells("比例").Value * 金額4_und.Value / 工程款4_nud.Value Next i End If End If End Sub Private Sub 第5期_dgv_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 第5期_dgv.CellEnter If Not IsNumeric(第5期_dgv.Rows(e.RowIndex).Cells("比例").Value) Then If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值") : Else : MsgBox("Field input must be numeric!!") : End If 第5期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第5期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else Dim nn As Integer For i As Integer = 0 To 第5期_dgv.Rows.Count - 1 : nn += 第5期_dgv.Rows(i).Cells("比例").Value : Next If nn > 工程款5_nud.Value Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "第五期的細項比例不可大於" : Else : SS = "The proportion of the details of the fifth phase cannot be greater than" : End If MsgBox(SS & Strings.Format(工程款5_nud.Value, "#,##0.00") & " % !!") 第5期_dgv.Rows(e.RowIndex).Cells("比例").Value = "0" : 第5期_dgv.Rows(e.RowIndex).Cells("金額").Value = "0" Else For i As Integer = 0 To 第5期_dgv.Rows.Count - 1 第5期_dgv.Rows(i).Cells("金額").Value = 第5期_dgv.Rows(i).Cells("比例").Value * 金額5_und.Value / 工程款5_nud.Value Next i End If End If 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 : 明細選項_bt.Text = 第1期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : 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 : 明細選項_bt.Text = 第2期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If End Sub Private Sub 第3期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第3期_dgv.CellClick If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第3期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If End Sub Private Sub 第4期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第4期_dgv.CellClick If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第4期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If End Sub Private Sub 第5期_dgv_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 第5期_dgv.CellClick If e.RowIndex = -1 Then : Else : 明細選項_bt.Text = 第5期_dgv("細項", e.RowIndex).Value.ToString : 明細選項_bt.Text = Strings.Format(Val(明細選項_bt.Text), "#,##0") : End If End Sub '-----------------建立合約資料功能------------------------------------------------------------------------------------------------------------------------------- Private Sub 群組編碼_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 群組編碼_cb.SelectedIndexChanged 群組碼_tb.Text = 群組編碼_cb.Text : Set_清單1() End Sub Private Sub 新群組1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 新群組1_cb.SelectedIndexChanged PA = 新群組1_cb.Text : SQL_群組碼_語轉_選擇() : If dr.Read Then : 群組編碼_cb.Text = dr("群組碼").ToString : End If : PA = "" End Sub Private Sub 合約種類_cb_SelectedIndexChanged_1(sender As Object, e As EventArgs) Handles 合約種類_cb.SelectedIndexChanged PA10 = 合約種類_cb.Text : SQL_合約種類英文讀取() : If dr.Read() Then : 合約種類_tb.Text = dr("英") : End If : conn.Close() End Sub Private Sub 選擇公司_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 選擇公司_cb.SelectedIndexChanged If 選擇公司_cb.Text = "G.C.M. Smart Enterprise LTD." Then : 合約編號_cb.Text = "GCM" : Else : 合約編號_cb.Text = "ICS" : End If If 選擇公司_cb.Text = "G.C.M. Smart Enterprise LTD." Then : 我司地址_tb.Text = "屏東縣萬丹鄉麟洛鄉中山路382-103號" : Else 我司地址_tb.Text = "J.Kaliandra 1 no 1E blok F6 Lantai 2 Delta Silicon II Lippo Cikarang ,Desa Cicau ,Kec. Cikarang Pusat, Kab Bekasi" End If End Sub Private Sub 合約編號_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號_cb.SelectedIndexChanged If 合約編號_cb.Text = "GCM" Then : 選擇公司_cb.Text = "G.C.M. Smart Enterprise LTD." : Else : 選擇公司_cb.Text = "PT.Indonesia Cemerlang Sistem" : End If End Sub Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click PA = 關鍵字搜尋_tb.Text : Set_合約清單() : 縮放2_bt.PerformClick() End Sub Private Sub NUD3_ValueChanged(sender As Object, e As EventArgs) Handles NUD3.ValueChanged If CH2.Checked = True Then If 稅額顯示_lb.Text = "PPN 0%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 100 * 0 ElseIf 稅額顯示_lb.Text = "PPN 5%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 105 * 5 ElseIf 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 110 * 10 ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : NUD2.Value = NUD3.Value / 111 * 11 End If NUD1.Value = NUD3.Value - NUD2.Value 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value End If End Sub Private Sub NUD1_ValueChanged(sender As Object, e As EventArgs) Handles NUD1.ValueChanged If CH1.Checked = True Then If 稅額顯示_lb.Text = "PPN 0%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 0 ElseIf 稅額顯示_lb.Text = "PPN 5%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 5 ElseIf 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 10 ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : NUD2.Value = NUD1.Value / 100 * 11 End If NUD3.Value = NUD1.Value + NUD2.Value 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value End If End Sub Private Sub CH1_CheckedChanged(sender As Object, e As EventArgs) Handles CH1.Click CH1.Checked = True : CH2.Checked = False : NUD1.Enabled = True : NUD3.Enabled = False End Sub Private Sub CH2_CheckedChanged(sender As Object, e As EventArgs) Handles CH2.Click CH1.Checked = False : CH2.Checked = True : NUD1.Enabled = False : NUD3.Enabled = True End Sub Private Sub 工程款1_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款1_nud.ValueChanged 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value 金額1_und.Value = NUD3.Value / 100 * 工程款1_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value End Sub Private Sub 工程款2_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款2_nud.ValueChanged 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value 金額2_und.Value = NUD3.Value / 100 * 工程款2_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value End Sub Private Sub 工程款3_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款3_nud.ValueChanged 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value 金額3_und.Value = NUD3.Value / 100 * 工程款3_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value End Sub Private Sub 工程款4_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款4_nud.ValueChanged 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value 金額4_und.Value = NUD3.Value / 100 * 工程款4_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value End Sub Private Sub 工程款5_nud_ValueChanged(sender As Object, e As EventArgs) Handles 工程款5_nud.ValueChanged 工程款6_nud.Value = 工程款1_nud.Value + 工程款2_nud.Value + 工程款3_nud.Value + 工程款4_nud.Value + 工程款5_nud.Value 金額5_und.Value = NUD3.Value / 100 * 工程款5_nud.Value : 金額6_und.Value = 金額1_und.Value + 金額2_und.Value + 金額3_und.Value + 金額4_und.Value + 金額5_und.Value End Sub Private Sub 自動讀取_bt_Click(sender As Object, e As EventArgs) Handles 自動讀取_bt.Click If 客戶名稱_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇客戶名稱!!!") : Else : MsgBox("Please select the customer name first!!!") : End If : Else If 系統語言 = "繁體中文" Then : MsgBox("進入編輯狀態,合約清單已鎖定不可選擇,鎖定狀態在合約存檔後解除!!") Else : MsgBox("Enter the editing state, the contract list has been locked and cannot be selected, the locked state will be released after the contract is archived!!") : End If 合約_dgv.Enabled = False PA30 = 合約編號1_tb.Text : SQL_客戶資料讀取() : If dr.Read() Then : 合約編號1_tb.Text = dr("簡稱") : End If : conn.Close() If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法生成合約編號!!!") : Else : MsgBox("Insufficient information to generate contract number!!") : End If Else 合約編號2_tb.Enabled = False : 合約編號3_tb.Enabled = False PA = Strings.Mid(Strings.Format(Today(), "yyyy/MM/dd"), 3, 2) & Strings.Mid(Strings.Format(Today(), "yyyy/MM/dd"), 6, 2) & Strings.Right(Strings.Format(Today(), "yyyy/MM/dd"), 2) SQL_合約流水號_最後一筆資料() If dr.Read() Then If Val(Strings.Right(dr("合約編號").ToString, 2)) > 9 Then : EDR = Strings.Right(dr("合約編號").ToString, 2) : Else : EDR = Strings.Right(dr("合約編號").ToString, 1) : End If End If : conn.Close() : EDR += 1 : 合約編號2_tb.Text = PA : 合約編號3_tb.Text = EDR : 預設資料1() End If End If End Sub Private Sub 手動輸入_bt_Click(sender As Object, e As EventArgs) Handles 手動輸入_bt.Click If 系統語言 = "繁體中文" Then : MsgBox("進入編輯狀態,合約清單已鎖定不可選擇,鎖定狀態在合約存檔後解除!!") Else : MsgBox("Enter the editing state, the contract list has been locked and cannot be selected, the locked state will be released after the contract is archived!!") : End If 合約_dgv.Enabled = False : 合約編號2_tb.Enabled = True : 合約編號3_tb.Enabled = True : 預設資料1() End Sub Private Sub 刪除合約_bt_Click(sender As Object, e As EventArgs) Handles 刪除合約_bt.Click Dim SS As String If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Do you want to delete this data?" : End If Dim aa As MsgBoxResult = MsgBox("SS", MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then Dim SS1 As String If 系統語言 = "繁體中文" Then : SS1 = "確定刪除資料請輸入 [YES] !" : Else : SS1 = "Confirm to delete data, please enter[YES] !" : End If Dim SSA As String = InputBox(SS1) If SSA = "YES" Then PA = 合約編號_tb.Text SQL_合約刪除() : SQL_合約本文刪除_依合約() : SQL_合約明細刪除_全部() : SQL_合約附錄刪除_全部() : SQL_合約總表刪除_全部() : SQL_合約報價明細刪除_全部() SQL_合約報價係數刪除_全部() : SQL_合約試算分表刪除() : SQL_合約試算控制表刪除() : SQL_合約試算明細表刪除() : SQL_合約請款刪除_全部() If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Delete complete!!") : End If Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表() : Set_合約清單() End If End If End Sub Private Sub 存檔_tb_Click(sender As Object, e As EventArgs) Handles 存檔_tb.Click Dim 合約編號條件 As Boolean = True If 合約編號_cb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇我方公司!!") : Else : MsgBox("Did not choose our company!!") : End If : 合約編號條件 = False : End If If 合約編號1_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有甲方公司英文縮寫!!") : Else : MsgBox("There is no English abbreviation of Party A company!!") : End If : 合約編號條件 = 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 If 系統語言 = "繁體中文" Then : MsgBox("甲方公司簡稱需要英文或是數字,不可以是中文或其他符號!!") Else : MsgBox("Party A's company abbreviation needs to be in English or numbers, not Chinese or other symbols!!") : End If 合約編號條件 = False : Exit For : End If End If End If Next End If If 合約編號2_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有立約日期!!") : Else : MsgBox("There is no covenant date!!") : End If : 合約編號條件 = 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 If 系統語言 = "繁體中文" Then : MsgBox("立約日期只能是數字!!") : Else : MsgBox("Covenant date can only be a number!!") : End If : 合約編號條件 = False : Exit For : Else If Len(合約編號2_tb.Text) <> 6 Then If 系統語言 = "繁體中文" Then : MsgBox("立約日期的格式為YYMMDD (年兩位,月兩位,日兩位),數字規格不符!!") Else : MsgBox("The format of the contract date is YYMMDD (two digits for the year, two digits for the month, and two digits for the day), and the numerical specifications do not match!!") : End If 合約編號條件 = False : Exit For : End If End If Next If 合約編號3_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有合約序號!!") : Else : MsgBox("No contract number!!") : End If : 合約編號條件 = False ElseIf IsNumeric(合約編號3_tb.Text) = False Then If 系統語言 = "繁體中文" Then : MsgBox("序號只能是數字!!") : Else : MsgBox("Serial numbers can only be numbers!!") : End If : 合約編號條件 = False End If If 合約編號條件 = False Then : Else If 工程款6_nud.Value <> 100 Then If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Project appraisal is not equal to 100%!!") : End If Else Dim AN1, AN2, AN3, AN4, AN5 As Integer Dim STST1 As String = "" : Dim STST2 As String = "" : Dim STST3 As String = "" : Dim STST4 As String = "" : Dim STST5 As String = "" Dim SS1, SS2, SS3, SS4, SS5 As String If 系統語言 = "繁體中文" Then SS1 = "第一期工程款細項不吻合" : SS2 = "第二期工程款細項不吻合" : SS3 = "第三期工程款細項不吻合" : SS4 = "第四期工程款細項不吻合" : SS5 = "第五期工程款細項不吻合" Else SS1 = "The details of the first phase of the project do not match" : SS2 = "The details of the second phase of the project do not match" : SS3 = "The details of the third phase of the project do not match" : SS4 = "The details of the fourth phase of the project do not match" SS5 = "The details of the fifth phase of the project do not match" End If For I As Integer = 0 To 第1期_dgv.Rows.Count - 1 : AN1 += 第1期_dgv.Rows(I).Cells("比例").Value : Next For I As Integer = 0 To 第2期_dgv.Rows.Count - 1 : AN2 += 第2期_dgv.Rows(I).Cells("比例").Value : Next For I As Integer = 0 To 第3期_dgv.Rows.Count - 1 : AN3 += 第3期_dgv.Rows(I).Cells("比例").Value : Next For I As Integer = 0 To 第4期_dgv.Rows.Count - 1 : AN4 += 第4期_dgv.Rows(I).Cells("比例").Value : Next For I As Integer = 0 To 第5期_dgv.Rows.Count - 1 : AN5 += 第5期_dgv.Rows(I).Cells("比例").Value : Next If AN1 <> 工程款1_nud.Value And 第1期_dgv.Rows.Count > 0 Then : STST1 = "SS1" : End If If AN2 <> 工程款2_nud.Value And 第2期_dgv.Rows.Count > 0 Then : STST2 = "SS2" : End If If AN3 <> 工程款3_nud.Value And 第3期_dgv.Rows.Count > 0 Then : STST3 = "SS3" : End If If AN4 <> 工程款4_nud.Value And 第4期_dgv.Rows.Count > 0 Then : STST4 = "SS4" : End If If AN5 <> 工程款5_nud.Value And 第5期_dgv.Rows.Count > 0 Then : STST5 = "SS5" : End If If STST1 <> "" Or STST2 <> "" Or STST3 <> "" Or STST4 <> "" Or STST5 <> "" Then MsgBox(STST1 & vbCrLf & STST2 & vbCrLf & STST3 & vbCrLf & STST4 & vbCrLf & STST5) Else PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text : 合約編號_tb.Text = PA SQL_合約查詢() If dr.Read() Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "系統內已有相同單號,請問是否存檔(會覆蓋舊資料)?" Else : SS = "The same tracking number already exists in the system, do you want to archive it (the old data will be overwritten)?" : End If Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) : If aa = MsgBoxResult.Ok Then : 合約存檔() : End If Else 合約編號_tb.Text = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text 報價單合約編號_tb.Text = 合約編號_tb.Text : 報價單客戶名稱_cb.Text = 客戶名稱_tb.Text 報價單立約日期_dtp.Value = 立約日期_dtp.Value : 報價工程名稱_中_tb.Text = 工程名稱_中_tb.Text 報價工程名稱_英_tb.Text = 工程名稱_英_tb.Text 合約存檔() End If If 複製報價 = False Then PA = 合約編號_tb.Text : 合約_lb.Text = "合約" Set_合約報價總表() : Set_合約報價係數() : Set_合約報價明細表() PA = 合約編號_tb.Text If 報價明細表_dgv.Rows.Count = 0 Then : For i As Integer = 1 To 3 : 新增資料2() : Next : End If : Set_合約報價明細表() '------比對總表無資料時開基本條例------------------------------------------------- 總表範例_bt.PerformClick() : 甲方條件下拉清單讀取() : 合約編號1_cb.Text = 條件選擇 End If End If End If End If End Sub Private Sub 新增資料2() If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show() : 報價明細表存檔() PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = "" : PA12 = "" : PA13 = "" PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False : BL7 = False BL8 = False : BL9 = True : 明細表新增資料() : MyModule1.計算顯示3() End If End Sub Private Sub 合約存檔() '-----判斷是否新增客戶資料----------------------- PA30 = 合約編號1_tb.Text : Dim 供應商編號 As String : SQL_客戶資料讀取() If dr.Read() Then If 負責人_A_cb.Text <> dr("負責人").ToString And 負責人_A_cb.Text <> "" And dr("負責人").ToString <> "" Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "合約上的負責人與系統中的資料不吻合,是否要更新系統中的負責人資料?" Else : SS = "The person in charge on the contract does not match the data in the system. Do you want to update the data of the person in charge in the system?" : End If Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then : PA43 = 負責人_A_cb.Text : PA42 = 客戶名稱_tb.Text : conn.Close() : SQL_客戶資料表_修改負責人() : End If ElseIf 負責人_A_cb.Text <> "" And dr("負責人").ToString = "" Then PA43 = 負責人_A_cb.Text : PA42 = 客戶名稱_tb.Text : conn.Close() : SQL_客戶資料表_修改負責人() End If Else conn.Close() : SQL_客戶資料表_最後一筆資料() If dr.Read() Then : 供應商編號 = dr("流水號").ToString : Else : 供應商編號 = "CL000" : End If conn.Close() : Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(供應商編號, 3)) + 1 If NUM1 < 10 Then : 供應商編號 = "CL" & "00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 供應商編號 = "CL" & "0" & NUM1 ElseIf NUM1 > 99 Then : 供應商編號 = "CL" & NUM1 : End If PA29 = 供應商編號 : PA41 = 合約編號1_tb.Text : PA40 = 客戶名稱_tb.Text : PA39 = 客戶地址_tb.Text : PA38 = 負責人_A_cb.Text SQL_合約系統中新增客戶資料() : conn.Close() End If : conn.Close() PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text SQL_合約種類查詢() : If dr.Read() Then : Else : SQL_合約種類新增() : conn.Close() : End If : conn.Close() PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text BL1 = 合約停止_ch.Checked : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣" ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If 匯率() : PA48 = 匯率1 SQL_合約查詢() : If dr.Read() Then : SQL_合約修改1() : conn.Close() : Else : SQL_合約新增() : conn.Close() : End If 合約明細存檔() : PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text If 系統語言 = "繁體中文" Then : MsgBox("存檔完成,合約清單鎖定解除!!") : Else : MsgBox("The archive is complete, the contract list lock is released!!") : End If Set_合約清單() : 合約_dgv.Enabled = True End Sub Private Sub 合約明細存檔() For i As Integer = 0 To 第1期_dgv.Rows.Count - 1 PA1 = "1" : PA2 = 第1期_dgv.Rows(i).Cells("細項").Value : PA3 = 第1期_dgv.Rows(i).Cells("內容").Value NU1 = 第1期_dgv.Rows(i).Cells("比例").Value : NU2 = 第1期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改() Next For i As Integer = 0 To 第2期_dgv.Rows.Count - 1 PA1 = "2" : PA2 = 第2期_dgv.Rows(i).Cells("細項").Value : PA3 = 第2期_dgv.Rows(i).Cells("內容").Value NU1 = 第2期_dgv.Rows(i).Cells("比例").Value : NU2 = 第2期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改() Next For i As Integer = 0 To 第3期_dgv.Rows.Count - 1 PA1 = "3" : PA2 = 第3期_dgv.Rows(i).Cells("細項").Value : PA3 = 第3期_dgv.Rows(i).Cells("內容").Value NU1 = 第3期_dgv.Rows(i).Cells("比例").Value : NU2 = 第3期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改() Next For i As Integer = 0 To 第4期_dgv.Rows.Count - 1 PA1 = "4" : PA2 = 第4期_dgv.Rows(i).Cells("細項").Value : PA3 = 第4期_dgv.Rows(i).Cells("內容").Value NU1 = 第4期_dgv.Rows(i).Cells("比例").Value : NU2 = 第4期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改() Next For i As Integer = 0 To 第5期_dgv.Rows.Count - 1 PA1 = "5" : PA2 = 第5期_dgv.Rows(i).Cells("細項").Value : PA3 = 第5期_dgv.Rows(i).Cells("內容").Value NU1 = 第5期_dgv.Rows(i).Cells("比例").Value : NU2 = 第5期_dgv.Rows(i).Cells("金額").Value : SQL_合約明細修改() Next End Sub Private Sub 新增資料_bt_Click(sender As Object, e As EventArgs) Handles 新增資料_bt.Click If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法生成明細!!!") : Else : MsgBox("Not enough information to generate details!!!") : End If If 工程款6_nud.Value <> 100 Then If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Project appraisal is not equal to 100%!!") : End If PA = 合約編號_tb.Text : 合約明細存檔() Dim SS As String If 系統語言 = "繁體中文" Then : SS = "合約工期款項細分不可大於10筆!!!" : Else : SS = "The subdivision of the contract duration payment cannot be more than 10!!!" : End If If TabControl1.SelectedIndex = 0 Then If 第1期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "1" : PA2 = 第1期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If ElseIf TabControl1.SelectedIndex = 1 Then If 第2期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "2" : PA2 = 第2期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If ElseIf TabControl1.SelectedIndex = 2 Then If 第3期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "3" : PA2 = 第3期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If ElseIf TabControl1.SelectedIndex = 3 Then If 第4期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "4" : PA2 = 第4期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If ElseIf TabControl1.SelectedIndex = 4 Then If 第5期_dgv.Rows.Count = 10 Then : MsgBox(SS) : Else : PA1 = "5" : PA2 = 第5期_dgv.Rows.Count + 1 : SQL_合約明細新增() : End If End If PA = 合約編號_tb.Text PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5() If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If End If End If End Sub Private Sub 刪除資料_bt_Click(sender As Object, e As EventArgs) Handles 刪除資料_bt.Click If 合約編號_cb.Text = "" Or 合約編號1_tb.Text = "" Or 明細選項_bt.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("資訊不夠,無法刪除明細!!") : Else : MsgBox("Not enough information to delete details!!") : End If : Else If 工程款6_nud.Value <> 100 Then If 系統語言 = "繁體中文" Then : MsgBox("工程款估驗 不等於 100%!!") : Else : MsgBox("Project appraisal is not equal to 100%!!") : End If : Else PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text : 合約明細存檔() If TabControl1.SelectedIndex = 0 Then : PA1 = "1" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除() ElseIf TabControl1.SelectedIndex = 1 Then : PA1 = "2" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除() ElseIf TabControl1.SelectedIndex = 2 Then : PA1 = "3" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除() ElseIf TabControl1.SelectedIndex = 3 Then : PA1 = "4" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除() ElseIf TabControl1.SelectedIndex = 4 Then : PA1 = "5" : PA2 = 明細選項_bt.Text : SQL_合約明細刪除() End If PA = 合約編號_cb.Text & "-" & 合約編號1_tb.Text & " " & 合約編號2_tb.Text & "-" & 合約編號3_tb.Text PA1 = "1" : Set_合約明細1() : PA1 = "2" : Set_合約明細2() : PA1 = "3" : Set_合約明細3() : PA1 = "4" : Set_合約明細4() : PA1 = "5" : Set_合約明細5() If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Delete complete!!") : End If End If End If End Sub Private Sub 合約編號1_tb_TextChanged(sender As Object, e As EventArgs) Handles 合約編號1_tb.TextChanged PA30 = 合約編號1_tb.Text : SQL_客戶資料讀取() If dr.Read() Then : 客戶名稱_tb.Text = dr("客戶名稱") : 負責人_A_cb.Text = dr("負責人") : 客戶地址_tb.Text = dr("地址") : End If : conn.Close() End Sub Private Sub 美金_ch_Click(sender As Object, e As EventArgs) Handles 美金_ch.Click 美金_ch.Checked = True : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)" ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If Set_合約報價明細表() : Set_合約報價總表() End Sub Private Sub 台幣_ch_Click(sender As Object, e As EventArgs) Handles 台幣_ch.Click 美金_ch.Checked = False : 台幣_ch.Checked = True : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = False If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)" ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If Set_合約報價明細表() : Set_合約報價總表() End Sub Private Sub 人民幣_ch_Click(sender As Object, e As EventArgs) Handles 人民幣_ch.Click 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = True : 印尼盾_ch.Checked = False If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)" ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If Set_合約報價明細表() : Set_合約報價總表() End Sub Private Sub 印尼盾_ch_Click(sender As Object, e As EventArgs) Handles 印尼盾_ch.Click 美金_ch.Checked = False : 台幣_ch.Checked = False : 人民幣_ch.Checked = False : 印尼盾_ch.Checked = True If 美金_ch.Checked = True Then : 幣別 = " (USD)" : ElseIf 台幣_ch.Checked = True Then : 幣別 = " (TWD)" ElseIf 人民幣_ch.Checked = True Then : 幣別 = " (RMB)" : ElseIf 印尼盾_ch.Checked = True Then : 幣別 = " (RP)" : End If Set_合約報價明細表() : Set_合約報價總表() End Sub '-----------------合約報價總表------------------------------------------------------------------------------------------------------------------------------- Private Sub 合約報價總表_最後一筆資料() 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 = "GT" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "GT" & "0000000" & EDR ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "GT" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "GT" & "00000" & EDR ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "GT" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "GT" & "000" & EDR ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "GT" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "GT" & "0" & EDR ElseIf EDR > 99999999 Then : ESTR = "GT" & EDR : End If : PA9 = ESTR End Sub Private Sub 總表範例新增() 合約報價總表_最後一筆資料() : PA10 = "" SQL_合約報價總表_最後一筆排序() If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1 If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If SQL_合約報價總表_新增資料() End Sub Private Sub 總表範例_bt_Click(sender As Object, e As EventArgs) Handles 總表範例_bt.Click If 報價總表_dgv.Rows.Count = 0 Then For I As Integer = 1 To 5 PA = 合約編號_tb.Text If I = 1 Then : PA2 = "" : PA3 = "" ElseIf I = 2 Then : PA2 = "^" : PA3 = "管理費 7%" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" ElseIf I = 3 Then : PA2 = "#" : PA3 = "折讓 Discount" : PA4 = "" : PA5 = "1" : PA6 = "0" : PA7 = "0" : PA8 = "" ElseIf I = 4 Then : PA2 = "*" : PA3 = "稅金 11% Tax" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" ElseIf I = 5 Then : PA2 = "@" : PA3 = "總計 Grand Total" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" End If : 總表範例新增() Next Set_合約報價總表() Else Dim 新開1 As Boolean = True : Dim 新開2 As Boolean = True : Dim 新開3 As Boolean = True : Dim 新開4 As Boolean = True For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "^" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "管理" Then 新開1 = False : Exit For : End If : Next For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "*" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "稅金" Then 新開2 = False : Exit For : End If : Next For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "@" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "總計" Then 新開3 = False : Exit For : End If : Next For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(I).Cells("ITEM").Value.ToString = "#" And Strings.Left(報價總表_dgv.Rows(I).Cells("DESCRIPTION").Value.ToString, 2) = "折讓" Then 新開4 = False : Exit For : End If : Next If 新開1 = True Or 新開2 = True Or 新開3 = True Then : PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" 總表範例新增() : End If If 新開1 = True Then : PA = 合約編號_tb.Text : PA2 = "^" : PA3 = "管理費 7%" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" 總表範例新增() : End If If 新開4 = True Then : PA = 合約編號_tb.Text : PA2 = "#" : PA3 = "折讓 Discount" : PA4 = "" : PA5 = "1" : PA6 = "0" : PA7 = "0" : PA8 = "" 總表範例新增() : End If If 新開2 = True Then : PA = 合約編號_tb.Text : PA2 = "*" : PA3 = "稅金 11% Tax" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" 總表範例新增() : End If If 新開3 = True Then : PA = 合約編號_tb.Text : PA2 = "@" : PA3 = "總計 Grand Total" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" 總表範例新增() : End If : Set_合約報價總表() End If End Sub Private Sub 報價總表存檔() For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 PA1 = 報價總表_dgv.Rows(i).Cells("排序").Value.ToString : PA2 = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString : PA3 = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString PA4 = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString : PA5 = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString PA7 = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString : PA8 = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString : PA9 = 報價總表_dgv.Rows(i).Cells("流水號").Value.ToString PA10 = 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString SQL_合約報價總表_存檔() Next SQL_合約修改_報價說明() End Sub Private Sub 新增資料1_bt_Click(sender As Object, e As EventArgs) Handles 新增資料1_bt.Click If 合約編號_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else Dim SS As String If 系統語言 = "繁體中文" Then : SS = "請輸入要新增幾行空白欄位!! (請輸入數字)" Else : SS = "Please enter a few blank fields to add!! (Please enter a number)" : End If PA20 = InputBox(SS) If IsNumeric(PA20) = False Then If 系統語言 = "繁體中文" Then : MsgBox("你輸入的不是數字!!") : Else : MsgBox("You are not entering numbers!!") : End If : Else 報價總表存檔() For ia As Integer = 1 To PA20 PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" 合約報價總表_最後一筆資料() PA10 = "" If 選擇項_tb.Text = "" Then SQL_合約報價總表_最後一筆排序() If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1 If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If Else PA1 = 選擇項3_tb.Text & "-1" End If SQL_合約報價總表_新增資料() Next Set_合約報價總表() For I As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If I < 10 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = "00" & I ElseIf I > 9 And I < 100 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = "0" & I ElseIf I > 99 Then : 報價總表_dgv.Rows(I).Cells("排序").Value = I End If Next : 報價總表存檔() End If End If End Sub Private Sub 報價總表存檔按鈕() If 報價總表_dgv.Rows.Count = 0 Then : Else 報價總表存檔() : PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text : PA = 合約編號_tb.Text PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text BL1 = 合約停止_ch.Checked : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣" ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If 匯率() : PA48 = 匯率1 : SQL_合約修改1() : Set_合約報價總表() : Set_合約清單() End If End Sub Private Sub 報價總表存檔_bt_Click(sender As Object, e As EventArgs) Handles 報價總表存檔_bt.Click If 報價總表_dgv.Rows.Count = 0 Then If 系統語言 = "繁體中文" Then : MsgBox("沒有可以存檔的資料!!") : Else : MsgBox("No data to archive!!") : End If : Else 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show() 報價總表存檔按鈕() : 報價明細表存檔() : Set_合約報價明細表() : 預估利潤存檔() : MyModule1.計算顯示3() If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Archive complete!!") : End If End If End Sub Private Sub 總表選擇刪除_bt_Click(sender As Object, e As EventArgs) Handles 總表選擇刪除_bt.Click If 總表流水_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的資料是哪一筆!!") : Else : MsgBox("Please select which data to delete first!!") : End If Else : 報價總表存檔() : PA9 = 總表流水_tb.Text : SQL_合約報價總表_刪除資料() : Set_合約報價總表() : End If End Sub Private Sub 排序1_bt_Click(sender As Object, e As EventArgs) Handles 排序1_bt.Click If 報價總表_dgv.Rows.Count > 0 Then If 報價總表_dgv.Columns(0).Visible = False Then : 報價總表_dgv.Columns(0).Visible = True : Else : 報價總表_dgv.Columns(0).Visible = False : End If End If End Sub Private Sub 稅前歸零_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 稅前歸零_ch.Click If 稅前歸零_ch.Checked = False And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = True : 稅後歸零_ch.Checked = False ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = True Then : 稅前歸零_ch.Checked = True : 稅後歸零_ch.Checked = True : End If End Sub Private Sub 稅後歸零_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 稅後歸零_ch.Click If 稅前歸零_ch.Checked = False And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = False ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = False Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = True ElseIf 稅前歸零_ch.Checked = True And 稅後歸零_ch.Checked = True Then : 稅前歸零_ch.Checked = False : 稅後歸零_ch.Checked = True : End If End Sub Private Sub 折價計算_bt_Click(sender As Object, e As EventArgs) Handles 折價計算_bt.Click If 歸零位數_nud.Value >= Len(CLng(未折價前_tb.Text)) - 1 Then If 系統語言 = "繁體中文" Then : MsgBox("歸零位數太大,報價會出錯!!") : Else : MsgBox("The number of zeroing digits is too large, and the quotation will be wrong!!") : End If Else Dim DD, 歸零前, 歸零後 As Long '-------------------------------折讓計算-------------------------------------------------------------------------------------------------------------- If 折讓比例_nud.Value > 0 Then DD = CLng(未折價前_tb.Text) / 100 * 折讓比例_nud.Value * -1 For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = DD : Exit For End If Next End If : 報價總表_dgv_自動計算() '---------------------------------------------歸零位數_nud------------------------------------------------------------------------------------------------ If 歸零位數_nud.Value > 0 Then If 稅前歸零_ch.Checked = True Then 歸零數_tb.Text = Strings.Right(CLng(報價小計_tb.Text), 歸零位數_nud.Value) For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = DD - CLng(歸零數_tb.Text) : Exit For End If Next ElseIf 稅後歸零_ch.Checked = True Then For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString = "@" Then 歸零前 = CLng(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString) : Exit For End If Next 歸零數_tb.Text = Strings.Right(歸零前, 歸零位數_nud.Value) : 歸零後 = 歸零前 - CLng(歸零數_tb.Text) If 稅額顯示_lb.Text = "PPN 0%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後) ElseIf 稅額顯示_lb.Text = "PPN 5%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後 / 105 * 100) ElseIf 稅額顯示_lb.Text = "PPN 10%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後 / 110 * 100) ElseIf 稅額顯示_lb.Text = "PPN 11%稅額 = Rp. " Then : DD = CLng(報價小計_tb.Text) - (歸零後 / 111 * 100) : End If For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString = "折讓 Discount" Then 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value = CLng(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString) - DD : Exit For End If Next End If End If : 報價總表_dgv_自動計算() End If End Sub '-----------------合約報價總表編輯功能------------------------------------------------------------------------------------------------------------------------------- Private Sub 總表編輯() If 視窗2_pl.Visible = False Then 視窗2_pl.Location = New System.Drawing.Point(123, 58) : 視窗2_pl.Visible = True : 視窗2_pl.Top = True : 視窗2_pl.BringToFront() 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇 X_3_tb.Text = "" : Y_3_tb.Text = "" : NUD_01.Value = 0 : NUD_02.Value = 0 : NUD_03.Value = 0 中文大寫1_ch.Checked = True : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = False ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("壹") : ITEM1_cb.Items.Add("貳") : ITEM1_cb.Items.Add("參") : ITEM1_cb.Items.Add("肆") ITEM1_cb.Items.Add("伍") : ITEM1_cb.Items.Add("陸") : ITEM1_cb.Items.Add("柒") : ITEM1_cb.Items.Add("捌") : ITEM1_cb.Items.Add("玖") : ITEM1_cb.Items.Add("拾") ITEM1_cb.Items.Add("拾壹") : ITEM1_cb.Items.Add("拾貳") : ITEM1_cb.Items.Add("拾參") : ITEM1_cb.Items.Add("拾肆") : ITEM1_cb.Items.Add("拾伍") : ITEM1_cb.Items.Add("拾陸") ITEM1_cb.Items.Add("拾柒") : ITEM1_cb.Items.Add("拾捌") : ITEM1_cb.Items.Add("拾玖") : ITEM1_cb.Items.Add("貳拾") 視窗2_pl.BringToFront() Else : 視窗2_pl.Visible = False End If End Sub Private Sub 中文大寫1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫1_ch.Click 中文大寫1_ch.Checked = True : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = False ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("壹") : ITEM1_cb.Items.Add("貳") : ITEM1_cb.Items.Add("參") : ITEM1_cb.Items.Add("肆") ITEM1_cb.Items.Add("伍") : ITEM1_cb.Items.Add("陸") : ITEM1_cb.Items.Add("柒") : ITEM1_cb.Items.Add("捌") : ITEM1_cb.Items.Add("玖") : ITEM1_cb.Items.Add("拾") ITEM1_cb.Items.Add("拾壹") : ITEM1_cb.Items.Add("拾貳") : ITEM1_cb.Items.Add("拾參") : ITEM1_cb.Items.Add("拾肆") : ITEM1_cb.Items.Add("拾伍") : ITEM1_cb.Items.Add("拾陸") ITEM1_cb.Items.Add("拾柒") : ITEM1_cb.Items.Add("拾捌") : ITEM1_cb.Items.Add("拾玖") : ITEM1_cb.Items.Add("貳拾") End Sub Private Sub 中文小寫1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫1_ch.Click 中文大寫1_ch.Checked = False : 中文小寫1_ch.Checked = True : 數字1_ch.Checked = False ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : ITEM1_cb.Items.Add("一") : ITEM1_cb.Items.Add("二") : ITEM1_cb.Items.Add("三") : ITEM1_cb.Items.Add("四") ITEM1_cb.Items.Add("五") : ITEM1_cb.Items.Add("六") : ITEM1_cb.Items.Add("七") : ITEM1_cb.Items.Add("八") : ITEM1_cb.Items.Add("九") : ITEM1_cb.Items.Add("十") ITEM1_cb.Items.Add("十一") : ITEM1_cb.Items.Add("十二") : ITEM1_cb.Items.Add("十三") : ITEM1_cb.Items.Add("十四") : ITEM1_cb.Items.Add("十五") : ITEM1_cb.Items.Add("十六") ITEM1_cb.Items.Add("十七") : ITEM1_cb.Items.Add("十八") : ITEM1_cb.Items.Add("十九") : ITEM1_cb.Items.Add("二十") End Sub Private Sub 數字1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 數字1_ch.Click 中文大寫1_ch.Checked = False : 中文小寫1_ch.Checked = False : 數字1_ch.Checked = True ITEM1_cb.Items.Clear() : ITEM1_cb.Items.Add("") : For I As Integer = 1 To 30 : ITEM1_cb.Items.Add(I) : Next End Sub Private Sub 合計項_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合計項_cb.SelectedIndexChanged 內容_tb.Text = 合計項_cb.Text : ITEM1_cb.Text = "" : 單位_tb.Text = "" If 合計項_cb.Text = "合 計 Total" Or Strings.Left(合計項_cb.Text, 2) = "稅金" Then : ITEM1_cb.Text = "*" ElseIf Strings.Left(合計項_cb.Text, 3) = "管理費" Then : ITEM1_cb.Text = "^" ElseIf Strings.Left(合計項_cb.Text, 2) = "折讓" Then : ITEM1_cb.Text = "#" ElseIf 合計項_cb.Text = "總計 Grand Total" Then : ITEM1_cb.Text = "@" : End If End Sub Private Sub 總表編輯_bt_Click(sender As Object, e As EventArgs) Handles 總表編輯_bt.Click 總表編輯() : 視窗3_pl.Visible = False : Set_報價明細表_dgv_利潤表關閉() End Sub Private Sub NUD_01_Click(sender As Object, e As EventArgs) Handles NUD_01.Click 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇 End Sub Private Sub NUD_02_Click(sender As Object, e As EventArgs) Handles NUD_02.Click 目前選擇 = "讀取資料" : 座標_lb.Text = 目前選擇 End Sub Private Sub NUD_03_Click(sender As Object, e As EventArgs) Handles NUD_03.Click 目前選擇 = "寫入資料" : 座標_lb.Text = 目前選擇 End Sub Private Sub 選擇_lb_Click(sender As Object, e As EventArgs) Handles 選擇_lb.Click 目前選擇 = "寫入資料" : 座標_lb.Text = 目前選擇 End Sub Private Sub 文字資料輸入1_bt_Click(sender As Object, e As EventArgs) Handles 文字資料輸入1_bt.Click If 選擇項_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先點選要輸入在總表的哪一行!!") : Else : MsgBox("Please click on which row you want to enter in the summary table first!!") : End If Else Dim ZX As Integer = 選擇項_tb.Text 報價總表_dgv.Rows(ZX).Cells("ITEM").Value = ITEM1_cb.Text : 報價總表_dgv.Rows(ZX).Cells("UNIT").Value = 單位_tb.Text 報價總表_dgv.Rows(ZX).Cells("REMARKS").Value = 備註_tb.Text : 報價總表_dgv.Rows(ZX).Cells("DESCRIPTION").Value = 內容_tb.Text If IsNumeric(數量_tb.Text) = False Then : 報價總表_dgv.Rows(ZX).Cells("QTY").Value = 0 : Else : 報價總表_dgv.Rows(ZX).Cells("QTY").Value = 數量_tb.Text : End If 報價總表_dgv_自動計算() : 數量_tb.Text = "1" End If End Sub Private Sub B1_bt_Click(sender As Object, e As EventArgs) Handles b1_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 1 : Else : 數值2_tb.Text = 1 : End If End Sub Private Sub B2_bt_Click(sender As Object, e As EventArgs) Handles b2_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 2 : Else : 數值2_tb.Text = 2 : End If End Sub Private Sub B3_bt_Click(sender As Object, e As EventArgs) Handles b3_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 3 : Else : 數值2_tb.Text = 3 : End If End Sub Private Sub B4_bt_Click(sender As Object, e As EventArgs) Handles b4_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 4 : Else : 數值2_tb.Text = 4 : End If End Sub Private Sub B5_bt_Click(sender As Object, e As EventArgs) Handles b5_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 5 : Else : 數值2_tb.Text = 5 : End If End Sub Private Sub B6_bt_Click(sender As Object, e As EventArgs) Handles b6_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 6 : Else : 數值2_tb.Text = 6 : End If End Sub Private Sub B7_bt_Click(sender As Object, e As EventArgs) Handles b7_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 7 : Else : 數值2_tb.Text = 7 : End If End Sub Private Sub B8_bt_Click(sender As Object, e As EventArgs) Handles b8_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 8 : Else : 數值2_tb.Text = 8 : End If End Sub Private Sub B9_bt_Click(sender As Object, e As EventArgs) Handles b9_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 9 : Else : 數值2_tb.Text = 9 : End If End Sub Private Sub B0_bt_Click(sender As Object, e As EventArgs) Handles b0_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & 0 : Else : 數值2_tb.Text = 0 : End If End Sub Private Sub 小數點_bt_Click(sender As Object, e As EventArgs) Handles 小數點_bt.Click If 數值2_tb.Text <> "" Then : 數值2_tb.Text = 數值2_tb.Text & "." : Else : 數值2_tb.Text = "0." : End If End Sub '----------------------------數字鍵盤--------------------------------------------------------------------------------------------------------------- Private Sub 倒退_bt_Click(sender As Object, e As EventArgs) Handles 倒退_bt.Click Dim SS As Integer If 數值2_tb.Text <> "" Then : 數值2_tb.Text = Int(Val(數值2_tb.Text) / 10) ElseIf 數值2_tb.Text = "" And 數值1_tb.Text <> "" Then : SS = Len(數值1_tb.Text) : 數值1_tb.Text = Strings.Left(數值1_tb.Text, SS - 1) Else : 數值2_tb.Text = "" : End If End Sub Private Sub 除_bt_Click(sender As Object, e As EventArgs) Handles 除_bt.Click 等於_bt.PerformClick() If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值1_tb.Text) / Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If 計算式_tb.Text = "/" End Sub Private Sub 乘_bt_Click(sender As Object, e As EventArgs) Handles 乘_bt.Click 等於_bt.PerformClick() If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值2_tb.Text) * Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If 計算式_tb.Text = "X" End Sub Private Sub 加_bt_Click(sender As Object, e As EventArgs) Handles 加_bt.Click 等於_bt.PerformClick() If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值2_tb.Text) + Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If 計算式_tb.Text = "+" End Sub Private Sub 減_bt_Click(sender As Object, e As EventArgs) Handles 減_bt.Click 等於_bt.PerformClick() If 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then : 數值1_tb.Text = 數值2_tb.Text : 數值2_tb.Text = "" : End If If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then : 數值1_tb.Text = Val(數值1_tb.Text) - Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If 計算式_tb.Text = "-" End Sub Private Sub 清除_bt_Click(sender As Object, e As EventArgs) Handles 清除_bt.Click 數值2_tb.Text = "" : 數值1_tb.Text = "" : 計算式_tb.Text = "" : 結果_tb.Text = "" End Sub Private Sub 數值1_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值1_tb.TextChanged 結果_tb.Text = 數值1_tb.Text : If 數值1_tb.Text <> "" Then : NUD_01.Value = 數值1_tb.Text : Else : NUD_01.Value = 0 : End If If Val(數值1_tb.Text) > 9.99973000350998E+85 Then If 系統語言 = "繁體中文" Then : MsgBox("EFFORT錯誤!結果過大, 請重新點擊AC來重新啟動!!") Else : MsgBox("EFFORT error! The result is too large, please re-click AC to restart!!") : End If End If End Sub Private Sub 計算式_tb_TextChanged(sender As Object, e As EventArgs) Handles 計算式_tb.TextChanged 計算1_ch.Text = 計算式_tb.Text End Sub Private Sub 數值2_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值2_tb.TextChanged If 數值2_tb.Text <> "" Then : NUD_02.Value = 數值2_tb.Text : Else : NUD_02.Value = 0 : End If End Sub Private Sub 結果_tb_TextChanged(sender As Object, e As EventArgs) Handles 結果_tb.TextChanged If IsNumeric(結果_tb.Text) Then : If 結果_tb.Text <> "" Then : NUD_03.Value = 結果_tb.Text : Else : NUD_03.Value = 0 : End If : End If End Sub Private Sub 等於_bt_Click(sender As Object, e As EventArgs) Handles 等於_bt.Click If 數值2_tb.Text <> "" And 數值1_tb.Text <> "" Then If 計算式_tb.Text = "X" Then : 數值1_tb.Text = Val(數值2_tb.Text) * Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If If 計算式_tb.Text = "/" Then : 數值1_tb.Text = Val(數值1_tb.Text) / Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If If 計算式_tb.Text = "+" Then : 數值1_tb.Text = Val(數值2_tb.Text) + Val(數值1_tb.Text) : 數值2_tb.Text = "" : End If If 計算式_tb.Text = "-" Then : 數值1_tb.Text = Val(數值1_tb.Text) - Val(數值2_tb.Text) : 數值2_tb.Text = "" : End If ElseIf 數值2_tb.Text <> "" And 數值1_tb.Text = "" Then 結果_tb.Text = 數值2_tb.Text Else : End If End Sub '-----------------合約報價明細表------------------------------------------------------------------------------------------------------------------------------- Private Sub 合約報價明細表_最後一筆資料() 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 = "GT" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "GT" & "0000000" & EDR ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "GT" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "GT" & "00000" & EDR ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "GT" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "GT" & "000" & EDR ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "GT" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "GT" & "0" & EDR ElseIf EDR > 99999999 Then : ESTR = "GT" & EDR : End If : PA9 = ESTR End Sub Private Sub 報價明細表存檔() For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() PA1 = 報價明細表_dgv.Rows(i).Cells("排序").Value.ToString : PA2 = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString PA3 = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString : PA4 = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString PA5 = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString PA7 = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString : PA8 = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString PA9 = 報價明細表_dgv.Rows(i).Cells("流水號").Value.ToString : PA10 = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString PA11 = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value.ToString : PA12 = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString PA13 = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value.ToString : PA14 = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString PA15 = 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString : BL = 報價明細表_dgv.Rows(i).Cells("不計").Value PA16 = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString : BL1 = 報價明細表_dgv.Rows(i).Cells("D1").Value BL2 = 報價明細表_dgv.Rows(i).Cells("D2").Value : BL3 = 報價明細表_dgv.Rows(i).Cells("D3").Value : BL4 = 報價明細表_dgv.Rows(i).Cells("D4").Value BL5 = 報價明細表_dgv.Rows(i).Cells("D5").Value : BL6 = 報價明細表_dgv.Rows(i).Cells("D6").Value : BL7 = 報價明細表_dgv.Rows(i).Cells("D7").Value BL8 = 報價明細表_dgv.Rows(i).Cells("D8").Value SQL_合約報價明細表_存檔() Next '-----------------預估利潤存檔------------------------------------------------------------------------------------------------------------------------------- If 預估工資總成本_tb.Text = "" Then : 預估工資總成本_tb.Text = "0" : End If PA37 = 預估工資總成本_tb.Text 預估利潤存檔() End Sub Private Sub 新增資料2_bt_Click(sender As Object, e As EventArgs) Handles 新增資料2_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show() 報價明細表存檔() Dim SS As String If 系統語言 = "繁體中文" Then : SS = "請輸入要新增幾行空白欄未!! (請輸入數字)!!" Else : SS = "PHarap masukkan beberapa bidang kosong untuk ditambahkan!! (Silakan masukkan nomor)" : End If PA20 = InputBox(SS) If IsNumeric(PA20) = False Then : If 系統語言 = "繁體中文" Then : MsgBox("你輸入的不是數字!!") : Else : MsgBox("You are not entering numbers!!") : End If : Else For ia As Integer = 1 To PA20 PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = "" : PA12 = "" PA13 = "" : PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False BL7 = False : BL8 = False : BL9 = True 合約報價明細表_最後一筆資料() If 選擇項1_tb.Text = "" Then SQL_合約報價明細表_最後一筆排序() If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() NUM1 = Double.Parse(PA1) + 1 If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If Else PA1 = 選擇項2_tb.Text & "-1" End If SQL_合約報價明細表_新增資料() Next : Set_合約報價明細表() For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "00" & I ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I End If Next : 報價明細表存檔() : MyModule1.計算顯示3() End If End If End Sub Private Sub 報價明細表存檔_bt_Click(sender As Object, e As EventArgs) Handles 報價明細表存檔_bt.Click If 報價明細表_dgv.Rows.Count = 0 Then If 系統語言 = "繁體中文" Then : MsgBox("沒有可以存檔的資料!!") : Else : MsgBox("No data to archive!!") : End If : Else 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show() 報價總表存檔按鈕() : 報價明細表存檔() : Set_合約報價明細表() : 預估利潤存檔() : MyModule1.計算顯示3() If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Archive complete!!") : End If End If End Sub Private Sub 總表選擇刪除1_bt_Click(sender As Object, e As EventArgs) Handles 總表選擇刪除1_bt.Click If 啟用批量選擇_ch.Checked = False Then If 明細表流水_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的資料是哪一筆!!") Else : MsgBox("Please select which data to delete first!!") : End If Else 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show() 報價明細表存檔() : PA9 = 明細表流水_tb.Text : SQL_合約報價明細表_刪除資料() : Set_合約報價明細表() : MyModule1.計算顯示3() End If Else 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show() 報價明細表存檔() For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() If 報價明細表_dgv("S", i).Value = True Then PA9 = 報價明細表_dgv.Rows(i).Cells("流水號").Value.ToString : SQL_合約報價明細表_刪除資料() End If Next : MyModule1.計算顯示3() : Set_合約報價明細表() : 啟用批量選擇_ch.Checked = False End If End Sub Private Sub 選擇材料新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles 選擇材料新增到明細表_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else If 料號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("No material selected!!") : End If : Else 資料數 = 報價明細表_dgv.Rows.Count * 2 : 進度條視窗.Show() : 報價明細表存檔() PA = 合約編號_tb.Text : PA2 = "" : PA3 = "" : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "0" : PA11 = "" PA12 = "" : PA14 = "" : PA15 = 料號_tb.Text : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False : BL7 = False BL8 = False : BL9 = True : If 帶上歷史單價_ch.Checked = True Then : PA13 = 歷史單價_tb.Text : Else : PA13 = "" : End If 明細表新增資料() : MyModule1.計算顯示3() End If End If End Sub Private Sub BOM新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles BOM新增到明細表_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else If ITEM4_cb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇ITEM!!") : Else : MsgBox("Please select ITEM first!!") : End If : Else If 主項目_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇主項目!!") : Else : MsgBox("Please select the main item first!!") : End If : Else 資料數 = (報價明細表_dgv.Rows.Count * 2) + BOM表明細_dgv.Rows.Count : 進度條視窗.Show() 報價明細表存檔() PA = 合約編號_tb.Text : PA2 = ITEM4_cb.Text : PA3 = 主項目_tb.Text : PA4 = "" : PA5 = "0" : PA6 = "0" : PA7 = "0" : PA8 = "" : PA10 = "" : PA11 = "" PA12 = "" : PA14 = "" : PA15 = "" : PA16 = "" : BL = False : BL1 = False : BL2 = False : BL3 = False : BL4 = False : BL5 = False : BL6 = False BL7 = False : BL8 = False : BL9 = True 合約報價明細表_最後一筆資料() If 選擇項1_tb.Text = "" Then : SQL_合約報價明細表_最後一筆排序() If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close() NUM1 = Double.Parse(PA1) + 1 If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If Else : PA1 = 選擇項2_tb.Text & "-00" : End If : SQL_合約報價明細表_新增資料() For i As Integer = 0 To BOM表明細_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() PA2 = BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString : PA3 = BOM表明細_dgv.Rows(i).Cells("項目").Value.ToString PA4 = BOM表明細_dgv.Rows(i).Cells("單位").Value.ToString : PA5 = BOM表明細_dgv.Rows(i).Cells("數量").Value.ToString : PA6 = "0" : PA7 = "0" : PA8 = "" PA10 = BOM表明細_dgv.Rows(i).Cells("數量").Value.ToString : PA11 = "" : PA12 = "" : PA14 = "" : PA15 = BOM表明細_dgv.Rows(i).Cells("料號").Value.ToString 合約報價明細表_最後一筆資料() If 選擇項1_tb.Text = "" Then SQL_合約報價明細表_最後一筆排序() If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close() NUM1 = Double.Parse(PA1) + 1 If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If Else If CInt(BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString) < 10 Then PA1 = 選擇項2_tb.Text & "-0" & BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString ElseIf CInt(BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString) > 9 Then PA1 = 選擇項2_tb.Text & "-" & BOM表明細_dgv.Rows(i).Cells("項次").Value.ToString End If End If : SQL_合約報價明細表_新增資料() Next : Set_合約報價明細表() For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "000" & I ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I End If Next : 報價明細表存檔() : MyModule1.計算顯示3() End If End If End If End Sub Private Sub 選取資料新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles 選取資料新增到明細表_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else 資料數 = (報價明細表_dgv.Rows.Count * 2) + 報價明細表2_dgv.Rows.Count : 進度條視窗.Show() 報價明細表存檔() For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() If 報價明細表2_dgv.Rows(i).Cells("選擇").Value = True Then PA = 合約編號_tb.Text : PA2 = 報價明細表2_dgv.Rows(i).Cells("ITEM").Value.ToString : PA3 = 報價明細表2_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString PA4 = 報價明細表2_dgv.Rows(i).Cells("UNIT").Value.ToString : PA5 = 報價明細表2_dgv.Rows(i).Cells("QTY").Value.ToString : PA6 = "0" : PA7 = "0" : PA8 = "" PA10 = 報價明細表2_dgv.Rows(i).Cells("QTY").Value.ToString : PA11 = "" : PA12 = "" : PA14 = "" : PA15 = 報價明細表2_dgv.Rows(i).Cells("料號").Value.ToString PA16 = 報價明細表2_dgv.Rows(i).Cells("材料係數").Value.ToString : BL = 報價明細表2_dgv.Rows(i).Cells("不計").Value : BL1 = 報價明細表2_dgv.Rows(i).Cells("D1").Value BL2 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL3 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL4 = 報價明細表2_dgv.Rows(i).Cells("D1").Value BL5 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL6 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL7 = 報價明細表2_dgv.Rows(i).Cells("D1").Value BL8 = 報價明細表2_dgv.Rows(i).Cells("D1").Value : BL9 = 報價明細表2_dgv.Rows(i).Cells("預設").Value 合約報價明細表_最後一筆資料() If 選擇項1_tb.Text = "" Then SQL_合約報價明細表_最後一筆排序() If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() NUM1 = Double.Parse(PA1) + 1 If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If Else : PA1 = 選擇項2_tb.Text & "-" & i + 1 : End If SQL_合約報價明細表_新增資料() End If Next : Set_合約報價明細表() For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "000" & I ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I End If Next : 報價明細表存檔() : MyModule1.計算顯示3() 全部取消_bt.PerformClick() End If End Sub Private Sub 明細表新增資料() 合約報價明細表_最後一筆資料() If 選擇項1_tb.Text = "" Then SQL_合約報價明細表_最後一筆排序() If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "00" : End If : conn.Close() NUM1 = Double.Parse(PA1) + 1 If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If Else : PA1 = 選擇項2_tb.Text & "-1" : End If SQL_合約報價明細表_新增資料() If 複製報價 = False Then Set_合約報價明細表() For I As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() If I < 10 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "00" & I ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "0" & I ElseIf I > 99 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = I End If Next : 報價明細表存檔() End If End Sub Private Sub 修改明細表上的材料指定_bt_Click(sender As Object, e As EventArgs) Handles 修改明細表上的材料指定_bt.Click If 明細表流水_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要修改的資料是哪一筆!!") : Else : MsgBox("Please select which data you want to modify first!!") : End If : Else If 料號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("No material selected!!") : End If : Else 資料數 = 報價明細表_dgv.Rows.Count : 進度條視窗.Show() 報價明細表存檔() : PA = 合約編號_tb.Text : PA9 = 明細表流水_tb.Text : PA15 = 料號_tb.Text : PA2 = ITEM3_cb.Text : PA5 = 申請數_nud.Value : PA4 = 單位2_tb.Text If 帶上歷史單價_ch.Checked = True Then : SQL2 = ", 材料成本單價 = N '" & 歷史單價_tb.Text & "' " : Else : SQL2 = "" : End If SQL_合約報價明細表_存檔_料號() : Set_合約報價明細表() : MyModule1.計算顯示3() End If End If End Sub Private Sub 排序2_bt_Click(sender As Object, e As EventArgs) Handles 排序2_bt.Click If 報價明細表_dgv.Rows.Count > 0 Then If 報價明細表_dgv.Columns(0).Visible = False Then : 報價明細表_dgv.Columns(0).Visible = True : Else : 報價明細表_dgv.Columns(0).Visible = False : End If End If : Set_合約報價明細表格式() End Sub '-----------------合約報價明細表表編輯功能------------------------------------------------------------------------------------------------------------------------------- Private Sub 明細表編輯() If 視窗3_pl.Visible = False Then 視窗3_pl.Location = New System.Drawing.Point(123, 58) : 視窗3_pl.Visible = True 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇 X_2_tb.Text = "" : Y_2_tb.Text = "" : NUD_04.Value = 0 : NUD_05.Value = 0 : NUD_06.Value = 0 中文大寫2_ch.Checked = True : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = False ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("壹") : ITEM2_cb.Items.Add("貳") : ITEM2_cb.Items.Add("參") : ITEM2_cb.Items.Add("肆") ITEM2_cb.Items.Add("伍") : ITEM2_cb.Items.Add("陸") : ITEM2_cb.Items.Add("柒") : ITEM2_cb.Items.Add("捌") : ITEM2_cb.Items.Add("玖") : ITEM2_cb.Items.Add("拾") ITEM2_cb.Items.Add("拾壹") : ITEM2_cb.Items.Add("拾貳") : ITEM2_cb.Items.Add("拾參") : ITEM2_cb.Items.Add("拾肆") : ITEM2_cb.Items.Add("拾伍") : ITEM2_cb.Items.Add("拾陸") ITEM2_cb.Items.Add("拾柒") : ITEM2_cb.Items.Add("拾捌") : ITEM2_cb.Items.Add("拾玖") : ITEM2_cb.Items.Add("貳拾") Set_報價明細表_dgv_利潤表開啟() : 視窗3_pl.BringToFront() Else : 視窗3_pl.Visible = False : End If End Sub Private Sub 中文大寫2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫2_ch.Click 中文大寫2_ch.Checked = True : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = False ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("壹") : ITEM2_cb.Items.Add("貳") : ITEM2_cb.Items.Add("參") : ITEM2_cb.Items.Add("肆") ITEM2_cb.Items.Add("伍") : ITEM2_cb.Items.Add("陸") : ITEM2_cb.Items.Add("柒") : ITEM2_cb.Items.Add("捌") : ITEM2_cb.Items.Add("玖") : ITEM2_cb.Items.Add("拾") ITEM2_cb.Items.Add("拾壹") : ITEM2_cb.Items.Add("拾貳") : ITEM2_cb.Items.Add("拾參") : ITEM2_cb.Items.Add("拾肆") : ITEM2_cb.Items.Add("拾伍") : ITEM2_cb.Items.Add("拾陸") ITEM2_cb.Items.Add("拾柒") : ITEM2_cb.Items.Add("拾捌") : ITEM2_cb.Items.Add("拾玖") : ITEM2_cb.Items.Add("貳拾") End Sub Private Sub 中文小寫2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫2_ch.Click 中文大寫2_ch.Checked = False : 中文小寫2_ch.Checked = True : 數字2_ch.Checked = False ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : ITEM2_cb.Items.Add("一") : ITEM2_cb.Items.Add("二") : ITEM2_cb.Items.Add("三") : ITEM2_cb.Items.Add("四") ITEM2_cb.Items.Add("五") : ITEM2_cb.Items.Add("六") : ITEM2_cb.Items.Add("七") : ITEM2_cb.Items.Add("八") : ITEM2_cb.Items.Add("九") : ITEM2_cb.Items.Add("十") ITEM2_cb.Items.Add("十一") : ITEM2_cb.Items.Add("十二") : ITEM2_cb.Items.Add("十三") : ITEM2_cb.Items.Add("十四") : ITEM2_cb.Items.Add("十五") : ITEM2_cb.Items.Add("十六") ITEM2_cb.Items.Add("十七") : ITEM2_cb.Items.Add("十八") : ITEM2_cb.Items.Add("十九") : ITEM2_cb.Items.Add("二十") End Sub Private Sub 數字2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 數字2_ch.Click 中文大寫2_ch.Checked = False : 中文小寫2_ch.Checked = False : 數字2_ch.Checked = True ITEM2_cb.Items.Clear() : ITEM2_cb.Items.Add("") : For I As Integer = 1 To 30 : ITEM2_cb.Items.Add(I) : Next End Sub Private Sub 合計項1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合計項1_cb.SelectedIndexChanged 內容1_tb.Text = 合計項1_cb.Text : ITEM2_cb.Text = "" : 單位1_tb.Text = "" : If 合計項1_cb.Text <> "" Then : ITEM2_cb.Text = "*" : Else : End If End Sub Private Sub 明細表編輯_bt_Click(sender As Object, e As EventArgs) Handles 明細表編輯_bt.Click 明細表編輯() : 視窗2_pl.Visible = False End Sub Private Sub NUD_04_Click(sender As Object, e As EventArgs) Handles NUD_04.Click 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇 End Sub Private Sub NUD_05_Click(sender As Object, e As EventArgs) Handles NUD_05.Click 目前選擇 = "讀取資料" : 座標1_lb.Text = 目前選擇 End Sub Private Sub NUD_06_Click(sender As Object, e As EventArgs) Handles NUD_06.Click 目前選擇 = "寫入資料" : 座標1_lb.Text = 目前選擇 End Sub Private Sub 選擇1_lb_Click(sender As Object, e As EventArgs) Handles 選擇1_lb.Click 目前選擇 = "寫入資料" : 座標1_lb.Text = 目前選擇 End Sub Private Sub 文字資料輸入2_bt_Click(sender As Object, e As EventArgs) Handles 文字資料輸入2_bt.Click If 選擇項1_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先點選要輸入在明細表的哪一行!!") : Else : MsgBox("Please click on which row you want to enter in the detail table first!!") : End If Else Dim ZX As Integer = 選擇項1_tb.Text 報價明細表_dgv.Rows(ZX).Cells("ITEM").Value = ITEM2_cb.Text : 報價明細表_dgv.Rows(ZX).Cells("REMARKS").Value = 備註1_tb.Text 報價明細表_dgv.Rows(ZX).Cells("DESCRIPTION").Value = 內容1_tb.Text : 報價明細表_dgv.Rows(ZX).Cells("UNIT").Value = 單位1_tb.Text : 報價明細表_dgv_自動計算() End If End Sub Private Sub A1_bt_Click(sender As Object, e As EventArgs) Handles A1_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 1 : Else : 數值4_tb.Text = 1 : End If End Sub Private Sub A2_bt_Click(sender As Object, e As EventArgs) Handles A2_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 2 : Else : 數值4_tb.Text = 2 : End If End Sub Private Sub A3_bt_Click(sender As Object, e As EventArgs) Handles A3_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 3 : Else : 數值4_tb.Text = 3 : End If End Sub Private Sub A4_bt_Click(sender As Object, e As EventArgs) Handles A4_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 4 : Else : 數值4_tb.Text = 4 : End If End Sub Private Sub A5_bt_Click(sender As Object, e As EventArgs) Handles A5_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 5 : Else : 數值4_tb.Text = 5 : End If End Sub Private Sub A6_bt_Click(sender As Object, e As EventArgs) Handles A6_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 6 : Else : 數值4_tb.Text = 6 : End If End Sub Private Sub A7_bt_Click(sender As Object, e As EventArgs) Handles A7_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 7 : Else : 數值4_tb.Text = 7 : End If End Sub Private Sub A8_bt_Click(sender As Object, e As EventArgs) Handles A8_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 8 : Else : 數值4_tb.Text = 8 : End If End Sub Private Sub A9_bt_Click(sender As Object, e As EventArgs) Handles A9_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 9 : Else : 數值4_tb.Text = 9 : End If End Sub Private Sub A0_bt_Click(sender As Object, e As EventArgs) Handles A0_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & 0 : Else : 數值4_tb.Text = 0 : End If End Sub Private Sub 小數點1_bt_Click(sender As Object, e As EventArgs) Handles 小數點1_bt.Click If 數值4_tb.Text <> "" Then : 數值4_tb.Text = 數值4_tb.Text & "." : Else : 數值4_tb.Text = "0." : End If End Sub '----------------------------數字鍵盤--------------------------------------------------------------------------------------------------------------- Private Sub 倒退1_bt_Click(sender As Object, e As EventArgs) Handles 倒退1_bt.Click Dim SS As Integer If 數值4_tb.Text <> "" Then : 數值4_tb.Text = Int(Val(數值4_tb.Text) / 10) ElseIf 數值4_tb.Text = "" And 數值3_tb.Text <> "" Then : SS = Len(數值3_tb.Text) : 數值3_tb.Text = Strings.Left(數值3_tb.Text, SS - 1) Else : 數值4_tb.Text = "" : End If End Sub Private Sub 除1_bt_Click(sender As Object, e As EventArgs) Handles 除1_bt.Click 等於1_bt.PerformClick() If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then : 數值3_tb.Text = Val(數值3_tb.Text) / Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If 計算式1_tb.Text = "/" End Sub Private Sub 乘1_bt_Click(sender As Object, e As EventArgs) Handles 乘1_bt.Click 等於1_bt.PerformClick() If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then : 數值3_tb.Text = Val(數值4_tb.Text) * Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If 計算式1_tb.Text = "X" End Sub Private Sub 加1_bt_Click(sender As Object, e As EventArgs) Handles 加1_bt.Click 等於1_bt.PerformClick() If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then : 數值3_tb.Text = Val(數值4_tb.Text) + Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If 計算式1_tb.Text = "+" End Sub Private Sub 減1_bt_Click(sender As Object, e As EventArgs) Handles 減1_bt.Click 等於1_bt.PerformClick() If 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then : 數值3_tb.Text = 數值4_tb.Text : 數值4_tb.Text = "" : End If If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then : 數值3_tb.Text = Val(數值3_tb.Text) - Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If 計算式1_tb.Text = "-" End Sub Private Sub 清除1_bt_Click(sender As Object, e As EventArgs) Handles 清除1_bt.Click 數值4_tb.Text = "" : 數值3_tb.Text = "" : 計算式1_tb.Text = "" : 結果1_tb.Text = "" End Sub Private Sub 數值3_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值3_tb.TextChanged 結果1_tb.Text = 數值3_tb.Text : If 數值3_tb.Text <> "" Then : NUD_04.Value = 數值3_tb.Text : Else : NUD_04.Value = 0 : End If If Val(數值3_tb.Text) > 9.99973000350998E+85 Then If 系統語言 = "繁體中文" Then : MsgBox("EFFORT錯誤!結果過大, 請重新點擊AC來重新啟動!!") Else : MsgBox("EFFORT error! The result is too large, please re-click AC to restart!!") : End If End If End Sub Private Sub 計算式1_tb_TextChanged(sender As Object, e As EventArgs) Handles 計算式1_tb.TextChanged 計算2_ch.Text = 計算式1_tb.Text End Sub Private Sub 數值4_tb_TextChanged(sender As Object, e As EventArgs) Handles 數值4_tb.TextChanged If 數值4_tb.Text <> "" Then : NUD_05.Value = 數值4_tb.Text : Else : NUD_05.Value = 0 : End If End Sub Private Sub 結果1_tb_TextChanged(sender As Object, e As EventArgs) Handles 結果1_tb.TextChanged If IsNumeric(結果1_tb.Text) Then : If 結果1_tb.Text <> "" Then : NUD_06.Value = 結果1_tb.Text : Else : NUD_06.Value = 0 : End If : End If End Sub Private Sub 等於1_bt_Click(sender As Object, e As EventArgs) Handles 等於1_bt.Click If 數值4_tb.Text <> "" And 數值3_tb.Text <> "" Then If 計算式1_tb.Text = "X" Then : 數值3_tb.Text = Val(數值4_tb.Text) * Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If If 計算式1_tb.Text = "/" Then : 數值3_tb.Text = Val(數值3_tb.Text) / Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If If 計算式1_tb.Text = "+" Then : 數值3_tb.Text = Val(數值4_tb.Text) + Val(數值3_tb.Text) : 數值4_tb.Text = "" : End If If 計算式1_tb.Text = "-" Then : 數值3_tb.Text = Val(數值3_tb.Text) - Val(數值4_tb.Text) : 數值4_tb.Text = "" : End If ElseIf 數值4_tb.Text <> "" And 數值3_tb.Text = "" Then 結果1_tb.Text = 數值4_tb.Text Else : End If End Sub '-----------------合約係數功能------------------------------------------------------------------------------------------------------------------------------- Private Sub 係數範本_tb_Click(sender As Object, e As EventArgs) Handles 係數範本_tb.Click If 合約_lb.Text = "合約" Then : PA = "" : Set_合約報價係數() : 合約_lb.Text = "範本" : Else If 合約編號_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If Else : PA = 合約編號_tb.Text : Set_合約報價係數() : 合約_lb.Text = "合約" End If End If End Sub Private Sub 係數項目刪除_bt_Click(sender As Object, e As EventArgs) Handles 係數項目刪除_bt.Click If 係數流水號_tb.Text = "" Or 係數合約號_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇係數項目!!") : Else : MsgBox("No coefficient item selected!!") : End If : Else Dim SS As String If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Do you want to delete this data?" : End If Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) '對話框(3) If aa = MsgBoxResult.Ok Then PA = 係數合約號_tb.Text : PA1 = 係數流水號_tb.Text SQL_合約報價係數刪除() : If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Delete complete!!") : End If : Set_合約報價係數() 合約_lb.Text = "合約" : 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = "" End If End If End Sub Private Sub 係數項目修改_bt_Click(sender As Object, e As EventArgs) Handles 係數項目修改_bt.Click If 係數流水號_tb.Text = "" Or 係數合約號_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇係數項目!!") : Else : MsgBox("No coefficient item selected!!") : End If : Else PA = 係數合約號_tb.Text : PA1 = 係數流水號_tb.Text : SQL_合約報價係數修改() If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modification complete!!") : End If : Set_合約報價係數() : 合約_lb.Text = "合約" 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = "" End If End Sub Private Sub 係數流水號() 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 = "CF" & "00000000" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "CF" & "0000000" & EDR ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "CF" & "000000" & EDR : ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "CF" & "00000" & EDR ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "CF" & "0000" & EDR : ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "CF" & "000" & EDR ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "CF" & "00" & EDR : ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "CF" & "0" & EDR ElseIf EDR > 99999999 Then : ESTR = "CF" & EDR : End If PA1 = ESTR End Sub Private Sub 係數項目新增_bt_Click(sender As Object, e As EventArgs) Handles 係數項目新增_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else If 係數項目_cb.Text = "" Or 係數單位_cb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有填寫新增項目或單位!!") : Else : MsgBox("No new items or units are filled in!!") : End If Else PA = 合約編號_tb.Text : PA2 = 係數項目_cb.Text : PA3 = 係數_nup.Value : PA4 = 係數單位_cb.Text : SQL_合約報價係數資料不重複() If dr.Read Then : If 系統語言 = "繁體中文" Then : MsgBox("該係數項目已經存在!!") : Else : MsgBox("The coefficient item already exists!!") : End If : Else 係數流水號() : SQL_合約報價係數_新增() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If Set_合約報價係數() : 合約_lb.Text = "合約" : 係數合約號_tb.Text = "" : 係數流水號_tb.Text = "" : 係數項目_cb.Text = "" : 係數_nup.Value = 0 : 係數單位_cb.Text = "" End If End If End If End Sub Private Sub 複製係數範本_tb_Click(sender As Object, e As EventArgs) Handles 複製係數範本_tb.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else 係數範本_tb.PerformClick() : PA = 合約編號_tb.Text For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1 PA2 = 報價係數_dgv("項目", i).Value.ToString : PA3 = 報價係數_dgv("係數", i).Value.ToString : PA4 = 報價係數_dgv("單位", i).Value.ToString SQL_合約報價係數資料不重複() : If dr.Read Then : Else : 係數流水號() : SQL_合約報價係數_新增() : End If Next : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If : Set_合約報價係數() : 合約_lb.Text = "合約" End If End Sub '-----------------合約試算表功能------------------------------------------------------------------------------------------------------------------------------- Private Sub 試算表_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 試算表_cb.SelectedIndexChanged PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢() If dr.Read() Then : 係數_nud.Value = dr("係數") : 表號_tb.Text = dr("表號").ToString : End If : 合約試算控制下拉清單() End Sub Private Sub 樓層_迴路_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 樓層_迴路_cb.SelectedIndexChanged PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢() : If dr.Read() Then : 表頭_tb.Text = dr("表頭") : End If End Sub Private Sub 表號_tb_TextChanged(sender As Object, e As EventArgs) Handles 表號_tb.TextChanged PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : Set_合約試算控制表_查詢() End Sub Private Sub 新增試算表_bt_Click(sender As Object, e As EventArgs) Handles 新增試算表_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else PA = 合約編號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢() If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("[試算表]名稱重複,請重新輸入!!") : Else : MsgBox("[Spreadsheet] Duplicate name, please re-enter!!") : End If : Else '------生成表號--------------------------------------------------------------------------------------- Dim 表號 As String : PA = 合約編號_tb.Text conn.Close() : SQL_合約試算分表_最後一筆資料() If dr.Read() Then : 表號 = dr("表號").ToString : Else : 表號 = "B00" : End If : conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(表號, 2)) + 1 If NUM1 < 10 Then : 表號 = "B" & "0" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 表號 = "B" & NUM1 : End If '------新增試算表--------------------------------------------------------------------------------------- 表號_tb.Text = 表號 : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_新增() '------重新載入下拉清單--------------------------------------------------------------------------------------- 合約試算分下拉清單() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If End If : conn.Close() End If End Sub Private Sub 修改試算表名稱_bt_Click(sender As Object, e As EventArgs) Handles 修改試算表名稱_bt.Click PA = 合約編號_tb.Text : PA3 = 試算表_cb.Text : SQL_合約試算分表重複查詢() If dr.Read() Then : If 系統語言 = "繁體中文" Then : MsgBox("[試算表]名稱重複,請重新輸入!!") : Else : MsgBox("[Spreadsheet] Duplicate name, please re-enter!!") : End If : Else PA = 合約編號_tb.Text : PA1 = 試算表_cb.Text : PA2 = 表號_tb.Text : SQL_合約試算分表_試算表修改() '------重新載入下拉清單--------------------------------------------------------------------------------------- 合約試算分下拉清單() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modification complete!!") : End If End If : conn.Close() End Sub Private Sub 新增物件_bt_Click(sender As Object, e As EventArgs) Handles 新增物件_bt.Click If 試算控制表_dgv.Rows.Count = 40 Then If 系統語言 = "繁體中文" Then : MsgBox("單一試算表內最多只能建立40個[樓層/迴路]!!") : Else : MsgBox("Only a maximum of 40 [floors/circuits] can be created in a single spreadsheet!!") : End If : Else If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢() If dr.Read() Then If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]名稱重複,請重新輸入!!") : Else : MsgBox("[Floor/Circuit] Duplicate name, please re-enter!!") : End If : Else '------生成表號--------------------------------------------------------------------------------------- Dim 表頭 As String : PA = 合約編號_tb.Text : PA2 = 表號_tb.Text conn.Close() : SQL_合約試算控制表_最後一筆資料() If dr.Read() Then : 表頭 = dr("表頭").ToString : Else : 表頭 = "A00" : End If : conn.Close() Dim NUM1 As Integer NUM1 = Double.Parse(Strings.Right(表頭, 2)) + 1 If NUM1 < 10 Then : 表頭 = "A" & "0" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 表頭 = "A" & NUM1 : End If '------新增試算表--------------------------------------------------------------------------------------- 表頭_tb.Text = 表頭 : PA4 = 樓層_迴路_cb.Text : PA2 = 表號_tb.Text : PA5 = 表頭_tb.Text : SQL_合約試算控制表_新增() '------重新載入下拉清單--------------------------------------------------------------------------------------- 合約試算控制下拉清單() : Set_合約試算控制表_查詢() : If 系統語言 = "繁體中文" Then : MsgBox("新增完成!!") : Else : MsgBox("Added complete!!") : End If End If : conn.Close() End If End If End Sub Private Sub 修改樓層_迴圈_bt_Click(sender As Object, e As EventArgs) Handles 修改樓層_迴圈_bt.Click PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : SQL_合約試算控制表重複查詢() If dr.Read() Then If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]名稱重複,請重新輸入!!") : Else : MsgBox("[Floor/Circuit] Duplicate name, please re-enter!!") : End If : Else PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA4 = 樓層_迴路_cb.Text : PA5 = 表頭_tb.Text : SQL_合約試算控制表_樓層迴路修改() '------重新載入下拉清單--------------------------------------------------------------------------------------- 合約試算控制下拉清單() : Set_合約試算控制表_查詢() : If 系統語言 = "繁體中文" Then : MsgBox("修改完成!!") : Else : MsgBox("Modification complete!!") : End If End If : conn.Close() End Sub Private Sub 材料加入1_bt_Click(sender As Object, e As EventArgs) Handles 材料加入1_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else If 樓層_迴路_cb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("[樓層/迴路]沒有選擇!!") : Else : MsgBox("[Floor/Circuit] No choice!!") : End If : Else If 料號1_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("No material selected!!") : End If : Else 存檔() : PA = 合約編號_tb.Text : PA2 = 表號_tb.Text : PA6 = 料號1_tb.Text : SQL_合約試算明細表重複查詢() If dr.Read() Then If 系統語言 = "繁體中文" Then : MsgBox("要加入試算表的物料重複,請重新輸入!!") Else : MsgBox("To add material duplicates to the trial balance, please re-enter!!") : End If Else : conn.Close() : SQL_合約試算明細表_新增物料() : Set_試算明細表() : End If : conn.Close() End If End If End If End Sub Private Sub 直接輸入_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 直接輸入_ch.Click 直接輸入_ch.Checked = True : 使用計算機_ch.Checked = False If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2 Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If End Sub Private Sub 使用計算機_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 使用計算機_ch.Click 直接輸入_ch.Checked = False : 使用計算機_ch.Checked = True If 直接輸入_ch.Checked = False And 使用計算機_ch.Checked = True Then : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnF2 Else : 試算表_dgv.EditMode = DataGridViewEditMode.EditOnEnter : End If End Sub Private Sub 存檔() If 合約編號_tb.Text = "" Or 表號_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If Else PA = 合約編號_tb.Text : PA1 = 表號_tb.Text For i As Integer = 0 To 試算表_dgv.Rows.Count - 1 PA43 = 試算表_dgv.Rows(i).Cells(0).Value : PA2 = 試算表_dgv.Rows(i).Cells(3).Value : PA3 = 試算表_dgv.Rows(i).Cells(4).Value : PA4 = 試算表_dgv.Rows(i).Cells(5).Value PA5 = 試算表_dgv.Rows(i).Cells(6).Value : PA6 = 試算表_dgv.Rows(i).Cells(7).Value : PA7 = 試算表_dgv.Rows(i).Cells(8).Value : PA8 = 試算表_dgv.Rows(i).Cells(9).Value PA9 = 試算表_dgv.Rows(i).Cells(10).Value : PA10 = 試算表_dgv.Rows(i).Cells(11).Value : PA11 = 試算表_dgv.Rows(i).Cells(12).Value : PA12 = 試算表_dgv.Rows(i).Cells(13).Value PA13 = 試算表_dgv.Rows(i).Cells(14).Value : PA14 = 試算表_dgv.Rows(i).Cells(15).Value : PA15 = 試算表_dgv.Rows(i).Cells(16).Value : PA16 = 試算表_dgv.Rows(i).Cells(17).Value PA17 = 試算表_dgv.Rows(i).Cells(18).Value : PA18 = 試算表_dgv.Rows(i).Cells(19).Value : PA19 = 試算表_dgv.Rows(i).Cells(20).Value : PA20 = 試算表_dgv.Rows(i).Cells(21).Value PA21 = 試算表_dgv.Rows(i).Cells(22).Value : PA22 = 試算表_dgv.Rows(i).Cells(23).Value : PA23 = 試算表_dgv.Rows(i).Cells(24).Value : PA24 = 試算表_dgv.Rows(i).Cells(25).Value PA25 = 試算表_dgv.Rows(i).Cells(26).Value : PA26 = 試算表_dgv.Rows(i).Cells(27).Value : PA27 = 試算表_dgv.Rows(i).Cells(28).Value : PA28 = 試算表_dgv.Rows(i).Cells(29).Value PA29 = 試算表_dgv.Rows(i).Cells(30).Value : PA30 = 試算表_dgv.Rows(i).Cells(31).Value : PA31 = 試算表_dgv.Rows(i).Cells(32).Value : PA32 = 試算表_dgv.Rows(i).Cells(33).Value PA33 = 試算表_dgv.Rows(i).Cells(34).Value : PA34 = 試算表_dgv.Rows(i).Cells(35).Value : PA35 = 試算表_dgv.Rows(i).Cells(36).Value : PA36 = 試算表_dgv.Rows(i).Cells(37).Value PA37 = 試算表_dgv.Rows(i).Cells(38).Value : PA38 = 試算表_dgv.Rows(i).Cells(39).Value : PA39 = 試算表_dgv.Rows(i).Cells(40).Value : PA40 = 試算表_dgv.Rows(i).Cells(41).Value PA41 = 試算表_dgv.Rows(i).Cells(42).Value : BL1 = 試算表_dgv.Rows(i).Cells(43).Value : PA42 = 試算表_dgv.Rows(i).Cells(44).Value SQL_合約試算明細表_修改() Next i End If End Sub Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click 存檔() : If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Archive complete!!") : End If End Sub Private Sub 搜尋_bt_Click(sender As Object, e As EventArgs) Handles 搜尋_bt.Click If 系統語言 = "繁體中文" Then : PA = InputBox("請輸入關鍵字!!") : Else : PA = InputBox("Please enter key words!!") : End If '------對話框(2)----------- If PA = "" Then : Else : Set_DGV1載入前設定() : SQL_建築物料請購單申請_物料清單三() : Set_DG1載入後設定() : 料號1_tb.Text = "" : End If End Sub Private Sub 刪除1_bt_Click(sender As Object, e As EventArgs) Handles 刪除1_bt.Click Dim SS As String If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Do you want to delete this data?" : End If Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then PA = 合約編號_tb.Text : PA1 = 表號_tb.Text : PA43 = 料號1_tb.Text : PA2 = 表號_tb.Text : SQL_合約試算明細表_刪除() If 系統語言 = "繁體中文" Then : MsgBox("刪除完成!!") : Else : MsgBox("Delete complete!!") : End If : Set_試算明細表() End If End Sub '-----------------預估利潤存檔------------------------------------------------------------------------------------------------------------------------------- Private Sub 預估利潤存檔() If 預估利潤_tb.Text = "" Or 預估利潤_tb.Text = "0" Or 利潤比3_tb.Text = "0 %" Then : Else If 預估工資總成本_tb.Text = "" Then : 預估工資總成本_tb.Text = "0" : End If : If 預估工資總報價_tb.Text = "" Then : 預估工資總報價_tb.Text = "0" : End If If 利潤比1_tb.Text = "" Then : 利潤比1_tb.Text = "0 %" : End If : If 預估材料總成本_tb.Text = "" Then : 預估材料總成本_tb.Text = "0" : End If If 預估材料總報價_tb.Text = "" Then : 預估材料總報價_tb.Text = "0" : End If : If 利潤比2_tb.Text = "" Then : 利潤比2_tb.Text = "0 %" : End If If 總成本_tb.Text = "" Then : 總成本_tb.Text = "0" : End If : If 總報價_tb.Text = "" Then : 總報價_tb.Text = "0" : End If If 利潤比3_tb.Text = "" Then : 利潤比3_tb.Text = "0 %" : End If : If 利潤比4_tb.Text = "" Then : 利潤比4_tb.Text = "0 %" : End If If 預估利潤_tb.Text = "" Then : 預估利潤_tb.Text = "0" : End If PA37 = 預估工資總成本_tb.Text : PA38 = 預估工資總報價_tb.Text : PA39 = Replace(Replace(利潤比1_tb.Text, " ", ""), "%", "") PA40 = 預估材料總成本_tb.Text : PA41 = 預估材料總報價_tb.Text : PA42 = Replace(Replace(利潤比2_tb.Text, " ", ""), "%", "") : PA47 = 預估利潤_tb.Text PA43 = 總成本_tb.Text : PA44 = 總報價_tb.Text : PA45 = Replace(Replace(利潤比3_tb.Text, " ", ""), "%", "") : PA46 = Replace(Replace(利潤比4_tb.Text, " ", ""), "%", "") SQL_合約控制表預估利潤存檔() End If End Sub '---------------------其他雜項功能-------------------------------------------------------------------------------------------------------------------------- Private Sub 彙總存檔_bt_Click(sender As Object, e As EventArgs) Handles 彙總存檔_bt.Click PA = 合約編號_tb.Text : 預估利潤存檔() : If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Archive complete!!") : End If End Sub Private Sub 中文大寫3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文大寫3_ch.Click 中文大寫3_ch.Checked = True : 中文小寫3_ch.Checked = False ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("壹") : ITEM4_cb.Items.Add("貳") : ITEM4_cb.Items.Add("參") : ITEM4_cb.Items.Add("肆") ITEM4_cb.Items.Add("伍") : ITEM4_cb.Items.Add("陸") : ITEM4_cb.Items.Add("柒") : ITEM4_cb.Items.Add("捌") : ITEM4_cb.Items.Add("玖") : ITEM4_cb.Items.Add("拾") ITEM4_cb.Items.Add("拾壹") : ITEM4_cb.Items.Add("拾貳") : ITEM4_cb.Items.Add("拾參") : ITEM4_cb.Items.Add("拾肆") : ITEM4_cb.Items.Add("拾伍") : ITEM4_cb.Items.Add("拾陸") ITEM4_cb.Items.Add("拾柒") : ITEM4_cb.Items.Add("拾捌") : ITEM4_cb.Items.Add("拾玖") : ITEM4_cb.Items.Add("貳拾") End Sub Private Sub 中文小寫3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中文小寫3_ch.Click 中文大寫3_ch.Checked = False : 中文小寫3_ch.Checked = True ITEM4_cb.Items.Clear() : ITEM4_cb.Items.Add("") : ITEM4_cb.Items.Add("一") : ITEM4_cb.Items.Add("二") : ITEM4_cb.Items.Add("三") : ITEM4_cb.Items.Add("四") ITEM4_cb.Items.Add("五") : ITEM4_cb.Items.Add("六") : ITEM4_cb.Items.Add("七") : ITEM4_cb.Items.Add("八") : ITEM4_cb.Items.Add("九") : ITEM4_cb.Items.Add("十") ITEM4_cb.Items.Add("十一") : ITEM4_cb.Items.Add("十二") : ITEM4_cb.Items.Add("十三") : ITEM4_cb.Items.Add("十四") : ITEM4_cb.Items.Add("十五") : ITEM4_cb.Items.Add("十六") ITEM4_cb.Items.Add("十七") : ITEM4_cb.Items.Add("十八") : ITEM4_cb.Items.Add("十九") : ITEM4_cb.Items.Add("二十") End Sub Private Sub 物料_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 物料_ch.Click 物料_ch.Checked = True : BOM_ch.Checked = False : 合約_ch.Checked = False 物料_p.Visible = True : BOM_p.Visible = False : 合約_p.Visible = False End Sub Private Sub BOM_ch_CheckedChanged(sender As Object, e As EventArgs) Handles BOM_ch.Click 物料_ch.Checked = False : BOM_ch.Checked = True : 合約_ch.Checked = False 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False End Sub Private Sub 合約_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 合約_ch.Click 物料_ch.Checked = False : BOM_ch.Checked = False : 合約_ch.Checked = True 物料_p.Visible = False : BOM_p.Visible = False : 合約_p.Visible = True End Sub Private Sub 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged 條件選擇 = 合約編號1_cb.Text : Set_合約清單() End Sub Private Sub 工程期1_ch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 工程期1_ch.SelectedIndexChanged 條件選擇 = 合約編號1_cb.Text : Set_合約清單() End Sub Private Sub 規格顯示修改_bt_Click(sender As Object, e As EventArgs) Handles 規格顯示修改_bt.Click 利潤表_ch.Checked = False : Set_報價明細表_dgv_利潤表關閉() If 報價明細表_dgv.Columns(43).Visible = False Then : For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = True : Next ElseIf 報價明細表_dgv.Columns(43).Visible = True Then : For I As Integer = 43 To 50 : 報價明細表_dgv.Columns(I).Visible = False : Next : End If Set_合約報價明細表格式() End Sub Private Sub 合約編號清單_bt_Click(sender As Object, e As EventArgs) Handles 合約編號清單_bt.Click If 合約_dgv.Rows.Count > 2999 Then If 系統語言 = "繁體中文" Then : MsgBox("清單數量超過3000個,清通知系統管理員修改程式!!") Else : MsgBox("The number of lists exceeds 3000, please notify the system administrator to modify the program!!") : End If : Else For I As Integer = 0 To 3000 : PPBB(I) = "" : Next For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : PPBB(I) = 合約_dgv("合約編號", I).Value.ToString : NN1 = I : Next 下拉清單_1.ShowDialog() For I As Integer = 0 To 合約_dgv.Rows.Count - 1 : If PPAA = 合約_dgv("合約編號", I).Value.ToString Then : 選取位置 = I : Exit For : End If : Next : 合約讀取() End If End Sub Private Sub 縮放_bt_Click_1(sender As Object, e As EventArgs) Handles 縮放_bt.Click If 空間1.Visible = True Then A3 = 空間2.Size.Width : B3 = 空間2.Size.Height 空間1.Visible = False : 空間2.Location = New System.Drawing.Point(A1, B2) : 空間2.Size = New System.Drawing.Point((A2 - A1) + A3, B3) Else GCM_ERP_SYS.WindowState = 2 : 空間1.Visible = True : 空間2.Location = New System.Drawing.Point(A2, B2) : 空間2.Size = New System.Drawing.Point(A3, B3) If 物料_ch.Checked = True Then : 物料_p.Visible = True : BOM_p.Visible = False : 合約_p.Visible = False ElseIf BOM_ch.Checked = True Then : 物料_p.Visible = False : BOM_p.Visible = True : 合約_p.Visible = False ElseIf 合約_ch.Checked = True Then : 物料_p.Visible = False : BOM_p.Visible = False : 合約_p.Visible = True : End If End If End Sub Private Sub 新建_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 新建_ch.Click 新建_ch.Checked = True : 改版_ch.Checked = False : 轉移_ch.Checked = False 合約編號_n_cb.Text = "" : 合約編號1_n_tb.Text = "" : 合約編號2_n_tb.Text = "" : 合約編號3_n_tb.Text = "" 合約編號_n_cb.Enabled = True : 合約編號1_n_tb.Enabled = True : 合約編號2_n_tb.Enabled = True 新建_ch.ForeColor = Color.Red : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Black End Sub Private Sub 改版_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 改版_ch.Click 新建_ch.Checked = False : 改版_ch.Checked = True : 轉移_ch.Checked = False 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text 合約編號2_o_tb.Text = 合約編號2_tb.Text : 合約編號2_n_tb.Text = 合約編號2_tb.Text : 合約編號3_o_tb.Text = 合約編號3_tb.Text : 合約編號3_n_tb.Text = "" 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = True 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Red : 轉移_ch.ForeColor = Color.Black End Sub Private Sub 轉移_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 轉移_ch.Click 新建_ch.Checked = False : 改版_ch.Checked = False : 轉移_ch.Checked = True 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text 合約編號2_o_tb.Text = 合約編號2_tb.Text : 合約編號2_n_tb.Text = 合約編號2_tb.Text : 合約編號3_o_tb.Text = 合約編號3_tb.Text : 合約編號3_n_tb.Text = "" 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = True 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Red End Sub Private Sub 啟用批量出貨_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 啟用批量選擇_ch.Click For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 報價明細表_dgv.Rows(i).Cells("S").Value = False : 報價明細表_dgv.Rows(i).DefaultCellStyle.ForeColor = Color.Black Next End Sub Private Sub 查閱文件_bt_Click(sender As Object, e As EventArgs) Handles 查閱文件_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else If 簽回檔 = False Then If 系統語言 = "繁體中文" Then : MsgBox("該合約還沒有建立報價簽回文件!!") : Else : MsgBox("The contract has not created the quotation sign-back document!!") : End If : Else PA1 = 合約編號_tb.Text : PA2 = "報價" : 文件查閱視窗.ShowDialog() End If End If End Sub Private Sub 詳細資料1_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料1_ch.Click If 詳細資料1_ch.Checked = True Then : 詳細資料1_ch.Checked = True : Else : 詳細資料1_ch.Checked = False : End If : Set_BOM表明細() 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_合約報價明細表1() End Sub Private Sub 詳細資料2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料2_ch.Click If 詳細資料2_ch.Checked = True Then : 詳細資料2_ch.Checked = True : Else : 詳細資料2_ch.Checked = False : End If : Set_合約報價明細表() End Sub Private Sub 詳細資料3_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料3_ch.Click If 詳細資料3_ch.Checked = True Then : 詳細資料3_ch.Checked = True : Else : 詳細資料3_ch.Checked = False : End If : Set_試算明細表() End Sub Private Sub 縮放1_bt_Click(sender As Object, e As EventArgs) Handles 縮放1_bt.Click If 合約_dgv.Visible = True Then AA3 = 空間3.Size.Width : BB3 = 空間3.Size.Height : 合約_dgv.Visible = False If 不再動作1 = False Then : 空間3.Location = New System.Drawing.Point(AA1, BB2) : 空間3.Size = New System.Drawing.Point((AA2 - AA1) + AA3, BB3) : End If Else 合約_dgv.Visible = True : If 不再動作1 = False Then : 空間3.Location = New System.Drawing.Point(AA2, BB2) : 空間3.Size = New System.Drawing.Point(AA3, BB3) : End If End If End Sub Private Sub 縮放2_bt_Click(sender As Object, e As EventArgs) Handles 縮放2_bt.Click Dim NX, NY As Integer : NX = 合約_dgv.Size.Width : NY = 合約_dgv.Size.Height If 合約_dgv.Visible = False Then : 縮放1_bt.PerformClick() : End If If 放大 = True Then 合約_dgv.Size = New System.Drawing.Point(NX - 400, NY) : 放大 = False 合約_dgv.Columns("工程名稱_中").Visible = False : 合約_dgv.Columns("審核通過").Visible = False : 合約_dgv.Columns("停止").Visible = False Else 合約_dgv.Size = New System.Drawing.Point(NX + 400, NY) : 放大 = True 合約_dgv.Columns("工程名稱_中").Visible = True : 合約_dgv.Columns("審核通過").Visible = True : 合約_dgv.Columns("停止").Visible = True End If End Sub Private Sub 發送_bt_Click(sender As Object, e As EventArgs) Handles 發送_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else PA37 = 合約種類_cb.Text : PA36 = 合約種類_tb.Text : PA = 合約編號_tb.Text PA36 = 客戶名稱_tb.Text : PA35 = 負責人_A_cb.Text : PA34 = 工程地點_tb.Text : PA33 = 客戶地址_tb.Text : PA32 = 工程名稱_中_tb.Text : PA31 = 工程名稱_英_tb.Text PA30 = 選擇公司_cb.Text : PA29 = 負責人_B_cb.Text : PA28 = 我司地址_tb.Text : PA27 = NUD3.Value : PA26 = 工程款1_nud.Value : PA25 = 工程款2_nud.Value PA24 = 工程款3_nud.Value : PA23 = 工程款4_nud.Value : PA22 = 工程款5_nud.Value : PA21 = 工期_nud.Value : PA20 = 逾期_bt.Text : PA19 = 最高扣款_bt.Text PA18 = 逾期_英_bt.Text : PA17 = 最高扣款_英_bt.Text : PA16 = 減價_bt.Text : PA15 = 廠區_中文_tb.Text : PA14 = 頁數_bt.Text : PA12 = 合約種類_cb.Text PA13 = Strings.Format(立約日期_dtp.Value, "yyyy/MM/dd") : PA44 = 合約編號2_tb.Text : PA45 = 合約編號3_tb.Text : PA46 = 合約編號1_tb.Text : PA47 = 工程期_ch.Text BL1 = False : PA10 = 折讓比例_nud.Value : PA9 = 歸零位數_nud.Value : BL2 = 稅前歸零_ch.Checked : BL3 = 稅後歸零_ch.Checked If 美金_ch.Checked = True Then : PA11 = "美金" : ElseIf 台幣_ch.Checked = True Then : PA11 = "台幣" ElseIf 人民幣_ch.Checked = True Then : PA11 = "人民幣" : ElseIf 印尼盾_ch.Checked = True Then : PA11 = "印尼盾" : End If 匯率() : PA48 = 匯率1 : SQL_合約修改1() If 系統語言 = "繁體中文" Then : MsgBox("報價編輯完成,請通知主管放行!!") : Else MsgBox("The quotation editing is completed, please notify the supervisor to release!!") End If : 查詢_bt.PerformClick() End If End Sub Private Sub 物料圖_pb_Click(sender As Object, e As EventArgs) Handles 物料圖_pb.Click If IsNothing(物料圖_pb.Image) = False Then : 圖片傳遞 = 物料圖_pb.Image : 圖片放大視窗.ShowDialog() : End If End Sub Private Sub 物料圖1_pb_Click(sender As Object, e As EventArgs) Handles 物料圖1_pb.Click If IsNothing(物料圖1_pb.Image) = False Then : 圖片傳遞 = 物料圖1_pb.Image : 圖片放大視窗.ShowDialog() : End If End Sub Private Sub 小間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 小間距_ch.Click 小間距_ch.Checked = True : 中間距_ch.Checked = False : 中間距_ch.Checked = False : Set_清單1() End Sub Private Sub 中間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 中間距_ch.Click 小間距_ch.Checked = False : 中間距_ch.Checked = True : 中間距_ch.Checked = False : Set_清單1() End Sub Private Sub 大間距_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 大間距_ch.Click 小間距_ch.Checked = False : 中間距_ch.Checked = False : 中間距_ch.Checked = True : Set_清單1() 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 If 報價明細表_dgv.Columns(8).Visible = False Then : Set_報價明細表_dgv_利潤表關閉() : Else : Set_報價明細表_dgv_利潤表開啟() : 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 If 報價明細表_dgv.Columns(8).Visible = False Then : Set_報價明細表_dgv_利潤表關閉() : Else : Set_報價明細表_dgv_利潤表開啟() : 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 : Set_報價明細表_dgv_利潤表開啟() : Else : 利潤表_ch.Checked = False : Set_報價明細表_dgv_利潤表關閉() : End If Set_合約報價明細表格式() End Sub Private Sub 合約改版_bt_Click(sender As Object, e As EventArgs) Handles 合約改版_bt.Click If 合約編號_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先選擇合約,才能進行改版複製!!") : Else : MsgBox("Please select the contract first before you can copy the revised version!!") : End If Else Dim SS1, SS2, SS3, SS4, SS5 As String If 系統語言 = "繁體中文" Then SS1 = "合約報價單改版後將發生下列變化,確認下列問題!!" SS2 = "1、系統將依照舊版合約報價內容複製出新的合約報價。" SS3 = "舊版合約報價將停用關閉,不在後續功能中顯示。" SS4 = "3、請購、採購、入庫、出庫、工程等系統中與原編號" SS5 = " 相連的資料都將歸檔到新的合約編號中。" Else SS1 = "The following changes will occur after the revision of the contract quotation, please confirm the following problems!!" SS2 = "1. The system will copy the new contract quotation according to the content of the old contract quotation." SS3 = "The old version of contract quotes will be disabled and will not be displayed in subsequent functions." SS4 = "3. The data connected with the original number in the systems of requisition, procurement, storage, delivery, engineering and other systems will be archived in the new contract number." SS5 = "" End If Dim aa As MsgBoxResult = MsgBox(SS1 & vbCrLf & SS2 & vbCrLf & SS3 & vbCrLf & SS4 & vbCrLf & SS5, MsgBoxStyle.OkCancel) '對話框(3) If aa = MsgBoxResult.Ok Then If 視窗4_pl.Visible = False Then 新建_ch.Checked = False : 改版_ch.Checked = False : 轉移_ch.Checked = False 合約編號_n_cb.Text = "" : 合約編號1_n_tb.Text = "" : 合約編號2_n_tb.Text = "" : 合約編號3_n_tb.Text = "" 合約編號_n_cb.Enabled = False : 合約編號1_n_tb.Enabled = False : 合約編號2_n_tb.Enabled = False 合約編號_o_cb.Text = 合約編號_cb.Text : 合約編號_n_cb.Text = 合約編號_cb.Text : 合約編號1_o_tb.Text = 合約編號1_tb.Text : 合約編號1_n_tb.Text = 合約編號1_tb.Text 合約編號2_o_tb.Text = 合約編號2_tb.Text : 合約編號2_n_tb.Text = 合約編號2_tb.Text : 合約編號3_o_tb.Text = 合約編號3_tb.Text : 合約編號3_n_tb.Text = "" 新建_ch.ForeColor = Color.Black : 改版_ch.ForeColor = Color.Black : 轉移_ch.ForeColor = Color.Black 視窗4_pl.Location = New System.Drawing.Point(520, 200) : 視窗4_pl.Visible = True : 視窗4_pl.BringToFront() Else : 視窗4_pl.Visible = False : End If End If End If End Sub Private Sub 複製轉移_bt_Click(sender As Object, e As EventArgs) Handles 複製轉移_bt.Click If 新建_ch.Checked = False And 改版_ch.Checked = False And 轉移_ch.Checked = False Then If 系統語言 = "繁體中文" Then : MsgBox("請先選擇報價單複製的情況,才能往下運行!!") Else : MsgBox("Please select the case of copying the quotation first, and then you can run down!!") : End If 新建_ch.ForeColor = Color.Red : 改版_ch.ForeColor = Color.Red : 轉移_ch.ForeColor = Color.Red Else If 合約編號3_n_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先填寫新合約的序號,才能往下運行!!") Else : MsgBox("Please fill in the serial number of the new contract before you can proceed!!") : End If Else If 合約編號_n_cb.Text = "" Or 合約編號1_n_tb.Text = "" Or 合約編號2_n_tb.Text = "" Or 合約編號3_n_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("合約號不完整!!") : Else : MsgBox("Did not choose our company!!") : End If Else Dim 合約編號條件 As Boolean = True If 合約編號_n_cb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇我方公司!!") : Else : MsgBox("沒有選擇我方公司!!") : End If : 合約編號條件 = False : End If If 合約編號1_n_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有甲方公司英文縮寫!!") : Else : MsgBox("There is no English abbreviation of Party A company!!") : End If : 合約編號條件 = False Else Dim d As Int32 For index = 0 To 合約編號1_n_tb.Text.Length - 1 d = Asc(合約編號1_n_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 If 系統語言 = "繁體中文" Then : MsgBox("甲方公司簡稱需要英文或是數字,不可以是中文或其他符號!!") Else : MsgBox("Party A's company abbreviation needs to be in English or numbers, not Chinese or other symbols!!") : End If 合約編號條件 = False : Exit For : End If End If End If Next End If If 合約編號2_n_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有立約日期!!") : Else : MsgBox("There is no covenant date!!") : End If : 合約編號條件 = False End If Dim c As Int32 '然後查表, c變數若在48~57, 表示它是數字, For index = 0 To 合約編號2_n_tb.Text.Length - 1 c = Asc(合約編號2_n_tb.Text(index)) If c < 48 Or c > 57 Then If 系統語言 = "繁體中文" Then : MsgBox("立約日期只能是數字!!") : Else : MsgBox("Covenant date can only be a number!!") : End If 合約編號條件 = False : Exit For : Else If Len(合約編號2_n_tb.Text) <> 6 Then If 系統語言 = "繁體中文" Then MsgBox("立約日期的格式為YYMMDD (年兩位,月兩位,日兩位),數字規格不符!!") Else MsgBox("The format of the contract date is YYMMDD (two digits for the year, two digits for the month, and two digits for the day), and the numerical specifications do not match!!") End If 合約編號條件 = False : Exit For : End If End If Next If 合約編號3_n_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("沒有合約序號!!") : Else : MsgBox("No contract number!!") : End If : 合約編號條件 = False ElseIf IsNumeric(合約編號3_n_tb.Text) = False Then If 系統語言 = "繁體中文" Then : MsgBox("序號只能是數字!!") : Else : MsgBox("Serial numbers can only be numbers!!") : End If : 合約編號條件 = False End If If 合約編號條件 = False Then : Else If 轉移_ch.Checked = True Then '-----------這裡是以轉移為前提-------------------------------------------------------------------------------------------------------- PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約查詢() If dr.Read() Then If 系統語言 = "繁體中文" Then : MsgBox("系統內已有相同單號,無法直接進行合約號轉移!!") Else : MsgBox("The same order number already exists in the system, and the contract number cannot be transferred directly!!") : End If : Else PA17 = 合約編號_tb.Text : PA18 = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text PA19 = 合約編號1_n_tb.Text : PA20 = 合約編號2_n_tb.Text : PA21 = 合約編號3_n_tb.Text : PA22 = 合約編號_n_cb.Text SQL_合約編號修改() : 視窗4_pl.Visible = False If 系統語言 = "繁體中文" Then : MsgBox("合約複製與資料轉移完成!!") : Else : MsgBox("Contract copy and data transfer completed!!") : End If Set_合約清單() End If Else '-----------這裡是以新建為前提-------------------------------------------------------------------------------------------------------- PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約查詢() If dr.Read() Then If 系統語言 = "繁體中文" Then : MsgBox("系統內已有相同單號,無法用這個號碼生成新的合約!!") Else : MsgBox("The same order number already exists in the system, and this number cannot be used to generate a new contract!!") : End If Else 資料數 = 報價總表_dgv.Rows.Count + 報價係數_dgv.Rows.Count + (報價明細表_dgv.Rows.Count * 2) + 報價總表_dgv.Rows.Count 進度條視窗.Show() PA1 = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text PA = 合約編號_tb.Text : PA2 = 合約編號_n_cb.Text : PA3 = 合約編號1_n_tb.Text : PA4 = 合約編號2_n_tb.Text : PA5 = 合約編號3_n_tb.Text If 改版_ch.Checked = True Then BL1 = True : SQL_合約停用() '-----原合約停用------------- SQL_請購單改合約號() '-----請採購合約號變更------- '暫無倉儲SQL掛合約號 '-----倉儲合約號變更--------- SQL_工程系統改合約號() '-----工程合約號變更--------- For i As Integer = 0 To 圖庫清單_dgv.Rows.Count - 1 圖片庫 = 圖庫清單_dgv.Rows(i).Cells("資料庫").Value.ToString : SQL_圖庫系統改合約號() '-----圖庫合約號變更--------- Next ElseIf 新建_ch.Checked = True Then 'BL1 = True : SQL_合約停用() End If Dim 數量, 位置(20), 總表位置(20) As Integer : Dim 新編號, 舊編號, 連動(20) As String : 數量 = 0 新編號 = PA1 : 舊編號 = PA PA = 新編號 : 選擇項1_tb.Text = "" : 複製報價 = True '-----取出舊總表連動位置-------------------------------------------------------------------- For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString() <> "" Then 總表位置(數量) = i For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("明細連動").Value.ToString() = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString() Then 位置(數量) = ii : Exit For End If Next : 數量 += 1 End If Next '-----生成新的報價係數---------------------------------------------------------------------- For i As Integer = 0 To 報價係數_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() PA2 = 報價係數_dgv("項目", i).Value.ToString : PA3 = 報價係數_dgv("係數", i).Value.ToString : PA4 = 報價係數_dgv("單位", i).Value.ToString SQL_合約報價係數資料不重複() : If dr.Read Then : Else : 係數流水號() : SQL_合約報價係數_新增() : End If Next : Set_合約報價係數() : 合約_lb.Text = "合約" '-----生成新的合約明細---------------------------------------------------------------------- For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() PA2 = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString() : PA3 = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString() PA4 = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString() : PA5 = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString() PA6 = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : PA7 = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString() PA8 = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString() PA10 = 報價明細表_dgv.Rows(i).Cells("實際數量").Value.ToString() : PA11 = 報價明細表_dgv.Rows(i).Cells("工資成本單價").Value.ToString() PA12 = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString() : PA13 = 報價明細表_dgv.Rows(i).Cells("材料成本單價").Value.ToString() PA14 = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString() : PA15 = 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString() PA16 = 報價明細表_dgv.Rows(i).Cells("材料係數").Value.ToString() : BL = 報價明細表_dgv.Rows(i).Cells("不計").Value BL1 = 報價明細表_dgv.Rows(i).Cells("D1").Value : BL2 = 報價明細表_dgv.Rows(i).Cells("D2").Value : BL3 = 報價明細表_dgv.Rows(i).Cells("D3").Value BL4 = 報價明細表_dgv.Rows(i).Cells("D4").Value : BL5 = 報價明細表_dgv.Rows(i).Cells("D5").Value : BL6 = 報價明細表_dgv.Rows(i).Cells("D6").Value BL7 = 報價明細表_dgv.Rows(i).Cells("D7").Value : BL8 = 報價明細表_dgv.Rows(i).Cells("D8").Value : BL9 = 報價明細表_dgv.Rows(i).Cells("預設").Value 明細表新增資料() Next : 合約編號_tb.Text = 新編號 : Set_合約報價明細表() '-----算出新明細連動編號-------------------------------------------------------------------- For i As Integer = 0 To 數量 For ii As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If ii = 位置(i) Then 連動(i) = 報價明細表_dgv.Rows(ii).Cells("流水號").Value.ToString() : Exit For End If Next Next '-----生成新的合約總表---------------------------------------------------------------------- For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 MyModule1.計算顯示2() : MyModule1.進度條1() : PA = 合約編號_tb.Text PA2 = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() : PA3 = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString() PA4 = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString() : PA5 = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString() PA6 = 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : PA7 = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString() PA8 = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString() For ii As Integer = 0 To 數量 If 總表位置(ii) = i Then 報價總表_dgv.Rows(i).Cells("明細連動").Value = 連動(ii) : PA10 = 連動(ii) : Exit For Else PA10 = "" End If Next 合約報價總表_最後一筆資料() SQL_合約報價總表_最後一筆排序() If dr.Read() Then : PA1 = dr("排序") : Else : PA1 = "000" : End If : conn.Close() : NUM1 = Double.Parse(PA1) + 1 If NUM1 < 10 Then : PA1 = "00" & NUM1 : ElseIf NUM1 > 9 And NUM1 < 100 Then : PA1 = "0" & NUM1 : ElseIf NUM1 > 99 Then : PA1 = NUM1 : End If SQL_合約報價總表_新增資料() Next : Set_合約報價總表() : 報價總表_dgv_自動計算() '-----生成新的合約控制---------------------------------------------------------------------- 合約_dgv.Enabled = False : 合約編號2_tb.Enabled = True : 合約編號3_tb.Enabled = True If 新建_ch.Checked = True Then : 預設資料1() : End If 合約編號_cb.Text = 合約編號_n_cb.Text : 合約編號1_tb.Text = 合約編號1_n_tb.Text : 合約編號2_tb.Text = 合約編號2_n_tb.Text : 合約編號3_tb.Text = 合約編號3_n_tb.Text 存檔_tb.PerformClick() : 複製報價 = False If 改版_ch.Checked = True Then PA = 合約編號_o_cb.Text & "-" & 合約編號1_o_tb.Text & " " & 合約編號2_o_tb.Text & "-" & 合約編號3_o_tb.Text SQL_合約控制表讀取() If dr.Read Then PA1 = dr("報價說明").ToString : PA11 = dr("驗收開始日期").ToString : PA12 = dr("驗收完成日期").ToString PA14 = dr("驗收備註").ToString : PA16 = dr("保固地址").ToString : PA18 = dr("結案備註").ToString PA19 = dr("工程主管").ToString : PA20 = dr("工地驗收備註").ToString : PA32 = dr("簽回檔圖庫").ToString If dr("追加減").ToString = "" Then : PA2 = "0" : Else : PA2 = dr("追加減").ToString : End If If dr("結算金額").ToString = "" Then : PA3 = "0" : Else : PA3 = dr("結算金額").ToString : End If If dr("已請款").ToString = "" Then : PA4 = "0" : Else : PA4 = dr("已請款").ToString : End If If dr("剩餘款").ToString = "" Then : PA5 = "0" : Else : PA5 = dr("剩餘款").ToString : End If If dr("預付款").ToString = "" Then : PA6 = "0" : Else : PA6 = dr("預付款").ToString : End If If dr("到貨款").ToString = "" Then : PA7 = "0" : Else : PA7 = dr("到貨款").ToString : End If If dr("施工款").ToString = "" Then : PA8 = "0" : Else : PA8 = dr("施工款").ToString : End If If dr("驗收款").ToString = "" Then : PA9 = "0" : Else : PA9 = dr("驗收款").ToString : End If If dr("保留款").ToString = "" Then : PA10 = "0" : Else : PA10 = dr("保留款").ToString : End If If dr("保固期限").ToString = "" Then : PA15 = "0" : Else : PA15 = dr("保固期限").ToString : End If If dr("預估工資成本").ToString = "" Then : PA21 = "0" : Else : PA21 = dr("預估工資成本").ToString : End If If dr("預估工資報價").ToString = "" Then : PA22 = "0" : Else : PA22 = dr("預估工資報價").ToString : End If If dr("工資利潤比").ToString = "" Then : PA23 = "0" : Else : PA23 = dr("工資利潤比").ToString : End If If dr("預估材料成本").ToString = "" Then : PA24 = "0" : Else : PA24 = dr("預估材料成本").ToString : End If If dr("預估材料報價").ToString = "" Then : PA25 = "0" : Else : PA25 = dr("預估材料報價").ToString : End If If dr("材料利潤比").ToString = "" Then : PA26 = "0" : Else : PA26 = dr("材料利潤比").ToString : End If If dr("總成本").ToString = "" Then : PA27 = "0" : Else : PA27 = dr("總成本").ToString : End If If dr("總報價").ToString = "" Then : PA28 = "0" : Else : PA28 = dr("總報價").ToString : End If If dr("利潤比1").ToString = "" Then : PA29 = "0" : Else : PA29 = dr("利潤比1").ToString : End If If dr("利潤比2").ToString = "" Then : PA30 = "0" : Else : PA30 = dr("利潤比2").ToString : End If If dr("預估利潤").ToString = "" Then : PA31 = "0" : Else : PA31 = dr("預估利潤").ToString : End If If IsDBNull(dr("驗收結果")) = True Then : PA13 = "False" : Else : PA13 = dr("驗收結果") : End If If IsDBNull(dr("合約停止")) = True Then : PA17 = "False" : Else : PA17 = dr("合約停止") : End If If IsDBNull(dr("報價簽回")) = True Then : PA33 = "False" : Else : PA33 = dr("報價簽回") : End If If IsDBNull(dr("合約簽回")) = True Then : PA34 = "False" : Else : PA34 = dr("合約簽回") : End If If IsDBNull(dr("請款簽回")) = True Then : PA35 = "False" : Else : PA35 = dr("請款簽回") : End If If IsDBNull(dr("驗收簽回")) = True Then : PA36 = "False" : Else : PA36 = dr("驗收簽回") : End If If IsDBNull(dr("保固簽回")) = True Then : PA37 = "False" : Else : PA37 = dr("保固簽回") : End If If IsDBNull(dr("報價放行")) = True Then : PA38 = "False" : Else : PA38 = dr("報價放行") : End If If IsDBNull(dr("其他文件")) = True Then : PA39 = "False" : Else : PA39 = dr("其他文件") : End If End If PA = 合約編號_n_cb.Text & "-" & 合約編號1_n_tb.Text & " " & 合約編號2_n_tb.Text & "-" & 合約編號3_n_tb.Text : SQL_合約控制表_改版修正() End If PA = "" : 視窗4_pl.Visible = False : MyModule1.計算顯示3() If 系統語言 = "繁體中文" Then : MsgBox("合約複製與資料轉移完成!!") : Else : MsgBox("Duplikasi kontrak dan transfer data selesai!!") : End If Set_合約清單() End If End If End If End If End If End If End Sub Private Sub 合約編號2_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號2_cb.SelectedIndexChanged Set_合約清單1() End Sub Private Sub 查詢1_bt_Click(sender As Object, e As EventArgs) Handles 查詢1_bt.Click If 系統語言 = "繁體中文" Then : MsgBox("功能製作中!!") : Else : MsgBox("Feature in progress!!") : End If End Sub Private Sub 全部選擇_bt_Click(sender As Object, e As EventArgs) Handles 全部選擇_bt.Click For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1 : 報價明細表2_dgv.Rows(i).Cells("選擇").Value = True : 報價明細表2_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen : Next i End Sub Private Sub 全部取消_bt_Click(sender As Object, e As EventArgs) Handles 全部取消_bt.Click For i As Integer = 0 To 報價明細表2_dgv.Rows.Count - 1 : 報價明細表2_dgv.Rows(i).Cells("選擇").Value = False : 報價明細表2_dgv.Rows(i).DefaultCellStyle.BackColor = Color.White : Next i End Sub '----------------------自創視窗滑鼠拖曳功能--------------------------------------------------------------------------------------------------------- Dim OldX, OldY As Long : Dim drag As Boolean Private Sub 編輯係數_bt_Click(sender As Object, e As EventArgs) Handles 編輯係數_bt.Click OY2 = 報價明細表_dgv.Size.Height If 視窗1_pl.Visible = False Then : 視窗1_pl.Location = New System.Drawing.Point(425, 245) : 視窗1_pl.Visible = True : 視窗1_pl.BringToFront() : Else : 視窗1_pl.Visible = False : End If If OX1 = 報價係數_dgv.Size.Width And OY1 = 報價係數_dgv.Size.Height Then 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1 + OY2) : Else : 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1) : End If End Sub Private Sub Cancel_bt_Click(sender As Object, e As EventArgs) Handles Cancel1_bt.Click OY2 = 報價明細表_dgv.Size.Height If 視窗1_pl.Visible = False Then : 視窗1_pl.Visible = True : 視窗1_pl.BringToFront() : Else : 視窗1_pl.Visible = False : End If If OX1 = 報價係數_dgv.Size.Width And OY1 = 報價係數_dgv.Size.Height Then 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1 + OY2) : Else : 報價係數_dgv.Size = New System.Drawing.Point(OX1, OY1) : 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 CanceL3_bt_Click(sender As Object, e As EventArgs) Handles CanceL3_bt.Click If 視窗3_pl.Visible = False Then : 視窗3_pl.Visible = True : 視窗3_pl.BringToFront() : Else 視窗3_pl.Visible = False : End If End Sub Private Sub CanceL4_bt_Click(sender As Object, e As EventArgs) Handles CanceL4_bt.Click If 視窗4_pl.Visible = False Then : 視窗4_pl.Visible = True : 視窗4_pl.BringToFront() : Else 視窗4_pl.Visible = False : End If End Sub Private Sub 視窗1_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseDown If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If End Sub Private Sub 視窗1_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseMove If drag Then : 視窗1_pl.Left = 視窗1_pl.Left + e.X - OldX : 視窗1_pl.Top = 視窗1_pl.Top + e.Y - OldY : End If End Sub Private Sub 視窗1_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗1_pl.MouseUp drag = False End Sub 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 Private Sub 視窗3_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseDown If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If End Sub Private Sub 視窗3_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseMove If drag Then : 視窗3_pl.Left = 視窗3_pl.Left + e.X - OldX : 視窗3_pl.Top = 視窗3_pl.Top + e.Y - OldY : End If End Sub Private Sub 視窗3_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗3_pl.MouseUp drag = False End Sub Private Sub 視窗4_pl_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseDown If e.Button = MouseButtons.Left Then : OldX = e.X : OldY = e.Y : drag = True : End If End Sub Private Sub 視窗4_pl_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseMove If drag Then : 視窗4_pl.Left = 視窗4_pl.Left + e.X - OldX : 視窗4_pl.Top = 視窗4_pl.Top + e.Y - OldY : End If End Sub Private Sub 視窗4_pl_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 視窗4_pl.MouseUp drag = False End Sub '----------------------列印成excel--------------------------------------------------------------------------------------------------------- Private Sub 列印成EXCEL_bt_Click(sender As Object, e As EventArgs) Handles 列印成EXCEL_bt.Click If 合約編號_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("No option contract!!") : End If : Else XN1 = 0 xlApp = CType(CreateObject("Excel.Application"), Application) xlApp.Visible = True xlApp.DisplayAlerts = True xlApp.Application.WindowState = xlMaximized xlBook = xlApp.Workbooks.Add '---------------------------------------------------------------------------------------------------------------------- xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select : xlApp.Sheets(1).Name = "明細表" xlBook.Activate() : xlSheet.Activate() xlSheet.Cells(2, 1) = "QUOTATION" : xlSheet.Cells(3, 7) = "NO : " & 合約編號_tb.Text xlSheet.Cells(3, 1) = "業主名稱 : " & 客戶名稱_tb.Text : xlSheet.Cells(4, 7) = "Date : " & Strings.Format(Today(), "yyyy/MM/dd") xlSheet.Cells(4, 1) = "工程項目 : " & 工程名稱_中_tb.Text & vbCrLf & 工程名稱_英_tb.Text xlSheet.Cells(5, 1) = "ITEM" : xlSheet.Cells(5, 2) = "DESCRIPTION" : xlSheet.Cells(5, 3) = "UNIT" xlSheet.Cells(5, 4) = "Q'TY" : xlSheet.Cells(5, 9) = "REMARKS" If 工材分離_ch.Checked = False Then : xlSheet.Cells(5, 5) = "UNIT PRICE" & vbCrLf & "" & 幣別 : xlSheet.Cells(5, 7) = "AMOUNT" & vbCrLf & "" & 幣別 : Else xlSheet.Cells(5, 5) = "工資報價單價" & vbCrLf & "Hrga satuan penawaran gaji" : xlSheet.Cells(5, 6) = "工資報價復價" & vbCrLf & "Total harga upah" xlSheet.Cells(5, 7) = "材料報價單價" & vbCrLf & "Harga satuan kutipan material" : xlSheet.Cells(5, 8) = "材料報價複價" & vbCrLf & "Harga total kuotasi material" End If For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "*" Then : Else xlSheet.Cells(6 + i, 1) = 報價明細表_dgv.Rows(i).Cells("ITEM").Value.ToString() End If xlSheet.Cells(6 + i, 2) = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString() xlSheet.Cells(6 + i, 3) = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString() If CInt(報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 4) = "" : Else xlSheet.Cells(6 + i, 4) = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString() : End If xlSheet.Cells(6 + i, 9) = 報價明細表_dgv.Rows(i).Cells("REMARKS").Value.ToString() If 工材分離_ch.Checked = False Then If CInt(報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 5) = "" : Else xlSheet.Cells(6 + i, 5) = 報價明細表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : End If If CInt(報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 7) = "" : Else xlSheet.Cells(6 + i, 7) = 報價明細表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString() : End If Else If CInt(報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 5) = "" : Else xlSheet.Cells(6 + i, 5) = 報價明細表_dgv.Rows(i).Cells("工資報價單價").Value.ToString() : End If If CInt(報價明細表_dgv.Rows(i).Cells("工資報價後價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 6) = "" : Else xlSheet.Cells(6 + i, 6) = 報價明細表_dgv.Rows(i).Cells("工資報價後價").Value.ToString() : End If If CInt(報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 7) = "" : Else xlSheet.Cells(6 + i, 7) = 報價明細表_dgv.Rows(i).Cells("材料報價單價").Value.ToString() : End If If CInt(報價明細表_dgv.Rows(i).Cells("材料報價後價").Value.ToString()) = 0 Then : xlSheet.Cells(6 + i, 8) = "" : Else xlSheet.Cells(6 + i, 8) = 報價明細表_dgv.Rows(i).Cells("材料報價後價").Value.ToString() : End If End If XN2 = 6 + i Next AA(xlApp, xlSheet) If 合約編號_cb.Text = "HX" Then : CC(xlApp, xlSheet) : Else : DD(xlApp, xlSheet) : End If : FF(xlApp, xlSheet) '---------------------------------------------------------------------------------------------------------------------- xlSheet = NewMethod(xlBook) : xlApp.Sheets(1).Select : xlApp.Sheets(1).Name = "報價單" xlBook.Activate() : xlSheet.Activate() xlSheet.Cells(2, 1) = "QUOTATION" : xlSheet.Cells(4, 6) = "NO : " & 合約編號_tb.Text xlSheet.Cells(4, 1) = "業主名稱 : " & 客戶名稱_tb.Text : xlSheet.Cells(5, 6) = "Date : " & Strings.Format(Today(), "yyyy/MM/dd") xlSheet.Cells(5, 1) = "工程項目 : " & 工程名稱_中_tb.Text & vbCrLf & 工程名稱_英_tb.Text xlSheet.Cells(6, 1) = "ITEM" : xlSheet.Cells(6, 2) = "DESCRIPTION" : xlSheet.Cells(6, 3) = "UNIT" : xlSheet.Cells(6, 5) = "UNIT PRICE" & vbCrLf & "" & 幣別 xlSheet.Cells(6, 6) = "AMOUNT" & vbCrLf & "" & 幣別 : xlSheet.Cells(6, 4) = "Q'TY" : xlSheet.Cells(6, 7) = "REMARKS" For i As Integer = 0 To 報價總表_dgv.Rows.Count - 1 If 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "*" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "@" Or 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() = "^" Then : Else xlSheet.Cells(7 + i, 1) = 報價總表_dgv.Rows(i).Cells("ITEM").Value.ToString() End If xlSheet.Cells(7 + i, 2) = 報價總表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString() xlSheet.Cells(7 + i, 3) = 報價總表_dgv.Rows(i).Cells("UNIT").Value.ToString() If CInt(報價總表_dgv.Rows(i).Cells("QTY").Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 4) = "" : Else xlSheet.Cells(7 + i, 4) = 報價總表_dgv.Rows(i).Cells("QTY").Value.ToString() : End If If CInt(報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 5) = "" : Else xlSheet.Cells(7 + i, 5) = 報價總表_dgv.Rows(i).Cells("UNIT PRICE" & 幣別).Value.ToString() : End If If CInt(報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString()) = 0 Then : xlSheet.Cells(7 + i, 6) = "" : Else xlSheet.Cells(7 + i, 6) = 報價總表_dgv.Rows(i).Cells("AMOUNT" & 幣別).Value.ToString() : End If xlSheet.Cells(7 + i, 7) = 報價總表_dgv.Rows(i).Cells("REMARKS").Value.ToString() XN1 = 8 + i Next xlSheet.Cells(XN1 + 1, 1) = "報價說明Offer descriptions:" : xlSheet.Cells(XN1 + 2, 1) = 報價說明_tb.Text xlSheet.Cells(XN1 + 3, 1) = "客戶確認 (簽名,蓋章)" : xlSheet.Cells(XN1 + 3, 3) = "核准" : xlSheet.Cells(XN1 + 3, 7) = "經辦人" xlSheet.Cells(XN1 + 4, 1) = "Customer confirmation ( signature ) : " : xlSheet.Cells(XN1 + 4, 3) = "Approved : " : xlSheet.Cells(XN1 + 4, 7) = "報價說明Offer descriptions:" xlSheet.Cells(XN1 + 5, 7) = gUserName xlSheet.Cells(XN1 + 6, 1) = "_________________________________" : xlSheet.Cells(XN1 + 6, 3) = "_________________________________" xlSheet.Cells(XN1 + 6, 7) = "_________________________________" BB(xlApp, xlSheet) If 合約編號_cb.Text = "HX" Then : CC(xlApp, xlSheet) : Else : DD(xlApp, xlSheet) : End If : FF(xlApp, xlSheet) '---------------------------------------------------------------------------------------------------------------------- xlApp.Sheets(3).Delete xlSheet.PageSetup.PrintArea = "" xlApp.Cells.Select() xlApp.Application.WindowState = xlMinimized If 系統語言 = "繁體中文" Then : MsgBox("列印完成!!") : Else : MsgBox("Printing is complete!!") : End If End If End Sub Private Shared Function NewMethod(xlBook As Workbook) As Worksheet Return CType(xlBook.Worksheets.Add, Worksheet) End Function Private Sub AA(ByVal myExcel As Application, ByVal xlSheet As Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With xlSheet.Range("A2:I2").Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 95 xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30 : xlSheet.Rows("3:3").Select : myExcel.Selection.RowHeight = 20 xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 35 : xlSheet.Rows("5:5").Select : myExcel.Selection.RowHeight = 65 xlSheet.Rows("6:" & XN2).Select : myExcel.Selection.RowHeight = 35 If 工材分離_ch.Checked = True Then xlSheet.Range("E5:H6").Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 8 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With End If xlSheet.Range("A5:I5").Select() With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorAccent1 : .TintAndShade = 0.799981688894314 .PatternTintAndShade = 0 : End With xlSheet.Range("A4").Select() With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 6 With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Columns("C:D").Select : myExcel.Selection.ColumnWidth = 6 : xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 40 xlSheet.Columns("I:I").Select : myExcel.Selection.ColumnWidth = 18.5 If 工材分離_ch.Checked = False Then xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 9 : xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 9 xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 50 Else xlSheet.Columns("G:H").Select : myExcel.Selection.ColumnWidth = 13 : xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 13 xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 50 End If xlSheet.Range("A2:I2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("A3:F3").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("A4:F4").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("G3:I3").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("G4:I4").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With If 工材分離_ch.Checked = False Then xlSheet.Range("E5:F5").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("G5:H5").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge End If xlSheet.Range("C5:H5").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : End With For i As Integer = 6 To XN2 xlSheet.Range("E" & i & ":F" & i).Select() If 工材分離_ch.Checked = False Then With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge : End If xlSheet.Range("G" & i & ":H" & i).Select() If 工材分離_ch.Checked = False Then With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge : End If Next xlSheet.Range("E6:H" & XN2).Select() With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : End With myExcel.Selection.NumberFormatLocal = "#,##0_ " xlSheet.Range("C6:D" & XN2).Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Range("I6:I" & XN2).Select() With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Range("B6:B" & XN2).Select() With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Range("A5:I5").Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone xlSheet.Range("A6:I" & XN2).Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Range("J17").Select() : myExcel.ActiveWindow.DisplayGridlines = False xlSheet.Range("A4:F4").Select() With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("A5:I5").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .Orientation = 0 .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : End With xlSheet.Range("A6:I" & XN2).Select() With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False .ReadingOrder = xlContext : End With End Sub Private Sub BB(ByVal myExcel As Application, ByVal xlSheet As Worksheet) xlSheet.Cells.Select() With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 10 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With xlSheet.Rows("2:2").Select With myExcel.Selection.Font : .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False : .Shadow = False .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone : End With xlSheet.Rows("1:1").Select : myExcel.Selection.RowHeight = 95 : xlSheet.Rows("2:2").Select : myExcel.Selection.RowHeight = 30 xlSheet.Rows("4:4").Select : myExcel.Selection.RowHeight = 20 : xlSheet.Rows("5:5").Select : myExcel.Selection.RowHeight = 35 xlSheet.Rows("6:6").Select : myExcel.Selection.RowHeight = 40 : xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 6 xlSheet.Rows("7:" & XN1).Select : myExcel.Selection.RowHeight = 35 xlSheet.Columns("B:B").Select : myExcel.Selection.ColumnWidth = 60 : xlSheet.Columns("C:C").Select : myExcel.Selection.ColumnWidth = 6 xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 6 : xlSheet.Columns("E:E").Select : myExcel.Selection.ColumnWidth = 18 xlSheet.Columns("F:F").Select : myExcel.Selection.ColumnWidth = 18 : xlSheet.Columns("G:G").Select : myExcel.Selection.ColumnWidth = 18.5 xlSheet.Range("A2:G2").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge xlSheet.Range("A4:E4").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("A5:E5").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("F4:G4").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("F5:G5").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("A6:A" & XN1 - 1).Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Range("C6:D" & XN1 - 1).Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Range("E6:F6").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Range("A6:G6").Select() With myExcel.Selection.Interior : .Pattern = xlSolid : .PatternColorIndex = xlAutomatic : .ThemeColor = xlThemeColorLight2 .TintAndShade = 0.799981688894314 : .PatternTintAndShade = 0 : End With myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone xlSheet.Range("A7:G" & XN1 - 1).Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideVertical) : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlMedium : End With With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With xlSheet.Range("A" & XN1 + 1 & ":G" & XN1 + 1).Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("A" & XN1 + 2 & ":G" & XN1 + 2).Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With : myExcel.Selection.Merge With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("A" & XN1 + 1 & ":G" & XN1 + 2).Select() myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With myExcel.Selection.Borders(xlInsideVertical).LineStyle = xlNone : myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone xlSheet.Rows(XN1 + 2 & ":" & XN1 + 2).Select : myExcel.Selection.RowHeight = 100 xlSheet.Rows(XN1 + 3 & ":" & XN1 + 3).Select : myExcel.Selection.RowHeight = 30 With myExcel.Selection : .HorizontalAlignment = xlGeneral : .VerticalAlignment = xlBottom : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Rows(XN1 + 5 & ":" & XN1 + 5).Select : myExcel.Selection.RowHeight = 80 xlSheet.Range("H17").Select() : myExcel.ActiveWindow.DisplayGridlines = False xlSheet.Range("E7:F" & XN1 - 1).Select() : myExcel.Selection.NumberFormatLocal = "#,##0_ " xlSheet.Range("A5:E5").Select() With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With xlSheet.Range("A6:G6").Select() With myExcel.Selection : .HorizontalAlignment = xlCenter : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Range("A7:G" & XN1 - 1).Select() With myExcel.Selection : .VerticalAlignment = xlCenter : .WrapText = True : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0 : .ShrinkToFit = False .ReadingOrder = xlContext : .MergeCells = False : End With xlSheet.Range("A" & XN1 + 2 & ":G" & XN1 + 2).Select() With myExcel.Selection : .HorizontalAlignment = xlLeft : .VerticalAlignment = xlTop : .WrapText = True : .Orientation = 0 : .AddIndent = False .IndentLevel = 0 : .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = True : End With End Sub Private Sub CC(ByVal myExcel As Application, ByVal xlSheet As Worksheet) Clipboard.SetDataObject(PictureBox1.Image) xlSheet.Range("A1").Select() myExcel.ActiveSheet.Pictures.Paste.Select myExcel.Selection.ShapeRange.Height = 93 myExcel.Selection.ShapeRange.IncrementLeft(0) myExcel.Selection.ShapeRange.IncrementTop(0) End Sub Private Sub DD(ByVal myExcel As Application, ByVal xlSheet As Worksheet) Clipboard.SetDataObject(PictureBox2.Image) xlSheet.Range("A1").Select() myExcel.ActiveSheet.Pictures.Paste.Select myExcel.Selection.ShapeRange.Height = 93 myExcel.Selection.ShapeRange.IncrementLeft(0) myExcel.Selection.ShapeRange.IncrementTop(0) End Sub Private Sub FF(ByVal myExcel As Application, ByVal xlSheet As Worksheet) myExcel.Application.PrintCommunication = False : With myExcel.ActiveSheet.PageSetup : .PrintTitleRows = "$1:$5" : .PrintTitleColumns = "" : End With myExcel.Application.PrintCommunication = True : myExcel.ActiveSheet.PageSetup.PrintArea = "" : myExcel.Application.PrintCommunication = False With myExcel.ActiveSheet.PageSetup : .LeftHeader = "" : .CenterHeader = "" : .RightHeader = "" : .LeftFooter = "" : .CenterFooter = "第 &P 頁,共 &N 頁" : .RightFooter = "" .LeftMargin = myExcel.Application.InchesToPoints(0.236220472440945) : .RightMargin = myExcel.Application.InchesToPoints(0.236220472440945) .TopMargin = myExcel.Application.InchesToPoints(0.748031496062992) : .BottomMargin = myExcel.Application.InchesToPoints(0.748031496062992) .HeaderMargin = myExcel.Application.InchesToPoints(0.31496062992126) : .FooterMargin = myExcel.Application.InchesToPoints(0.31496062992126) .PrintHeadings = False : .PrintGridlines = False : .CenterHorizontally = True : .CenterVertically = False : .Draft = False .FirstPageNumber = xlAutomatic : .BlackAndWhite = False : .Zoom = False : .FitToPagesWide = 1 : .FitToPagesTall = False : .OddAndEvenPagesHeaderFooter = False .DifferentFirstPageHeaderFooter = False : .ScaleWithDocHeaderFooter = True : .AlignMarginsHeaderFooter = True .EvenPage.LeftHeader.Text = "" : .EvenPage.CenterHeader.Text = "" : .EvenPage.RightHeader.Text = "" : .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" : .EvenPage.RightFooter.Text = "" : .FirstPage.LeftHeader.Text = "" : .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" : .FirstPage.LeftFooter.Text = "" : .FirstPage.CenterFooter.Text = "" : .FirstPage.RightFooter.Text = "" End With : myExcel.Application.PrintCommunication = True End Sub End Class