123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369 |
- Option Strict Off
- Imports Microsoft.Office.Interop.Excel.XlUnderlineStyle
- Imports Microsoft.Office.Interop.Excel.Constants
- Imports Microsoft.Office.Interop.Excel.XlBordersIndex
- Imports Microsoft.Office.Interop.Excel.XlLineStyle
- Imports Microsoft.Office.Interop.Excel.XlBorderWeight
- Imports Microsoft.Office.Interop.Excel.XlThemeFont
- Imports Microsoft.Office.Interop.Excel.XlThemeColor
- Imports Microsoft.Office.Interop.Excel.XlWindowState
- Public Class 業績獎金計算表
- ReadOnly ds, ds1 As New DataSet
- Private Sub SET_客戶交易明細表()
- 交易明細_dgv.DataSource = Nothing : ds.Clear()
- 交易明細_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 交易明細_dgv.ColumnHeadersHeight = 40 : 交易明細_dgv.AllowUserToAddRows = False
- SQL_客戶交易明細表_清單()
- da.Fill(ds) : 交易明細_dgv.DataSource = ds.Tables(0) : conn.Close()
-
- 交易明細_dgv.Columns(0).Visible = False : 交易明細_dgv.Columns(2).Visible = False : 交易明細_dgv.Columns(4).Visible = False : 交易明細_dgv.Columns(5).Visible = False
- 交易明細_dgv.Columns(13).Visible = False : 交易明細_dgv.Columns(18).Visible = False : 交易明細_dgv.Columns(19).Visible = False
- 交易明細_dgv.Columns(6).FillWeight = 300 : 交易明細_dgv.Columns(12).FillWeight = 150
-
- For I As Integer = 0 To 20 : 交易明細_dgv.Columns(I).ReadOnly = True : Next
-
- 交易明細_dgv.Columns(7).DefaultCellStyle.Format = "#,##0" : 交易明細_dgv.Columns(8).DefaultCellStyle.Format = "#,##0"
- 交易明細_dgv.Columns(9).DefaultCellStyle.Format = "#,##0.00" : 交易明細_dgv.Columns(10).DefaultCellStyle.Format = "#,##0.0"
- 交易明細_dgv.Columns(11).DefaultCellStyle.Format = "#,##0"
- 交易明細_dgv.Columns(7).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
- 交易明細_dgv.Columns(8).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
- 交易明細_dgv.Columns(9).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
- 交易明細_dgv.Columns(10).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
- 交易明細_dgv.Columns(11).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
-
- SET_獎金計算()
- End Sub
- Private Sub SET_獎金計算()
- 獎金計算_dgv.DataSource = Nothing : ds1.Clear()
- 獎金計算_dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.EnableResizing
- 獎金計算_dgv.ColumnHeadersHeight = 40 : 獎金計算_dgv.AllowUserToAddRows = False
- SQL_獎金計算_清單()
- da.Fill(ds1) : 獎金計算_dgv.DataSource = ds1.Tables(0) : conn.Close()
-
- For I As Integer = 2 To 27
- 獎金計算_dgv.Columns(I).DefaultCellStyle.Format = "#,##0"
- 獎金計算_dgv.Columns(I).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
- Next
- For I As Integer = 0 To 28 : 獎金計算_dgv.Columns(I).ReadOnly = True : Next
- 獎金計算_dgv.Columns(0).FillWeight = 75 : 獎金計算_dgv.Columns(1).FillWeight = 60
- 獎金計算_dgv.Columns(28).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
-
- For no As Integer = 1 To 26
- Dim TextBoxS As TextBox = CType(Me.Controls.Find("TextBox" + no.ToString(), True)(0), TextBox) : TextBoxS.Text = "0"
- Next
-
- For I As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
- 獎金計算_dgv("一般產品業績", I).Value = 0 : 獎金計算_dgv("美療排程", I).Value = 0 : 獎金計算_dgv("美療操作", I).Value = 0
- 獎金計算_dgv("排程業績", I).Value = 0 : 獎金計算_dgv("操作業績", I).Value = 0 : 獎金計算_dgv("手術排程", I).Value = 0
- 獎金計算_dgv("手術操作", I).Value = 0 : 獎金計算_dgv("植髮/電波業績", I).Value = 0 : 獎金計算_dgv("預購療程", I).Value = 0
- 獎金計算_dgv("償還業績", I).Value = 0 : 獎金計算_dgv("一般產品", I).Value = 0 : 獎金計算_dgv("美療", I).Value = 0
- 獎金計算_dgv("雷射/治療", I).Value = 0 : 獎金計算_dgv("手術", I).Value = 0 : 獎金計算_dgv("植髮/電波", I).Value = 0
- For ii As Integer = 0 To 交易明細_dgv.Rows.Count - 1
- '------一般產品,人工皮-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("產品銷售", ii).Value.ToString, 4, 5) And
- (交易明細_dgv("類別", ii).Value.ToString = "一般產品" Or 交易明細_dgv("類別", ii).Value.ToString = "人工皮") Then
- 獎金計算_dgv("一般產品業績", I).Value = 獎金計算_dgv("一般產品業績", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("產品銷售", ii).Value.ToString, 4, 5) And
- (交易明細_dgv("類別", ii).Value.ToString = "一般產品" Or 交易明細_dgv("類別", ii).Value.ToString = "人工皮") Then
- 獎金計算_dgv("一般產品", I).Value = 獎金計算_dgv("一般產品", I).Value + 交易明細_dgv("業績", ii).Value
- End If
-
- '------美療排程-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
- 交易明細_dgv("類別", ii).Value.ToString = "美療" And 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
- 獎金計算_dgv("美療排程", I).Value = 獎金計算_dgv("美療排程", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- '------美療操作-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("操作人員", ii).Value.ToString, 4, 5) And
- 交易明細_dgv("類別", ii).Value.ToString = "美療" And 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
- 獎金計算_dgv("美療操作", I).Value = 獎金計算_dgv("美療操作", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- '------美療-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
- 交易明細_dgv("類別", ii).Value.ToString = "美療" And (交易明細_dgv("備註", ii).Value.ToString = "預購療程" Or
- 交易明細_dgv("備註", ii).Value.ToString = ".") Then
- 獎金計算_dgv("美療", I).Value = 獎金計算_dgv("美療", I).Value + 交易明細_dgv("業績", ii).Value
- End If
-
- '------雷射、治療排程-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
- (交易明細_dgv("類別", ii).Value.ToString = "雷射" Or 交易明細_dgv("類別", ii).Value.ToString = "治療") And
- 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
- 獎金計算_dgv("排程業績", I).Value = 獎金計算_dgv("排程業績", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- '------雷射、治療操作-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("操作人員", ii).Value.ToString, 4, 5) And
- (交易明細_dgv("類別", ii).Value.ToString = "雷射" Or 交易明細_dgv("類別", ii).Value.ToString = "治療") And
- 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
- 獎金計算_dgv("操作業績", I).Value = 獎金計算_dgv("操作業績", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- '------雷射、治療-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
- (交易明細_dgv("類別", ii).Value.ToString = "雷射" Or 交易明細_dgv("類別", ii).Value.ToString = "治療") And
- (交易明細_dgv("備註", ii).Value.ToString = "預購療程" Or 交易明細_dgv("備註", ii).Value.ToString = ".") Then
- 獎金計算_dgv("雷射/治療", I).Value = 獎金計算_dgv("雷射/治療", I).Value + 交易明細_dgv("業績", ii).Value
- End If
-
- '------手術排程-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
- 交易明細_dgv("類別", ii).Value.ToString = "手術" And 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
- 獎金計算_dgv("手術排程", I).Value = 獎金計算_dgv("手術排程", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- '------手術操作-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("操作人員", ii).Value.ToString, 4, 5) And
- 交易明細_dgv("類別", ii).Value.ToString = "手術" And 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
- 獎金計算_dgv("手術操作", I).Value = 獎金計算_dgv("手術操作", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- '------手術-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
- 交易明細_dgv("類別", ii).Value.ToString = "手術" And
- (交易明細_dgv("備註", ii).Value.ToString = "預購療程" Or 交易明細_dgv("備註", ii).Value.ToString = ".") Then
- 獎金計算_dgv("手術", I).Value = 獎金計算_dgv("手術", I).Value + 交易明細_dgv("業績", ii).Value
- End If
-
- '------植髮/電波-------------------------------------------------------------------------------------------
- If (獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) Or
- 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("操作人員", ii).Value.ToString, 4, 5)) And
- (交易明細_dgv("類別", ii).Value.ToString = "植髮" Or 交易明細_dgv("類別", ii).Value.ToString = "電波") And
- 交易明細_dgv("備註", ii).Value.ToString <> "預購療程" Then
- 獎金計算_dgv("植髮/電波業績", I).Value = 獎金計算_dgv("植髮/電波業績", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
- (交易明細_dgv("類別", ii).Value.ToString = "植髮" Or 交易明細_dgv("類別", ii).Value.ToString = "電波") And
- (交易明細_dgv("備註", ii).Value.ToString = "預購療程" Or 交易明細_dgv("備註", ii).Value.ToString = ".") Then
- 獎金計算_dgv("植髮/電波", I).Value = 獎金計算_dgv("植髮/電波", I).Value + 交易明細_dgv("業績", ii).Value
- End If
-
- '------預購療程-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("人員", I).Value.ToString = Strings.Mid(交易明細_dgv("排程人員", ii).Value.ToString, 4, 5) And
- 交易明細_dgv("備註", ii).Value.ToString = "預購療程" Then
- 獎金計算_dgv("預購療程", I).Value = 獎金計算_dgv("預購療程", I).Value + 交易明細_dgv("業績", ii).Value
- End If
- Next
- '------一般產品,人工皮-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("時薪", I).Value.ToString = "時薪" Then
- If 獎金計算_dgv("一般產品業績", I).Value < 產品_時薪_nud.Value Then
- 獎金計算_dgv("一般產品獎金", I).Value = 獎金計算_dgv("一般產品業績", I).Value / 100 * 業績_未達標1_nud.Value
- Else
- 獎金計算_dgv("一般產品獎金", I).Value = 獎金計算_dgv("一般產品業績", I).Value / 100 * 業績_達標1_nud.Value
- End If
- Else
- If 獎金計算_dgv("一般產品業績", I).Value < 產品_月薪_nud.Value Then
- 獎金計算_dgv("一般產品獎金", I).Value = 獎金計算_dgv("一般產品業績", I).Value / 100 * 業績_未達標1_nud.Value
- Else
- 獎金計算_dgv("一般產品獎金", I).Value = 獎金計算_dgv("一般產品業績", I).Value / 100 * 業績_達標1_nud.Value
- End If
- End If
- '------美療操作-------------------------------------------------------------------------------------------
- 獎金計算_dgv("美療獎金", I).Value = (獎金計算_dgv("美療排程", I).Value / 100 * 美療獎金_nud.Value) + (獎金計算_dgv("美療操作", I).Value / 100 * 美療獎金_nud.Value)
- '------雷射、治療排程-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("排程業績", I).Value < 排程業績_nud.Value Then
- 獎金計算_dgv("排程獎金", I).Value = 獎金計算_dgv("排程業績", I).Value / 100 * 業績_未達標2_nud.Value
- Else
- 獎金計算_dgv("排程獎金", I).Value = 獎金計算_dgv("排程業績", I).Value / 100 * 業績_達標2_nud.Value
- End If
- '------雷射、治療操作-------------------------------------------------------------------------------------------
- 獎金計算_dgv("操作獎金", I).Value = 獎金計算_dgv("操作業績", I).Value / 100 * 操作獎金_nud.Value
- '------手術排程-------------------------------------------------------------------------------------------
- 獎金計算_dgv("手術排程獎金", I).Value = 獎金計算_dgv("手術排程", I).Value / 100 * 手術排程_nud.Value
- '------手術操作-------------------------------------------------------------------------------------------
- 獎金計算_dgv("手術操作獎金", I).Value = 獎金計算_dgv("手術操作", I).Value / 100 * 手術操作_nud.Value
- '------植髮-------------------------------------------------------------------------------------------
- 獎金計算_dgv("植髮/電波獎金", I).Value = 獎金計算_dgv("植髮/電波業績", I).Value / 100 * 植髮獎金_nud.Value
- '------預購療程-------------------------------------------------------------------------------------------
- If 獎金計算_dgv("預購療程", I).Value < 預售_nud.Value Then
- 獎金計算_dgv("預購獎金", I).Value = 0
- Else
- 獎金計算_dgv("預購獎金", I).Value = 獎金計算_dgv("預購療程", I).Value / 100 * 預售獎金_nud.Value
- End If
- '------彙總-------------------------------------------------------------------------------------------
- 獎金計算_dgv("總獎金", I).Value = 獎金計算_dgv("預購獎金", I).Value + 獎金計算_dgv("植髮/電波獎金", I).Value + 獎金計算_dgv("手術操作獎金", I).Value +
- 獎金計算_dgv("手術排程獎金", I).Value + 獎金計算_dgv("操作獎金", I).Value + 獎金計算_dgv("排程獎金", I).Value +
- 獎金計算_dgv("美療獎金", I).Value + 獎金計算_dgv("一般產品獎金", I).Value
- 獎金計算_dgv("實收業績", I).Value = 獎金計算_dgv("植髮/電波", I).Value + 獎金計算_dgv("手術", I).Value + 獎金計算_dgv("雷射/治療", I).Value +
- 獎金計算_dgv("美療", I).Value + 獎金計算_dgv("一般產品", I).Value
- 獎金計算_dgv("償還業績", I).Value = (獎金計算_dgv("一般產品業績", I).Value + 獎金計算_dgv("美療排程", I).Value + 獎金計算_dgv("排程業績", I).Value +
- 獎金計算_dgv("手術排程", I).Value + 獎金計算_dgv("植髮/電波業績", I).Value + 獎金計算_dgv("預購療程", I).Value -
- 獎金計算_dgv("實收業績", I).Value)
- 獎金計算_dgv("總業績", I).Value = 獎金計算_dgv("償還業績", I).Value + 獎金計算_dgv("實收業績", I).Value
- If 獎金計算_dgv("總業績", I).Value = 0 Then
- 獎金計算_dgv("獎金比", I).Value = "0 %"
- Else
- 獎金計算_dgv("獎金比", I).Value = Math.Round(獎金計算_dgv("總獎金", I).Value / 獎金計算_dgv("總業績", I).Value * 100, 2) & " %"
- End If
-
- TextBox1.Text = Val(TextBox1.Text) + 獎金計算_dgv("一般產品業績", I).Value : TextBox2.Text = Val(TextBox2.Text) + 獎金計算_dgv("美療排程", I).Value
- TextBox3.Text = Val(TextBox3.Text) + 獎金計算_dgv("美療操作", I).Value : TextBox4.Text = Val(TextBox4.Text) + 獎金計算_dgv("排程業績", I).Value
- TextBox5.Text = Val(TextBox5.Text) + 獎金計算_dgv("操作業績", I).Value : TextBox6.Text = Val(TextBox6.Text) + 獎金計算_dgv("手術排程", I).Value
- TextBox7.Text = Val(TextBox7.Text) + 獎金計算_dgv("手術操作", I).Value : TextBox8.Text = Val(TextBox8.Text) + 獎金計算_dgv("植髮/電波業績", I).Value
- TextBox9.Text = Val(TextBox9.Text) + 獎金計算_dgv("預購療程", I).Value : TextBox10.Text = Val(TextBox10.Text) + 獎金計算_dgv("一般產品獎金", I).Value
- TextBox11.Text = Val(TextBox11.Text) + 獎金計算_dgv("美療獎金", I).Value : TextBox12.Text = Val(TextBox12.Text) + 獎金計算_dgv("排程獎金", I).Value
- TextBox13.Text = Val(TextBox13.Text) + 獎金計算_dgv("操作獎金", I).Value : TextBox14.Text = Val(TextBox14.Text) + 獎金計算_dgv("手術排程獎金", I).Value
- TextBox15.Text = Val(TextBox15.Text) + 獎金計算_dgv("手術操作獎金", I).Value : TextBox16.Text = Val(TextBox16.Text) + 獎金計算_dgv("植髮/電波獎金", I).Value
- TextBox17.Text = Val(TextBox17.Text) + 獎金計算_dgv("預購獎金", I).Value : TextBox18.Text = Val(TextBox18.Text) + 獎金計算_dgv("總獎金", I).Value
- TextBox19.Text = Val(TextBox19.Text) + 獎金計算_dgv("一般產品", I).Value : TextBox20.Text = Val(TextBox20.Text) + 獎金計算_dgv("美療", I).Value
- TextBox21.Text = Val(TextBox21.Text) + 獎金計算_dgv("雷射/治療", I).Value : TextBox22.Text = Val(TextBox22.Text) + 獎金計算_dgv("手術", I).Value
- TextBox23.Text = Val(TextBox23.Text) + 獎金計算_dgv("植髮/電波", I).Value : TextBox24.Text = Val(TextBox24.Text) + 獎金計算_dgv("實收業績", I).Value
- TextBox25.Text = Val(TextBox25.Text) + 獎金計算_dgv("償還業績", I).Value : TextBox26.Text = Val(TextBox26.Text) + 獎金計算_dgv("總業績", I).Value
- Next
- For no As Integer = 1 To 26
- Dim TextBoxS As TextBox = CType(Me.Controls.Find("TextBox" + no.ToString(), True)(0), TextBox) : TextBoxS.Text = Strings.Format(Val(TextBoxS.Text), "#,##0")
- Next
-
- 獎金計算_dgv.Columns(2).DefaultCellStyle.BackColor = Color.LightGreen : 獎金計算_dgv.Columns(3).DefaultCellStyle.BackColor = Color.LightGreen
- 獎金計算_dgv.Columns(4).DefaultCellStyle.BackColor = Color.LightGreen : 獎金計算_dgv.Columns(5).DefaultCellStyle.BackColor = Color.LightGreen
- 獎金計算_dgv.Columns(6).DefaultCellStyle.BackColor = Color.LightGreen : 獎金計算_dgv.Columns(7).DefaultCellStyle.BackColor = Color.LightGreen
- 獎金計算_dgv.Columns(8).DefaultCellStyle.BackColor = Color.LightGreen : 獎金計算_dgv.Columns(9).DefaultCellStyle.BackColor = Color.LightGreen
- 獎金計算_dgv.Columns(10).DefaultCellStyle.BackColor = Color.LightGreen
- 獎金計算_dgv.Columns(11).DefaultCellStyle.BackColor = Color.LightBlue : 獎金計算_dgv.Columns(12).DefaultCellStyle.BackColor = Color.LightBlue
- 獎金計算_dgv.Columns(13).DefaultCellStyle.BackColor = Color.LightBlue : 獎金計算_dgv.Columns(14).DefaultCellStyle.BackColor = Color.LightBlue
- 獎金計算_dgv.Columns(15).DefaultCellStyle.BackColor = Color.LightBlue : 獎金計算_dgv.Columns(16).DefaultCellStyle.BackColor = Color.LightBlue
- 獎金計算_dgv.Columns(17).DefaultCellStyle.BackColor = Color.LightBlue : 獎金計算_dgv.Columns(18).DefaultCellStyle.BackColor = Color.LightBlue
- 獎金計算_dgv.Columns(19).DefaultCellStyle.BackColor = Color.LightBlue
- 獎金計算_dgv.Columns(20).DefaultCellStyle.BackColor = Color.LightPink : 獎金計算_dgv.Columns(21).DefaultCellStyle.BackColor = Color.LightPink
- 獎金計算_dgv.Columns(22).DefaultCellStyle.BackColor = Color.LightPink : 獎金計算_dgv.Columns(23).DefaultCellStyle.BackColor = Color.LightPink
- 獎金計算_dgv.Columns(24).DefaultCellStyle.BackColor = Color.LightPink : 獎金計算_dgv.Columns(25).DefaultCellStyle.BackColor = Color.LightPink
- 獎金計算_dgv.Columns(26).DefaultCellStyle.BackColor = Color.OrangeRed
- End Sub
- Private Sub SET_使用者下拉清單載入()
- SQL_客戶交易明細表_月份() : 月份_cb.Items.Clear()
- While (dr.Read()) : 月份_cb.Items.Add(dr("月份")) : End While : conn.Close()
- End Sub
- Private Sub 業績獎金計算表_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Me.MdiParent = GRAMS_SYS : Me.WindowState = 2 : Me.AutoScroll = True
- SET_使用者下拉清單載入() : 月份_cb.SelectedIndex = 月份_cb.Items.Count - 1
- SET_客戶交易明細表()
- End Sub
- Private Sub 交易明細_dgv_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles 交易明細_dgv.RowPostPaint
- Dim linePen As New Pen(Color.Blue, 2)
- If e.RowIndex = 交易明細_dgv.Rows.Count - 1 Then : Exit Sub : Else
- If 交易明細_dgv("銷售日期", e.RowIndex).Value.ToString <> 交易明細_dgv("銷售日期", e.RowIndex + 1).Value.ToString Then
- Dim startX As Integer = IIf(交易明細_dgv.RowHeadersVisible, 交易明細_dgv.RowHeadersWidth, 0) : Dim startY As Integer = e.RowBounds.Top + e.RowBounds.Height - 1
- Dim endX As Integer = startX + 交易明細_dgv.Columns.GetColumnsWidth(DataGridViewElementStates.Visible) - 交易明細_dgv.HorizontalScrollingOffset
- e.Graphics.DrawLine(linePen, startX, startY, endX, startY) : Exit Sub
- End If
- End If
- End Sub
- Private Sub 月份_cb_SelectedIndexChanged(sender As Object, e As EventArgs) Handles 月份_cb.SelectedIndexChanged
- SET_客戶交易明細表()
- End Sub
- Private Sub 存檔_bt_Click(sender As Object, e As EventArgs) Handles 存檔_bt.Click
- PA13 = 月份_cb.Text : PA12 = "0" : PA11 = "0" : PA10 = "0"
- For I As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
- PA12 = Strings.Format(Val(PA12) + 獎金計算_dgv("實收業績", I).Value, "###0")
- PA11 = Strings.Format(Val(PA11) + 獎金計算_dgv("償還業績", I).Value, "###0")
- PA10 = Strings.Format(Val(PA10) + 獎金計算_dgv("總業績", I).Value, "###0")
- Next
- SQL_業機彙總判斷()
- If dr.Read() Then : SQL_業機彙總_修改() : Else : SQL_業機彙總_新增() : End If : conn.Close() : MsgBox("存檔完成")
- End Sub
-
- Dim RT As Integer = 0
- Private Sub 列印_bt_Click(sender As Object, e As EventArgs) Handles 列印_bt.Click
- Dim xlApp As Microsoft.Office.Interop.Excel.Application
- Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
- Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
-
- xlApp = CType(CreateObject("Excel.Application"), Microsoft.Office.Interop.Excel.Application)
- xlBook = xlApp.Workbooks.Add
- xlApp.DisplayAlerts = True
- xlBook.Activate()
- xlSheet = NewMethod(xlBook)
- xlSheet.Activate()
- xlApp.Visible = True
- xlApp.Application.WindowState = xlMaximized
-
- AA(xlApp, xlSheet) : RT = 0
- For I As Integer = 0 To 獎金計算_dgv.Rows.Count - 1
- If 獎金計算_dgv("人員", I).Value.ToString = "" Or 獎金計算_dgv("總獎金", I).Value = 0 Then : Else
- xlSheet.Cells(1 + RT, 2) = "獎金月份" : xlSheet.Cells(2 + RT, 2) = "姓名" : xlSheet.Cells(3 + RT, 2) = "個人應發獎金小計(不含預購獎金)"
- xlSheet.Cells(4 + RT, 2) = "預購獎金" : xlSheet.Cells(5 + RT, 2) = "其他" : xlSheet.Cells(6 + RT, 2) = "備註" : xlSheet.Cells(7 + RT, 2) = "總獎金"
- xlSheet.Cells(8 + RT, 2) = "公司留存"
- xlSheet.Cells(1 + RT, 3) = Strings.Left(月份_cb.Text, 3) & " 年 " & Strings.Right(月份_cb.Text, 2) & " 月"
- xlSheet.Cells(2 + RT, 3) = 獎金計算_dgv("人員", I).Value.ToString : xlSheet.Cells(3 + RT, 3) = 獎金計算_dgv("總獎金", I).Value - 獎金計算_dgv("預購獎金", I).Value
- xlSheet.Cells(4 + RT, 3) = 獎金計算_dgv("預購獎金", I).Value : xlSheet.Cells(5 + RT, 3) = "0" : xlSheet.Cells(6 + RT, 3) = ""
- xlSheet.Cells(7 + RT, 3) = 獎金計算_dgv("總獎金", I).Value
- xlSheet.Cells(1 + RT, 5) = "獎金月份" : xlSheet.Cells(2 + RT, 5) = "姓名" : xlSheet.Cells(3 + RT, 5) = "個人應發獎金小計(不含預購獎金)"
- xlSheet.Cells(4 + RT, 5) = "預購獎金" : xlSheet.Cells(5 + RT, 5) = "其他" : xlSheet.Cells(6 + RT, 5) = "備註" : xlSheet.Cells(7 + RT, 5) = "總獎金"
- xlSheet.Cells(8 + RT, 5) = "同仁留存"
- xlSheet.Cells(1 + RT, 6) = Strings.Left(月份_cb.Text, 3) & " 年 " & Strings.Right(月份_cb.Text, 2) & " 月"
- xlSheet.Cells(2 + RT, 6) = 獎金計算_dgv("人員", I).Value.ToString : xlSheet.Cells(3 + RT, 6) = 獎金計算_dgv("總獎金", I).Value - 獎金計算_dgv("預購獎金", I).Value
- xlSheet.Cells(4 + RT, 6) = 獎金計算_dgv("預購獎金", I).Value : xlSheet.Cells(5 + RT, 6) = "0" : xlSheet.Cells(6 + RT, 6) = ""
- xlSheet.Cells(7 + RT, 6) = 獎金計算_dgv("總獎金", I).Value
- BB(xlApp, xlSheet) : RT += 9
- End If
- Next
-
- xlSheet.PageSetup.PrintArea = ""
- xlApp.Cells.Select()
- xlSheet.Range("B1").Select()
- xlApp.Application.WindowState = xlMinimized
- MsgBox("列印完成")
- End Sub
- Private Shared Function NewMethod(xlBook As Microsoft.Office.Interop.Excel.Workbook) As Microsoft.Office.Interop.Excel.Worksheet
- Return CType(xlBook.Worksheets.Add, Microsoft.Office.Interop.Excel.Worksheet)
- End Function
- Private Sub AA(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet)
- xlSheet.Cells.Select()
- With myExcel.Selection.Font
- .Name = "微軟正黑體" : .Size = 14 : .Strikethrough = False : .Superscript = False : .Subscript = False : .OutlineFont = False
- .Shadow = False : .Underline = xlUnderlineStyleNone : .ThemeColor = xlThemeColorLight1 : .TintAndShade = 0 : .ThemeFont = xlThemeFontNone
- End With
-
- xlSheet.Columns("A:A").Select : myExcel.Selection.ColumnWidth = 1 : xlSheet.Columns("D:D").Select : myExcel.Selection.ColumnWidth = 2
- xlSheet.Columns("G:G").Select : myExcel.Selection.ColumnWidth = 1 : xlSheet.Columns("B:C").Select : myExcel.Selection.ColumnWidth = 40
- xlSheet.Columns("E:F").Select : myExcel.Selection.ColumnWidth = 40
- xlSheet.Columns("C:C").Select : myExcel.Selection.Style = "Comma" : myExcel.Selection.NumberFormatLocal = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
- xlSheet.Columns("F:F").Select : myExcel.Selection.Style = "Comma" : myExcel.Selection.NumberFormatLocal = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
- xlSheet.Columns("C:C").Select
- With myExcel.Selection
- .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
- .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
- End With
- xlSheet.Columns("F:F").Select
- With myExcel.Selection
- .HorizontalAlignment = xlRight : .VerticalAlignment = xlCenter : .WrapText = False : .Orientation = 0 : .AddIndent = False : .IndentLevel = 0
- .ShrinkToFit = False : .ReadingOrder = xlContext : .MergeCells = False
- End With
- End Sub
- Private Sub BB(ByVal myExcel As Microsoft.Office.Interop.Excel.Application, ByVal xlSheet As Microsoft.Office.Interop.Excel.Worksheet)
- xlSheet.Rows(1 + RT & ":" & 7 + RT).Select : myExcel.Selection.RowHeight = 28
- xlSheet.Rows(8 + RT & ":" & 8 + RT).Select : myExcel.Selection.RowHeight = 60
- xlSheet.Rows(9 + RT & ":" & 9 + RT).Select : myExcel.Selection.RowHeight = 20
-
- xlSheet.Range("B" & 1 + RT & ":C" & 7 + RT).Select()
- myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
- With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlThin : End With
- With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlThin : End With
-
- xlSheet.Range("E" & 1 + RT & ":F" & 7 + RT).Select()
- myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
- With myExcel.Selection.Borders(xlEdgeLeft) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeRight) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlInsideVertical) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlThin : End With
- With myExcel.Selection.Borders(xlInsideHorizontal) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlThin : End With
-
- xlSheet.Range("B" & 8 + RT & ":C" & 8 + RT).Select()
- myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
- myExcel.Selection.Borders(xlEdgeLeft).LineStyle = xlNone
- With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- myExcel.Selection.Borders(xlEdgeRight).LineStyle = xlNone : myExcel.Selection.Borders(xlInsideVertical).LineStyle = xlNone
- myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
-
- xlSheet.Range("E" & 8 + RT & ":F" & 8 + RT).Select()
- myExcel.Selection.Borders(xlDiagonalDown).LineStyle = xlNone : myExcel.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
- myExcel.Selection.Borders(xlEdgeLeft).LineStyle = xlNone
- With myExcel.Selection.Borders(xlEdgeTop) : .LineStyle = xlContinuous : .ColorIndex = xlAutomatic : .TintAndShade = 0 : .Weight = xlMedium : End With
- With myExcel.Selection.Borders(xlEdgeBottom) : .LineStyle = xlContinuous : .ColorIndex = 0 : .TintAndShade = 0 : .Weight = xlThin : End With
- myExcel.Selection.Borders(xlEdgeRight).LineStyle = xlNone : myExcel.Selection.Borders(xlInsideVertical).LineStyle = xlNone
- myExcel.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
- End Sub
- End Class
|