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

📄 clssalaryrptset.cls

📁 金算盘软件代码
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "clsSalaryRptSet"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'  工资条设置类
'  作者: 邹俊
'  日期 : 1998. 11. 12

Option Explicit
Private Const mlngViewID = 63         '工资视图ID
Private mlngSalaryBillID As Long      '工资条来源工资表ID
Private mstrSalaryBillName As String   '工资条名称
Private mstrSalaryBillWhere As String  '工资条条件
Private mstrSalaryBillSQL As String    '工资条SQl

'工资条来源工资表ID
Public Property Get SalaryBillID() As Long
    SalaryBillID = mlngSalaryBillID
End Property
Public Property Let SalaryBillID(ByVal lngID As Long)
    mlngSalaryBillID = lngID
End Property
'工资条名称
Public Property Get SalaryBillName() As String
    SalaryBillName = mstrSalaryBillName
End Property
Public Property Let SalaryBillName(ByVal strName As String)
    mstrSalaryBillName = strName
End Property
'工资条条件
Public Property Get SalaryBillWhere() As String
    SalaryBillWhere = mstrSalaryBillWhere
End Property
Public Property Let SalaryBillWhere(ByVal strWhere As String)
    mstrSalaryBillWhere = strWhere
End Property
'工资条SQl
Public Property Get SalaryBillSQL() As String
    SalaryBillSQL = mstrSalaryBillSQL
End Property
Public Property Let SalaryBillSQL(ByVal strSql As String)
    mstrSalaryBillSQL = strSql
