Option Strict Off Imports System.Data.SqlClient Public Class 銷貨管理 Dim conn1 As New SqlConnection Dim cmd1 As New SqlCommand Dim dr1 As SqlDataReader Dim da As New SqlDataAdapter Dim ds As New DataSet : Dim ds1 As New DataSet : Dim ds2 As New DataSet Private Sub DGV1讀取前設定() DataGridView1.DataSource = Nothing : ds.Clear() DataGridView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView1.ColumnHeadersHeight = 25 DataGridView1.AllowUserToAddRows = False If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If End Sub Private Sub DGV1讀取後設定() cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da.SelectCommand = cmd1 : da.Fill(ds) : DataGridView1.DataSource = ds.Tables(0) : conn1.Close() End Sub Private Sub DGV2讀取前設定() DataGridView2.DataSource = Nothing : ds1.Clear() DataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView2.ColumnHeadersHeight = 25 DataGridView2.AllowUserToAddRows = False If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If End Sub Private Sub DGV2讀取後設定() cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da.SelectCommand = cmd1 : da.Fill(ds1) : DataGridView2.DataSource = ds1.Tables(0) : conn1.Close() End Sub Private Sub DGV3讀取前設定() DataGridView3.DataSource = Nothing : ds2.Clear() DataGridView3.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing DataGridView3.ColumnHeadersHeight = 25 DataGridView3.AllowUserToAddRows = False If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If End Sub Private Sub DGV3讀取後設定() cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : da.SelectCommand = cmd1 : da.Fill(ds2) : DataGridView3.DataSource = ds2.Tables(0) : conn1.Close() End Sub Private Sub 讀取庫存資料表() If PA = "" Then DGV1讀取前設定() SQL1 = "SELECT 零件進銷存報表.零件編號, 零件進銷存報表.進貨日期, 零件成本紀錄表.品牌, 零件成本紀錄表.供應商, 零件成本紀錄表.科目, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " & "零件成本紀錄表.進貨單價, SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量)) AS 庫存數量, 零件成本紀錄表.安全庫存, " & "CONVERT(FLOAT, 零件成本紀錄表.進貨單價) * (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量))) AS 庫存成本, " & "CONVERT(FLOAT, 零件成本紀錄表.進貨單價) * (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量))) * 零件進銷存報表.匯率 AS 台幣庫存成本, " & "零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON 零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE (零件進銷存報表.進貨確認 = '1') " & "GROUP BY 零件進銷存報表.零件編號, 零件進銷存報表.進貨日期, 零件成本紀錄表.品牌, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, 零件成本紀錄表.進貨單價, " & "零件成本紀錄表.安全庫存, 零件進銷存報表.匯率, 零件成本紀錄表.供應商, 零件成本紀錄表.科目 " & "HAVING (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量)) <> 0) ORDER BY 零件進銷存報表.進貨日期 DESC" 列印用SQL = SQL1 : DGV1讀取後設定() Else DGV1讀取前設定() SQL1 = "SELECT 零件進銷存報表.零件編號, 零件進銷存報表.進貨日期, 零件成本紀錄表.品牌, 零件成本紀錄表.供應商, 零件成本紀錄表.科目, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " & "零件成本紀錄表.進貨單價, SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量)) AS 庫存數量, 零件成本紀錄表.安全庫存, " & "CONVERT(FLOAT, 零件成本紀錄表.進貨單價) * (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量))) AS 庫存成本, " & "CONVERT(FLOAT, 零件成本紀錄表.進貨單價) * (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量))) * 零件進銷存報表.匯率 AS 台幣庫存成本, " & "零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON 零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 " & "WHERE (零件進銷存報表.進貨確認 = '1') AND (零件進銷存報表.零件編號 LIKE '%" & PA & "%') OR " & "(零件進銷存報表.進貨確認 = '1') AND (零件進銷存報表.進貨日期 LIKE '%" & PA & "%') OR " & "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.品牌 LIKE '%" & PA & "%') OR " & "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.品名 LIKE '%" & PA & "%') OR " & "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.型號及備註 LIKE '%" & PA & "%') OR " & "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.進貨單價 LIKE '%" & PA & "%') OR " & "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.供應商 LIKE '%" & PA & "%') OR " & "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.科目 LIKE '%" & PA & "%') OR " & "(零件進銷存報表.進貨確認 = '1') AND (零件成本紀錄表.型號及備註 LIKE '%" & PA & "%') " & "GROUP BY 零件進銷存報表.零件編號, 零件進銷存報表.進貨日期, 零件成本紀錄表.品牌, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, 零件成本紀錄表.進貨單價, " & "零件成本紀錄表.安全庫存, 零件進銷存報表.匯率, 零件成本紀錄表.供應商, 零件成本紀錄表.科目 " & "HAVING (SUM(CONVERT(FLOAT, 零件進銷存報表.進貨數量)) - SUM(CONVERT(FLOAT, 零件進銷存報表.出貨數量)) <> 0) ORDER BY 零件進銷存報表.進貨日期 DESC" 列印用SQL = SQL1 : DGV1讀取後設定() End If End Sub Private Sub 讀取出貨資料表() If TextBox1.Text = "" Then DGV2讀取前設定() SQL1 = "SELECT 零件進銷存報表.流水號, 零件進銷存報表.零件編號, 零件進銷存報表.出貨日期, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " & "零件進銷存報表.出貨數量,零件進銷存報表.出貨金額, 零件進銷存報表.台幣出貨成本 AS 台幣出貨金額, 零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON " & "零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE 零件進銷存報表.出貨確認 = '0' ORDER BY 零件進銷存報表.零件編號 DESC" DGV2讀取後設定() Else DGV2讀取前設定() SQL1 = "SELECT 零件進銷存報表.流水號, 零件進銷存報表.零件編號, 零件進銷存報表.出貨日期, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " & "零件進銷存報表.出貨數量,零件進銷存報表.出貨金額, 零件進銷存報表.台幣出貨成本 AS 台幣出貨金額, 零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON " & "零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE 零件進銷存報表.零件編號 LIKE '" & TextBox1.Text & "' AND 零件進銷存報表.出貨確認 = '0' " & "ORDER BY 零件進銷存報表.零件編號 DESC" DGV2讀取後設定() If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If SQL1 = "SELECT 零件進銷存報表.流水號, 零件進銷存報表.零件編號, 零件進銷存報表.出貨日期, 零件成本紀錄表.品名, 零件成本紀錄表.型號及備註, " & "零件進銷存報表.出貨數量,零件進銷存報表.出貨金額, 零件進銷存報表.台幣出貨成本 AS 台幣出貨金額, 零件進銷存報表.匯率 FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON " & "零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE 零件進銷存報表.零件編號 NOT LIKE '" & TextBox1.Text & "' AND 零件進銷存報表.出貨確認 = '0' " & "ORDER BY 零件進銷存報表.零件編號 DESC" DGV2讀取後設定() End If End Sub Private Sub 讀取利潤清單() DGV3讀取前設定() SQL1 = "SELECT 零件進銷存報表.零件編號, 零件進銷存報表.出貨數量, ROUND(零件進銷存報表.出貨數量 * CONVERT(FLOAT, 零件成本紀錄表.進貨單價), 2) AS 進貨成本, 零件進銷存報表.出貨金額, " & "ROUND(零件進銷存報表.出貨金額 - 零件進銷存報表.出貨數量 * CONVERT(FLOAT, 零件成本紀錄表.進貨單價), 2) AS 利潤, " & "ROUND((零件進銷存報表.出貨金額 - 零件進銷存報表.出貨數量 * CONVERT(FLOAT, 零件成本紀錄表.進貨單價)) * 零件進銷存報表.匯率, 2) AS 台幣利潤 " & "FROM 零件進銷存報表 INNER JOIN 零件成本紀錄表 ON 零件進銷存報表.零件編號 = 零件成本紀錄表.流水碼 WHERE (零件進銷存報表.出貨確認 = 0) ORDER BY 零件進銷存報表.零件編號 DESC" DGV3讀取後設定() End Sub Private Sub Set_grid1() DataGridView1.Columns(0).Width = 75 : DataGridView1.Columns(1).Width = 85 : DataGridView1.Columns(2).Width = 75 : DataGridView1.Columns(3).Width = 95 DataGridView1.Columns(4).Width = 95 : DataGridView1.Columns(5).Width = 190 : DataGridView1.Columns(6).Width = 220 : DataGridView1.Columns(7).Width = 75 DataGridView1.Columns(8).Width = 80 : DataGridView1.Columns(9).Width = 80 : DataGridView1.Columns(10).Width = 80 : DataGridView1.Columns(11).Width = 80 DataGridView1.Columns(12).Width = 60 DataGridView1.Columns(8).DefaultCellStyle.Format = "#,##0" : DataGridView1.Columns(9).DefaultCellStyle.Format = "#,##0" DataGridView1.Columns(10).DefaultCellStyle.Format = "#,##0.00" : DataGridView1.Columns(11).DefaultCellStyle.Format = "#,##0.00" End Sub Private Sub Set_grid2() DataGridView2.Columns(0).Width = 90 : DataGridView2.Columns(1).Width = 70 : DataGridView2.Columns(2).Width = 75 : DataGridView2.Columns(3).Width = 150 DataGridView2.Columns(4).Width = 160 : DataGridView2.Columns(5).Width = 65 : DataGridView2.Columns(6).Width = 70 : DataGridView2.Columns(7).Width = 90 DataGridView2.Columns(8).Width = 55 DataGridView2.Columns(5).DefaultCellStyle.Format = "#,##0" : DataGridView2.Columns(6).DefaultCellStyle.Format = "#,##0.00" DataGridView2.Columns(7).DefaultCellStyle.Format = "#,##0.00" End Sub Private Sub Set_grid3() DataGridView3.Columns(0).Width = 90 : DataGridView3.Columns(1).Width = 70 : DataGridView3.Columns(2).Width = 70 : DataGridView3.Columns(3).Width = 70 DataGridView3.Columns(4).Width = 70 : DataGridView3.Columns(5).Width = 70 DataGridView3.Columns(1).DefaultCellStyle.Format = "#,##0" : DataGridView3.Columns(2).DefaultCellStyle.Format = "#,##0.00" DataGridView3.Columns(3).DefaultCellStyle.Format = "#,##0.00" : DataGridView3.Columns(4).DefaultCellStyle.Format = "#,##0.00" DataGridView3.Columns(5).DefaultCellStyle.Format = "#,##0.00" End Sub Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick If e.RowIndex = -1 Then : Else TextBox1.Text = DataGridView1(0, e.RowIndex).Value.ToString : DateTimePicker1.Text = DataGridView1(1, e.RowIndex).Value.ToString ComboBox1.Text = DataGridView1(2, e.RowIndex).Value.ToString : ComboBox2.Text = DataGridView1(3, e.RowIndex).Value.ToString ComboBox3.Text = DataGridView1(4, e.RowIndex).Value.ToString : TextBox2.Text = DataGridView1(5, e.RowIndex).Value.ToString TextBox3.Text = DataGridView1(6, e.RowIndex).Value.ToString TextBox4.Text = Format(Val(DataGridView1(7, e.RowIndex).Value.ToString), "#,##0.00") TextBox6.Text = Format(Val(DataGridView1(8, e.RowIndex).Value.ToString), "#,##0") TextBox5.Text = Format(Val(DataGridView1(10, e.RowIndex).Value.ToString), "#,##0.00") TextBox7.Text = Format(Val(DataGridView1(11, e.RowIndex).Value.ToString), "#,##0.00") TextBox9.Text = DataGridView1(12, e.RowIndex).Value.ToString TextBox10.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox4.Text) * Double.Parse(TextBox9.Text)), 2))), "#,##0.00") End If End Sub Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView2.CellClick If e.RowIndex = -1 Then : Else DateTimePicker2.Text = DataGridView2(2, e.RowIndex).Value.ToString TextBox11.Text = Format(Val(DataGridView2(5, e.RowIndex).Value.ToString), "#,##0") TextBox12.Text = Format(Val(DataGridView2(6, e.RowIndex).Value.ToString), "#,##0.00") TextBox8.Text = Format(Val(DataGridView2(7, e.RowIndex).Value.ToString), "#,##0.00") TextBox18.Text = DataGridView2(0, e.RowIndex).Value.ToString TextBox9.Text = DataGridView2(8, e.RowIndex).Value.ToString TextBox13.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox12.Text) / Double.Parse(TextBox11.Text)), 2))), "#,##0.00") End If End Sub Private Sub Set_時間() TextBox16.Text = Format(DateTimePicker2.Value, "yyyy") : TextBox15.Text = Format(DateTimePicker2.Value, "MM") End Sub Private Sub Set_匯率() Set_時間() If TextBox15.Text = Month(Now) Then If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If SQL1 = "SELECT 匯率 FROM 匯率表 WHERE (對應 = '人民幣兌台幣')" cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader If dr1.Read() Then : TextBox14.Text = dr1("匯率").ToString : End If ER = Double.Parse(dr1("匯率").ToString) conn1.Close() : dr1.Close() Else If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If SQL1 = "SELECT 中心匯率 FROM 歷史匯率表 WHERE (年 LIKE '" & TextBox16.Text & "%') AND (月 LIKE '" & TextBox15.Text & "%')" cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader If dr1.Read() Then : TextBox14.Text = dr1("中心匯率").ToString : End If ER = Double.Parse(dr1("中心匯率").ToString) conn1.Close() : dr1.Close() End If End Sub Private Sub Set_自動彙總1() Dim 數量加總 As Double = 0 : Dim 金額加總1 As Double = 0 : Dim 金額加總2 As Double = 0 : Dim 金額加總3 As Double = 0 For i As Integer = 0 To DataGridView2.Rows.Count - 1 If DataGridView2.RowCount = 0 Then : TextBox21.Text = "0" : Else : 數量加總 += DataGridView2.Rows(i).Cells("出貨數量").Value : End If Next i For i As Integer = 0 To DataGridView2.Rows.Count - 1 If DataGridView2.RowCount = 0 Then : TextBox20.Text = "0" : Else : 金額加總1 += DataGridView2.Rows(i).Cells("出貨金額").Value : End If Next i For i As Integer = 0 To DataGridView3.Rows.Count - 1 If DataGridView3.RowCount = 0 Then : TextBox19.Text = "0" : Else : 金額加總2 += DataGridView3.Rows(i).Cells("台幣利潤").Value : End If Next i For i As Integer = 0 To DataGridView3.Rows.Count - 1 If DataGridView3.RowCount = 0 Then : TextBox22.Text = "0" : Else : 金額加總3 += DataGridView3.Rows(i).Cells("進貨成本").Value : End If Next i TextBox21.Text = Format(Val(數量加總), "#,##0") TextBox20.Text = Format(Val(金額加總1), "#,##0.00") TextBox19.Text = Format(Val(金額加總2), "#,##0.00") TextBox22.Text = Format(Val(金額加總3), "#,##0.00") TextBox23.Text = Format(Val(金額加總1 - 金額加總3), "#,##0.00") End Sub Private Sub 銷貨管理_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = GCM_ERP_SYS Me.WindowState = 2 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1() 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 Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click PA = InputBox("請輸入要查詢零件的資料") 讀取庫存資料表() : Set_grid1() PA = "" End Sub Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker2.TextChanged Set_匯率() : DateTimePicker3.Text = DateTimePicker2.Text End Sub Private Sub TextBox11_TextChanged(sender As Object, e As EventArgs) Handles TextBox11.TextChanged If IsNumeric(TextBox11.Text) = True And IsNumeric(TextBox13.Text) = True Then TextBox12.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox13.Text) * Double.Parse(TextBox11.Text)), 2))), "#,##0.00") TextBox8.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox13.Text) * Double.Parse(TextBox14.Text) * Double.Parse(TextBox11.Text)), 2))), "#,##0.00") Else TextBox12.Text = "0.00" : TextBox8.Text = "0.00" End If End Sub Private Sub TextBox13_TextChanged(sender As Object, e As EventArgs) Handles TextBox13.TextChanged If IsNumeric(TextBox11.Text) = True And IsNumeric(TextBox13.Text) = True Then TextBox12.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox13.Text) * Double.Parse(TextBox11.Text)), 2))), "#,##0.00") TextBox8.Text = Format(Val(CStr(Math.Round((Double.Parse(TextBox13.Text) * Double.Parse(TextBox14.Text) * Double.Parse(TextBox11.Text)), 2))), "#,##0.00") Else TextBox12.Text = "0.00" : TextBox8.Text = "0.00" End If End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click If TextBox11.Text = "" Or TextBox13.Text = "" Or IsNumeric(TextBox11.Text) = False Or IsNumeric(TextBox13.Text) = False Then MsgBox("資料有誤") Else Dim NUM1 As Integer For NUM1 = 0 To 99999999 If NUM1 < 10 Then TextBox17.Text = "MID" & "0000000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then TextBox17.Text = "MID" & "000000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then TextBox17.Text = "MID" & "00000" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then TextBox17.Text = "MID" & "0000" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then TextBox17.Text = "MID" & "000" & NUM1 ElseIf NUM1 > 99999 And NUM1 < 1000000 Then TextBox17.Text = "MID" & "00" & NUM1 ElseIf NUM1 > 999999 And NUM1 < 10000000 Then TextBox17.Text = "MID" & "0" & NUM1 ElseIf NUM1 > 9999999 Then TextBox17.Text = "MID" & NUM1 End If If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If SQL1 = "SELECT 流水號 FROM 零件進銷存報表 WHERE (流水號 ='" & TextBox17.Text & "')" cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader If dr1.Read() Then : TextBox18.Text = dr1("流水號").ToString : Else : TextBox18.Text = "" : End If conn1.Close() If TextBox18.Text = "" Then TextBox18.Text = TextBox17.Text : TextBox17.Text = "可用" NUM1 = 99999999 End If Next If TextBox17.Text = "可用" Then If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If SQL1 = "INSERT INTO 零件進銷存報表 (流水號, 零件編號, 進貨日期, 進貨數量, 進貨成本, 台幣進貨成本, 出貨日期, 出貨數量, 出貨金額, 台幣出貨成本, 匯率, 進貨確認, 出貨確認) " & "VALUES ('" & TextBox18.Text & "','" & TextBox1.Text & "','" & Format(DateTimePicker1.Value, "yyyy/MM/dd") & "','0','0','0','" & Format(DateTimePicker2.Value, "yyyy/MM/dd") & "','" & TextBox11.Text & "','" & TextBox12.Text & "','" & TextBox8.Text & "','" & TextBox9.Text & "', '1', '0')" cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : cmd1.ExecuteNonQuery() MsgBox("新增完成") conn1.Close() End If 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1() End If End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click If TextBox18.Text = "" Or IsNumeric(TextBox11.Text) = True Or IsNumeric(TextBox13.Text) = True Then If conn1.State = ConnectionState.Closed Then : conn1.Open() : End If SQL1 = "UPDATE 零件進銷存報表 SET 出貨日期 = '" & Format(DateTimePicker2.Value, "yyyy/MM/dd") & "', 出貨數量 = '" & TextBox11.Text & "', 出貨金額 = '" & TextBox12.Text & "', 台幣出貨成本 = '" & TextBox8.Text & "' WHERE (流水號 = '" & TextBox18.Text & "')" cmd1.CommandText = SQL1 : cmd1.ExecuteNonQuery() MsgBox("修改完成") conn1.Close() Else MsgBox("請選擇正確資料") End If 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1() End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click SQL1 = "DELETE FROM 零件進銷存報表 WHERE (流水號 = '" & TextBox18.Text & "')" cmd1.CommandText = SQL1 : cmd1.Connection = conn1 If conn1.State = ConnectionState.Closed Then : conn1.Open() : End If Dim aa As MsgBoxResult aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then : cmd1.ExecuteNonQuery() : MsgBox("刪除完成") : End If conn1.Close() 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1() End Sub Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click Dim NUM1 As Integer : Dim NUM2 As Integer For NUM2 = 0 To DataGridView2.Rows.Count - 1 If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If SQL1 = "SELECT TOP (1) 流水號 FROM 零件出庫紀錄 ORDER BY 流水號 DESC" cmd1.Connection = conn1 : cmd1.CommandText = SQL1 : dr1 = cmd1.ExecuteReader If dr1.Read() Then : TextBox24.Text = dr1("流水號").ToString : Else : TextBox24.Text = 0 : End If conn1.Close() NUM1 = Double.Parse(Strings.Right(TextBox24.Text, 8)) + 1 If NUM1 < 10 Then TextBox24.Text = "W" & "0000000" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then TextBox24.Text = "W" & "000000" & NUM1 ElseIf NUM1 > 99 And NUM1 < 1000 Then TextBox24.Text = "W" & "00000" & NUM1 ElseIf NUM1 > 999 And NUM1 < 10000 Then TextBox24.Text = "W" & "0000" & NUM1 ElseIf NUM1 > 9999 And NUM1 < 100000 Then TextBox24.Text = "W" & "000" & NUM1 ElseIf NUM1 > 99999 And NUM1 < 1000000 Then TextBox24.Text = "W" & "00" & NUM1 ElseIf NUM1 > 999999 And NUM1 < 10000000 Then TextBox24.Text = "W" & "0" & NUM1 ElseIf NUM1 > 9999999 Then TextBox24.Text = "W" & NUM1 End If If conn1.State = ConnectionState.Closed Then : conn1.ConnectionString = ConString : conn1.Open() : End If SQL1 = "INSERT INTO 零件出庫紀錄 (流水號, 結單日期, 零件編號, 出貨數量, 進貨成本, 出貨金額, 利潤, 台幣利潤) " & "VALUES ('" & TextBox24.Text & "','" & Format(DateTimePicker3.Value, "yyyy/MM/dd") & "','" & DataGridView3.Item(0, NUM2).Value & "','" & DataGridView3.Item(1, NUM2).Value & "','" & DataGridView3.Item(2, NUM2).Value & "','" & DataGridView3.Item(3, NUM2).Value & "','" & DataGridView3.Item(4, NUM2).Value & "','" & DataGridView3.Item(5, NUM2).Value & "')" cmd1.CommandText = SQL1 : cmd1.ExecuteNonQuery() conn1.Close() Next Dim NUM3 As Integer For NUM3 = 0 To DataGridView2.Rows.Count - 1 If conn1.State = ConnectionState.Closed Then : conn1.Open() : End If SQL1 = "UPDATE 零件進銷存報表 SET 出貨確認 = '1' WHERE (流水號 = '" & DataGridView2.Item(0, NUM3).Value & "')" cmd1.CommandText = SQL1 : cmd1.ExecuteNonQuery() conn1.Close() Next 讀取庫存資料表() : Set_grid1() : Set_匯率() : 讀取出貨資料表() : Set_grid2() : 讀取利潤清單() : Set_grid3() : Set_自動彙總1() MsgBox("修改完成") End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 出庫紀錄表.Show() End Sub End Class