⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmgztj.vb

📁 一个实际的商业项目
💻 VB
📖 第 1 页 / 共 2 页
字号:
        Next
    End Sub

    Private Sub frmGztj_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cnData.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:database password=power;;Data Source= " & Application.StartupPath & "\gongzi.mdb;Persist Security Info=False"

        cmdSQL.Connection = cnData
        Dim dr As OleDbDataReader



        Dim dc As DataColumn

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.String")
        dc.ColumnName = "工号"
        dt.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.String")
        dc.ColumnName = "部门"
        dt.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.String")
        dc.ColumnName = "姓名"
        dt.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "应该出勤"
        dt.Columns.Add(dc)


        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "实际出勤"
        dt.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "基本工资"
        dc.DefaultValue = 0
        dt.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "计件工资"
        dc.DefaultValue = 0
        dt.Columns.Add(dc)

        cnData.Open()

        cmdSQL.CommandText = "select Yzsz from Gzxm where Xmmc ='应发工资'"
        douYfgz = CType(cmdSQL.ExecuteScalar(), Decimal)



        cmdSQL.CommandText = "select Xmmc,Yzsz from Gzxm where Type ='SQ'"
        dr = cmdSQL.ExecuteReader(CommandBehavior.CloseConnection)
        Do While dr.Read
            dc = New DataColumn
            dc.DataType = System.Type.GetType("System.Decimal")
            dc.ColumnName = Trim(dr.GetString(0))
            dc.DefaultValue = dr.GetDecimal(1)
            dt.Columns.Add(dc)
        Loop
        dr.Close()

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Decimal")
        dc.ColumnName = "应发工资"
        dt.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Decimal")
        dc.ColumnName = "税前小计"
        dt.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Decimal")
        dc.ColumnName = "个人所得税"
        dt.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Decimal")
        dc.ColumnName = "三金"
        dt.Columns.Add(dc)

        cmdSQL.CommandText = "select Xmmc,Yzsz from Gzxm where Type ='SH'"
        cnData.Open()
        dr = cmdSQL.ExecuteReader(CommandBehavior.CloseConnection)
        Do While dr.Read
            dc = New DataColumn
            dc.DataType = System.Type.GetType("System.Decimal")
            dc.ColumnName = Trim(dr.GetString(0))
            dc.DefaultValue = dr.GetDecimal(1)
            dt.Columns.Add(dc)
        Loop
        dr.Close()

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Decimal")
        dc.ColumnName = "实发"
        dt.Columns.Add(dc)

        DataGrid1.DataSource = dt

        txtYear.Text = Now.Year.ToString
        cbMonth.SelectedIndex = Now.Month - 1
    End Sub

    Private Sub btnTable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTable.Click
        If txtDay.Text = "" Then
            MessageBox.Show("请输入应该出勤天数!")
            Exit Sub
        End If
        If Not IsNumeric(txtDay.Text) Then
            MessageBox.Show("出勤天数必须是数字!")
            Exit Sub
        End If
        If Val(txtDay.Text) <= 0 Or Val(txtDay.Text) > 31 Then
            MessageBox.Show("出勤天数不合法!")
            Exit Sub
        End If

        Dim rd As OleDbDataReader
        Dim dr As DataRow
        Dim dr2 As DataRow
        Dim dr3 As DataRow
        Dim strRq As String = txtYear.Text & cbMonth.SelectedItem.ToString

        Dim strRq1 As String
        Dim strRq2 As String = txtYear.Text & cbMonth.SelectedItem.ToString & "25"

        Dim douSum As Decimal
        Dim dou As Decimal

        If cbMonth.SelectedItem.ToString = "01" Then
            strRq1 = (CInt(txtYear.Text) - 1).ToString & "12" & "26"
        Else
            strRq1 = txtYear.Text & cbMonth.Items.Item(cbMonth.SelectedIndex - 1).ToString & "26"
        End If
        'MessageBox.Show(strRq1 & " " & strRq2)

        Dim dtTemp As DataTable
        dtTemp = New DataTable("Temp")
        Dim dc As DataColumn

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.String")
        dc.ColumnName = "Pf"
        dtTemp.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.String")
        dc.ColumnName = "Gx"
        dtTemp.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "Sl"
        dtTemp.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "Sl1"
        dtTemp.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "Sl2"
        dtTemp.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "Sl3"
        dtTemp.Columns.Add(dc)



        Dim dtTemp2 As DataTable
        dtTemp2 = New DataTable("Temp2")

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.String")
        dc.ColumnName = "Gx"
        dtTemp2.Columns.Add(dc)

        dc = New DataColumn
        dc.DataType = System.Type.GetType("System.Single")
        dc.ColumnName = "Sl"
        dtTemp2.Columns.Add(dc)



        dt.Clear()

        cmdSQL.CommandText = "select Gh,Bmmc,Xm,Jbgz from Ryzl"
        cnData.Open()
        rd = cmdSQL.ExecuteReader()
        Do While rd.Read
            dr = dt.NewRow
            dr("工号") = Trim(rd.GetString(0))
            dr("部门") = Trim(rd.GetString(1))
            dr("姓名") = Trim(rd.GetString(2))
            dr("应该出勤") = Val(txtDay.Text)
            dr("实际出勤") = Val(txtDay.Text)
            dr("基本工资") = rd.GetDecimal(3)
            'dr("三金") = -(rd.GetDecimal(4) + rd.GetDecimal(5) + rd.GetDecimal(6))
            dt.Rows.Add(dr)
        Loop
        rd.Close()
        For Each dr In dt.Rows
            douSum = 0
            dtTemp.Clear()
            dtTemp2.Clear()
            'MessageBox.Show(dr("工号").ToString)
            'cmdSQL.CommandText = "SELECT Pf, Gx, sum(Sl) as total, sum(Sl1) as total1, sum(Sl2) as total2, sum(Sl3) as total3 " & _
            '                     "FROM Wg " & _
            '                     "WHERE Rq LIKE '" & strRq & "*' AND Gh = '" & dr("工号").ToString & "' " & _
            '                     "GROUP BY Pf,Gx"


            strstr = "select pf, gx, sum(sl) as total, sum(sl1) as total1, sum(sl2) as total2, sum(sl3) as total3 " & _
                                 "from wg " & _
                                 "where gh = '" & Trim(dr("工号").ToString) & "' " & _
                                 "and (rq between '" & strRq1 & "' and '" & strRq2 & "') " & _
                                 "group by pf, gx"
            'MessageBox.Show(strstr)

            cmdSQL.CommandText = strstr
            'cmdSQL.CommandText = "SELECT Pf ,Gx, sum(Sl) as total, sum(Sl1) as total1, sum(Sl2) as total2, sum(Sl3) as total3 from wg where (gh = '00001') and (rq like '200509%')  group by pf,gx "


            rd = cmdSQL.ExecuteReader()
            'MessageBox.Show("11111111111111111")

            Do While rd.Read
                'MessageBox.Show("11111111111111")
                dr2 = dtTemp.NewRow


                dr2("Pf") = Trim(rd.GetString(0))
                dr2("Gx") = Trim(rd.GetString(1))

                dr2("Sl") = rd.GetDouble(2)
                dr2("Sl1") = rd.GetDouble(3)
                dr2("Sl2") = rd.GetDouble(4)
                dr2("Sl3") = rd.GetDouble(5)
                dtTemp.Rows.Add(dr2)
            Loop
            rd.Close()

            For Each dr2 In dtTemp.Rows
                dou = 0
                cmdSQL.CommandText = "select Jg, Fei1, Fei2, Fei3 from Cpgx " & _
                                     "where Pf = '" & dr2("Pf").ToString & "' and Gx = '" & dr2("Gx").ToString & "'"

                rd = cmdSQL.ExecuteReader()
                If rd.Read Then
                    dou = rd.GetDecimal(0) * CType(dr2("Sl"), Decimal) - rd.GetDecimal(1) * CType(dr2("Sl1"), Decimal) - rd.GetDecimal(2) * CType(dr2("Sl2"), Decimal) - rd.GetDecimal(3) * CType(dr2("Sl3"), Decimal)
                End If

                rd.Close()
                douSum += dou
                'dou = CType(cmdSQL.ExecuteScalar, Decimal)
                'douSum += dou * CType(dr2("Sl"), Decimal)
            Next



            cmdSQL.CommandText = "select gx, sum(sl) as total from jswg " & _
                                 "where gh = '" & Trim(dr("工号").ToString) & "' " & _
                                 "and (rq between '" & strRq1 & "' and '" & strRq2 & "') " & _
                                 "group by gx"
            rd = cmdSQL.ExecuteReader
            Do While rd.Read
                dr3 = dtTemp2.NewRow
                dr3("Gx") = Trim(rd.GetString(0))
                dr3("Sl") = rd.GetDouble(1)
                dtTemp2.Rows.Add(dr3)
            Loop
            rd.Close()
            For Each dr3 In dtTemp2.Rows
                dou = 0

                cmdSQL.CommandText = "select Jg from JsGx where GxMc = '" & dr3("Gx").ToString & "'"
                rd = cmdSQL.ExecuteReader()

                If rd.Read Then
                    dou = rd.GetDecimal(0) * CType(dr3("Sl"), Decimal)
                End If
                rd.Close()
                douSum += dou
            Next

            dr("计件工资") = DotTwo(douSum)
        Next


        AddAll()
        cnData.Close()

    End Sub

    Private Sub btnRe_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRe.Click
        If DialogResult.Yes = MessageBox.Show("确实需要重新计算吗?", "系统信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question) Then
            cnData.Open()
            AddAll()
            cnData.Close()
        End If
        
    End Sub

    Private Sub btnExcel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExcel.Click
        Exports2Excel2(DataGrid1)
    End Sub

    Private Sub frmGztj_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        Dim pProcess As System.Diagnostics.Process

        For Each pProcess In System.Diagnostics.Process.GetProcesses()
            If pProcess.ProcessName.ToString() = "Excel" Then pProcess.Kill()
        Next
    End Sub
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -