No Description
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 38KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. Option Strict Off
  2. Public Class 出貨單申請
  3. ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet : ReadOnly ds2 As New DataSet
  4. Dim EDR As Integer = 0 : Dim ESTR As String : Dim HHJJ As String
  5. Private Sub Set_清單()
  6. 庫存_dgv.DataSource = Nothing : ds.Clear()
  7. 庫存_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  8. 庫存_dgv.ColumnHeadersHeight = 40
  9. 庫存_dgv.AllowUserToAddRows = False
  10. 庫存_dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
  11. 庫存_dgv.MultiSelect = True
  12. SQL_出貨單申請清單()
  13. da.Fill(ds) : 庫存_dgv.DataSource = ds.Tables(0) : conn.Close()
  14. 庫存_dgv.Columns(0).FillWeight = 130 : 庫存_dgv.Columns(1).Visible = False : 庫存_dgv.Columns(2).Visible = False : 庫存_dgv.Columns(3).FillWeight = 350
  15. 庫存_dgv.Columns(4).Visible = False : 庫存_dgv.Columns(5).Visible = False : 庫存_dgv.Columns(6).Visible = False : 庫存_dgv.Columns(7).FillWeight = 85
  16. 庫存_dgv.Columns(8).Visible = False : 庫存_dgv.Columns(9).FillWeight = 85 : 庫存_dgv.Columns(10).Visible = False : 庫存_dgv.Columns(11).FillWeight = 90
  17. 庫存_dgv.Columns(12).Visible = False : 庫存_dgv.Columns(13).FillWeight = 90 : 庫存_dgv.Columns(14).Visible = False
  18. 庫存_dgv.Columns(6).DefaultCellStyle.Format = "#,##0" : 庫存_dgv.Columns(7).DefaultCellStyle.Format = "#,##0" : 庫存_dgv.Columns(8).DefaultCellStyle.Format = "#,##0"
  19. 庫存_dgv.Columns(9).DefaultCellStyle.Format = "#,##0" : 庫存_dgv.Columns(10).DefaultCellStyle.Format = "#,##0" : 庫存_dgv.Columns(11).DefaultCellStyle.Format = "#,##0"
  20. 庫存_dgv.Columns(12).DefaultCellStyle.Format = "#,##0" : 庫存_dgv.Columns(13).DefaultCellStyle.Format = "#,##0"
  21. 庫存_dgv.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  22. 庫存_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  23. 庫存_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  24. 庫存_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  25. 庫存_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  26. 庫存_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  27. 庫存_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(11).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  28. 庫存_dgv.Columns(12).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(12).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  29. 庫存_dgv.Columns(13).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 庫存_dgv.Columns(13).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  30. 庫存_dgv.Columns(0).ReadOnly = True : 庫存_dgv.Columns(3).ReadOnly = True : 庫存_dgv.Columns(4).ReadOnly = True : 庫存_dgv.Columns(5).ReadOnly = True
  31. 庫存_dgv.Columns(6).ReadOnly = True : 庫存_dgv.Columns(7).ReadOnly = True : 庫存_dgv.Columns(8).ReadOnly = True : 庫存_dgv.Columns(9).ReadOnly = True
  32. 庫存_dgv.Columns(10).ReadOnly = True : 庫存_dgv.Columns(11).ReadOnly = True : 庫存_dgv.Columns(12).ReadOnly = True : 庫存_dgv.Columns(13).ReadOnly = True
  33. 庫存_dgv.Columns(7).DefaultCellStyle.BackColor = Color.MistyRose : 庫存_dgv.Columns(8).DefaultCellStyle.BackColor = Color.MistyRose
  34. 庫存_dgv.Columns(9).DefaultCellStyle.BackColor = Color.LightYellow : 庫存_dgv.Columns(10).DefaultCellStyle.BackColor = Color.LightYellow
  35. 庫存_dgv.Columns(11).DefaultCellStyle.BackColor = Color.LightGreen : 庫存_dgv.Columns(12).DefaultCellStyle.BackColor = Color.LightGreen
  36. For i As Integer = 0 To 庫存_dgv.Rows.Count - 1
  37. If 庫存_dgv.Rows(i).Cells("未入庫").Value.ToString = "" Then : 庫存_dgv.Rows(i).Cells("未入庫").Value = 0 : End If
  38. If 庫存_dgv.Rows(i).Cells("在途成本_台幣").Value.ToString = "" Then : 庫存_dgv.Rows(i).Cells("在途成本_台幣").Value = 0 : End If
  39. If 庫存_dgv.Rows(i).Cells("未出庫").Value.ToString = "" Then : 庫存_dgv.Rows(i).Cells("未出庫").Value = 0 : End If
  40. If 庫存_dgv.Rows(i).Cells("備貨成本_台幣").Value.ToString = "" Then : 庫存_dgv.Rows(i).Cells("備貨成本_台幣").Value = 0 : End If
  41. 庫存_dgv.Rows(i).Cells("可領用").Value = 庫存_dgv.Rows(i).Cells("庫存").Value + 庫存_dgv.Rows(i).Cells("未入庫").Value - 庫存_dgv.Rows(i).Cells("未出庫").Value
  42. Next
  43. 供應商編號_tb.Text = "" : 料號_tb.Text = "" : 可出庫_tb.Text = "0" : 申請數_nud.Value = 0
  44. End Sub
  45. Private Sub Set_銷售清單()
  46. 彙總_dgv.DataSource = Nothing : ds1.Clear()
  47. 彙總_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  48. 彙總_dgv.ColumnHeadersHeight = 25
  49. 彙總_dgv.AllowUserToAddRows = False
  50. 彙總_dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
  51. 彙總_dgv.MultiSelect = True
  52. SQL_出貨單申請_彙總()
  53. da.Fill(ds1) : 彙總_dgv.DataSource = ds1.Tables(0) : conn.Close()
  54. 彙總_dgv.Columns(0).FillWeight = 150 : 彙總_dgv.Columns(1).FillWeight = 90 : 彙總_dgv.Columns(2).Visible = False : 彙總_dgv.Columns(3).FillWeight = 100
  55. 彙總_dgv.Columns(4).FillWeight = 80 : 彙總_dgv.Columns(5).FillWeight = 90 : 彙總_dgv.Columns(6).Visible = False : 彙總_dgv.Columns(7).Visible = False
  56. 彙總_dgv.Columns(8).Visible = False : 彙總_dgv.Columns(9).Visible = False
  57. For i As Integer = 0 To 彙總_dgv.Rows.Count - 1
  58. If 彙總_dgv.Rows(i).Cells("業務比例").Value.ToString = "" Then : 彙總_dgv.Rows(i).Cells("業務比例").Value = 0 : End If
  59. If 彙總_dgv.Rows(i).Cells("司機比例").Value.ToString = "" Then : 彙總_dgv.Rows(i).Cells("司機比例").Value = 0 : End If
  60. Next
  61. End Sub
  62. Private Sub Set_單據明細()
  63. 明細_dgv.DataSource = Nothing : ds2.Clear()
  64. 明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  65. 明細_dgv.ColumnHeadersHeight = 25
  66. 明細_dgv.AllowUserToAddRows = False
  67. 明細_dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText
  68. 明細_dgv.MultiSelect = True
  69. SQL_出貨單申請_清單()
  70. da.Fill(ds2) : 明細_dgv.DataSource = ds2.Tables(0) : conn.Close()
  71. 明細_dgv.Columns(6).DefaultCellStyle.Format = "#,##0" : 明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0"
  72. 明細_dgv.Columns(8).DefaultCellStyle.Format = "#,##0.0000" : 明細_dgv.Columns(9).DefaultCellStyle.Format = "#,##0" : 明細_dgv.Columns(10).DefaultCellStyle.Format = "#,##0"
  73. 明細_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  74. 明細_dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  75. 明細_dgv.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(6).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  76. 明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(7).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  77. 明細_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(8).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  78. 明細_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  79. 明細_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  80. 明細_dgv.Columns(12).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(12).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  81. 明細_dgv.Columns(13).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 明細_dgv.Columns(13).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  82. 明細_dgv.Columns(0).Visible = False : 明細_dgv.Columns(1).FillWeight = 30 : 明細_dgv.Columns(2).FillWeight = 80 : 明細_dgv.Columns(3).FillWeight = 150
  83. 明細_dgv.Columns(4).FillWeight = 80 : 明細_dgv.Columns(5).FillWeight = 80 : 明細_dgv.Columns(6).FillWeight = 50 : 明細_dgv.Columns(7).FillWeight = 50
  84. 明細_dgv.Columns(8).Visible = False : 明細_dgv.Columns(9).Visible = False : 明細_dgv.Columns(10).Visible = False : 明細_dgv.Columns(11).FillWeight = 100
  85. 明細_dgv.Columns(12).FillWeight = 80 : 明細_dgv.Columns(13).FillWeight = 50 : 明細_dgv.Columns(14).Visible = False
  86. 明細_dgv.EditMode = DataGridViewEditMode.EditOnEnter
  87. 明細_dgv.Columns(1).ReadOnly = True : 明細_dgv.Columns(2).ReadOnly = True : 明細_dgv.Columns(3).ReadOnly = True : 明細_dgv.Columns(4).ReadOnly = True
  88. 明細_dgv.Columns(5).ReadOnly = True : 明細_dgv.Columns(6).ReadOnly = True : 明細_dgv.Columns(8).ReadOnly = True : 明細_dgv.Columns(9).ReadOnly = True
  89. 明細_dgv.Columns(10).ReadOnly = True : 明細_dgv.Columns(12).ReadOnly = True
  90. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  91. 明細_dgv(1, i).Value = i + 1
  92. Next
  93. End Sub
  94. Private Sub ComboBox1下拉表單資料載入()
  95. SQL_物料頁碼清單()
  96. 頁碼_cb.Items.Clear() : While (dr.Read()) : 頁碼_cb.Items.Add(dr("頁碼")) : End While : conn.Close()
  97. End Sub
  98. Private Sub ComboBox2下拉表單資料載入()
  99. SQL_客戶資料表_下拉清單讀取()
  100. 客戶_cb.Items.Clear() : 客戶編號_cb.Items.Clear() : While (dr.Read()) : 客戶_cb.Items.Add(dr("簡稱")) : 客戶編號_cb.Items.Add(dr("編號")) : End While : conn.Close()
  101. End Sub
  102. Private Sub ComboBox5下拉表單資料載入()
  103. SQL_倉名下拉清單()
  104. 指定倉處_cb.Items.Clear() : While (dr.Read()) : 指定倉處_cb.Items.Add(dr("倉名")) : End While : conn.Close()
  105. End Sub
  106. Private Sub ComboBox6下拉表單資料載入()
  107. SQL_員工名稱下拉清單()
  108. 業務_cb.Items.Clear() : 司機_cb.Items.Clear() : While (dr.Read()) : 業務_cb.Items.Add(dr("名稱")) : 司機_cb.Items.Add(dr("名稱")) : End While : conn.Close()
  109. End Sub
  110. Private Sub ComboBox7下拉表單資料載入()
  111. SQL_傭金比例下拉清單()
  112. 業務比例_cb.Items.Clear() : 司機比例_cb.Items.Clear()
  113. While (dr.Read()) : 業務比例_cb.Items.Add(Format(dr("比例"), "#,##0.0")) : 司機比例_cb.Items.Add(Format(dr("比例"), "#,##0.0")) : End While : conn.Close()
  114. End Sub
  115. Private Sub ComboBox5_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 指定倉處_cb.SelectedIndexChanged
  116. PA = 指定倉處_cb.Text : SQL_倉名編號取得()
  117. If dr.Read() Then : 倉庫編號_tb.Text = dr("倉名編號") : End If : conn.Close() : Set_清單()
  118. End Sub
  119. Private Sub 出貨單申請_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  120. Me.MdiParent = MAOJI_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  121. 依供應商排序_ch.Checked = True : 料號_tb.Enabled = False : 供應商編號_tb.Enabled = False : 可出庫_tb.Enabled = False : 單據編號_tb.Enabled = False : 選擇_tb.Enabled = False
  122. 未完全出貨的單據_rb.Checked = True : 加權成本_台幣_tb.Visible = False : 客戶編號_cb.Visible = False : 單據狀態_cb.SelectedIndex = 0 : 狀態_tb.Visible = False : 付款方式_tb.Enabled = False
  123. ComboBox5下拉表單資料載入() : ComboBox1下拉表單資料載入() : ComboBox2下拉表單資料載入() : ComboBox6下拉表單資料載入() : ComboBox7下拉表單資料載入() : Set_銷售清單()
  124. 指定倉處_cb.SelectedIndex = 0
  125. End Sub
  126. Private Sub 出貨單申請_Closed(sender As Object, e As EventArgs) Handles MyBase.Closed
  127. If 明細_dgv.Rows.Count = 0 And 零售_ch.Checked = True Then
  128. SQL_出貨單申請_零售客戶記錄表刪除() : conn.Close()
  129. End If
  130. End Sub
  131. Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 庫存_dgv.CellClick
  132. If e.RowIndex = -1 Then : Else
  133. 供應商編號_tb.Text = 庫存_dgv.Rows(e.RowIndex).Cells("供應商編號").Value.ToString : 料號_tb.Text = 庫存_dgv.Rows(e.RowIndex).Cells("料號").Value.ToString
  134. 加權成本_台幣_tb.Text = 庫存_dgv.Rows(e.RowIndex).Cells("加權成本_台幣").Value.ToString : 歷史售價_tb.Text = 庫存_dgv.Rows(e.RowIndex).Cells("售價").Value.ToString
  135. 可出庫_tb.Text = Format(庫存_dgv.Rows(e.RowIndex).Cells("庫存").Value - 庫存_dgv.Rows(e.RowIndex).Cells("未出庫").Value, "#,##0")
  136. 歷史售價_tb.Text = Format(Val(歷史售價_tb.Text), "#,##0")
  137. End If
  138. End Sub
  139. Private Sub DataGridView1_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 庫存_dgv.RowPostPaint
  140. Dim linePen As New Pen(Color.Blue, 2)
  141. If e.RowIndex = 庫存_dgv.Rows.Count - 1 Then : Exit Sub
  142. Else
  143. If 依供應商排序_ch.Checked = True Then
  144. If 庫存_dgv(0, e.RowIndex).Value.ToString <> 庫存_dgv(0, e.RowIndex + 1).Value.ToString Then
  145. Dim startX As Integer = IIf(庫存_dgv.RowHeadersVisible, 庫存_dgv.RowHeadersWidth, 0)
  146. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  147. Dim endX As Integer = startX + 庫存_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 庫存_dgv.HorizontalScrollingOffset
  148. e.Graphics.DrawLine(linePen, startX, startY, endX, startY) : Exit Sub
  149. End If
  150. Else
  151. If 庫存_dgv(2, e.RowIndex).Value.ToString <> 庫存_dgv(2, e.RowIndex + 1).Value.ToString Then
  152. Dim startX As Integer = IIf(庫存_dgv.RowHeadersVisible, 庫存_dgv.RowHeadersWidth, 0)
  153. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  154. Dim endX As Integer = startX + 庫存_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 庫存_dgv.HorizontalScrollingOffset
  155. e.Graphics.DrawLine(linePen, startX, startY, endX, startY) : Exit Sub
  156. End If
  157. End If
  158. End If
  159. For i As Integer = 0 To 庫存_dgv.Rows.Count - 1
  160. If 庫存_dgv.Rows(i).Cells("可領用").Value = 0 Then : 庫存_dgv.Rows(i).DefaultCellStyle.BackColor = Color.LightPink : End If
  161. Next
  162. End Sub
  163. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 彙總_dgv.CellClick
  164. If e.RowIndex = -1 Then : Else
  165. If 一般銷售_ch.Checked = True Then
  166. ComboBox6下拉表單資料載入() : ComboBox7下拉表單資料載入()
  167. 單據編號_tb.Text = 彙總_dgv.Rows(e.RowIndex).Cells("單據編號").Value.ToString : 客戶編號_cb.Text = 彙總_dgv.Rows(e.RowIndex).Cells("客戶編號").Value.ToString
  168. 狀態_tb.Text = 彙總_dgv.Rows(e.RowIndex).Cells("狀態").Value.ToString : 銷售下單_dtp.Value = 彙總_dgv.Rows(e.RowIndex).Cells("銷售下單").Value.ToString
  169. 客戶交期_dtp.Value = 彙總_dgv.Rows(e.RowIndex).Cells("客戶交期").Value.ToString : 業務_cb.Text = 彙總_dgv.Rows(e.RowIndex).Cells("業務").Value.ToString
  170. 業務比例_cb.Text = Format(彙總_dgv.Rows(e.RowIndex).Cells("業務比例").Value, "#,##0.0") : 司機_cb.Text = 彙總_dgv.Rows(e.RowIndex).Cells("司機").Value.ToString
  171. 司機比例_cb.Text = Format(彙總_dgv.Rows(e.RowIndex).Cells("司機比例").Value, "#,##0.0") : 列印用SQL = 單據編號_tb.Text
  172. Set_單據明細() : 客戶資料()
  173. End If
  174. End If
  175. End Sub
  176. Private Sub DataGridView3_CellClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles 明細_dgv.CellClick
  177. If e.RowIndex = -1 Then : Else
  178. 選擇_tb.Text = 明細_dgv.Rows(e.RowIndex).Cells("資料流水號").Value.ToString
  179. End If
  180. End Sub
  181. Private Sub DataGridView3_CellEnter(sender As Object, e As DataGridViewCellEventArgs) Handles 明細_dgv.CellEnter
  182. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  183. 明細_dgv.Rows(i).Cells("台幣單價").Value = 明細_dgv.Rows(i).Cells("單價").Value * 明細_dgv.Rows(i).Cells("匯率").Value
  184. 明細_dgv.Rows(i).Cells("出貨成本_台幣").Value = 明細_dgv.Rows(i).Cells("單價").Value * 明細_dgv.Rows(i).Cells("匯率").Value * 明細_dgv.Rows(i).Cells("數量").Value
  185. 明細_dgv(1, i).Value = i + 1
  186. Next i
  187. End Sub
  188. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles 依供應商排序_ch.Click
  189. 依供應商排序_ch.Checked = True : 依商品排序_ch.Checked = False : Set_清單()
  190. End Sub
  191. Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles 依商品排序_ch.Click
  192. 依供應商排序_ch.Checked = False : 依商品排序_ch.Checked = True : Set_清單()
  193. End Sub
  194. Private Sub TextBox5_TextChanged(sender As Object, e As EventArgs) Handles 客戶關鍵字_tb.TextChanged
  195. PA = 客戶關鍵字_tb.Text : SQL_客戶資料表關鍵字查詢()
  196. 客戶_cb.Items.Clear() : 客戶編號_cb.Items.Clear() : While (dr.Read()) : 客戶_cb.Items.Add(dr("簡稱")) : 客戶編號_cb.Items.Add(dr("編號")) : End While : conn.Close()
  197. End Sub
  198. Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles 物料關鍵字_tb.TextChanged
  199. Set_清單()
  200. End Sub
  201. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 頁碼_cb.SelectedIndexChanged
  202. Set_清單()
  203. End Sub
  204. Private Sub 客戶資料()
  205. conn.Close()
  206. If 客戶編號_cb.Text = "CI00000000" Then
  207. SQL_出貨單申請_客戶資料_零售一()
  208. If (dr.Read()) Then
  209. 付款方式_tb.Text = dr("付款方式")
  210. End If : conn.Close()
  211. SQL_出貨單申請_客戶資料_零售二()
  212. If (dr.Read()) Then
  213. 客戶公司_tb.Text = dr("客戶名稱") : 手機_tb.Text = dr("手機") : 電話_tb.Text = dr("電話") : 傳真_tb.Text = dr("傳真") : 郵號_tb.Text = dr("郵遞區號")
  214. 店面地址_tb.Text = dr("店面地址") : 送貨地址_tb.Text = dr("送貨地址") : 統編_tb.Text = dr("統一編號")
  215. End If : conn.Close()
  216. Else
  217. SQL_出貨單申請_客戶資料_銷售二()
  218. If (dr.Read()) Then
  219. 客戶公司_tb.Text = dr("店名") : 手機_tb.Text = dr("手機") : 電話_tb.Text = dr("電話") : 傳真_tb.Text = dr("傳真") : 郵號_tb.Text = dr("店面地址郵遞區號")
  220. 店面地址_tb.Text = dr("店面地址") : 送貨地址_tb.Text = dr("送貨地址") : 統編_tb.Text = dr("統編") : 付款方式_tb.Text = dr("付款方式")
  221. End If : conn.Close()
  222. End If
  223. End Sub
  224. Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 客戶_cb.SelectedIndexChanged
  225. 客戶編號_cb.SelectedIndex = 客戶_cb.SelectedIndex : 客戶資料()
  226. End Sub
  227. Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 客戶編號_cb.SelectedIndexChanged
  228. 客戶_cb.SelectedIndex = 客戶編號_cb.SelectedIndex : 客戶資料()
  229. End Sub
  230. Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles 申請數_nud.TextChanged
  231. If 申請數_nud.Value > Val(可出庫_tb.Text) Then
  232. MsgBox("可申請數只剩下 " & 可出庫_tb.Text & " ,不可大於可申請數。")
  233. 申請數_nud.Value = 0
  234. End If
  235. End Sub
  236. Private Sub Set_日期格式轉換()
  237. If 單據編號_tb.Text = "" Then
  238. If 非當天日期_ch.Checked = False Then
  239. DTP = Format(Today(), "yyyy/MM/dd") : DTP1 = Format(Today(), "yyyyMMdd") : DTP2 = Format(客戶交期_dtp.Value, "yyyy/MM/dd")
  240. Else
  241. DTP = Format(銷售下單_dtp.Value, "yyyy/MM/dd") : DTP1 = Format(銷售下單_dtp.Value, "yyyyMMdd") : DTP2 = Format(客戶交期_dtp.Value, "yyyy/MM/dd")
  242. End If
  243. Else
  244. DTP = Format(銷售下單_dtp.Value, "yyyy/MM/dd") : DTP1 = Format(銷售下單_dtp.Value, "yyyyMMdd") : DTP2 = Format(客戶交期_dtp.Value, "yyyy/MM/dd")
  245. End If
  246. End Sub
  247. Private Sub Set_自動生成流水號()
  248. SQL_倉儲明細表流水號最後一筆()
  249. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("資料流水號").ToString, 8)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1
  250. If EDR < 10 Then : ESTR = "WD" & "0000000" & EDR
  251. ElseIf EDR > 9 And EDR < 100 Then : ESTR = "WD" & "000000" & EDR
  252. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "WD" & "00000" & EDR
  253. ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "WD" & "0000" & EDR
  254. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "WD" & "000" & EDR
  255. ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "WD" & "00" & EDR
  256. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "WD" & "0" & EDR
  257. ElseIf EDR > 9999999 Then : ESTR = "WD" & EDR : End If
  258. End Sub
  259. Private Sub 存檔1()
  260. Dim SSDD As Integer = 0
  261. For i As Integer = 0 To 明細_dgv.Rows.Count - 1
  262. 資料數 = 明細_dgv.Rows.Count : MyModule1.進度條()
  263. PA1 = 明細_dgv.Rows(i).Cells("資料流水號").Value
  264. SQL_倉儲明細表_入庫日期讀取()
  265. If dr.Read() Then
  266. If dr("入庫日期").ToString = "" Then
  267. NU1 = 明細_dgv.Rows(i).Cells("單價").Value : NU2 = 明細_dgv.Rows(i).Cells("數量").Value
  268. PA1 = 明細_dgv.Rows(i).Cells("備註").Value : PA2 = DTP2 : PA3 = 明細_dgv.Rows(i).Cells("資料流水號").Value
  269. SQL_出貨單申請_倉儲明細表修改_出庫() : conn.Close()
  270. Else
  271. conn.Close() : SSDD += 1
  272. End If
  273. End If
  274. PA1 = 業務_cb.Text : PA2 = 司機_cb.Text
  275. If 業務比例_cb.Text = "" Then : NU1 = 0 : Else : NU1 = 業務比例_cb.Text : End If
  276. If 司機比例_cb.Text = "" Then : NU2 = 0 : Else : NU2 = 司機比例_cb.Text : End If
  277. PA = 單據編號_tb.Text
  278. SQL_出貨單業務司機指定()
  279. Next : MAOJI_ERP_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0 : If SSDD = 0 Then : Else : MsgBox("共有 " & SSDD & "筆資料已入庫,沒有變更。") : End If
  280. End Sub
  281. Private Sub Set_新增明細()
  282. If 單據狀態_cb.Text = "直接出貨" Then : HHJJ = "銷售出庫" : Else : HHJJ = "組裝出庫" : End If
  283. PA1 = ESTR : PA2 = 單據編號_tb.Text : PA3 = 供應商編號_tb.Text : PA4 = 料號_tb.Text : NU1 = 加權成本_台幣_tb.Text : NU2 = 1 : NU3 = 0 : NU4 = 申請數_nud.Value : PA5 = HHJJ : PA6 = DTP
  284. PA7 = 客戶編號_cb.Text : NU5 = 歷史售價_tb.Text : PA8 = 倉庫編號_tb.Text : PA9 = DTP2
  285. SQL_倉儲明細表新增() : conn.Close() : MsgBox("資料新增完畢 。") : Set_單據明細()
  286. End Sub
  287. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 新增物料到出貨單_bt.Click
  288. If 零售_ch.Checked = True And 單據編號_tb.Text = "" Then : MsgBox("零售功能需要在介面上先輸入客戶資料,並點下開立出貨單取得出貨單具號碼後才可以新增物料到單據中。") : Else
  289. If 料號_tb.Text = "" Then : MsgBox("料號沒有選擇") : Else
  290. If 客戶編號_cb.Text = "" Then : MsgBox("客戶沒有選擇") : Else
  291. If 單據狀態_cb.Text = "" Then : MsgBox("請選擇--直接出貨--還是--組裝出貨--。") : Else
  292. If 申請數_nud.Value = 0 Then : MsgBox("數量不可為零") : Else
  293. If 單據編號_tb.Text = "" Then
  294. '----------------------自动生成單據編號-------------------------------------------------------------------------
  295. Dim NUM1 As Integer : Set_日期格式轉換()
  296. For i As Integer = 1 To 999
  297. NUM1 = 0 + i
  298. If NUM1 < 10 Then : 單據編號_tb.Text = "WD-" & DTP1 & "-00" & NUM1
  299. ElseIf NUM1 > 9 And NUM1 < 100 Then : 單據編號_tb.Text = "WD-" & DTP1 & "-0" & NUM1
  300. ElseIf NUM1 > 99 Then : 單據編號_tb.Text = "WD-" & DTP1 & "-" & NUM1 : End If
  301. PA1 = 單據編號_tb.Text : 列印用SQL = 單據編號_tb.Text : SQL_倉儲明細表生成單據編號()
  302. If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  303. Next
  304. Set_自動生成流水號() : 選擇_tb.Text = ESTR : conn.Close() : 存檔1() : Set_新增明細() : Set_銷售清單()
  305. Else
  306. Set_日期格式轉換() : Set_自動生成流水號() : 選擇_tb.Text = ESTR : conn.Close() : 存檔1() : Set_新增明細()
  307. End If : Set_清單()
  308. End If
  309. End If
  310. End If
  311. End If
  312. End If
  313. End Sub
  314. Private Sub Button3_Click(sender As Object, e As EventArgs) Handles 修改存檔_bt.Click
  315. If 零售_ch.Checked = True Then
  316. If 明細_dgv.Rows.Count = 0 Then
  317. Dim aa1 As MsgBoxResult = MsgBox("零售單據沒有資料,是否放棄編輯?", MsgBoxStyle.OkCancel)
  318. If aa1 = MsgBoxResult.Ok Then
  319. 未組裝完成的單據_rb.Enabled = True : 未完全出貨的單據_rb.Enabled = True : 已完全出貨的單據_rb.Enabled = True : 彙總_dgv.Enabled = True
  320. SQL_出貨單申請_零售客戶記錄表刪除() : conn.Close() : MsgBox("已放棄編輯 。") : 切換時格式清空()
  321. End If
  322. Else
  323. 未組裝完成的單據_rb.Enabled = True : 未完全出貨的單據_rb.Enabled = True : 已完全出貨的單據_rb.Enabled = True : 彙總_dgv.Enabled = True
  324. 開新出貨單_bt.Enabled = True : 一般銷售_ch.Enabled = True
  325. Set_日期格式轉換() : 存檔1() : Set_單據明細() : Set_清單() : Set_銷售清單() : MsgBox("資料修改,存檔完畢 。")
  326. End If
  327. Else
  328. Set_日期格式轉換() : 存檔1() : Set_單據明細() : Set_清單() : Set_銷售清單() : MsgBox("資料修改,存檔完畢 。")
  329. End If
  330. End Sub
  331. Private Sub 切換時格式清空()
  332. 單據編號_tb.Text = "" : 可出庫_tb.Text = "0" : 銷售下單_dtp.Value = Today() : 客戶交期_dtp.Value = Today() : 選擇_tb.Text = "" : 狀態_tb.Text = "" : 客戶公司_tb.Text = "" : 手機_tb.Text = ""
  333. 電話_tb.Text = "" : 傳真_tb.Text = "" : 郵號_tb.Text = "" : 店面地址_tb.Text = "" : 供應商編號_tb.Text = "" : 送貨地址_tb.Text = "" : 統編_tb.Text = "" : 付款方式_tb.Text = ""
  334. 明細_dgv.DataSource = Nothing : ds2.Clear()
  335. End Sub
  336. Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles 未組裝完成的單據_rb.Click
  337. 未完全出貨的單據_rb.Checked = False : 已完全出貨的單據_rb.Checked = False : 未組裝完成的單據_rb.Checked = True : Set_銷售清單() : 新增物料到出貨單_bt.Enabled = True : 修改存檔_bt.Enabled = True
  338. 新增物料到採購單ToolStripMenuItem.Enabled = True : 刪除採購單中選中的物料ToolStripMenuItem.Enabled = True : 修改存檔ToolStripMenuItem.Enabled = True
  339. 切換時格式清空() : 一般銷售_ch.Checked = True : 零售_ch.Checked = False : 客戶_cb.Enabled = True
  340. End Sub
  341. Private Sub RadioButton4_CheckedChanged(sender As Object, e As EventArgs) Handles 未完全出貨的單據_rb.Click
  342. 未完全出貨的單據_rb.Checked = True : 已完全出貨的單據_rb.Checked = False : 未組裝完成的單據_rb.Checked = False : Set_銷售清單() : 新增物料到出貨單_bt.Enabled = True : 修改存檔_bt.Enabled = True
  343. 新增物料到採購單ToolStripMenuItem.Enabled = True : 刪除採購單中選中的物料ToolStripMenuItem.Enabled = True : 修改存檔ToolStripMenuItem.Enabled = True
  344. 切換時格式清空() : 一般銷售_ch.Checked = True : 零售_ch.Checked = False : 客戶_cb.Enabled = True
  345. End Sub
  346. Private Sub RadioButton3_CheckedChanged(sender As Object, e As EventArgs) Handles 已完全出貨的單據_rb.Click
  347. 未完全出貨的單據_rb.Checked = False : 已完全出貨的單據_rb.Checked = True : 未組裝完成的單據_rb.Checked = False : Set_銷售清單() : 新增物料到出貨單_bt.Enabled = False : 修改存檔_bt.Enabled = False
  348. 新增物料到採購單ToolStripMenuItem.Enabled = False : 刪除採購單中選中的物料ToolStripMenuItem.Enabled = False : 修改存檔ToolStripMenuItem.Enabled = False
  349. 切換時格式清空() : 一般銷售_ch.Checked = True : 零售_ch.Checked = False : 客戶_cb.Enabled = True
  350. End Sub
  351. Private Sub TextBox18_TextChanged(sender As Object, e As EventArgs) Handles 狀態_tb.TextChanged
  352. If 狀態_tb.Text = "銷售出庫" Then : 單據狀態_cb.Text = "直接出貨"
  353. ElseIf 狀態_tb.Text = "組裝出貨" Then : 單據狀態_cb.Text = "組裝出貨"
  354. Else : 單據狀態_cb.Text = "直接出貨" : End If
  355. End Sub
  356. Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles 一般銷售_ch.Click
  357. 一般銷售_ch.Checked = True : 零售_ch.Checked = False : ComboBox2下拉表單資料載入() : 客戶_cb.Enabled = True : 客戶關鍵字_tb.Enabled = True : 切換時格式清空()
  358. End Sub
  359. Private Sub CheckBox5_CheckedChanged(sender As Object, e As EventArgs) Handles 零售_ch.Click
  360. 切換時格式清空()
  361. 一般銷售_ch.Checked = False : 零售_ch.Checked = True : 客戶編號_cb.Text = "CI00000000" : 客戶_cb.Text = "其他-零售" : 客戶_cb.Enabled = False : 客戶關鍵字_tb.Enabled = False
  362. End Sub
  363. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 開新出貨單_bt.Click
  364. Me.開立新的採購單ToolStripMenuItem.PerformClick()
  365. End Sub
  366. Private Sub Button4_Click(sender As Object, e As EventArgs) Handles 改佣金_bt.Click
  367. PA1 = 業務_cb.Text : NU1 = 業務比例_cb.Text : PA2 = 司機_cb.Text : NU2 = 司機比例_cb.Text : PA = 單據編號_tb.Text
  368. SQL_出貨單業務司機指定() : MsgBox("修改完成。") : Me.重新整理ToolStripMenuItem.PerformClick()
  369. End Sub
  370. Private Sub Button5_Click(sender As Object, e As EventArgs) Handles 列印出貨單_bt.Click
  371. If 列印用SQL = "" Then : MsgBox("請選擇出貨單。") : Else : 列印_出貨單.ShowDialog() : End If : 列印用SQL = ""
  372. End Sub
  373. Private Sub Button6_Click(sender As Object, e As EventArgs) Handles 列印產品標籤_bt.Click
  374. If 單據編號_tb.Text = "" Then : MsgBox("沒有選擇要列印的單號 。") : Else : 列印用SQL = 單據編號_tb.Text : PA = "銷售出貨單" : 列印_產品標籤介面.ShowDialog() : End If
  375. End Sub
  376. '-----------------------------滑鼠右鍵------------------------------------------------------------------------------------------------------------------------------------------
  377. Private Sub 重新整理ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新整理ToolStripMenuItem.Click
  378. Set_清單() : Set_銷售清單() : ComboBox2下拉表單資料載入()
  379. End Sub
  380. Private Sub 開立新的採購單ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 開立新的採購單ToolStripMenuItem.Click
  381. If 一般銷售_ch.Checked = True Then
  382. 切換時格式清空() : ComboBox1下拉表單資料載入() : ComboBox2下拉表單資料載入() : Set_清單() : Set_銷售清單()
  383. If 單據狀態_cb.Text = "直接出貨" Then : Me.未完全出貨的單據_rb.PerformClick() : Else : Me.未組裝完成的單據_rb.PerformClick() : End If
  384. Else
  385. Dim aa1 As MsgBoxResult = MsgBox("零售模式,單據生成之前請在介面中填入零售客戶資料,開單過程無法更改,請確定資料已經填好?", MsgBoxStyle.OkCancel)
  386. If aa1 = MsgBoxResult.Ok Then
  387. '----------------------自动生成單據編號-------------------------------------------------------------------------
  388. Dim NUM1 As Integer : Set_日期格式轉換()
  389. For i As Integer = 1 To 999
  390. NUM1 = 0 + i
  391. If NUM1 < 10 Then : 單據編號_tb.Text = "WD-" & DTP1 & "-00" & NUM1
  392. ElseIf NUM1 > 9 And NUM1 < 100 Then : 單據編號_tb.Text = "WD-" & DTP1 & "-0" & NUM1
  393. ElseIf NUM1 > 99 Then : 單據編號_tb.Text = "WD-" & DTP1 & "-" & NUM1 : End If
  394. PA1 = 單據編號_tb.Text : 列印用SQL = 單據編號_tb.Text : SQL_倉儲明細表生成單據編號()
  395. If dr.Read() Then : Else : i = 999 : conn.Close() : End If : conn.Close()
  396. Next
  397. SQL_出貨單申請_零售客戶記錄表流水號最後一筆()
  398. If dr.Read() Then : EDR = Double.Parse(Strings.Right(dr("零售流水號").ToString, 8)) : Else : EDR = 0 : End If : conn.Close() : EDR += 1
  399. If EDR < 10 Then : ESTR = "B" & "0000000" & EDR
  400. ElseIf EDR > 9 And EDR < 100 Then : ESTR = "B" & "000000" & EDR
  401. ElseIf EDR > 99 And EDR < 1000 Then : ESTR = "B" & "00000" & EDR
  402. ElseIf EDR > 999 And EDR < 10000 Then : ESTR = "B" & "0000" & EDR
  403. ElseIf EDR > 9999 And EDR < 100000 Then : ESTR = "B" & "000" & EDR
  404. ElseIf EDR > 99999 And EDR < 100000 Then : ESTR = "B" & "00" & EDR
  405. ElseIf EDR > 999999 And EDR < 1000000 Then : ESTR = "B" & "0" & EDR
  406. ElseIf EDR > 9999999 Then : ESTR = "B" & EDR : End If : PA1 = ESTR
  407. SQL_出貨單申請_零售客戶記錄表新增() : conn.Close()
  408. 未組裝完成的單據_rb.Enabled = False : 未完全出貨的單據_rb.Enabled = False : 已完全出貨的單據_rb.Enabled = False : 彙總_dgv.Enabled = False
  409. 開新出貨單_bt.Enabled = False : 未完全出貨的單據_rb.Checked = True : 已完全出貨的單據_rb.Checked = False : 未組裝完成的單據_rb.Checked = False
  410. Set_銷售清單()
  411. 新增物料到出貨單_bt.Enabled = True : 修改存檔_bt.Enabled = True
  412. 新增物料到採購單ToolStripMenuItem.Enabled = True : 刪除採購單中選中的物料ToolStripMenuItem.Enabled = True : 修改存檔ToolStripMenuItem.Enabled = True
  413. ComboBox1下拉表單資料載入() : Set_清單() : 明細_dgv.DataSource = Nothing : ds2.Clear() : 一般銷售_ch.Enabled = False
  414. End If
  415. End If
  416. End Sub
  417. Private Sub 新增物料到採購單ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 新增物料到採購單ToolStripMenuItem.Click
  418. Me.新增物料到出貨單_bt.PerformClick()
  419. End Sub
  420. Private Sub 刪除採購單中選中的物料ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 刪除採購單中選中的物料ToolStripMenuItem.Click
  421. PA1 = 選擇_tb.Text : SQL_倉儲明細表_出庫日期讀取()
  422. If dr("出庫日期") = "" Then : conn.Close()
  423. If 選擇_tb.Text = "" Then : MsgBox("沒有選擇要刪除了料號 。")
  424. Else
  425. Dim aa1 As MsgBoxResult = MsgBox("確定要刪除該筆資料?", MsgBoxStyle.OkCancel)
  426. If aa1 = MsgBoxResult.Ok Then
  427. PA1 = 選擇_tb.Text : SQL_倉儲明細表刪除() : conn.Close()
  428. '-----------------最後一筆資料刪除時要把零售客戶紀錄中的資料一起刪除-----------------------------------------------------
  429. If 明細_dgv.Rows.Count = 1 Then : SQL_出貨單申請_零售客戶記錄表刪除() : conn.Close() : End If : 選擇_tb.Text = "" : Set_單據明細()
  430. End If
  431. End If
  432. Else
  433. conn.Close() : MsgBox("已入庫的資料不可刪除 。")
  434. End If
  435. End Sub
  436. Private Sub 修改存檔ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 修改存檔ToolStripMenuItem.Click
  437. Me.修改存檔_bt.PerformClick()
  438. End Sub
  439. Private Sub 列印成EXCELToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 列印成EXCELToolStripMenuItem.Click
  440. Me.列印出貨單_bt.PerformClick()
  441. End Sub
  442. Private Sub 列印產品標籤ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 列印產品標籤ToolStripMenuItem.Click
  443. Me.列印產品標籤_bt.PerformClick()
  444. End Sub
  445. End Class