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

📄 frmsalarydevelopwizard.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
         TabIndex        =   10
         Top             =   390
         Width           =   1575
      End
      Begin VB.Label LblData 
         Caption         =   "数据项目(&D)"
         Height          =   225
         Left            =   -73350
         TabIndex        =   4
         Top             =   390
         Width           =   1035
      End
   End
End
Attribute VB_Name = "frmSalaryDevelopWizard"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'  工资发放表设置向导
'  作者: 邹俊
'  日期 : 1998. 11. 12

Option Explicit
Private WithEvents mclsMainControl As MainControl   '主控对象
Attribute mclsMainControl.VB_VarHelpID = -1
Private mclsFilter As FormCond            '查询条件类
Private Const mlngSalaryReportID = 1463   '工资发放表ID
Private Const mlngViewID = 63             '工资视图ID
Private Const mlngFilterViewID = 72       '工资发放表筛选视图ID
Private mlngSalarylistID As Long          '工资表ID
Private mstrReportName As String    '报表名称
Private mstrReportWhere As String   '报表条件
Private mstrReportSQL As String     '报表SQL
Private mblnIsOk As Boolean         '是否为完成退出
Private mblnIsSame As Boolean       '工资表ID是否发生改变

'调用工资发放表初始化
Public Function InitSalaryDevelopTable(ByRef clsSalary As clsSalaryRptSet, ByVal lngSalaryListID As Long) As Boolean
    Dim strName As String
    Dim STRSQL As String
    Me.Show vbModal
    clsSalary.SalaryDevelopName = mstrReportName
    clsSalary.SalaryDevelopWhere = mstrReportWhere
    clsSalary.SalaryDevelopID = mlngSalarylistID
    clsSalary.SalaryDevelopSQL = mstrReportSQL
    InitSalaryDevelopTable = mblnIsOk
    Unload Me
End Function
Private Sub cmdOK_Click()
    Dim lngArrID() As Long
    Dim intLevel As Integer
    Dim i As Integer
    Dim blnIsCode As Boolean
    Dim STRSQL As String
    
    '检查报表名称
    If Trim(txtReportName.Text) = "" Then
        SSTab1.Tab = 0
        ShowMsg Me.hwnd, "报表名称不能为空。", vbInformation, Me.Caption
        txtReportName.SetFocus
        Exit Sub
    End If
    '检查来源工资表
    If Trim(litSalarySource.Text) = "" Then
        SSTab1.Tab = 0
        ShowMsg Me.hwnd, "来源工资表不能为空。", vbInformation, Me.Caption
        Exit Sub
    End If
    '检查报表项目
    If msgSalaryItem(1).Rows <= 2 Then
        SSTab1.Tab = 1
        ShowMsg Me.hwnd, "至少应有一个数据项目。", vbInformation, Me.Caption
        Exit Sub
    End If
    '按部门打印的检查
    intLevel = 0
    If chkDepartMent.Value = 1 Then
        If Trim(cboDepartMent.Text) = "" Then
            SSTab1.Tab = 1
            ShowMsg Me.hwnd, "按部门打印必须选择一个部门级别.", vbInformation, Me.Caption
            Exit Sub
        Else
            intLevel = Val(Left(cboDepartMent.Text, 1))
        End If
        With msgSalaryItem(1)
            blnIsCode = False
            For i = 0 To .Rows - 1
                If .TextMatrix(i, 0) = "部门编号" Then
                    blnIsCode = True
                End If
            Next
        End With
        If blnIsCode = False Then
            SSTab1.Tab = 1
            ShowMsg Me.hwnd, "按部门打印报表项目中必须有部门编号.", vbInformation, Me.Caption
            Exit Sub
        End If
    End If
    '保存按部门打印设置
    If intLevel > 0 Then
        STRSQL = "Update  Setting Set  Setting.strSetting = " & intLevel & _
                 " Where Setting.lngModuleID=13 And Setting.strSection='工资发放表按部门打印' "
        gclsBase.ExecSQL STRSQL
    End If
    '保存报表项目
    SaveReportItem mlngSalarylistID
    '取得报表名称
    mstrReportName = Trim(txtReportName.Text)
    '取得筛选条件
    If mclsFilter Is Nothing Then
        mstrReportWhere = ""
    Else
        mstrReportWhere = mclsFilter.GetCond
        mstrReportWhere = ChangeWhere(mstrReportWhere)
    End If
    '组合查询项目条件的SQL语句
    mstrReportSQL = SetItemSQL()
    Unload Me
End Sub