End Property
'初始化工资条默认条件SQL(直接调用工资条)
Public Function InitSalaryBillSql(ByVal lngSalaryID As Long) As String
    Dim strSql As String
    Dim recItem As rdoResultset
    Dim strSET As String
    Dim recSet As rdoResultset
    Dim i As Integer
    Dim strDate As String
    Dim strBillSql As String
    Dim strTmp As String
    Dim strFrom As String
    Dim strWhere As String
    Dim strFieldName As String
    Dim strViewFieldDesc As String
    Dim blnIsOK As Boolean
    Dim strFormat As String
    
    strBillSql = "SELECT "
    strSET = "SELECT Setting.lngModuleID, Setting.strSection, Setting.strKey, " & _
             " Setting.strSetting  FROM Setting " & _
             " WHERE Setting.lngModuleID=11 AND Setting.strSection='工资条固定项目' " & _
             " AND Setting.strKey= '员工编号'"
    Set recSet = gclsBase.BaseDB.OpenResultset(strSET, rdOpenStatic)
    If Not recSet.EOF Then
        strTmp = Trim(recSet!strSetting)
        If UCase(strTmp) = "TRUE" Then
            strBillSql = strBillSql & " Employee.strEmployeeCode AS 员工编号,"
        End If
    End If
    strSET = "SELECT Setting.lngModuleID, Setting.strSection, Setting.strKey, " & _
             " Setting.strSetting  FROM Setting " & _
             " WHERE Setting.lngModuleID=11 AND Setting.strSection='工资条固定项目' " & _
             " AND Setting.strKey= '员工姓名'"
    Set recSet = gclsBase.BaseDB.OpenResultset(strSET, rdOpenStatic)
    If Not recSet.EOF Then
        strTmp = Trim(recSet!strSetting)
        If UCase(strTmp) = "TRUE" Then
            strBillSql = strBillSql & " Employee.strEmployeeName AS 员工姓名,"
        End If
    End If
    strSET = "SELECT Setting.lngModuleID, Setting.strSection, Setting.strKey, " & _
             " Setting.strSetting  FROM Setting " & _
             " WHERE Setting.lngModuleID=11 AND Setting.strSection='工资条固定项目' " & _
             " AND Setting.strKey= '部门编号'"
    Set recSet = gclsBase.BaseDB.OpenResultset(strSET, rdOpenStatic)
    If Not recSet.EOF Then
        strTmp = Trim(recSet!strSetting)
        If UCase(strTmp) = "TRUE" Then
            strBillSql = strBillSql & " Department.strDepartmentCode AS 部门编号,"
        End If
    End If
    strSET = "SELECT Setting.lngModuleID, Setting.strSection, Setting.strKey, " & _
             " Setting.strSetting  FROM Setting " & _
             " WHERE Setting.lngModuleID=11 AND Setting.strSection='工资条固定项目' " & _
             " AND Setting.strKey= '部门名称'"
    Set recSet = gclsBase.BaseDB.OpenResultset(strSET, rdOpenStatic)
    If Not recSet.EOF Then
        strTmp = Trim(recSet!strSetting)
        If UCase(strTmp) = "TRUE" Then
            strBillSql = strBillSql & " Department.strDepartmentName AS 部门名称,"
        End If
    End If
    strSET = "SELECT Setting.lngModuleID, Setting.strSection, Setting.strKey, " & _
             " Setting.strSetting  FROM Setting " & _
             " WHERE Setting.lngModuleID=11 AND Setting.strSection='工资条固定项目' " & _
             " AND Setting.strKey= '职员类型'"
    Set recSet = gclsBase.BaseDB.OpenResultset(strSET, rdOpenStatic)
    If Not recSet.EOF Then
        strTmp = Trim(recSet!strSetting)
        If UCase(strTmp) = "TRUE" Then
            strBillSql = strBillSql & " EmployeeType.strEmployeeTypeName AS 职员类型,"
        End If
    End If
    recSet.Close
    Set recSet = Nothing
    blnIsOK = False
    'strSql = "SELECT ViewField.lngViewFieldID, ViewField.strViewFieldDesc, ViewField.strTableName, " & _
             " ViewField.strFieldName,ViewField.strFieldType,ViewField.bytFieldDec," & _
             " SalaryField.lngSalaryListID FROM ViewField INNER JOIN SalaryField ON " & _
             " ViewField.lngViewFieldID = SalaryField.lngViewFieldID " & _
             " Where ViewField.lngViewId =  " & mlngViewID & _
             " And SalaryField.lngSalaryListID = " & lngSalaryID & " AND SalaryField.blnIsBillPrint=true " & _
             " ORDER BY SalaryField.lngSalaryFieldNO "
    strSql = "SELECT ViewField.lngViewFieldID, ViewField.strViewFieldDesc, ViewField.strTableName, " & _
             " ViewField.strFieldName,ViewField.strFieldType,ViewField.bytFieldDec," & _
             " SalaryField.lngSalaryListID FROM ViewField,SalaryField " & _
             " Where ViewField.lngViewFieldID = SalaryField.lngViewFieldID " & _
             " AND ViewField.lngViewId =  " & mlngViewID & _
             " And SalaryField.lngSalaryListID = " & lngSalaryID & " AND SalaryField.blnIsBillPrint=1 " & _
             " ORDER BY SalaryField.lngSalaryFieldNO "
    Set recItem = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    strTmp = ""
    With recItem
        If Not .EOF Then
            .MoveLast
            .MoveFirst
            For i = 0 To .RowCount - 1
            strFieldName = !strFieldName
                strViewFieldDesc = !strViewFieldDesc
                '工资发放项目中是否有发放日期
                If Trim(strViewFieldDesc) = "发放日期" Then
                    blnIsOK = True
                End If
                If UCase(Trim(!strFieldType)) = "DOUBLE" Then
                    If !bytFieldDec > 0 Then
                        strFormat = "'99999999999999999999999999990." & String(!bytFieldDec, "0") & "'"
                    Else
                        strFormat = "'99999999999999999999999999990'"
                    End If
                    strTmp = strTmp & "Decode( " & strFieldName & ",0,'', Ltrim(Rtrim(TO_CHAR(" & strFieldName & "," & strFormat & " )))) AS " & strViewFieldDesc & " ,"
                Else
                    strTmp = strTmp & strFieldName & " AS " & strViewFieldDesc & " ,"
                End If
                .MoveNext
            Next
        End If
    End With
    recItem.Close
    Set recItem = Nothing
    strBillSql = strBillSql & " " & strTmp
    strTmp = ""
    strSET = "SELECT Setting.lngModuleID, Setting.strSection, Setting.strKey, " & _
             " Setting.strSetting  FROM Setting " & _
             " WHERE Setting.lngModuleID=11 AND Setting.strSection='工资条固定项目' " & _
             " AND Setting.strKey= '发放日期'"
    Set recSet = gclsBase.BaseDB.OpenResultset(strSET, rdOpenStatic)
    If Not recSet.EOF Then
        strTmp = Trim(recSet!strSetting)
        If UCase(strTmp) = "TRUE" And blnIsOK = False Then
            strBillSql = strBillSql & " SalaryList.strDate AS  发放日期 "
        End If
    End If
    recSet.Close
    Set recSet = Nothing
    strBillSql = Trim(strBillSql)
    If Right(strBillSql, 1) = "," Then
        strBillSql = Left(strBillSql, Len(strBillSql) - 1)
    End If
    'strFrom = " FROM (((((((Employee INNER JOIN Salary ON Employee.lngEmployeeID = Salary.lngEmployeeID) " & _
              " LEFT JOIN Department ON Salary.lngDepartmentID = Department.lngDepartmentID) " & _
              " LEFT JOIN Education ON Employee.lngEducationID = Education.lngEducationID) " & _
              " LEFT JOIN PersonTaxType ON Employee.lngPersonTaxTypeID = PersonTaxType.lngPersonTaxTypeID) " & _
              " LEFT JOIN Title ON Employee.lngTitleID = Title.lngTitleID) " & _
              " INNER JOIN EmployeeType ON Salary.lngEmployeeTypeID = EmployeeType.lngEmployeeTypeID) " & _
              " LEFT JOIN Bank ON Salary.lngBankID = Bank.lngBankID) " & _
              " INNER JOIN SalaryList ON Salary.lngSalaryListID = SalaryList.lngSalaryListID"
    strFrom = " FROM Employee,Salary,Department,Education,PersonTaxType," & _
              " Title,EmployeeType,Bank,SalaryList " & _
              " WHERE  ((((((( Employee.lngEmployeeID = Salary.lngEmployeeID) " & _
              " AND Salary.lngDepartmentID = Department.lngDepartmentID(+)) " & _
              " AND Employee.lngEducationID = Education.lngEducationID(+)) " & _
              " AND Employee.lngPersonTaxTypeID = PersonTaxType.lngPersonTaxTypeID(+)) " & _
              " AND Employee.lngTitleID = Title.lngTitleID(+)) " & _
              " AND Salary.lngEmployeeTypeID = EmployeeType.lngEmployeeTypeID) " & _
              " AND Salary.lngBankID = Bank.lngBankID(+)) " & _
              " AND Salary.lngSalaryListID = SalaryList.lngSalaryListID"
    strBillSql = strBillSql & " " & strFrom
    strWhere = " AND Salary.lngSalaryListID= " & lngSalaryID
    strBillSql = strBillSql & strWhere
    strBillSql = strBillSql & " Order by Employee.strEmployeeCode "
    InitSalaryBillSql = strBillSql
End Function

⌨️ 快捷键说明

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