Brak opisu
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 35KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426
  1. Imports System.Windows.Forms.DataVisualization.Charting
  2. Public Class 人員貢獻分析表
  3. ReadOnly ds, ds2 As New DataSet
  4. Dim 月1, 月2, 月3 As Integer
  5. Private Sub SET_產品()
  6. 產品_dgv.DataSource = Nothing : ds2.Clear()
  7. 產品_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  8. 產品_dgv.ColumnHeadersHeight = 40 : 產品_dgv.AllowUserToAddRows = False
  9. If RadioButton1.Checked = True Then : PA = "一般產品" : PA1 = "產品銷售" : SQL_客戶交易明細表2_清單()
  10. ElseIf RadioButton2.Checked = True Then : PA = "人工皮" : PA1 = "產品銷售" : SQL_客戶交易明細表2_清單()
  11. ElseIf RadioButton3.Checked = True Then : PA = "雷射" : PA1 = "排程人員" : SQL_客戶交易明細表2_清單()
  12. ElseIf RadioButton4.Checked = True Then : PA = "治療" : PA1 = "排程人員" : SQL_客戶交易明細表2_清單()
  13. ElseIf RadioButton5.Checked = True Then : PA = "手術" : PA1 = "排程人員" : SQL_客戶交易明細表2_清單()
  14. ElseIf RadioButton6.Checked = True Then : PA = "美療" : PA1 = "排程人員" : SQL_客戶交易明細表2_清單()
  15. ElseIf RadioButton7.Checked = True Then : PA = "植髮" : PA1 = "排程人員" : SQL_客戶交易明細表2_清單()
  16. End If
  17. da.Fill(ds2) : 產品_dgv.DataSource = ds2.Tables(0) : conn.Close()
  18. 產品_dgv.Columns(0).FillWeight = 50 : 產品_dgv.Columns(1).FillWeight = 150 : 產品_dgv.Columns(2).FillWeight = 50 : 產品_dgv.Columns(3).FillWeight = 80
  19. 產品_dgv.Columns(2).DefaultCellStyle.Format = "#,##0"
  20. 產品_dgv.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  21. 產品_dgv.Sort(產品_dgv.Columns("備註"), System.ComponentModel.ListSortDirection.Descending)
  22. End Sub
  23. Private Sub SET_客戶交易明細表()
  24. 交易明細_dgv.DataSource = Nothing : ds.Clear()
  25. 交易明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  26. 交易明細_dgv.ColumnHeadersHeight = 40 : 交易明細_dgv.AllowUserToAddRows = False
  27. SQL_客戶交易明細表1_清單()
  28. da.Fill(ds) : 交易明細_dgv.DataSource = ds.Tables(0) : conn.Close()
  29. 交易明細_dgv.Columns(0).Visible = False : 交易明細_dgv.Columns(2).Visible = False : 交易明細_dgv.Columns(4).Visible = False : 交易明細_dgv.Columns(5).Visible = False
  30. 交易明細_dgv.Columns(13).Visible = False : 交易明細_dgv.Columns(18).Visible = False : 交易明細_dgv.Columns(19).Visible = False
  31. 交易明細_dgv.Columns(6).FillWeight = 300 : 交易明細_dgv.Columns(12).FillWeight = 150
  32. For I As Integer = 0 To 20 : 交易明細_dgv.Columns(I).ReadOnly = True : Next
  33. 交易明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0" : 交易明細_dgv.Columns(8).DefaultCellStyle.Format = "#,##0"
  34. 交易明細_dgv.Columns(9).DefaultCellStyle.Format = "#,##0.00" : 交易明細_dgv.Columns(10).DefaultCellStyle.Format = "#,##0.0"
  35. 交易明細_dgv.Columns(11).DefaultCellStyle.Format = "#,##0"
  36. 交易明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  37. 交易明細_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  38. 交易明細_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  39. 交易明細_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  40. 交易明細_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  41. SET_獎金計算()
  42. End Sub
  43. Private Sub SET_獎金計算()
  44. Dim ds1 As New DataSet
  45. 獎金計算_dgv.DataSource = Nothing : ds1.Clear()
  46. 獎金計算_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
  47. 獎金計算_dgv.ColumnHeadersHeight = 40 : 獎金計算_dgv.AllowUserToAddRows = False
  48. SQL_獎金計算1_清單()
  49. da.Fill(ds1) : 獎金計算_dgv.DataSource = ds1.Tables(0) : conn.Close()
  50. For I As Integer = 2 To 27
  51. 獎金計算_dgv.Columns(I).DefaultCellStyle.Format = "#,##0"
  52. 獎金計算_dgv.Columns(I).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  53. Next
  54. For I As Integer = 0 To 28 : 獎金計算_dgv.Columns(I).ReadOnly = True : Next
  55. 獎金計算_dgv.Columns(0).FillWeight = 75 : 獎金計算_dgv.Columns(1).FillWeight = 60
  56. 獎金計算_dgv.Columns(4).Visible = False : 獎金計算_dgv.Columns(6).Visible = False : 獎金計算_dgv.Columns(8).Visible = False : 獎金計算_dgv.Columns(11).Visible = False
  57. 獎金計算_dgv.Columns(12).Visible = False : 獎金計算_dgv.Columns(13).Visible = False : 獎金計算_dgv.Columns(14).Visible = False : 獎金計算_dgv.Columns(15).Visible = False
  58. 獎金計算_dgv.Columns(16).Visible = False : 獎金計算_dgv.Columns(17).Visible = False : 獎金計算_dgv.Columns(18).Visible = False : 獎金計算_dgv.Columns(19).Visible = False
  59. 獎金計算_dgv.Columns(28).Visible = False
  60. 獎金計算_dgv.Columns(28).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
  61. For I As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
  62. 資料數 = 獎金計算_dgv.Rows.Count : MyModule1.進度條()
  63. 獎金計算_dgv("一般產品業績", I).Value = 0 : 獎金計算_dgv("美療排程", I).Value = 0 : 獎金計算_dgv("美療操作", I).Value = 0
  64. 獎金計算_dgv("排程業績", I).Value = 0 : 獎金計算_dgv("操作業績", I).Value = 0 : 獎金計算_dgv("手術排程", I).Value = 0
  65. 獎金計算_dgv("手術操作", I).Value = 0 : 獎金計算_dgv("植髮/電波業績", I).Value = 0 : 獎金計算_dgv("預購療程", I).Value = 0
  66. 獎金計算_dgv("償還業績", I).Value = 0 : 獎金計算_dgv("一般產品", I).Value = 0 : 獎金計算_dgv("美療", I).Value = 0
  67. 獎金計算_dgv("雷射/治療", I).Value = 0 : 獎金計算_dgv("手術", I).Value = 0 : 獎金計算_dgv("植髮/電波", I).Value = 0
  68. For ii As Integer = 0 To 交易明細_dgv.Rows.Count - 1
  69. '------一般產品,人工皮-------------------------------------------------------------------------------------------
  70. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("產品銷售", ii).Value.ToString, 4, 5) And
  71. (交易明細_dgv("類別", ii).Value.ToString = "一般產品" Or 交易明細_dgv("類別", ii).Value.ToString = "人工皮") Then
  72. 獎金計算_dgv("一般產品業績", I).Value = 獎金計算_dgv("一般產品業績", I).Value + 交易明細_dgv("業績", ii).Value
  73. End If
  74. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("產品銷售", ii).Value.ToString, 4, 5) And
  75. (交易明細_dgv("類別", ii).Value.ToString = "一般產品" Or 交易明細_dgv("類別", ii).Value.ToString = "人工皮") Then
  76. 獎金計算_dgv("一般產品", I).Value = 獎金計算_dgv("一般產品", I).Value + 交易明細_dgv("業績", ii).Value
  77. End If
  78. '------美療排程-------------------------------------------------------------------------------------------
  79. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
  80. 交易明細_dgv("類別", ii).Value.ToString = "美療" And 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
  81. 獎金計算_dgv("美療排程", I).Value = 獎金計算_dgv("美療排程", I).Value + 交易明細_dgv("業績", ii).Value
  82. End If
  83. '------美療操作-------------------------------------------------------------------------------------------
  84. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("操作人員", ii).Value.ToString, 4, 5) And
  85. 交易明細_dgv("類別", ii).Value.ToString = "美療" And 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
  86. 獎金計算_dgv("美療操作", I).Value = 獎金計算_dgv("美療操作", I).Value + 交易明細_dgv("業績", ii).Value
  87. End If
  88. '------美療-------------------------------------------------------------------------------------------
  89. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
  90. 交易明細_dgv("類別", ii).Value.ToString = "美療" And (交易明細_dgv("備註", ii).Value.ToString = "預購療程" Or
  91. 交易明細_dgv("備註", ii).Value.ToString = ".") Then
  92. 獎金計算_dgv("美療", I).Value = 獎金計算_dgv("美療", I).Value + 交易明細_dgv("業績", ii).Value
  93. End If
  94. '------雷射、治療排程-------------------------------------------------------------------------------------------
  95. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
  96. (交易明細_dgv("類別", ii).Value.ToString = "雷射" Or 交易明細_dgv("類別", ii).Value.ToString = "治療") And
  97. 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
  98. 獎金計算_dgv("排程業績", I).Value = 獎金計算_dgv("排程業績", I).Value + 交易明細_dgv("業績", ii).Value
  99. End If
  100. '------雷射、治療操作-------------------------------------------------------------------------------------------
  101. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("操作人員", ii).Value.ToString, 4, 5) And
  102. (交易明細_dgv("類別", ii).Value.ToString = "雷射" Or 交易明細_dgv("類別", ii).Value.ToString = "治療") And
  103. 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
  104. 獎金計算_dgv("操作業績", I).Value = 獎金計算_dgv("操作業績", I).Value + 交易明細_dgv("業績", ii).Value
  105. End If
  106. '------雷射、治療-------------------------------------------------------------------------------------------
  107. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
  108. (交易明細_dgv("類別", ii).Value.ToString = "雷射" Or 交易明細_dgv("類別", ii).Value.ToString = "治療") And
  109. (交易明細_dgv("備註", ii).Value.ToString = "預購療程" Or 交易明細_dgv("備註", ii).Value.ToString = ".") Then
  110. 獎金計算_dgv("雷射/治療", I).Value = 獎金計算_dgv("雷射/治療", I).Value + 交易明細_dgv("業績", ii).Value
  111. End If
  112. '------手術排程-------------------------------------------------------------------------------------------
  113. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
  114. 交易明細_dgv("類別", ii).Value.ToString = "手術" And 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
  115. 獎金計算_dgv("手術排程", I).Value = 獎金計算_dgv("手術排程", I).Value + 交易明細_dgv("業績", ii).Value
  116. End If
  117. '------手術操作-------------------------------------------------------------------------------------------
  118. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("操作人員", ii).Value.ToString, 4, 5) And
  119. 交易明細_dgv("類別", ii).Value.ToString = "手術" And 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
  120. 獎金計算_dgv("手術操作", I).Value = 獎金計算_dgv("手術操作", I).Value + 交易明細_dgv("業績", ii).Value
  121. End If
  122. '------手術-------------------------------------------------------------------------------------------
  123. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
  124. 交易明細_dgv("類別", ii).Value.ToString = "手術" And
  125. (交易明細_dgv("備註", ii).Value.ToString = "預購療程" Or 交易明細_dgv("備註", ii).Value.ToString = ".") Then
  126. 獎金計算_dgv("手術", I).Value = 獎金計算_dgv("手術", I).Value + 交易明細_dgv("業績", ii).Value
  127. End If
  128. '------植髮/電波-------------------------------------------------------------------------------------------
  129. If (獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) Or
  130. 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("操作人員", ii).Value.ToString, 4, 5)) And
  131. (交易明細_dgv("類別", ii).Value.ToString = "植髮" Or 交易明細_dgv("類別", ii).Value.ToString = "電波") And
  132. 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
  133. 獎金計算_dgv("植髮/電波業績", I).Value = 獎金計算_dgv("植髮/電波業績", I).Value + 交易明細_dgv("業績", ii).Value
  134. End If
  135. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
  136. (交易明細_dgv("類別", ii).Value.ToString = "植髮" Or 交易明細_dgv("類別", ii).Value.ToString = "電波") And
  137. (交易明細_dgv("備註", ii).Value.ToString = "預購療程" Or 交易明細_dgv("備註", ii).Value.ToString = ".") Then
  138. 獎金計算_dgv("植髮/電波", I).Value = 獎金計算_dgv("植髮/電波", I).Value + 交易明細_dgv("業績", ii).Value
  139. End If
  140. '------預購療程-------------------------------------------------------------------------------------------
  141. If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
  142. 交易明細_dgv("備註", ii).Value.ToString = "預購療程" Then
  143. 獎金計算_dgv("預購療程", I).Value = 獎金計算_dgv("預購療程", I).Value + 交易明細_dgv("業績", ii).Value
  144. End If
  145. Next
  146. '------一般產品,人工皮-------------------------------------------------------------------------------------------
  147. If 獎金計算_dgv("時薪", I).Value.ToString = "時薪" Then
  148. If 獎金計算_dgv("一般產品業績", I).Value < 產品_時薪_nud.Value Then
  149. 獎金計算_dgv("一般產品獎金", I).Value = 獎金計算_dgv("一般產品業績", I).Value / 100 * 業績_未達標1_nud.Value
  150. Else
  151. 獎金計算_dgv("一般產品獎金", I).Value = 獎金計算_dgv("一般產品業績", I).Value / 100 * 業績_達標1_nud.Value
  152. End If
  153. Else
  154. If 獎金計算_dgv("一般產品業績", I).Value < 產品_月薪_nud.Value Then
  155. 獎金計算_dgv("一般產品獎金", I).Value = 獎金計算_dgv("一般產品業績", I).Value / 100 * 業績_未達標1_nud.Value
  156. Else
  157. 獎金計算_dgv("一般產品獎金", I).Value = 獎金計算_dgv("一般產品業績", I).Value / 100 * 業績_達標1_nud.Value
  158. End If
  159. End If
  160. '------美療操作-------------------------------------------------------------------------------------------
  161. 獎金計算_dgv("美療獎金", I).Value = (獎金計算_dgv("美療排程", I).Value / 100 * 美療獎金_nud.Value) + (獎金計算_dgv("美療操作", I).Value / 100 * 美療獎金_nud.Value)
  162. '------雷射、治療排程-------------------------------------------------------------------------------------------
  163. If 獎金計算_dgv("排程業績", I).Value < 排程業績_nud.Value Then
  164. 獎金計算_dgv("排程獎金", I).Value = 獎金計算_dgv("排程業績", I).Value / 100 * 業績_未達標2_nud.Value
  165. Else
  166. 獎金計算_dgv("排程獎金", I).Value = 獎金計算_dgv("排程業績", I).Value / 100 * 業績_達標2_nud.Value
  167. End If
  168. '------雷射、治療操作-------------------------------------------------------------------------------------------
  169. 獎金計算_dgv("操作獎金", I).Value = 獎金計算_dgv("操作業績", I).Value / 100 * 操作獎金_nud.Value
  170. '------手術排程-------------------------------------------------------------------------------------------
  171. 獎金計算_dgv("手術排程獎金", I).Value = 獎金計算_dgv("手術排程", I).Value / 100 * 手術排程_nud.Value
  172. '------手術操作-------------------------------------------------------------------------------------------
  173. 獎金計算_dgv("手術操作獎金", I).Value = 獎金計算_dgv("手術操作", I).Value / 100 * 手術操作_nud.Value
  174. '------植髮-------------------------------------------------------------------------------------------
  175. 獎金計算_dgv("植髮/電波獎金", I).Value = 獎金計算_dgv("植髮/電波業績", I).Value / 100 * 植髮獎金_nud.Value
  176. '------預購療程-------------------------------------------------------------------------------------------
  177. If 獎金計算_dgv("預購療程", I).Value < 預售_nud.Value Then
  178. 獎金計算_dgv("預購獎金", I).Value = 0
  179. Else
  180. 獎金計算_dgv("預購獎金", I).Value = 獎金計算_dgv("預購療程", I).Value / 100 * 預售獎金_nud.Value
  181. End If
  182. '------彙總-------------------------------------------------------------------------------------------
  183. 獎金計算_dgv("總獎金", I).Value = 獎金計算_dgv("預購獎金", I).Value + 獎金計算_dgv("植髮/電波獎金", I).Value + 獎金計算_dgv("手術操作獎金", I).Value +
  184. 獎金計算_dgv("手術排程獎金", I).Value + 獎金計算_dgv("操作獎金", I).Value + 獎金計算_dgv("排程獎金", I).Value +
  185. 獎金計算_dgv("美療獎金", I).Value + 獎金計算_dgv("一般產品獎金", I).Value
  186. 獎金計算_dgv("實收業績", I).Value = 獎金計算_dgv("植髮/電波", I).Value + 獎金計算_dgv("手術", I).Value + 獎金計算_dgv("雷射/治療", I).Value +
  187. 獎金計算_dgv("美療", I).Value + 獎金計算_dgv("一般產品", I).Value
  188. 獎金計算_dgv("償還業績", I).Value = (獎金計算_dgv("一般產品業績", I).Value + 獎金計算_dgv("美療排程", I).Value + 獎金計算_dgv("排程業績", I).Value +
  189. 獎金計算_dgv("手術排程", I).Value + 獎金計算_dgv("植髮/電波業績", I).Value + 獎金計算_dgv("預購療程", I).Value -
  190. 獎金計算_dgv("實收業績", I).Value)
  191. 獎金計算_dgv("總業績", I).Value = 獎金計算_dgv("償還業績", I).Value + 獎金計算_dgv("實收業績", I).Value
  192. If 獎金計算_dgv("總業績", I).Value = 0 Then
  193. 獎金計算_dgv("獎金比", I).Value = "0 %"
  194. Else
  195. 獎金計算_dgv("獎金比", I).Value = Math.Round(獎金計算_dgv("總獎金", I).Value / 獎金計算_dgv("總業績", I).Value * 100, 2) & " %"
  196. End If
  197. Next : GRAMS_SYS.ToolStripProgressBar1.Value = 0 : 最終數 = 0
  198. 獎金計算_dgv.Columns(2).DefaultCellStyle.BackColor = Color.LightGreen : 獎金計算_dgv.Columns(3).DefaultCellStyle.BackColor = Color.LightGreen
  199. 獎金計算_dgv.Columns(4).DefaultCellStyle.BackColor = Color.LightGreen : 獎金計算_dgv.Columns(5).DefaultCellStyle.BackColor = Color.LightGreen
  200. 獎金計算_dgv.Columns(6).DefaultCellStyle.BackColor = Color.LightGreen : 獎金計算_dgv.Columns(7).DefaultCellStyle.BackColor = Color.LightGreen
  201. 獎金計算_dgv.Columns(8).DefaultCellStyle.BackColor = Color.LightGreen : 獎金計算_dgv.Columns(9).DefaultCellStyle.BackColor = Color.LightGreen
  202. 獎金計算_dgv.Columns(10).DefaultCellStyle.BackColor = Color.LightGreen
  203. 獎金計算_dgv.Columns(11).DefaultCellStyle.BackColor = Color.LightBlue : 獎金計算_dgv.Columns(12).DefaultCellStyle.BackColor = Color.LightBlue
  204. 獎金計算_dgv.Columns(13).DefaultCellStyle.BackColor = Color.LightBlue : 獎金計算_dgv.Columns(14).DefaultCellStyle.BackColor = Color.LightBlue
  205. 獎金計算_dgv.Columns(15).DefaultCellStyle.BackColor = Color.LightBlue : 獎金計算_dgv.Columns(16).DefaultCellStyle.BackColor = Color.LightBlue
  206. 獎金計算_dgv.Columns(17).DefaultCellStyle.BackColor = Color.LightBlue : 獎金計算_dgv.Columns(18).DefaultCellStyle.BackColor = Color.LightBlue
  207. 獎金計算_dgv.Columns(19).DefaultCellStyle.BackColor = Color.LightBlue
  208. 獎金計算_dgv.Columns(20).DefaultCellStyle.BackColor = Color.LightPink : 獎金計算_dgv.Columns(21).DefaultCellStyle.BackColor = Color.LightPink
  209. 獎金計算_dgv.Columns(22).DefaultCellStyle.BackColor = Color.LightPink : 獎金計算_dgv.Columns(23).DefaultCellStyle.BackColor = Color.LightPink
  210. 獎金計算_dgv.Columns(24).DefaultCellStyle.BackColor = Color.LightPink : 獎金計算_dgv.Columns(25).DefaultCellStyle.BackColor = Color.LightPink
  211. 獎金計算_dgv.Columns(26).DefaultCellStyle.BackColor = Color.OrangeRed
  212. 獎金計算_dgv.Sort(獎金計算_dgv.Columns("實收業績"), System.ComponentModel.ListSortDirection.Descending)
  213. 表格繪製()
  214. End Sub
  215. Private Sub SET_使用者下拉清單載入()
  216. SQL_客戶交易明細表_月份() : 月份_cb.Items.Clear() : 月份1_cb.Items.Clear() : 月份2_cb.Items.Clear()
  217. While (dr.Read()) : 月份_cb.Items.Add(dr("月份")) : 月份1_cb.Items.Add(dr("月份")) : 月份2_cb.Items.Add(dr("月份")) : End While : conn.Close()
  218. End Sub
  219. Private Sub 表格繪製()
  220. '-------線狀圖------------------------------------------------------
  221. Chart1.Series.Clear() : Chart1.ChartAreas(0).AxisX.Minimum = 0 : Chart1.ChartAreas(0).AxisX.Maximum = 獎金計算_dgv.Rows.Count
  222. Chart1.Series.Add("實收業績") : Chart1.Series("實收業績").ChartType = SeriesChartType.Column
  223. For i As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
  224. Chart1.Series("實收業績").Points.AddXY(獎金計算_dgv.Rows(i).Cells("人員").Value.ToString, 獎金計算_dgv.Rows(i).Cells("實收業績").Value.ToString)
  225. Next
  226. Chart1.Series.Add("償還業績") : Chart1.Series("償還業績").ChartType = SeriesChartType.Column
  227. For i As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
  228. Chart1.Series("償還業績").Points.AddXY(獎金計算_dgv.Rows(i).Cells("人員").Value.ToString, 獎金計算_dgv.Rows(i).Cells("償還業績").Value.ToString)
  229. Next
  230. If CheckBox1.Checked = True Then
  231. Chart1.Series.Add("一般產品") : Chart1.Series("一般產品").ChartType = SeriesChartType.Line
  232. For i As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
  233. Chart1.Series("一般產品").Points.AddXY(獎金計算_dgv.Rows(i).Cells("人員").Value.ToString, 獎金計算_dgv.Rows(i).Cells("一般產品").Value.ToString)
  234. Next
  235. End If
  236. If CheckBox2.Checked = True Then
  237. Chart1.Series.Add("美療") : Chart1.Series("美療").ChartType = SeriesChartType.Line
  238. For i As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
  239. Chart1.Series("美療").Points.AddXY(獎金計算_dgv.Rows(i).Cells("人員").Value.ToString, 獎金計算_dgv.Rows(i).Cells("美療").Value.ToString)
  240. Next
  241. End If
  242. If CheckBox3.Checked = True Then
  243. Chart1.Series.Add("雷射/治療") : Chart1.Series("雷射/治療").ChartType = SeriesChartType.Line
  244. For i As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
  245. Chart1.Series("雷射/治療").Points.AddXY(獎金計算_dgv.Rows(i).Cells("人員").Value.ToString, 獎金計算_dgv.Rows(i).Cells("雷射/治療").Value.ToString)
  246. Next
  247. End If
  248. If CheckBox4.Checked = True Then
  249. Chart1.Series.Add("手術") : Chart1.Series("手術").ChartType = SeriesChartType.Line
  250. For i As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
  251. Chart1.Series("手術").Points.AddXY(獎金計算_dgv.Rows(i).Cells("人員").Value.ToString, 獎金計算_dgv.Rows(i).Cells("手術").Value.ToString)
  252. Next
  253. End If
  254. If CheckBox5.Checked = True Then
  255. Chart1.Series.Add("植髮/電波") : Chart1.Series("植髮/電波").ChartType = SeriesChartType.Line
  256. For i As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
  257. Chart1.Series("植髮/電波").Points.AddXY(獎金計算_dgv.Rows(i).Cells("人員").Value.ToString, 獎金計算_dgv.Rows(i).Cells("植髮/電波").Value.ToString)
  258. Next
  259. End If
  260. End Sub
  261. Private Sub 人員貢獻分析表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  262. Me.MdiParent = GRAMS_SYS : Me.WindowState = 2 : Me.AutoScroll = True
  263. SET_使用者下拉清單載入() : 月份_cb.SelectedIndex = 月份_cb.Items.Count - 1 : 月份1_cb.SelectedIndex = 月份1_cb.Items.Count - 2 : 月份2_cb.SelectedIndex = 月份2_cb.Items.Count - 3
  264. SET_客戶交易明細表() : 月1 = 1 : 月2 = 2 : 月3 = 3
  265. 姓名_tb.Text = 獎金計算_dgv("人員", 0).Value.ToString
  266. Label18.Text = "從 " & 月份2_cb.Text & " 到 " & 月份_cb.Text & " 的"
  267. Chart2.Series.Clear()
  268. Chart2.Series.Add("總業績") : Chart2.Series("總業績").ChartType = SeriesChartType.Pie
  269. Chart2.Series("總業績").IsValueShownAsLabel = True
  270. Chart2.Series("總業績").IsVisibleInLegend = True
  271. Chart2.Series("總業績").IsXValueIndexed = True
  272. Chart2.Series("總業績").Points.AddXY("實收業績", Format(獎金計算_dgv.Rows(0).Cells("實收業績").Value, "#,##0"))
  273. Chart2.Series("總業績").Points.AddXY("償還業績", Format(獎金計算_dgv.Rows(0).Cells("償還業績").Value, "#,##0"))
  274. Chart3.Series.Clear()
  275. Chart3.Series.Add("整體業績") : Chart3.Series("整體業績").ChartType = SeriesChartType.Pie
  276. Chart3.Series("整體業績").IsValueShownAsLabel = True
  277. Chart3.Series("整體業績").IsVisibleInLegend = True
  278. Chart3.Series("整體業績").IsXValueIndexed = True
  279. Chart3.Series("整體業績").Points.AddXY("一般產品", Format(獎金計算_dgv.Rows(0).Cells("一般產品業績").Value, "#,##0"))
  280. Chart3.Series("整體業績").Points.AddXY("美療", Format(獎金計算_dgv.Rows(0).Cells("美療排程").Value, "#,##0"))
  281. Chart3.Series("整體業績").Points.AddXY("雷射/治療", Format(獎金計算_dgv.Rows(0).Cells("排程業績").Value, "#,##0"))
  282. Chart3.Series("整體業績").Points.AddXY("手術", Format(獎金計算_dgv.Rows(0).Cells("手術排程").Value, "#,##0"))
  283. Chart3.Series("整體業績").Points.AddXY("植髮/電波", Format(獎金計算_dgv.Rows(0).Cells("植髮/電波業績").Value, "#,##0"))
  284. Chart3.Series("整體業績").Points.AddXY("預購療程", Format(獎金計算_dgv.Rows(0).Cells("預購療程").Value, "#,##0"))
  285. Chart4.Series.Clear()
  286. Chart4.Series.Add("實收業績") : Chart4.Series("實收業績").ChartType = SeriesChartType.Pie
  287. Chart4.Series("實收業績").IsValueShownAsLabel = True
  288. Chart4.Series("實收業績").IsVisibleInLegend = True
  289. Chart4.Series("實收業績").IsXValueIndexed = True
  290. Chart4.Series("實收業績").Points.AddXY("一般產品", Format(獎金計算_dgv.Rows(0).Cells("一般產品").Value, "#,##0"))
  291. Chart4.Series("實收業績").Points.AddXY("美療", Format(獎金計算_dgv.Rows(0).Cells("美療").Value, "#,##0"))
  292. Chart4.Series("實收業績").Points.AddXY("雷射/治療", Format(獎金計算_dgv.Rows(0).Cells("雷射/治療").Value, "#,##0"))
  293. Chart4.Series("實收業績").Points.AddXY("手術", Format(獎金計算_dgv.Rows(0).Cells("手術").Value, "#,##0"))
  294. Chart4.Series("實收業績").Points.AddXY("植髮/電波", Format(獎金計算_dgv.Rows(0).Cells("植髮/電波").Value, "#,##0"))
  295. SET_產品()
  296. End Sub
  297. Private Sub 產品_dgv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles 產品_dgv.MouseUp
  298. If 產品_dgv.SelectedRows.Count > 0 Then
  299. Dim sb As New System.Text.StringBuilder()
  300. Dim x As Double = 0
  301. 'Dim y As Double = 0
  302. For i As Integer = 0 To 產品_dgv.SelectedRows.Count - 1
  303. x += Math.Round(產品_dgv.Rows(產品_dgv.SelectedRows.Item(i).Index).Cells(2).Value, 1)
  304. Next i
  305. 選擇加總_tb.Text = Strings.Format(x, "#,##0")
  306. End If
  307. End Sub
  308. Private Sub 獎金計算_dgv_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles 獎金計算_dgv.CellClick
  309. If e.RowIndex = -1 Then : Else
  310. 姓名_tb.Text = 獎金計算_dgv("人員", e.RowIndex).Value.ToString
  311. Label18.Text = "從 " & 月份2_cb.Text & " 到 " & 月份_cb.Text & " 的"
  312. Chart2.Series.Clear()
  313. Chart2.Series.Add("總業績") : Chart2.Series("總業績").ChartType = SeriesChartType.Pie
  314. Chart2.Series("總業績").IsValueShownAsLabel = True
  315. Chart2.Series("總業績").IsVisibleInLegend = True
  316. Chart2.Series("總業績").IsXValueIndexed = True
  317. Chart2.Series("總業績").Points.AddXY("實收業績", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("實收業績").Value, "#,##0"))
  318. Chart2.Series("總業績").Points.AddXY("償還業績", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("償還業績").Value, "#,##0"))
  319. Chart3.Series.Clear()
  320. Chart3.Series.Add("整體業績") : Chart3.Series("整體業績").ChartType = SeriesChartType.Pie
  321. Chart3.Series("整體業績").IsValueShownAsLabel = True
  322. Chart3.Series("整體業績").IsVisibleInLegend = True
  323. Chart3.Series("整體業績").IsXValueIndexed = True
  324. Chart3.Series("整體業績").Points.AddXY("一般產品", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("一般產品業績").Value, "#,##0"))
  325. Chart3.Series("整體業績").Points.AddXY("美療", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("美療排程").Value, "#,##0"))
  326. Chart3.Series("整體業績").Points.AddXY("雷射/治療", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("排程業績").Value, "#,##0"))
  327. Chart3.Series("整體業績").Points.AddXY("手術", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("手術排程").Value, "#,##0"))
  328. Chart3.Series("整體業績").Points.AddXY("植髮/電波", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("植髮/電波業績").Value, "#,##0"))
  329. Chart3.Series("整體業績").Points.AddXY("預購療程", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("預購療程").Value, "#,##0"))
  330. Chart4.Series.Clear()
  331. Chart4.Series.Add("實收業績") : Chart4.Series("實收業績").ChartType = SeriesChartType.Pie
  332. Chart4.Series("實收業績").IsValueShownAsLabel = True
  333. Chart4.Series("實收業績").IsVisibleInLegend = True
  334. Chart4.Series("實收業績").IsXValueIndexed = True
  335. Chart4.Series("實收業績").Points.AddXY("一般產品", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("一般產品").Value, "#,##0"))
  336. Chart4.Series("實收業績").Points.AddXY("美療", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("美療").Value, "#,##0"))
  337. Chart4.Series("實收業績").Points.AddXY("雷射/治療", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("雷射/治療").Value, "#,##0"))
  338. Chart4.Series("實收業績").Points.AddXY("手術", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("手術").Value, "#,##0"))
  339. Chart4.Series("實收業績").Points.AddXY("植髮/電波", Format(獎金計算_dgv.Rows(e.RowIndex).Cells("植髮/電波").Value, "#,##0"))
  340. SET_產品()
  341. End If
  342. End Sub
  343. Private Sub 獎金計算_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 獎金計算_dgv.RowPostPaint
  344. 表格繪製()
  345. End Sub
  346. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.Click
  347. 表格繪製()
  348. End Sub
  349. Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox4.Click
  350. 表格繪製()
  351. End Sub
  352. Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox3.Click
  353. 表格繪製()
  354. End Sub
  355. Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.Click
  356. 表格繪製()
  357. End Sub
  358. Private Sub CheckBox5_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox5.Click
  359. 表格繪製()
  360. End Sub
  361. Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.Click
  362. SET_產品()
  363. End Sub
  364. Private Sub RadioButton6_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton6.Click
  365. SET_產品()
  366. End Sub
  367. Private Sub RadioButton5_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton5.Click
  368. SET_產品()
  369. End Sub
  370. Private Sub RadioButton4_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton4.Click
  371. SET_產品()
  372. End Sub
  373. Private Sub RadioButton3_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton3.Click
  374. SET_產品()
  375. End Sub
  376. Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton2.Click
  377. SET_產品()
  378. End Sub
  379. Private Sub RadioButton7_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton7.Click
  380. SET_產品()
  381. End Sub
  382. Private Sub 上個月_bt_Click(sender As Object, e As EventArgs) Handles 上個月_bt.Click
  383. If 月3 = 月份2_cb.Items.Count Then
  384. MsgBox("沒有上個月了!!")
  385. Else
  386. 月1 += 1 : 月2 += 1 : 月3 += 1
  387. 月份_cb.SelectedIndex = 月份_cb.Items.Count - 月1 : 月份1_cb.SelectedIndex = 月份1_cb.Items.Count - 月2 : 月份2_cb.SelectedIndex = 月份2_cb.Items.Count - 月3
  388. SET_客戶交易明細表()
  389. End If
  390. End Sub
  391. Private Sub 下個月_bt_Click(sender As Object, e As EventArgs) Handles 下個月_bt.Click
  392. If 月1 = 1 Then
  393. MsgBox("沒有下個月了!!")
  394. Else
  395. 月1 -= 1 : 月2 -= 1 : 月3 -= 1
  396. 月份_cb.SelectedIndex = 月份_cb.Items.Count - 月1 : 月份1_cb.SelectedIndex = 月份1_cb.Items.Count - 月2 : 月份2_cb.SelectedIndex = 月份2_cb.Items.Count - 月3
  397. SET_客戶交易明細表()
  398. End If
  399. End Sub
  400. End Class