Option Strict Off Imports System.IO Public Class 樣品物料調料單核準 Private ReadOnly ds, ds1, ds2 As New DataSet Dim II As Integer Private ReadOnly QQW(11) As String Dim 已超出 As Boolean Private Sub Set_清單() 未核准_dgv.DataSource = Nothing : ds.Clear() 未核准_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 未核准_dgv.ColumnHeadersHeight = 25 未核准_dgv.AllowUserToAddRows = False SQL_清單查詢() da.Fill(ds) : 未核准_dgv.DataSource = ds.Tables(0) : conn.Close() 未核准_dgv.Columns(0).FillWeight = 110 : 未核准_dgv.Columns(1).FillWeight = 130 : 未核准_dgv.Columns(2).FillWeight = 130 : 未核准_dgv.Columns(3).FillWeight = 70 未核准_dgv.Columns(4).FillWeight = 70 未核准_dgv.Columns(5).Visible = False : 未核准_dgv.Columns(6).Visible = False : 未核准_dgv.Columns(7).Visible = False : 未核准_dgv.Columns(8).Visible = False 未核准_dgv.Columns(9).Visible = False : 未核准_dgv.Columns(10).Visible = False End Sub Private Sub Set_使用者清單() 明細_dgv.DataSource = Nothing : ds1.Clear() 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 明細_dgv.ColumnHeadersHeight = 25 明細_dgv.AllowUserToAddRows = False 明細_dgv.RowTemplate.Height = 35 SQL_明細查詢() da.Fill(ds1) : 明細_dgv.DataSource = ds1.Tables(0) : conn.Close() 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).FillWeight = 80 : 明細_dgv.Columns(2).FillWeight = 200 : 明細_dgv.Columns(3).FillWeight = 200 : 明細_dgv.Columns(4).FillWeight = 200 明細_dgv.Columns(5).FillWeight = 80 : 明細_dgv.Columns(6).FillWeight = 80 : 明細_dgv.Columns(7).FillWeight = 80 : 明細_dgv.Columns(8).FillWeight = 80 : 明細_dgv.Columns(9).FillWeight = 305 明細_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(6).DefaultCellStyle.Format = "#,##0.00" : 明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0.00" 明細_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight : 明細_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight 明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter 明細_dgv.Columns("項次").ReadOnly = True : 明細_dgv.Columns("金額").ReadOnly = True 總金額_tb.Text = "0.00" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 總金額_tb.Text = Val(總金額_tb.Text) + 明細_dgv.Rows(i).Cells("金額").Value Next i 總金額_tb.Text = Format(Val(總金額_tb.Text), "#,##0.00") End Sub Private Sub Set_清單0() 圖片編碼_dgv.DataSource = Nothing : ds2.Clear() 圖片編碼_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing 圖片編碼_dgv.ColumnHeadersHeight = 25 圖片編碼_dgv.AllowUserToAddRows = False SQL_圖片流水號() da.Fill(ds2) : 圖片編碼_dgv.DataSource = ds2.Tables(0) : conn.Close() 圖片編碼_dgv.Columns(0).FillWeight = 173 : 圖片編碼_dgv.Columns(1).Visible = False End Sub Private Sub ComboBox1下拉表單資料載入() SQL_廠商表單() 供應商_cb.Items.Clear() : 供應商編碼_cb.Items.Clear() While (dr.Read()) : 供應商_cb.Items.Add(dr("廠商")) : 供應商編碼_cb.Items.Add(dr("供應商編碼")) : End While : conn.Close() End Sub Private Sub ComboBox3下拉表單資料載入() SQL_使用者表() 發件人_cb.Items.Clear() : 提取人_cb.Items.Clear() While (dr.Read()) : 發件人_cb.Items.Add(dr("姓名")) : 提取人_cb.Items.Add(dr("姓名")) : End While : conn.Close() End Sub Private Sub ComboBox5下拉表單資料載入() SQL_年份清單() 年份_cb.Items.Clear() : While (dr.Read()) : 年份_cb.Items.Add(dr("年份")) : End While : conn.Close() End Sub Private Sub ComboBox7下拉表單資料載入() SQL_客戶表() FOR_tb.Items.Clear() : While (dr.Read()) : FOR_tb.Items.Add(dr("客戶簡稱")) : End While : conn.Close() End Sub Private Sub Set_日期格式轉換() DTP = Format(日期_dtp.Value, "yyyy/MM/dd") : DTP1 = Format(Today(), "yyyyMMdd") End Sub Private Sub 樣品物料調料單核準_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.MdiParent = WINPROFIT_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True Set_清單() : Set_清單0() : ComboBox1下拉表單資料載入() : ComboBox3下拉表單資料載入() : ComboBox5下拉表單資料載入() : ComboBox7下拉表單資料載入() 核准_bt.Enabled = False : 刪除_bt.Enabled = False : 樣品物料調料單單號_tb.Enabled = False End Sub Private Sub DataGridView1_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.ToString : 核准_bt.Enabled = True : 刪除_bt.Enabled = True 供應商編碼_cb.Text = 未核准_dgv.Rows(e.RowIndex).Cells("供應商編號").Value : 發件人_cb.Text = 未核准_dgv.Rows(e.RowIndex).Cells("發件人").Value 提取人_cb.Text = 未核准_dgv.Rows(e.RowIndex).Cells("收件人").Value : 日期_dtp.Value = 未核准_dgv.Rows(e.RowIndex).Cells("日期").Value 制表人_tb.Text = 未核准_dgv.Rows(e.RowIndex).Cells("制表人").Value : FOR_tb.Text = 未核准_dgv.Rows(e.RowIndex).Cells("客戶").Value 年份_cb.Text = 未核准_dgv.Rows(e.RowIndex).Cells("SHOW年").Value : 月份_cb.Text = 未核准_dgv.Rows(e.RowIndex).Cells("SHOW月").Value Set_使用者清單() End If End Sub Private Sub 轉換() If QQW(II) = "1" Then : QQW(II) = "A" : ElseIf QQW(II) = "2" Then : QQW(II) = "B" : ElseIf QQW(II) = "3" Then : QQW(II) = "C" : ElseIf QQW(II) = "4" Then : QQW(II) = "D" ElseIf QQW(II) = "5" Then : QQW(II) = "E" : ElseIf QQW(II) = "6" Then : QQW(II) = "F" : ElseIf QQW(II) = "7" Then : QQW(II) = "G" : ElseIf QQW(II) = "8" Then : QQW(II) = "H" ElseIf QQW(II) = "9" Then : QQW(II) = "I" : ElseIf QQW(II) = "0" Then : QQW(II) = "J" End If End Sub Public Sub Delay(ByRef Interval As Double) 'Interval单位为毫秒 Dim time As DateTime = DateTime.Now : Dim Span As Double = Interval * 1234 : While ((DateTime.Now.Ticks - time.Ticks) < Span) : Application.DoEvents() : End While End Sub Private Sub DataGridView3_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 圖片編碼_dgv.CellClick 圖片編碼_tb.Text = 圖片編碼_dgv(0, e.RowIndex).Value.ToString SQL_簽名檔圖片() While dr.Read() = True Dim bytes As Byte() = New Byte(-1) {} bytes = DirectCast(dr.Item("簽名檔圖片"), Byte()) Dim oStream As New MemoryStream(bytes) PictureBox1.Image = Bitmap.FromStream(oStream) End While conn.Close() PictureBox1.SizeMode = 4 For QAZ = 0 To 999 QQW(0) = Strings.Right(圖片編碼_dgv(0, e.RowIndex).Value.ToString, 2) : QQW(1) = Strings.Right(Year(Today), 2) : QQW(2) = Strings.Left(Year(Today), 2) : QQW(3) = Month(Today) + 9 QQW(4) = Strings.Right(QQW(0), 1) : QQW(5) = Strings.Left(QQW(0), 1) : QQW(6) = Strings.Right(QQW(1), 1) : QQW(7) = Strings.Left(QQW(1), 1) : QQW(8) = Strings.Right(QQW(2), 1) QQW(9) = Strings.Left(QQW(2), 1) : QQW(10) = Strings.Right(QQW(3), 1) : QQW(11) = Strings.Left(QQW(3), 1) For RT = 4 To 11 Delay(3) Dim NUM1 As Integer : Dim ran = New Random(DateTime.Now.Millisecond) : NUM1 = ran.Next(1, 4096) For I = 0 To 4096 : If NUM1 > 9 Then : NUM1 -= 9 : ElseIf NUM1 < 9 Then : I = 4096 : End If : Next If NUM1 = 1 Then : II = RT : 轉換() : ElseIf NUM1 = 2 Then : II = RT : 轉換() : ElseIf NUM1 = 3 Then : ElseIf NUM1 = 4 Then : II = RT : 轉換() : ElseIf NUM1 = 5 Then ElseIf NUM1 = 6 Then : II = RT : 轉換() : ElseIf NUM1 = 7 Then : ElseIf NUM1 = 8 Then : II = RT : 轉換() : ElseIf NUM1 = 9 Then : II = RT : 轉換() : End If Next Dim NUM2 As Integer : Dim ran1 = New Random(DateTime.Now.Millisecond) : NUM2 = ran1.Next(1, 4096) For I = 0 To 4096 : If NUM2 > 99 Then : NUM2 -= 49 : ElseIf NUM2 < 99 Then : I = 4096 : End If : Next 驗證碼_tb.Text = QQW(11) & "2" & QQW(9) & "7" & QQW(7) & "0" & QQW(5) & QQW(4) & "1" & QQW(6) & "3" & QQW(8) & "9" & QQW(10) & NUM2 SQL_填入驗證碼() If dr.Read() = True Then : Else : QAZ = 999 : End If : conn.Close() Next End Sub Private Sub DataGridView2_CellContentClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 明細_dgv.CellEndEdit 總金額_tb.Text = "0.00" For i As Integer = 0 To 明細_dgv.Rows.Count - 1 明細_dgv.Rows(i).Cells("金額").Value = Val(明細_dgv.Rows(i).Cells("數量").Value) * Val(明細_dgv.Rows(i).Cells("單價").Value) 總金額_tb.Text = Val(總金額_tb.Text) + 明細_dgv.Rows(i).Cells("金額").Value Next i 總金額_tb.Text = Format(Val(總金額_tb.Text), "#,##0.00") End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 供應商_cb.SelectedIndexChanged 供應商編碼_cb.SelectedIndex = 供應商_cb.SelectedIndex End Sub Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 供應商編碼_cb.SelectedIndexChanged 供應商_cb.SelectedIndex = 供應商編碼_cb.SelectedIndex SQL_聯繫人() If dr.Read() Then : 供應商公司全稱_tb.Text = dr("公司名") : 供應商聯繫人_tb.Text = dr("聯繫人1") : 供應商公司電話_tb.Text = dr("公司電話1") : End If conn.Close() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 核准_bt.Click If 圖片編碼_tb.Text = "" Or 驗證碼_tb.Text = "" Then MsgBox("未點選圖檔編碼") Else SQL_更改核准簽名() : conn.Close() Set_清單() : MsgBox("核准成功") End If End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 刪除_bt.Click Dim aa As MsgBoxResult aa = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel) If aa = MsgBoxResult.Ok Then SQL_刪除樣品物料調料單抬頭1() : conn.Close() SQL_刪除樣品物料調料單明細1() : conn.Close() 樣品物料調料單單號_tb.Text = "" : 供應商公司全稱_tb.Text = "" : 供應商聯繫人_tb.Text = "" : 供應商公司電話_tb.Text = "" ComboBox1下拉表單資料載入() : ComboBox3下拉表單資料載入() : ComboBox5下拉表單資料載入() : ComboBox7下拉表單資料載入() 明細_dgv.DataSource = Nothing : ds1.Clear() Set_清單() 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 已超出 = False End If If 明細_dgv.SelectedCells.Count > 0 Then '設定滑鼠點擊DGV時候的範圍,超出範圍時有可能不是數字所以不計算 If 明細_dgv.SelectedCells(0).ColumnIndex = 6 Or 明細_dgv.SelectedCells(0).ColumnIndex = 8 Then If 已超出 = False Then Dim x As Double = 0 For i As Integer = 0 To 明細_dgv.SelectedCells.Count - 1 '明細_dgv.SelectedCells.Item(i).ColumnIndex + 8 是因為該DGV顯示項與計算像剛好差8格,使用時要注意可直接計算的不需要加數字。 x += Val(明細_dgv.Rows(明細_dgv.SelectedCells.Item(i).RowIndex).Cells(明細_dgv.SelectedCells.Item(i).ColumnIndex).Value) Next i '將計算好的資料放置到指定的控件中 WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(x, "#,##0") Else WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") End If Else 已超出 = True WINPROFIT_ERP_SYS.合計_TSSL.Text = "合計 : " & Strings.Format(0, "#,##0") End If End If End Sub End Class