Public Class 物料入庫系統 ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : Dim 新流水1 As String : Dim index As Integer Private Sub 物料入庫系統_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = ICS_ASMS_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True 選擇日期_dtp.CustomFormat = "yyyy/MM/dd" 選擇日期_dtp.Format = DateTimePickerFormat.Custom SQL_物料資料庫_類別_下拉清單() : 類別清單_cb.Items.Clear() While (dr.Read()) : 類別清單_cb.Items.Add(dr("類別")) : End While : conn.Close() 選擇供應商1_cb.Items.Add("") SQL_物料資料庫_供應商_下拉清單() While (dr.Read()) : 選擇供應商_cb.Items.Add(dr("公司名")) : 選擇供應商1_cb.Items.Add(dr("公司名")) : End While : conn.Close() Set_清單1() : Set_清單2() End Sub Private Sub Set_清單1() 物料_dgv.DataSource = Nothing : ds.Clear() 物料_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 物料_dgv.ColumnHeadersHeight = 25 物料_dgv.AllowUserToAddRows = False 物料_dgv.RowTemplate.Height = 30 If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If SQL_物料入庫系統_物料清單() da.Fill(ds) : 物料_dgv.DataSource = ds.Tables(0) : conn.Close() 物料_dgv.Columns(4).Visible = False : 物料_dgv.Columns(5).Visible = False 物料_dgv.Columns(0).FillWeight = 70 : 物料_dgv.Columns(1).FillWeight = 120 : 物料_dgv.Columns(2).FillWeight = 160 : 物料_dgv.Columns(3).FillWeight = 40 End Sub Private Sub Set_清單2() 明細表_dgv.DataSource = Nothing : ds1.Clear() 明細表_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細表_dgv.ColumnHeadersHeight = 25 明細表_dgv.AllowUserToAddRows = False 明細表_dgv.RowTemplate.Height = 35 明細表_dgv.EditMode = DataGridViewEditMode.EditOnEnter SQL_物料入庫系統_明細表清單() : da.Fill(ds1) : 明細表_dgv.DataSource = ds1.Tables(0) : conn.Close() 明細表_dgv.Columns(3).ReadOnly = True : 明細表_dgv.Columns(4).ReadOnly = True : 明細表_dgv.Columns(5).ReadOnly = True 明細表_dgv.Columns(8).ReadOnly = True 明細表_dgv.Columns(0).Visible = False : 明細表_dgv.Columns(1).Visible = False : 明細表_dgv.Columns(2).Visible = False : 明細表_dgv.Columns(3).FillWeight = 40 明細表_dgv.Columns(4).FillWeight = 120 : 明細表_dgv.Columns(5).FillWeight = 120 : 明細表_dgv.Columns(6).FillWeight = 40 明細表_dgv.Columns(7).FillWeight = 40 : 明細表_dgv.Columns(8).FillWeight = 40 : 明細表_dgv.Columns(9).FillWeight = 160 明細表_dgv.Columns(10).Visible = False : 明細表_dgv.Columns(11).Visible = False : 明細表_dgv.Columns(12).Visible = False 明細表_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.##" : 明細表_dgv.Columns(8).DefaultCellStyle.Format = "#,##0" For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 明細表_dgv.Rows(i).Cells("是否儲存").Value = False If 明細表_dgv.Rows(i).Cells("單價").Value = 0 Then 明細表_dgv.Rows(i).Cells("單價").Value = 明細表_dgv.Rows(i).Cells("成本").Value End If 明細表_dgv.Rows(i).Cells("總額").Value = 明細表_dgv.Rows(i).Cells("單價").Value * 明細表_dgv.Rows(i).Cells("入庫數量").Value Next End Sub Private Sub 類別清單_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 類別清單_cb.SelectedIndexChanged 選擇供應商_cb.Items.Clear() : PA3 = 類別清單_cb.Text : SQL_物料資料庫_供應商_下拉清單() While (dr.Read()) : 選擇供應商_cb.Items.Add(dr("公司名")) : End While : conn.Close() End Sub Private Sub 選擇供應商_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 選擇供應商_cb.SelectedIndexChanged Set_清單1() End Sub Private Sub 選擇供應商1_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 選擇供應商1_cb.SelectedIndexChanged Set_清單2() End Sub Private Sub 查詢_bt_Click(sender As Object, e As EventArgs) Handles 查詢_bt.Click CHB("請輸入要查詢的關鍵字。") : PA56 = 訊息回應 : Set_清單1() : PA56 = "" End Sub Private Sub 物料_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 物料_dgv.CellClick 料號_tb.Text = 物料_dgv(0, e.RowIndex).Value.ToString End Sub Private Sub 明細表_dgv_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 明細表_dgv.CellEnter If e.RowIndex = -1 Then : Else index = e.RowIndex 流水號_tb.Text = 明細表_dgv(0, e.RowIndex).Value.ToString For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 明細表_dgv.Rows(i).Cells("總額").Value = 明細表_dgv.Rows(i).Cells("單價").Value * 明細表_dgv.Rows(i).Cells("入庫數量").Value Next End If End Sub Private Sub 選擇日期_dtp_ValueChanged(sender As Object, e As EventArgs) Handles 選擇日期_dtp.ValueChanged Set_清單2() : 選擇日期_dtp.CustomFormat = "yyyy/MM/dd" 選擇日期_dtp.Format = DateTimePickerFormat.Custom End Sub Private Sub 收支單中新增一筆空白資料_bt_Click(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料_bt.Click If 料號_tb.Text = "" Then MsgBox("未選擇物料。") Else Set_流水號() : SQL_物料入庫系統_新增明細表() : conn.Close() 料號_tb.Text = "" : Set_清單2() End If End Sub Private Sub Set_流水號() conn.Close() : dr.Close() Dim NUM1 As Integer For NUM1 = 0 To 999 Dim d As String : Dim f As String Dim selectedDate As DateTime = 選擇日期_dtp.Value Dim y As String = selectedDate.Year.ToString() If selectedDate.Month < 10 Then : d = "0" & selectedDate.Month.ToString() Else : d = selectedDate.Month.ToString() End If If selectedDate.Day < 10 Then : f = "0" & selectedDate.Day.ToString() Else : f = selectedDate.Day.ToString() End If If NUM1 < 10 Then : 新流水1 = "Z" & y & d & f & "00" & NUM1 ElseIf NUM1 > 9 And NUM1 < 100 Then : 新流水1 = "Z" & y & d & f & "0" & NUM1 ElseIf NUM1 > 99 Then : 新流水1 = "Z" & y & d & f & NUM1 End If : PA19 = 新流水1 SQL_物料入庫系統_查詢入庫明細流水號() If dr.Read() Then : conn.Close() : Else : conn.Close() : NUM1 = 999 : End If Next End Sub Private Sub 刪除選中的一筆資料_bt_Click(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料_bt.Click If 流水號_tb.Text = "" Then MsgBox("未選擇需要刪除的資料。") Else Dim NUM1, NUM2 As Integer PA5 = 明細表_dgv.Rows(index).Cells("料號").Value.ToString Dim cost As Decimal = Convert.ToDecimal(明細表_dgv.Rows(index).Cells("成本").Value) Dim integerCost As Integer = CInt(Math.Floor(cost)) If integerCost = 0 Then PA8 = 明細表_dgv.Rows(index).Cells("申請人").Value.ToString : PA9 = 明細表_dgv.Rows(index).Cells("申請日期").Value.ToString PA10 = 明細表_dgv.Rows(index).Cells("入庫數量").Value.ToString Dim ST As Double = 明細表_dgv.Rows(index).Cells("單價").Value PA11 = ST.ToString("F2") SQL_物料入庫系統_刪除明細表1() : conn.Close() End If SQL_物料入庫系統_刪除明細表() : conn.Close() Set_清單2() : MsgBox("刪除成功。") : 流水號_tb.Text = "" End If End Sub Private Sub 申請_bt_Click(sender As Object, e As EventArgs) Handles 申請_bt.Click For i As Integer = 0 To 明細表_dgv.Rows.Count - 1 Dim NUM1 As Integer PA1 = 明細表_dgv.Rows(i).Cells("流水號").Value.ToString : PA2 = 明細表_dgv.Rows(i).Cells("入庫數量").Value.ToString PA3 = 明細表_dgv.Rows(i).Cells("單價").Value : PA4 = 明細表_dgv.Rows(i).Cells("備註").Value.ToString Dim cost As Decimal = Convert.ToDecimal(明細表_dgv.Rows(i).Cells("成本").Value) Dim integerCost As Integer = CInt(Math.Floor(cost)) SQL_物料入庫系統_修改明細表() : conn.Close() PA5 = 明細表_dgv.Rows(i).Cells("料號").Value.ToString If NUM1 + 明細表_dgv.Rows(i).Cells("入庫數量").Value < 0 Then PA46 = "0" Else PA6 = NUM1 + 明細表_dgv.Rows(i).Cells("入庫數量").Value End If If integerCost = 0 Then Set_流水號() : SQL_物料入庫系統_新增明細表1() : conn.Close() End If Next : MsgBox("儲存成功。") End Sub Private Sub 查詢_bt_MouseEnter(sender As Object, e As EventArgs) Handles 查詢_bt.MouseEnter ToolTip1.SetToolTip(Me.查詢_bt, "查詢") End Sub Private Sub 新增_bt_MouseEnter(sender As Object, e As EventArgs) Handles 收支單中新增一筆空白資料_bt.MouseEnter ToolTip1.SetToolTip(Me.收支單中新增一筆空白資料_bt, "收支單中新增一筆資料") End Sub Private Sub 修改_bt_MouseEnter(sender As Object, e As EventArgs) Handles 刪除選中的一筆資料_bt.MouseEnter ToolTip1.SetToolTip(Me.刪除選中的一筆資料_bt, "刪除選中的一筆資料") End Sub Private Sub 刪除_bt_MouseEnter(sender As Object, e As EventArgs) Handles 申請_bt.MouseEnter ToolTip1.SetToolTip(Me.申請_bt, "修改存檔") End Sub End Class