Imports System.IO Public Class 工程項目BOM表 Dim ds4 As New DataSet Dim KKK2, 物料規格, ESTR, 目前選擇, 條件選擇 As String Dim 啟動運算, 已超出, 放大, 不再動作1 As Boolean Dim EDR, 頁數, DGVX, NUM1 As Integer 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 SQL_合約清單_報價用() da.Fill(ds6) : 合約_dgv.DataSource = ds6.Tables(0) : conn.Close() 合約_dgv.Columns(0).FillWeight = 100 : 合約_dgv.Columns("工程名稱_中").FillWeight = 250 : 合約_dgv.Columns("幣別").Visible = False 合約_dgv.Columns("折讓比例").Visible = False : 合約_dgv.Columns("稅前歸零").Visible = False : 合約_dgv.Columns("稅後歸零").Visible = False 合約_dgv.Columns("歸零位數").Visible = False For i As Integer = 1 To 33 : 合約_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 : Next If 放大 = True Then 合約_dgv.Columns("工程名稱_中").Visible = True Else 合約_dgv.Columns("工程名稱_中").Visible = False End If End Sub Private Sub Set_合約報價明細表() Dim ds14 As New DataSet 報價明細表_dgv.DataSource = Nothing : ds14.Clear() : 報價明細表_dgv.Columns.Clear() 報價明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 報價明細表_dgv.ColumnHeadersHeight = 40 : 報價明細表_dgv.AllowUserToAddRows = False : 報價明細表_dgv.RowTemplate.Height = 45 報價明細表_dgv.RowsDefaultCellStyle.WrapMode = DataGridViewTriState.True PA = 合約編號_tb.Text : SQL_合約報價明細表() da.Fill(ds14) : 報價明細表_dgv.DataSource = ds14.Tables(0) : conn.Close() 報價明細表_dgv.Columns(0).FillWeight = 50 : 報價明細表_dgv.Columns(1).FillWeight = 50 : 報價明細表_dgv.Columns(2).FillWeight = 250 報價明細表_dgv.Columns(3).FillWeight = 50 : 報價明細表_dgv.Columns(4).FillWeight = 50 : 報價明細表_dgv.Columns(5).FillWeight = 80 報價明細表_dgv.Columns(6).FillWeight = 80 : 報價明細表_dgv.Columns(7).FillWeight = 100 : 報價明細表_dgv.Columns(8).FillWeight = 50 報價明細表_dgv.Columns(34).FillWeight = 80 : 報價明細表_dgv.Columns(33).FillWeight = 40 : 報價明細表_dgv.Columns("S").Visible = False 報價明細表_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 For I As Integer = 0 To 58 : 報價明細表_dgv.Columns(I).Visible = False : Next 報價明細表_dgv.Columns("QTY").DefaultCellStyle.Format = "#,##0" 報價明細表_dgv.Columns("UNIT").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 報價明細表_dgv.Columns("QTY").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter 報價明細表_dgv.Columns("ITEM").Visible = True : 報價明細表_dgv.Columns("DESCRIPTION").Visible = True : 報價明細表_dgv.Columns("UNIT").Visible = True 報價明細表_dgv.Columns("QTY").Visible = True : 報價明細表_dgv.Columns("料號").Visible = True 報價明細表_dgv.Columns("ITEM").ReadOnly = True : 報價明細表_dgv.Columns("DESCRIPTION").ReadOnly = True : 報價明細表_dgv.Columns("UNIT").ReadOnly = True 報價明細表_dgv.Columns("QTY").ReadOnly = True : 報價明細表_dgv.Columns("料號").ReadOnly = True 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("UNIT") : End If Set_報價係數_dgv_勾選項() 報價明細表_dgv.Columns("選擇").FillWeight = 50 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 Set_報價係數_dgv_勾選項() Dim Col As New DataGridViewCheckBoxColumn With { .FillWeight = 50, .DataPropertyName = "選擇" } Col.HeaderText = "選擇" : Col.Name = "選擇" 報價明細表_dgv.Columns.Insert(0, Col) 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).Visible = False : BOM表控制_dgv.Columns(1).FillWeight = 100 BOM表控制_dgv.Columns(0).ReadOnly = True : BOM表控制_dgv.Columns(1).ReadOnly = True 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 = 200 : BOM表明細_dgv.Columns(3).FillWeight = 30 : BOM表明細_dgv.Columns(4).FillWeight = 30 BOM表明細_dgv.Columns(5).FillWeight = 50 : 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 BOM表明細_dgv.Columns(1).ReadOnly = True : BOM表明細_dgv.Columns(5).ReadOnly = True 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 詳細資料2_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_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 群組碼_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合約條件讀取() : 合約編號1_cb.Items.Clear() : 合約編號1_cb.Items.Add("") : While (dr.Read()) : 合約編號1_cb.Items.Add(dr("約號甲方")) : End While : conn.Close() End Sub Private Sub 工程項目BOM表_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 物料清單_dgv.BringToFront() : Me.KeyPreview = True End Sub Private Sub 工程項目BOM表_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown 甲方條件下拉清單讀取() : Set_合約清單() : Set_BOM表控制() : 群組碼_cb_語轉_下拉表單資料載入() : SQL_群組碼_語轉_下拉清單() 群組編碼_cb_下拉表單資料載入() : 新群組1_cb.SelectedIndex = 0 合約報價單_Siz() End Sub Private Sub 合約報價單_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged 合約報價單_Siz() End Sub Private Sub 合約報價單_Siz() MyModule1.清單字體大小調整() 合約_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", 7.6) BOM表控制_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", GCM_ERP_SYS.字體_NUD.Value) BOM表明細_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", GCM_ERP_SYS.字體_NUD.Value) 物料清單_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", GCM_ERP_SYS.字體_NUD.Value) 物料規格_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", GCM_ERP_SYS.字體_NUD.Value) 報價明細表_dgv.RowsDefaultCellStyle.Font = New System.Drawing.Font("微軟正黑體", GCM_ERP_SYS.字體_NUD.Value) End Sub Private Sub 工程項目BOM表_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed 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() : 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 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) 物料圖1_pb.Image = Bitmap.FromStream(oStream) End While : conn.Close() : 物料圖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 If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If 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 合約編號_tb.Text = 合約_dgv.Rows(e.RowIndex).Cells("合約編號").Value : Set_合約報價明細表() If 放大 = True Then : 縮放2_bt.PerformClick() : 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 選取主項_tb.Text = "" Then If 報價明細表_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString() = "" And CInt(報價明細表_dgv.Rows(e.RowIndex).Cells("QTY").Value.ToString()) = 0 Then 選取主項_tb.Text = 報價明細表_dgv.Rows(e.RowIndex).Cells("DESCRIPTION").Value.ToString() Else : If 系統語言 = "繁體中文" Then : MsgBox("物料無法變成BOM表項目!!") : Else : MsgBox("Materi tidak dapat diubah menjadi item BOM!!") : End If : End If Else 報價明細表_dgv.Rows(e.RowIndex).Cells("選擇").Value = True End If End If 物料圖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 '------------數字為0隱藏----------------------------------------------------------------------------------------------- For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If IsDBNull(報價明細表_dgv.Rows(i).Cells("QTY").Value) Then : 報價明細表_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.White : Else If 報價明細表_dgv.Rows(i).Cells("QTY").Value = 0 Then : 報價明細表_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.White Else : 報價明細表_dgv.Rows(i).Cells("QTY").Style.ForeColor = Color.Black : End If : End If Next End If End Sub Private Sub 報價明細表_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 報價明細表_dgv.RowPostPaint For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If 報價明細表_dgv.Rows(i).Cells("選擇").Value = True Then 報價明細表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightGreen Else : 報價明細表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.White : End If Next 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 : 料號1_tb.Text = 物料規格_dgv.Rows(e.RowIndex).Cells("Nomor_Bagian").Value.ToString End If 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 If 系統語言 = "繁體中文" Then : MsgBox("欄位輸入必須為數值!!") : Else : MsgBox("Input bidang harus numerik!!") : End If 物料規格_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 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 項目_tb.Text = BOM表明細_dgv.Rows(e.RowIndex).Cells("項目").Value.ToString : 料號_tb.Text = BOM表明細_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString 申請數_nud.Visible = BOM表明細_dgv.Rows(e.RowIndex).Cells("數量").Value.ToString : 選擇項1_tb.Text = e.RowIndex 選擇項2_tb.Text = BOM表明細_dgv.Rows(e.RowIndex).Cells("排序").Value.ToString() : 明細流水_tb.Text = BOM表明細_dgv.Rows(e.RowIndex).Cells("明細流水").Value.ToString() 物料圖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 合約編號1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 合約編號1_cb.SelectedIndexChanged 條件選擇 = 合約編號1_cb.Text : Set_合約清單() 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(sender As Object, e As EventArgs) Handles 群組編碼_cb.SelectedIndexChanged 群組碼_tb.Text = 群組編碼_cb.Text : Set_清單1() End Sub Private Sub TabControl1_ChangeUICues(ByVal sender As Object, ByVal e As EventArgs) Handles TabControl1.SelectedIndexChanged If TabControl1.SelectedIndex = 0 Then : Set_BOM表控制() : End If End Sub Private Sub 準備讀取_bt_Click(sender As Object, e As EventArgs) Handles 準備讀取_bt.Click 開始選擇_ch.Checked = True End Sub Private Sub 取消選取_bt_Click(sender As Object, e As EventArgs) Handles 取消選取_bt.Click 開始選擇_ch.Checked = False : 選取主項_tb.Text = "" For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 報價明細表_dgv.Rows(i).Cells("選擇").Value = False : 報價明細表_dgv.Rows(i).DefaultCellStyle.BackColor = Color.Wheat Next End Sub Private Sub 搜尋_bt_Click(sender As Object, e As EventArgs) Handles 搜尋_bt.Click If 系統語言 = "繁體中文" Then : PA = InputBox("請輸入關鍵字!!!") : Else : PA = InputBox("Silakan masukkan kata kunci!!!") : End If If PA = "" Then : Else : Set_DGV1載入前設定() : SQL_建築物料請購單申請_物料清單三() : Set_DG1載入後設定() : 料號1_tb.Text = "" : 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 縮放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 放大 = True Then 合約_dgv.Size = New System.Drawing.Point(NX - 400, NY) : 放大 = False : 合約_dgv.Columns("工程名稱_中").Visible = False Else 合約_dgv.Size = New System.Drawing.Point(NX + 400, NY) : 放大 = True : 合約_dgv.Columns("工程名稱_中").Visible = True End If End Sub Private Sub 排序2_bt_Click(sender As Object, e As EventArgs) Handles 排序2_bt.Click If BOM表明細_dgv.Rows.Count > 0 Then If BOM表明細_dgv.Columns(0).Visible = False Then : BOM表明細_dgv.Columns(0).Visible = True : Else : BOM表明細_dgv.Columns(0).Visible = False : End If End If End Sub Private Sub 新建主項() SQL_BOM表控制_項目查詢() If dr.Read Then If 系統語言 = "繁體中文" Then : MsgBox("主項目名稱重複,無法存檔!!") : Else : MsgBox("Nama proyek utama diduplikasi dan tidak dapat diarsipkan!!") : End If 不再動作1 = True : Exit Sub : Else : 不再動作1 = False : End If SQL_BOM表控制流水號查詢() If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("流水號").ToString, 8)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1 If EDR < 10 Then : ESTR = "BOM0000000" & EDR ElseIf EDR > 9 And EDR < 100 Then : ESTR = "BOM000000" & EDR ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "BOM00000" & EDR ElseIf EDR > 9999 And EDR < 10000 Then : ESTR = "BOM0000" & EDR ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "BOM000" & EDR ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "BOM00" & EDR ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "BOM0" & EDR ElseIf EDR <= 10000000 Then : ESTR = "BOM" & EDR : End If : PA = ESTR SQL_BOM表控制_新增() End Sub Private Sub 明細流水() SQL_BOM表明細流水號查詢1() If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("明細流水").ToString, 8)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1 If EDR < 10 Then : ESTR = "BOW0000000" & EDR ElseIf EDR > 9 And EDR < 100 Then : ESTR = "BOW000000" & EDR ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "BOW00000" & EDR ElseIf EDR > 9999 And EDR < 10000 Then : ESTR = "BOW0000" & EDR ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "BOW000" & EDR ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "BOW00" & EDR ElseIf EDR > 9999999 And EDR < 10000000 Then : ESTR = "BOW0" & EDR ElseIf EDR <= 10000000 Then : ESTR = "BOW" & EDR : End If : PA7 = ESTR End Sub Private Sub 新建_bt_Click(sender As Object, e As EventArgs) Handles 新建_bt.Click PA1 = InputBox("請輸入BOM表主項目名稱!!") : 主項目_tb.Text = PA1 : 項目流水_tb.Text = PA : 新建主項() : Set_BOM表控制() End Sub Private Sub 選擇存檔_bt_Click(sender As Object, e As EventArgs) Handles 選擇存檔_bt.Click If 開始選擇_ch.Checked = True And 選取主項_tb.Text <> "" Then Dim 選擇確認 As Boolean = False For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 : If 報價明細表_dgv.Rows(i).Cells("選擇").Value = True Then : 選擇確認 = True : Exit For : End If : Next If 選擇確認 = False Then If 系統語言 = "繁體中文" Then : MsgBox("最少要再報價單中選擇一項物料,不然無法存檔!!") Else : MsgBox("Setidaknya satu materi harus dipilih dalam kutipan, jika tidak maka tidak dapat diarsipkan!!") : End If Else Dim SS As String If 系統語言 = "繁體中文" Then : SS = "確定細項物料選擇完畢了嗎? (存檔後無法用報價單做更動,只能回BOM表中修改)" Else : SS = "Apakah Anda yakin telah menyelesaikan pemilihan materi terperinci? (Setelah pengarsipan, Anda tidak " & "dapat menggunakan kutipan untuk membuat perubahan, Anda hanya dapat memodifikasinya di tabel BOM)" : End If Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then PA1 = 選取主項_tb.Text 新建主項() If 不再動作1 = False Then For i As Integer = 0 To 報價明細表_dgv.Rows.Count - 1 If 報價明細表_dgv.Rows(i).Cells("選擇").Value = True Then PA2 = 報價明細表_dgv.Rows(i).Cells("DESCRIPTION").Value.ToString : PA3 = 報價明細表_dgv.Rows(i).Cells("料號").Value.ToString PA4 = 報價明細表_dgv.Rows(i).Cells("QTY").Value.ToString : PA5 = 報價明細表_dgv.Rows(i).Cells("UNIT").Value.ToString 明細流水() : SQL_BOM表明細流水號查詢() If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("排序").ToString, 2)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1 If EDR < 10 Then : ESTR = "B0" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "B" & EDR : End If : PA6 = ESTR SQL_BOM表明細_新增() End If Next : If 系統語言 = "繁體中文" Then : MsgBox("BOM表新增完成!!") : Else : MsgBox("Tabel BOM baru selesai!!") : End If End If End If End If Else : If 系統語言 = "繁體中文" Then : MsgBox("請先確認要新增BOM表的項目!!") : Else : MsgBox("Mohon konfirmasi item yang akan ditambahkan BOM terlebih dahulu!!") : End If : End If End Sub Private Sub 刪除專案_bt_Click(sender As Object, e As EventArgs) Handles 刪除專案_bt.Click If 項目流水_tb.Text <> "" Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Apakah Anda ingin menghapus data ini?" : 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 = "Silakan masukkan [YES] untuk mengonfirmasi penghapusan data!!" : End If Dim SSA As String = InputBox(SS1) If SSA = "YES" Then PA = 項目流水_tb.Text : SQL_BOM表控制_刪除() : SQL_BOM表明細_刪除_全部() 主項目_tb.Text = "" : 項目流水_tb.Text = "" : BOM表明細_dgv.DataSource = Nothing : Set_BOM表控制() End If End If Else : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的專案!!") : Else : MsgBox("Silakan pilih proyek yang akan dihapus terlebih dahulu!!") : End If : End If End Sub Private Sub 總表選擇刪除1_bt_Click(sender As Object, e As EventArgs) Handles 總表選擇刪除1_bt.Click If 明細流水_tb.Text <> "" Then Dim SS As String If 系統語言 = "繁體中文" Then : SS = "是否要刪除這筆資料?" : Else : SS = "Apakah Anda ingin menghapus data ini?" : End If Dim aa As MsgBoxResult = MsgBox(SS, MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then PA7 = 明細流水_tb.Text : SQL_BOM表明細_刪除() : PA = 項目流水_tb.Text : Set_BOM表明細() End If Else : If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要刪除的物料/資料!!") : Else : MsgBox("Silahkan pilih materi/data yang akan dihapus terlebih dahulu!!") : End If : End If End Sub Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click If 主項目_tb.Text <> "" And 項目流水_tb.Text <> "" Then PA1 = 主項目_tb.Text : PA = 項目流水_tb.Text : SQL_BOM表控制_存檔() : 明細表存檔() If 系統語言 = "繁體中文" Then : MsgBox("存檔完成!!") : Else : MsgBox("Arsip selesai!!") : End If End If End Sub Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click If 系統語言 = "繁體中文" Then : MsgBox("功能製作中!!") : Else : MsgBox("Sistem dalam pengembangan!!") : End If End Sub Private Sub 明細表存檔() PA = 項目流水_tb.Text For i As Integer = 0 To BOM表明細_dgv.Rows.Count - 1 PA1 = BOM表明細_dgv.Rows(i).Cells("排序").Value.ToString : 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 : PA7 = BOM表明細_dgv.Rows(i).Cells("明細流水").Value.ToString : SQL_BOM表明細_存檔() Next 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("Tidak ada item yang dipilih!!") : End If : Else 明細表存檔() Dim SS, SS1 As String If 系統語言 = "繁體中文" Then : SS = "請輸入要新增幾行空白欄未!! (請輸入數字)?" : SS1 = "你輸入的不是數字" Else : SS = "Silakan tulis kolom kosong yang ingin Anda tambahkan!! (Silakan masukkan angka)?" : SS1 = "yang kamu masukkan bukan angka" : End If PA20 = InputBox(SS) If IsNumeric(PA20) = False Then : MsgBox(SS1) : Else For ia As Integer = 1 To PA20 PA = 項目流水_tb.Text : PA2 = "" : PA3 = "" : PA4 = "0" : PA5 = "" : 明細流水() If 選擇項1_tb.Text = "" Then SQL_BOM表明細流水號查詢() If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("排序").ToString, 2)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1 If EDR < 10 Then : ESTR = "B0" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "B" & EDR : End If : PA6 = ESTR Else PA6 = 選擇項2_tb.Text & "-1" End If SQL_BOM表明細_新增() Next : PA = 項目流水_tb.Text : Set_BOM表明細() For I As Integer = 0 To BOM表明細_dgv.Rows.Count - 1 If I < 10 Then : BOM表明細_dgv.Rows(I).Cells("排序").Value = "B0" & I ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "B" & I End If Next : 明細表存檔() End If End If End Sub Private Sub 選擇材料新增到明細表_bt_Click(sender As Object, e As EventArgs) Handles 選擇材料新增到明細表_bt.Click If 項目流水_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇合約!!") : Else : MsgBox("Silakan pilih kontrak!!") : End If : Else If 料號1_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("Tidak ada bahan yang dipilih!!") : End If : Else 明細表存檔() PA = 項目流水_tb.Text : PA2 = "" : PA3 = 料號1_tb.Text : PA4 = "0" : PA5 = "" : 明細流水() If 選擇項1_tb.Text = "" Then SQL_BOM表明細流水號查詢() If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("排序").ToString, 2)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1 If EDR < 10 Then : ESTR = "B0" & EDR : ElseIf EDR > 9 And EDR < 100 Then : ESTR = "B" & EDR : End If : PA6 = ESTR Else PA6 = 選擇項2_tb.Text & "-1" End If SQL_BOM表明細_新增() PA = 項目流水_tb.Text : Set_BOM表明細() For I As Integer = 0 To BOM表明細_dgv.Rows.Count - 1 If I < 10 Then : BOM表明細_dgv.Rows(I).Cells("排序").Value = "B0" & I ElseIf I > 9 And I < 100 Then : 報價明細表_dgv.Rows(I).Cells("排序").Value = "B" & I End If Next : 明細表存檔() End If End If End Sub Private Sub 修改明細表上的材料指定_bt_Click(sender As Object, e As EventArgs) Handles 修改明細表上的材料指定_bt.Click If 項目流水_tb.Text = "" Then If 系統語言 = "繁體中文" Then : MsgBox("請先選擇要修改的資料是哪一筆!!") : Else : MsgBox("Silakan pilih data mana yang akan dimodifikasi terlebih dahulu!!") : End If : Else If 料號1_tb.Text = "" Then : If 系統語言 = "繁體中文" Then : MsgBox("沒有選擇物料!!") : Else : MsgBox("Tidak ada bahan yang dipilih!!") : End If : Else 明細表存檔() : PA7 = 明細流水_tb.Text : PA3 = 料號1_tb.Text : SQL_BOM表明細_存檔_料號() : Set_BOM表明細() End If End If 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("Tidak ada Informasi!!") : End If : Else 翻譯 = Replace(主項目_tb.Text, vbCrLf, " ") : MyModule2.執行翻譯() : 等待翻譯1_tim.Enabled = True End If End Sub Private Sub 等待翻譯1_tim_Tick(sender As Object, e As EventArgs) Handles 等待翻譯1_tim.Tick Dim Str2 As String = System.Windows.Forms.Application.StartupPath : Dim stringReader As String : Dim fileReader As StreamReader If File.Exists("ch.txt") Then 等待翻譯1_tim.Enabled = False fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\ch.txt") : stringReader = fileReader.ReadLine() : 主項目_tb.Text = stringReader : fileReader.Close() fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\en.txt") : stringReader = fileReader.ReadLine() 主項目_tb.Text = 主項目_tb.Text & " - " & stringReader : fileReader.Close() For I As Integer = 0 To BOM表控制_dgv.Rows.Count - 1 If BOM表控制_dgv.Rows(I).Cells("流水號").Value.ToString = 項目流水_tb.Text Then : BOM表控制_dgv.Rows(I).Cells("項目").Value = 主項目_tb.Text : End If Next If 系統語言 = "繁體中文" Then : MsgBox("翻譯完成!!") : Else : MsgBox("Terjemahan Selesai!!") : End If ElseIf File.Exists(Str2 & "\ch.txt") Then 等待翻譯1_tim.Enabled = False fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\ch.txt") : stringReader = fileReader.ReadLine() : 主項目_tb.Text = stringReader : fileReader.Close() fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\en.txt") : stringReader = fileReader.ReadLine() 主項目_tb.Text = 主項目_tb.Text & " - " & stringReader : fileReader.Close() For I As Integer = 0 To BOM表控制_dgv.Rows.Count - 1 If BOM表控制_dgv.Rows(I).Cells("流水號").Value.ToString = 項目流水_tb.Text Then : BOM表控制_dgv.Rows(I).Cells("項目").Value = 主項目_tb.Text : End If Next If 系統語言 = "繁體中文" Then : MsgBox("翻譯完成!!") : Else : MsgBox("Terjemahan Selesai!!") : 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("Tidak ada Informasi!!") : End If : Else 翻譯 = Replace(項目_tb.Text, vbCrLf, " ") : MyModule2.執行翻譯() : 等待翻譯_tim.Enabled = True End If End Sub Private Sub 等待翻譯_tim_Tick(sender As Object, e As EventArgs) Handles 等待翻譯_tim.Tick Dim Str2 As String = System.Windows.Forms.Application.StartupPath : Dim stringReader As String : Dim fileReader As StreamReader If File.Exists("ch.txt") Then 等待翻譯_tim.Enabled = False fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\ch.txt") : stringReader = fileReader.ReadLine() : 項目_tb.Text = stringReader : fileReader.Close() fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\en.txt") : stringReader = fileReader.ReadLine() 項目_tb.Text = 項目_tb.Text & vbCrLf & stringReader : fileReader.Close() For I As Integer = 0 To BOM表明細_dgv.Rows.Count - 1 If BOM表明細_dgv.Rows(I).Cells("明細流水").Value.ToString = 明細流水_tb.Text Then : BOM表明細_dgv.Rows(I).Cells("項目").Value = 項目_tb.Text : End If Next If 系統語言 = "繁體中文" Then : MsgBox("翻譯完成!!") : Else : MsgBox("Terjemahan Selesai!!") : End If ElseIf File.Exists(Str2 & "\ch.txt") Then 等待翻譯_tim.Enabled = False fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\ch.txt") : stringReader = fileReader.ReadLine() : 項目_tb.Text = stringReader : fileReader.Close() fileReader = My.Computer.FileSystem.OpenTextFileReader(Str2 & "\en.txt") : stringReader = fileReader.ReadLine() 項目_tb.Text = 項目_tb.Text & vbCrLf & stringReader : fileReader.Close() For I As Integer = 0 To BOM表明細_dgv.Rows.Count - 1 If BOM表明細_dgv.Rows(I).Cells("明細流水").Value.ToString = 明細流水_tb.Text Then : BOM表明細_dgv.Rows(I).Cells("項目").Value = 項目_tb.Text : End If Next If 系統語言 = "繁體中文" Then : MsgBox("翻譯完成!!") : Else : MsgBox("Terjemahan Selesai!!") : End If End If End Sub Private Sub TW_ch_CheckedChanged(sender As Object, e As EventArgs) Handles TW_ch.Click TW_ch.Checked = True : IN_ch.Checked = False : TW = TW_ch.Visible : EN = IN_ch.Visible End Sub Private Sub IN_ch_CheckedChanged(sender As Object, e As EventArgs) Handles IN_ch.Click TW_ch.Checked = False : IN_ch.Checked = True : TW = TW_ch.Visible : EN = IN_ch.Visible End Sub Private Sub 詳細資料2_ch_CheckedChanged(sender As Object, e As EventArgs) Handles 詳細資料2_ch.Click If TabControl1.SelectedIndex = 0 Then If 詳細資料2_ch.Checked = True Then : 詳細資料2_ch.Checked = True : Else : 詳細資料2_ch.Checked = False : End If : Set_BOM表明細() Else If 詳細資料2_ch.Checked = True Then : 詳細資料2_ch.Checked = True : Else : 詳細資料2_ch.Checked = False : End If : Set_合約報價明細表() End If End Sub End Class