Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

銷售控制表.vb 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. Option Strict Off
  2. Public Class 銷售控制表
  3. ReadOnly ds As New DataSet : ReadOnly ds1 As New DataSet
  4. Dim screenWidth As Integer : Dim screenHeight As Integer : Dim newWidth1 As Integer : Dim newHeight1 As Integer
  5. Private Sub Set_清單()
  6. 清單_dgv.DataSource = Nothing : ds.Clear() : 清單_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  7. 清單_dgv.ColumnHeadersHeight = 25 : 清單_dgv.AllowUserToAddRows = False
  8. SQL_銷售控制表清單()
  9. da.Fill(ds) : 清單_dgv.DataSource = ds.Tables(0) : conn.Close()
  10. 清單_dgv.Columns(0).Width = 120 : 清單_dgv.Columns(1).Visible = False : 清單_dgv.Columns(2).Width = 90 : 清單_dgv.Columns(3).Visible = False
  11. 清單_dgv.Columns(4).Width = 90 : 清單_dgv.Columns(5).Visible = False : 清單_dgv.Columns(6).Width = 200 : 清單_dgv.Columns(7).Width = 150
  12. 清單_dgv.Columns(8).Width = 150 : 清單_dgv.Columns(9).Width = 65 : 清單_dgv.Columns(10).Width = 65 : 清單_dgv.Columns(11).Width = 65
  13. 清單_dgv.Columns(12).Width = 65 : 清單_dgv.Columns(13).Width = 65 : 清單_dgv.Columns(14).Width = 65 : 清單_dgv.Columns(15).Width = 85
  14. 清單_dgv.Columns(16).Width = 85 : 清單_dgv.Columns(17).Width = 85 : 清單_dgv.Columns(18).Width = 147
  15. If 顯示彙總表_ch.Checked = True Then : 清單_dgv.Columns(18).Width = 62 : Else : 清單_dgv.Columns(18).Width = 435 : End If
  16. 格式設定1() : 格式設定2()
  17. 清單_dgv.Columns(0).Frozen = True : 清單_dgv.Columns(1).Frozen = True : 清單_dgv.Columns(2).Frozen = True : 清單_dgv.Columns(3).Frozen = True
  18. 清單_dgv.Columns(4).Frozen = True : 清單_dgv.Columns(5).Frozen = True : 清單_dgv.Columns(6).Frozen = True
  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" : 清單_dgv.Columns(14).DefaultCellStyle.Format = "#,##0"
  21. 清單_dgv.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  22. 清單_dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  23. 清單_dgv.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  24. 清單_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(9).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  25. 清單_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(10).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  26. 清單_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(11).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  27. 清單_dgv.Columns(12).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(12).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  28. 清單_dgv.Columns(13).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(13).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  29. 清單_dgv.Columns(14).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(14).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  30. 清單_dgv.Columns(15).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(15).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  31. 清單_dgv.Columns(16).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(16).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  32. 清單_dgv.Columns(17).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 清單_dgv.Columns(17).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  33. 清單_dgv.Columns(0).ReadOnly = True : 清單_dgv.Columns(2).ReadOnly = True : 清單_dgv.Columns(4).ReadOnly = True : 清單_dgv.Columns(6).ReadOnly = True
  34. 清單_dgv.Columns(7).ReadOnly = True : 清單_dgv.Columns(8).ReadOnly = True : 清單_dgv.Columns(9).ReadOnly = True : 清單_dgv.Columns(10).ReadOnly = True
  35. 清單_dgv.Columns(11).ReadOnly = True : 清單_dgv.Columns(12).ReadOnly = True : 清單_dgv.Columns(13).ReadOnly = True : 清單_dgv.Columns(14).ReadOnly = True
  36. 清單_dgv.Columns(15).ReadOnly = True : 清單_dgv.Columns(16).ReadOnly = True : 清單_dgv.Columns(17).ReadOnly = True : 清單_dgv.Columns(18).ReadOnly = True
  37. 清單_dgv.Columns(9).DefaultCellStyle.BackColor = Color.LightYellow : 清單_dgv.Columns(10).DefaultCellStyle.BackColor = Color.LightYellow
  38. 清單_dgv.Columns(14).DefaultCellStyle.BackColor = Color.LightGreen : 清單_dgv.Columns(13).DefaultCellStyle.BackColor = Color.LightGreen
  39. 清單_dgv.Columns(12).DefaultCellStyle.BackColor = Color.LightGreen
  40. 未出_銷售_tb.Text = "0" : 未出_成本_tb.Text = "0" : 未出_利潤_tb.Text = "0" : 已出_銷售_tb.Text = "0" : 已出_成本_tb.Text = "0" : 已出_利潤_tb.Text = "0" : 總銷售_tb.Text = "0" : 總成本_tb.Text = "0" : 總利潤_tb.Text = "0"
  41. For i As Integer = 0 To 清單_dgv.Rows.Count - 1
  42. If 清單_dgv.Rows(i).Cells("出貨日期").Value.ToString = "" Then
  43. 未出_銷售_tb.Text = Val(未出_銷售_tb.Text) + 清單_dgv.Rows(i).Cells("銷售金額").Value : 未出_成本_tb.Text = Val(未出_成本_tb.Text) + 清單_dgv.Rows(i).Cells("銷售成本").Value
  44. End If
  45. If 清單_dgv.Rows(i).Cells("出貨日期").Value.ToString <> "" Then
  46. 已出_銷售_tb.Text = Val(已出_銷售_tb.Text) + 清單_dgv.Rows(i).Cells("銷售金額").Value : 已出_成本_tb.Text = Val(已出_成本_tb.Text) + 清單_dgv.Rows(i).Cells("銷售成本").Value
  47. End If
  48. Next
  49. 未出_利潤_tb.Text = Val(未出_銷售_tb.Text) - Val(未出_成本_tb.Text) : 已出_利潤_tb.Text = Val(已出_銷售_tb.Text) - Val(已出_成本_tb.Text)
  50. 總銷售_tb.Text = Val(未出_銷售_tb.Text) + Val(已出_銷售_tb.Text) : 總成本_tb.Text = Val(未出_成本_tb.Text) + Val(已出_成本_tb.Text)
  51. 總利潤_tb.Text = Val(未出_利潤_tb.Text) + Val(已出_利潤_tb.Text)
  52. 未出_成本_tb.Text = Format(Val(未出_成本_tb.Text), "#,##0") : 未出_銷售_tb.Text = Format(Val(未出_銷售_tb.Text), "#,##0") : 未出_利潤_tb.Text = Format(Val(未出_利潤_tb.Text), "#,##0")
  53. 已出_銷售_tb.Text = Format(Val(已出_銷售_tb.Text), "#,##0") : 已出_成本_tb.Text = Format(Val(已出_成本_tb.Text), "#,##0") : 已出_利潤_tb.Text = Format(Val(已出_利潤_tb.Text), "#,##0")
  54. 總利潤_tb.Text = Format(Val(總利潤_tb.Text), "#,##0") : 總成本_tb.Text = Format(Val(總成本_tb.Text), "#,##0") : 總銷售_tb.Text = Format(Val(總銷售_tb.Text), "#,##0")
  55. End Sub
  56. Private Sub Set_清單1()
  57. 彙總_dgv.DataSource = Nothing : ds1.Clear() : 彙總_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  58. 彙總_dgv.ColumnHeadersHeight = 25 : 彙總_dgv.AllowUserToAddRows = False
  59. SQL_銷售控制表彙總()
  60. da.Fill(ds1) : 彙總_dgv.DataSource = ds1.Tables(0) : conn.Close()
  61. 彙總_dgv.Columns(0).FillWeight = 80 : 彙總_dgv.Columns(1).FillWeight = 60 : 彙總_dgv.Columns(2).FillWeight = 60 : 彙總_dgv.Columns(3).FillWeight = 60
  62. 彙總_dgv.Columns(1).DefaultCellStyle.Format = "#,##0" : 彙總_dgv.Columns(2).DefaultCellStyle.Format = "#,##0" : 彙總_dgv.Columns(3).DefaultCellStyle.Format = "#,##0"
  63. 彙總_dgv.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  64. 彙總_dgv.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  65. 彙總_dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  66. 彙總_dgv.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter : 彙總_dgv.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
  67. 彙總_dgv.Columns(0).ReadOnly = True : 彙總_dgv.Columns(1).ReadOnly = True : 彙總_dgv.Columns(2).ReadOnly = True : 彙總_dgv.Columns(3).ReadOnly = True
  68. End Sub
  69. Private Sub 格式設定()
  70. screenWidth = MAOJI_ERP_SYS.Width
  71. screenHeight = MAOJI_ERP_SYS.Height
  72. If 顯示彙總表_ch.Checked = True Then
  73. 彙總_dgv.Visible = True : 清單_dgv.Location = New Point(379, 76)
  74. newWidth1 = screenWidth - 403 : newHeight1 = screenHeight - 171
  75. 清單_dgv.Size = New Size(newWidth1, newHeight1)
  76. Else
  77. 彙總_dgv.Visible = False : 清單_dgv.Location = New Point(6, 76)
  78. newWidth1 = screenWidth - 30 : newHeight1 = screenHeight - 171
  79. 清單_dgv.Size = New Size(newWidth1, newHeight1)
  80. End If
  81. If 顯示彙總表_ch.Checked = True Then : 清單_dgv.Columns(18).Width = 62 : Else : 清單_dgv.Columns(18).Width = 435 : End If
  82. End Sub
  83. Private Sub 格式設定1()
  84. If 隱藏供應商_ch.Checked = True Then : 清單_dgv.Columns(4).Visible = False : Else : 清單_dgv.Columns(4).Visible = True : End If
  85. End Sub
  86. Private Sub 格式設定2()
  87. If 隱藏單據編號_ch.Checked = True Then : 清單_dgv.Columns(0).Visible = False : Else : 清單_dgv.Columns(0).Visible = True : End If
  88. End Sub
  89. Private Sub 日期格式()
  90. If 會計月_ch.Checked = True Then
  91. '-------------日期一----------------------------------------------------------------------------------------
  92. DTP = Strings.Left(Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP
  93. 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(-1)
  94. DTP = Strings.Left(Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "26" : 開始日期_dtp.Value = DTP
  95. '-------------日期二----------------------------------------------------------------------------------------
  96. DTP = Strings.Left(Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "25" : 結束日期_dtp.Value = DTP
  97. Else
  98. '-------------日期一----------------------------------------------------------------------------------------
  99. 開始日期_dtp.Value = 開始日期_dtp.Value.AddMonths(1)
  100. DTP = Strings.Left(Format(開始日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 開始日期_dtp.Value = DTP
  101. '-------------日期二----------------------------------------------------------------------------------------
  102. DTP = Strings.Left(Strings.Format(結束日期_dtp.Value, "yyyy/MM/dd"), 8) & "01" : 結束日期_dtp.Value = DTP
  103. 結束日期_dtp.Value = 結束日期_dtp.Value.AddMonths(1) : 結束日期_dtp.Value = 結束日期_dtp.Value.AddDays(-1)
  104. End If
  105. End Sub
  106. Private Sub 銷售控制表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  107. Me.MdiParent = MAOJI_ERP_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  108. 開始日期_dtp.Value = Today() : 結束日期_dtp.Value = Today() : 中間日期_dtp.Visible = False
  109. 日期格式()
  110. 顯示彙總表_ch.Checked = True
  111. End Sub
  112. Private Sub DataGridView1_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 清單_dgv.CellClick
  113. If e.RowIndex = -1 Then : Else
  114. 客戶_tb.Text = 清單_dgv.Rows(e.RowIndex).Cells("客戶").Value
  115. 客戶_銷售_tb.Text = "0" : 客戶_成本_tb.Text = "0" : 客戶_利潤_tb.Text = "0"
  116. For i As Integer = 0 To 清單_dgv.Rows.Count - 1
  117. If 清單_dgv.Rows(i).Cells("客戶").Value.ToString = 客戶_tb.Text Then
  118. 客戶_銷售_tb.Text = Val(客戶_銷售_tb.Text) + 清單_dgv.Rows(i).Cells("銷售金額").Value : 客戶_成本_tb.Text = Val(客戶_成本_tb.Text) + 清單_dgv.Rows(i).Cells("銷售成本").Value
  119. End If
  120. Next
  121. 客戶_利潤_tb.Text = Val(客戶_銷售_tb.Text) - Val(客戶_成本_tb.Text)
  122. 客戶_利潤_tb.Text = Format(Val(客戶_利潤_tb.Text), "#,##0") : 客戶_銷售_tb.Text = Format(Val(客戶_銷售_tb.Text), "#,##0") : 客戶_成本_tb.Text = Format(Val(客戶_成本_tb.Text), "#,##0")
  123. End If
  124. End Sub
  125. Private Sub DataGridView2_CellClick(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles 彙總_dgv.CellClick
  126. If e.RowIndex = -1 Then : Else
  127. 客戶_tb.Text = 彙總_dgv.Rows(e.RowIndex).Cells("客戶").Value : 客戶_成本_tb.Text = "0"
  128. 客戶_銷售_tb.Text = "0" : 客戶_成本_tb.Text = "0" : 客戶_利潤_tb.Text = "0"
  129. For i As Integer = 0 To 清單_dgv.Rows.Count - 1
  130. If 清單_dgv.Rows(i).Cells("客戶").Value.ToString = 客戶_tb.Text Then
  131. 客戶_銷售_tb.Text = Val(客戶_銷售_tb.Text) + 清單_dgv.Rows(i).Cells("銷售金額").Value : 客戶_成本_tb.Text = Val(客戶_成本_tb.Text) + 清單_dgv.Rows(i).Cells("銷售成本").Value
  132. End If
  133. Next
  134. 客戶_利潤_tb.Text = Val(客戶_銷售_tb.Text) - Val(客戶_成本_tb.Text)
  135. 客戶_利潤_tb.Text = Format(Val(客戶_利潤_tb.Text), "#,##0") : 客戶_銷售_tb.Text = Format(Val(客戶_銷售_tb.Text), "#,##0") : 客戶_成本_tb.Text = Format(Val(客戶_成本_tb.Text), "#,##0")
  136. End If
  137. End Sub
  138. Private Sub DataGridView1_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 清單_dgv.RowPostPaint
  139. Dim linePen As New Pen(Color.Blue, 2)
  140. If e.RowIndex = 清單_dgv.Rows.Count - 1 Then
  141. Exit Sub
  142. Else
  143. If 清單_dgv(0, e.RowIndex).Value.ToString <> 清單_dgv(0, e.RowIndex + 1).Value.ToString Then
  144. Dim startX As Integer = IIf(清單_dgv.RowHeadersVisible, 清單_dgv.RowHeadersWidth, 0)
  145. Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
  146. Dim endX As Integer = startX + 清單_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 清單_dgv.HorizontalScrollingOffset
  147. e.Graphics.DrawLine(linePen, startX, startY, endX, startY)
  148. Exit Sub
  149. End If
  150. End If
  151. For i As Integer = 0 To 清單_dgv.Rows.Count - 1
  152. If 清單_dgv.Rows(i).Cells("出貨日期").Value.ToString = "" Then
  153. 清單_dgv.Rows(i).DefaultCellStyle.BackColor = Color.MistyRose
  154. End If
  155. Next
  156. End Sub
  157. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles 上個月_bt.Click
  158. If 會計月_ch.Checked = True Then
  159. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  160. 開始日期_dtp.Value = 中間日期_dtp.Value
  161. 結束日期_dtp.Value = 中間日期_dtp.Value
  162. Else
  163. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  164. 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  165. 結束日期_dtp.Value = 中間日期_dtp.Value
  166. End If
  167. 日期格式()
  168. End Sub
  169. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles 下個月_bt.Click
  170. If 會計月_ch.Checked = True Then
  171. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1)
  172. 開始日期_dtp.Value = 中間日期_dtp.Value
  173. 結束日期_dtp.Value = 中間日期_dtp.Value
  174. Else
  175. 中間日期_dtp.Value = 中間日期_dtp.Value.AddMonths(1)
  176. 開始日期_dtp.Value = 中間日期_dtp.Value.AddMonths(-1)
  177. 結束日期_dtp.Value = 中間日期_dtp.Value
  178. End If
  179. 日期格式()
  180. End Sub
  181. Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles 開始日期_dtp.ValueChanged
  182. Set_清單() : Set_清單1() : 格式設定()
  183. End Sub
  184. Private Sub DateTimePicker2_ValueChanged(sender As Object, e As EventArgs) Handles 結束日期_dtp.ValueChanged
  185. Set_清單() : Set_清單1() : 格式設定()
  186. End Sub
  187. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles 顯示彙總表_ch.CheckedChanged
  188. 格式設定()
  189. End Sub
  190. Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles 隱藏供應商_ch.CheckedChanged
  191. 格式設定1()
  192. End Sub
  193. Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles 隱藏單據編號_ch.CheckedChanged
  194. 格式設定2()
  195. End Sub
  196. Private Sub 會計月_CheckedChanged(sender As Object, e As EventArgs) Handles 會計月_ch.Click
  197. 會計月_ch.Checked = True : 一般月_ch.Checked = False : 日期格式()
  198. End Sub
  199. Private Sub 一般月_CheckedChanged(sender As Object, e As EventArgs) Handles 一般月_ch.Click
  200. 會計月_ch.Checked = False : 一般月_ch.Checked = True : 日期格式()
  201. End Sub
  202. '-----------------------------滑鼠右鍵------------------------------------------------------------------------------------------------------------------------------------------
  203. Private Sub 重新整理ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 重新整理ToolStripMenuItem.Click
  204. Set_清單() : Set_清單1() : 格式設定()
  205. End Sub
  206. End Class