Ingen beskrivning
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

盤盈盤損控制表.vb 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. Option Strict Off
  2. Public Class 盤盈盤損控制表
  3. ReadOnly ds2 As New DataSet
  4. Dim EDR As Integer = 0 : Dim ESTR As String
  5. Private Sub Set_清單()
  6. 盤盈損清單_dgv.DataSource = Nothing : ds2.Clear()
  7. 盤盈損清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  8. 盤盈損清單_dgv.ColumnHeadersHeight = 40
  9. 盤盈損清單_dgv.AllowUserToAddRows = False
  10. SQL_盤盈盤損控制表清單()
  11. da.Fill(ds2) : 盤盈損清單_dgv.DataSource = ds2.Tables(0) : conn.Close()
  12. 盤盈損清單_dgv.Columns(0).FillWeight = 100 : 盤盈損清單_dgv.Columns(1).Visible = False : 盤盈損清單_dgv.Columns(2).FillWeight = 100 : 盤盈損清單_dgv.Columns(3).FillWeight = 300
  13. 盤盈損清單_dgv.Columns(4).FillWeight = 150 : 盤盈損清單_dgv.Columns(5).FillWeight = 150 : 盤盈損清單_dgv.Columns(6).FillWeight = 100 : 盤盈損清單_dgv.Columns(7).FillWeight = 100
  14. 盤盈損清單_dgv.Columns(8).FillWeight = 100 : 盤盈損清單_dgv.Columns(9).FillWeight = 100 : 盤盈損清單_dgv.Columns(10).FillWeight = 100 : 盤盈損清單_dgv.Columns(11).FillWeight = 100
  15. 盤盈損清單_dgv.Columns(6).DefaultCellStyle.Format = "#,##0" : 盤盈損清單_dgv.Columns(7).DefaultCellStyle.Format = "#,##0" : 盤盈損清單_dgv.Columns(8).DefaultCellStyle.Format = "#,##0"
  16. 盤盈損清單_dgv.Columns(9).DefaultCellStyle.Format = "#,##0"
  17. 盤盈損清單_dgv.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 盤盈損清單_dgv.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  18. 盤盈損清單_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 盤盈損清單_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  19. 盤盈損清單_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 盤盈損清單_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  20. 盤盈損清單_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 盤盈損清單_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  21. 盤盈損清單_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 盤盈損清單_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  22. 盤盈損清單_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 盤盈損清單_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  23. 盤盈損清單_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 盤盈損清單_dgv.Columns(11).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  24. 盤盈損清單_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  25. 盤盈損清單_dgv.Columns(0).ReadOnly = True : 盤盈損清單_dgv.Columns(3).ReadOnly = True : 盤盈損清單_dgv.Columns(4).ReadOnly = True : 盤盈損清單_dgv.Columns(5).ReadOnly = True
  26. 盤盈損清單_dgv.Columns(9).ReadOnly = True : 盤盈損清單_dgv.Columns(10).ReadOnly = True : 盤盈損清單_dgv.Columns(2).ReadOnly = True : 盤盈損清單_dgv.Columns(11).ReadOnly = True
  27. For i As Integer = 0 To 盤盈損清單_dgv.Rows.Count - 1
  28. If 盤盈損清單_dgv.Rows(i).Cells("庫存").Value.ToString = "" Then : 盤盈損清單_dgv.Rows(i).Cells("庫存").Value = 0 : End If
  29. If 盤盈損清單_dgv.Rows(i).Cells("加權成本_台幣").Value.ToString = "" Then : 盤盈損清單_dgv.Rows(i).Cells("加權成本_台幣").Value = 0 : End If
  30. 盤盈損清單_dgv.Rows(i).Cells("盤盈數量").Value = 0 : 盤盈損清單_dgv.Rows(i).Cells("盤損數量").Value = 0 : 盤盈損清單_dgv.Rows(i).Cells("狀態").Value = ""
  31. Next
  32. End Sub
  33. Private Sub ComboBox2下拉表單資料載入()
  34. SQL_倉名下拉清單()
  35. 明細表_dgv.Items.Clear() : While (dr.Read()) : 明細表_dgv.Items.Add(dr("倉名")) : End While : conn.Close()
  36. End Sub
  37. Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 明細表_dgv.SelectedIndexChanged
  38. PA = 明細表_dgv.Text : SQL_倉名編號取得()
  39. If dr.Read() Then : 倉庫編號_tb.Text = dr("倉名編號") : End If : conn.Close() : Set_清單()
  40. End Sub
  41. Private Sub 盤盈盤損控制表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  42. Me.MdiParent = MAOJI_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  43. ComboBox2下拉表單資料載入() : 明細表_dgv.SelectedIndex = 0
  44. End Sub
  45. Private Sub DataGridView3_CellContentCl(sender As Object, e As DataGridViewCellEventArgs) Handles 盤盈損清單_dgv.CellEndEdit
  46. If Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤盈數量").Value) = 0 And Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤損數量").Value) = 0 Then : Else
  47. If Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("加權成本_台幣").Value) = 0 Then
  48. MsgBox("所選擇的料號系統中無交易紀錄,如需修改盤盈損數量,請先給予成本金額")
  49. 盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤盈數量").Value = 0 : 盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤損數量").Value = 0 : 盤盈損清單_dgv.Rows(e.RowIndex).Cells("狀態").Value = ""
  50. Exit Sub
  51. End If
  52. If Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("庫存").Value) < Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤損數量").Value) Then
  53. MsgBox("盤損數量不可能大於庫存數量")
  54. 盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤盈數量").Value = 0 : 盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤損數量").Value = 0 : 盤盈損清單_dgv.Rows(e.RowIndex).Cells("狀態").Value = ""
  55. Exit Sub
  56. End If
  57. If Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤盈數量").Value) > 0 And Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤損數量").Value) > 0 Then
  58. MsgBox("盤盈與盤損只可能存在一個")
  59. 盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤盈數量").Value = 0 : 盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤損數量").Value = 0 : 盤盈損清單_dgv.Rows(e.RowIndex).Cells("狀態").Value = ""
  60. Exit Sub
  61. End If
  62. If Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤盈數量").Value) > 0 Then : 盤盈損清單_dgv.Rows(e.RowIndex).Cells("狀態").Value = "盤盈入庫"
  63. ElseIf Val(盤盈損清單_dgv.Rows(e.RowIndex).Cells("盤損數量").Value) > 0 Then : 盤盈損清單_dgv.Rows(e.RowIndex).Cells("狀態").Value = "盤損出庫"
  64. End If
  65. End If
  66. End Sub
  67. Private Sub DataGridView3_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 盤盈損清單_dgv.RowPostPaint
  68. Dim linePen As New Pen(Color.Blue, 2)
  69. If e.RowIndex = 盤盈損清單_dgv.Rows.Count - 1 Then : Exit Sub
  70. Else
  71. If 盤盈損清單_dgv(0, e.RowIndex).Value.ToString <> 盤盈損清單_dgv(0, e.RowIndex + 1).Value.ToString Then
  72. Dim startX As Integer = IIf(盤盈損清單_dgv.RowHeadersVisible, 盤盈損清單_dgv.RowHeadersWidth, 0)
  73. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  74. Dim endX As Integer = startX + 盤盈損清單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 盤盈損清單_dgv.HorizontalScrollingOffset
  75. e.Graphics.DrawLine(linePen, startX, startY, endX, startY) : Exit Sub
  76. End If
  77. End If
  78. End Sub
  79. Private Sub Set_日期格式轉換()
  80. If 單據號碼_tb.Text = "" Then
  81. If 非當天日期_ch.Checked = False Then
  82. DTP = Format(Today(), "yyyy/MM/dd") : DTP1 = Format(Today(), "yyyyMMdd") : DTP2 = Format(調整日期_dtp.Value, "yyyy/MM/dd")
  83. Else
  84. DTP = Format(調整日期_dtp.Value, "yyyy/MM/dd") : DTP1 = Format(調整日期_dtp.Value, "yyyyMMdd") : DTP2 = Format(調整日期_dtp.Value, "yyyy/MM/dd")
  85. End If
  86. Else
  87. DTP = Format(調整日期_dtp.Value, "yyyy/MM/dd") : DTP1 = Format(調整日期_dtp.Value, "yyyyMMdd") : DTP2 = Format(調整日期_dtp.Value, "yyyy/MM/dd")
  88. End If
  89. End Sub
  90. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 開盤盈損單_bt.Click
  91. '----------------------自动生成單據編號-------------------------------------------------------------------------
  92. Dim NUM1 As Integer : Set_日期格式轉換()
  93. For i As Integer = 1 To 999
  94. NUM1 = 0 + i
  95. If NUM1 < 10 Then : 單據號碼_tb.Text = "WD-" & DTP1 & "-00" & NUM1
  96. ElseIf NUM1 > 9 And NUM1 < 100 Then : 單據號碼_tb.Text = "WD-" & DTP1 & "-0" & NUM1
  97. ElseIf NUM1 > 99 Then : 單據號碼_tb.Text = "WD-" & DTP1 & "-" & NUM1 : End If
  98. PA1 = 單據號碼_tb.Text : SQL_倉儲明細表生成單據編號()
  99. If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  100. Next
  101. For i As Integer = 0 To 盤盈損清單_dgv.Rows.Count - 1
  102. 資料數 = 盤盈損清單_dgv.Rows.Count : MyModule1.進度條()
  103. If 盤盈損清單_dgv.Rows(i).Cells("狀態").Value = "" Then : Else
  104. SQL_倉儲明細表流水號最後一筆()
  105. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("資料流水號").ToString, 8)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1
  106. If EDR < 10 Then : ESTR = "WD" & "0000000" & EDR
  107. ElseIf EDR > 9 And EDR < 100 Then : ESTR = "WD" & "000000" & EDR
  108. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "WD" & "00000" & EDR
  109. ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "WD" & "0000" & EDR
  110. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "WD" & "000" & EDR
  111. ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "WD" & "00" & EDR
  112. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "WD" & "0" & EDR
  113. ElseIf EDR > 9999999 Then : ESTR = "WD" & EDR : End If
  114. If 盤盈損清單_dgv.Rows(i).Cells("狀態").Value = "盤損出庫" Then
  115. PA1 = ESTR : PA2 = 單據號碼_tb.Text : PA3 = "FI00000000" : PA4 = 盤盈損清單_dgv.Rows(i).Cells("料號").Value : NU1 = 盤盈損清單_dgv.Rows(i).Cells("加權成本_台幣").Value : NU2 = 1
  116. NU3 = 0 : NU4 = 盤盈損清單_dgv.Rows(i).Cells("盤損數量").Value : PA5 = "盤損出庫" : PA6 = DTP : PA7 = "" : NU5 = 0 : PA8 = 倉庫編號_tb.Text : PA9 = DTP2
  117. SQL_倉儲明細表新增() : conn.Close()
  118. ElseIf 盤盈損清單_dgv.Rows(i).Cells("狀態").Value = "盤盈入庫" Then
  119. PA1 = 盤盈損清單_dgv.Rows(i).Cells("料號").Value : SQL_物料資料庫成本查詢()
  120. If dr.Read() Then
  121. If dr("成本") = 0 Then : NU1 = 盤盈損清單_dgv.Rows(i).Cells("加權成本_台幣").Value : PA1 = 盤盈損清單_dgv.Rows(i).Cells("料號").Value : SQL_物料資料庫成本修改() : conn.Close()
  122. Else : conn.Close() : End If
  123. End If
  124. PA1 = ESTR : PA2 = 單據號碼_tb.Text : PA3 = "FI00000000" : PA4 = 盤盈損清單_dgv.Rows(i).Cells("料號").Value : NU1 = 盤盈損清單_dgv.Rows(i).Cells("加權成本_台幣").Value : NU2 = 1
  125. NU3 = 盤盈損清單_dgv.Rows(i).Cells("盤盈數量").Value : NU4 = 0 : PA5 = "盤盈入庫" : PA6 = DTP : PA7 = "" : NU5 = 0 : PA8 = 倉庫編號_tb.Text : PA9 = DTP2
  126. SQL_倉儲明細表新增() : conn.Close()
  127. End If
  128. End If
  129. Next : MAOJI_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0 : MsgBox("盤盈損單據開立完成,請到盤盈損單據確認區域確認單據正確與否,並完成出存調整。")
  130. End Sub
  131. End Class