'组合查询项目条件的SQL语句
Private Function SetItemSQL() As String
    Dim strSelect As String
    Dim i As Integer
    Dim strTmp As String
    Dim strFrom As String
    Dim strWhere As String
    
    strSelect = "SELECT "
    With msgSalaryItem(1)
        For i = 0 To .Rows - 1
            If .TextMatrix(i, 0) = "签名" Then
                'strTmp = .TextMatrix(i, 2) & " AS [" & .TextMatrix(i, 0) & "1], "
                strTmp = .TextMatrix(i, 2) & " AS """ & .TextMatrix(i, 0) & "1"", "
                strSelect = strSelect & strTmp
                'strTmp = .TextMatrix(i, 2) & " AS [" & .TextMatrix(i, 0) & "], "
                strTmp = .TextMatrix(i, 2) & " AS """ & .TextMatrix(i, 0) & """, "
                strSelect = strSelect & strTmp
            Else
                'strTmp = .TextMatrix(i, 2) & " AS [" & .TextMatrix(i, 0) & "], "
                strTmp = .TextMatrix(i, 2) & " AS """ & .TextMatrix(i, 0) & """, "
                strSelect = strSelect & strTmp
            End If
        Next
    End With
    strSelect = Trim(strSelect)
    strSelect = Left(strSelect, Len(strSelect) - 1)
    'strFrom = " FROM ((((((Employee INNER JOIN Salary ON Employee.lngEmployeeID = Salary.lngEmployeeID) " & _
              " INNER JOIN EmployeeType ON Employee.lngEmployeeTypeID = EmployeeType.lngEmployeeTypeID) " & _
              " 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 SalaryList ON Salary.lngSalaryListID = SalaryList.lngSalaryListID "

    strFrom = " FROM Employee , Salary ,EmployeeType ,Department,Education,PersonTaxType,Title,SalaryList "

    strWhere = ""
    strWhere = mstrReportWhere
    SetItemSQL = strSelect & " " & strFrom
    'SetItemSQL = SetItemSQL & " WHERE Salary.lngSalaryListID= " & mlngSalarylistID
    SetItemSQL = SetItemSQL & " WHERE ((((((Employee.lngEmployeeID = Salary.lngEmployeeID) AND " & _
              " Employee.lngEmployeeTypeID = EmployeeType.lngEmployeeTypeID) AND " & _
              " Salary.lngDepartmentID = Department.lngDepartmentID(+)) AND " & _
              " Employee.lngEducationID = Education.lngEducationID(+))  AND " & _
              " Employee.lngPersonTaxTypeID = PersonTaxType.lngPersonTaxTypeID(+)) AND " & _
              " Employee.lngTitleID = Title.lngTitleID(+)) AND " & _
              " Salary.lngSalaryListID = SalaryList.lngSalaryListID AND " & _
              " Salary.lngSalaryListID= " & mlngSalarylistID
    
    If Trim(strWhere) <> "" Then
        SetItemSQL = SetItemSQL & " And " & strWhere
    End If
    SetItemSQL = SetItemSQL & " Order by Employee.strEmployeeCode "
End Function

Private Sub chkDepartMent_Click()
    If chkDepartMent.Value = 1 Then
        cboDepartMent.Enabled = True
    Else
        cboDepartMent.Enabled = False
    End If
End Sub

Private Sub cmdArr_Click(Index As Integer)
    Select Case Index
        Case 0   '取消
            mblnIsOk = False
            Unload Me
        Case 1   '上一步
            If SSTab1.Tab > 0 Then
                SSTab1.Tab = SSTab1.Tab - 1
            End If
        Case 2   '下一步
            If SSTab1.Tab < 2 Then
                SSTab1.Tab = SSTab1.Tab + 1
            End If
        Case 3   '完成
            mblnIsOk = True
            cmdOK_Click
    End Select
End Sub

Private Sub Form_Load()
    Dim STRSQL As String
    Dim strText As String
    Dim i As Integer
    'Dim recSalaryList As Recordset
    'Dim recDepartment As Recordset
    Dim recSalaryList As rdoResultset
    Dim recDepartment As rdoResultset
    Dim picRes As IPictureDisp
    Dim intLevel As Integer
    Dim strTmp As String
    
    Me.Left = (Screen.Width - Me.Width) \ 2
    Me.top = (Screen.Height - Me.Height) \ 2
    Set mclsMainControl = gclsSys.MainControls.Add(Me)
    SetHelpID Me.hwnd, 10234
    '初始化报表名称
    txtReportName.Text = "工资发放表"
    '初始化图片资源
    Set picRes = Utility.GetFormResPicture(1019, vbResBitmap)
    cmdUpDown(0).Picture = picRes
    Set picRes = Utility.GetFormResPicture(1020, vbResBitmap)
    cmdUpDown(1).Picture = picRes
    imgSalarySet(0).Picture = Utility.GetFormResPicture(140, 0)
    imgSalarySet(1).Picture = Utility.GetFormResPicture(140, 0)
    
    SSTab1.Tab = 0
    ''设置命令按钮是否可用
    InitCmdarrState
    '初始化来源工资表
    STRSQL = "SELECT SalaryList.lngSalaryListID, SalaryList.strSalaryListName FROM SalaryList " & _
             " ORDER BY  SalaryList.strDate DESC"
    'Set recSalaryList = gclsBase.BaseDB.OpenRecordset(STRSQL, dbOpenSnapshot)
    Set recSalaryList = gclsBase.BaseDB.OpenResultset(STRSQL, rdOpenStatic)
    If Not recSalaryList.EOF Then
        litSalarySource.SeekCol = "-1,2"
        Set litSalarySource.Recordset = recSalaryList
        litSalarySource.ColWidth(1) = 0
    End If
    recSalaryList.Close
    Set recSalaryList = Nothing
    If mlngSalarylistID > 0 Then
        STRSQL = "SELECT SalaryList.lngSalaryListID, SalaryList.strSalaryListName FROM SalaryList WHERE SalaryList.lngSalaryListID= " & mlngSalarylistID
        'Set recSalaryList = gclsBase.BaseDB.OpenRecordset(STRSQL, dbOpenSnapshot)
        Set recSalaryList = gclsBase.BaseDB.OpenResultset(STRSQL, rdOpenStatic)
        If Not recSalaryList.EOF Then
            litSalarySource.Text = recSalaryList!strSalaryListName
        End If
        recSalaryList.Close
        Set recSalaryList = Nothing
    End If
    '初始化打印
    chkDepartMent.Value = 0
    STRSQL = "SELECT max(Department.intLevel) as MaXLevel FROM Department "
    'Set recDepartment = gclsBase.BaseDB.OpenRecordset(STRSQL, dbOpenSnapshot)
    Set recDepartment = gclsBase.BaseDB.OpenResultset(STRSQL, rdOpenStatic)
    With recDepartment
        If Not .EOF Then
            chkDepartMent.Enabled = True
            intLevel = IIf(IsNull(!MaXLevel), 0, !MaXLevel)
            For i = 1 To intLevel
                strTmp = i & "  级 "
                cboDepartMent.AddItem strTmp
            Next
            cboDepartMent.Enabled = False
        Else
            chkDepartMent.Enabled = False
            cboDepartMent.Enabled = False
        End If
    End With
    recDepartment.Close
    Set recDepartment = Nothing
    mblnIsOk = False
    mblnIsSame = True
End Sub
Private Sub Form_Unload(Cancel As Integer)
    Utility.RemoveFormResPicture (140)
    Utility.RemoveFormResPicture (1019)
    Utility.RemoveFormResPicture (1020)
    gclsSys.MainControls.Remove Me               '
    Set mclsMainControl = Nothing                '清除主控对象
    Set mclsFilter = Nothing
    Set frmSalaryDevelopWizard = Nothing
End Sub

'设置命令按钮是否可用(上一步,下一步)
Private Sub InitCmdarrState()
    If SSTab1.Tab = 0 Then
        cmdArr(1).Enabled = False
        cmdArr(2).Enabled = True
        CmdReset.Visible = False
    End If
    If SSTab1.Tab = 2 Then
        cmdArr(2).Enabled = False
        cmdArr(1).Enabled = True
        CmdReset.Visible = True
    End If
    If SSTab1.Tab = 1 Then
        cmdArr(1).Enabled = True
        cmdArr(2).Enabled = True
        CmdReset.Visible = False
    End If
    If SSTab1.Tab = 0 Then
        cmdArr(3).Enabled = False
    Else
        cmdArr(3).Enabled = True
    End If
End Sub

Private Sub litSalarySource_Choose()
    If litSalarySource.ReferRow > -1 Then
        mlngSalarylistID = litSalarySource.TextMatrix(litSalarySource.ReferRow, 1)
        mblnIsSame = True
    End If
End Sub

Private Sub msgSalaryItem_Click(Index As Integer)
    If Index = 1 Then
        InitcmdUpDowntate
    End If
End Sub

Private Sub msgSalaryItem_DblClick(Index As Integer)
    If Index = 0 Then

⌨️ 快捷键说明

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