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

📄 frmaccountfixedasset.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
'返回用于填充固定资产卡片资料列表的记录集
Private Function GetFixedCardList() As rdoResultset
    Dim strSql As String
    Dim strSelectOfSql As String
    Dim strFromOfSql As String
    Dim strWhereOfSql As String
    Dim strCondition As String
    
    mclsList.FormatData = False
    With mclsList.ListSet
        strSelectOfSql = "SELECT FixedCard.lngFixedCardID," & .SelectOfSql
        strFromOfSql = .FromOfSql
        strWhereOfSql = .WhereOfSql
    End With
    strSql = strSelectOfSql & strFromOfSql
    If Trim(strWhereOfSql) <> "" Then
        strSql = strSql & " WHERE " & strWhereOfSql
    End If
    Set GetFixedCardList = gclsBase.BaseDB.OpenResultset(strSql, rdOpenDynamic, rdConcurValues)
    
    If GetFixedCardList.EOF Then
        cmdSeekAgain.Enabled = False
    Else
        cmdSeekAgain.Enabled = True
    End If
End Function


'生成编辑菜单
Private Sub GetListEditMenu()
    Dim lngCnt As Long
    
    With frmMain
        For lngCnt = .mnuListEditMenu.Count - 1 To 1 Step -1
                Unload .mnuListEditMenu(lngCnt)
        Next lngCnt
        Select Case tabList.TabCaption(tabList.Tab)
            Case "变动资料(&Z)"
                .mnuListEditMenu(0).Caption = "增加固定资产(&N)"
                Load .mnuListEditMenu(1)
                .mnuListEditMenu(1).Caption = "减少固定资产(&L)"
                Load .mnuListEditMenu(2)
                .mnuListEditMenu(2).Caption = "其它变动(&O)"
                Load .mnuListEditMenu(3)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(3)
                Load .mnuListEditMenu(4)
                .mnuListEditMenu(4).Caption = "修改(&E)"
                Load .mnuListEditMenu(5)
                .mnuListEditMenu(5).Caption = "删除(&D)"
                Load .mnuListEditMenu(6)
                .mnuListEditMenu(6).Caption = "复制卡片(&C)"
                Load .mnuListEditMenu(7)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(7)
                Load .mnuListEditMenu(8)
                .mnuListEditMenu(8).Caption = "卡片查阅(&S)"
                Load .mnuListEditMenu(9)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(9)
                Load .mnuListEditMenu(10)
                .mnuListEditMenu(10).Caption = "筛选(&F)"
                Load .mnuListEditMenu(11)
                .mnuListEditMenu(11).Caption = "栏目设置(&M)"
                Load .mnuListEditMenu(12)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(12)
                Load .mnuListEditMenu(13)
                .mnuListEditMenu(13).Caption = "刷新(&R)"
                Load .mnuListEditMenu(14)
                .mnuListEditMenu(14).Caption = "打印单据(&T)..."
                Load .mnuListEditMenu(15)
                .mnuListEditMenu(15).Caption = "打印(&P)..."
                
                If IsCanDo(119, gclsBase.OperatorID) Then
                    .mnuListEditMenu(0).Enabled = True
                    .mnuListEditMenu(1).Enabled = True
                    .mnuListEditMenu(2).Enabled = True
                    .mnuListEditMenu(4).Enabled = (msgGrid.Rows > 1)
                    .mnuListEditMenu(5).Enabled = (msgGrid.Rows > 1)
                    .mnuListEditMenu(6).Enabled = (msgGrid.Rows > 1)
                Else
                    .mnuListEditMenu(0).Enabled = False
                    .mnuListEditMenu(1).Enabled = False
                    .mnuListEditMenu(2).Enabled = False
                    .mnuListEditMenu(4).Enabled = False
                    .mnuListEditMenu(5).Enabled = False
                    .mnuListEditMenu(6).Enabled = False
                End If
                .mnuListEditMenu(7).Enabled = (msgGrid.Rows > 1)
                .mnuListEditMenu(8).Enabled = (msgGrid.Rows > 1)
                .mnuListEditMenu(10).Enabled = True
                .mnuListEditMenu(11).Enabled = True
                .mnuListEditMenu(13).Enabled = True
                .mnuListEditMenu(14).Enabled = (msgGrid.Rows > 1)
                .mnuListEditMenu(15).Enabled = (msgGrid.Rows > 1)
            Case "工作量(&W)"
                .mnuListEditMenu(0).Caption = "复制工作量(&C)"
                Load .mnuListEditMenu(1)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(1)
                Load .mnuListEditMenu(2)
                .mnuListEditMenu(2).Caption = "全部清除(&A)"
                Load .mnuListEditMenu(3)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(3)
                Load .mnuListEditMenu(4)
                .mnuListEditMenu(4).Caption = "筛选(&F)"
                Load .mnuListEditMenu(5)
                .mnuListEditMenu(5).Caption = "栏目设置(&M)"
                Load .mnuListEditMenu(6)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(6)
                Load .mnuListEditMenu(7)
                .mnuListEditMenu(7).Caption = "刷新(&R)"
                Load .mnuListEditMenu(8)
                .mnuListEditMenu(8).Caption = "打印(&P)..."
                
                .mnuListEditMenu(0).Enabled = (msgGrid.Rows > 1)
                .mnuListEditMenu(2).Enabled = (msgGrid.Rows > 1)
                .mnuListEditMenu(4).Enabled = True
                .mnuListEditMenu(5).Enabled = True
                .mnuListEditMenu(7).Enabled = True
                .mnuListEditMenu(8).Enabled = (msgGrid.Rows > 1)
                
            Case "固资卡片(&D)"
                .mnuListEditMenu(0).Caption = "卡片查阅(&S)"
                Load .mnuListEditMenu(1)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(1)
                Load .mnuListEditMenu(2)
                .mnuListEditMenu(2).Caption = "筛选(&F)"
                Load .mnuListEditMenu(3)
                .mnuListEditMenu(3).Caption = "栏目设置(&M)"
                Load .mnuListEditMenu(4)
                Utility.CloneMenu .mnuEditBar1, .mnuListEditMenu(4)
                Load .mnuListEditMenu(5)
                .mnuListEditMenu(5).Caption = "刷新(&R)"
                Load .mnuListEditMenu(6)
                .mnuListEditMenu(6).Caption = "打印单据(&T)..."
                Load .mnuListEditMenu(7)
                .mnuListEditMenu(7).Caption = "打印(&P)..."
        
                .mnuListEditMenu(0).Enabled = (msgGrid.Rows > 1)
                .mnuListEditMenu(2).Enabled = True
                .mnuListEditMenu(3).Enabled = True
                .mnuListEditMenu(5).Enabled = True
                .mnuListEditMenu(6).Enabled = (msgGrid.Rows > 1)
                .mnuListEditMenu(7).Enabled = (msgGrid.Rows > 1)
        End Select
    End With
End Sub

'生成报表菜单
Private Sub GetListReportMenu()
    Dim lngCnt As Long
    
    With frmMain
        For lngCnt = .mnuListReportMenu.Count - 1 To 1 Step -1
            Unload .mnuListReportMenu(lngCnt)
        Next lngCnt
        .mnuListReportMenu(0).Caption = "固定资产清单(&L)"
        .mnuListReportMenu(0).Enabled = True
        Load .mnuListReportMenu(1)
        .mnuListReportMenu(1).Caption = "固定资产汇总表(&H)"
        Load .mnuListReportMenu(2)
        .mnuListReportMenu(2).Caption = "固定资产变动情况明细表(&M)"
        If gclsBase.AccountSys <> "3" Then
            Load .mnuListReportMenu(3)
            .mnuListReportMenu(3).Caption = "固定资产折旧计算表(&C)"
            Load .mnuListReportMenu(4)
            .mnuListReportMenu(4).Caption = "固定资产及累计折旧明细帐(&Z)"
        End If
    End With
End Sub

'刷新MDI主窗体菜单
Private Sub RefreshMenu()
    Select Case tabList.TabCaption(tabList.Tab)
    Case "变动资料(&Z)"
        With frmMain
            .mnuEditCopy.Enabled = False
            .mnuEditEdit.Enabled = False
            .mnuEditNew.Enabled = True
            .mnuEditDel.Enabled = False
            .mnuEditInActive.Enabled = False
            .mnuEditShowAll.Checked = False
            .mnuEditShowAll.Enabled = False
            .mnuEditUse.Enabled = False
            .mnuEditColumn.Enabled = True
            .mnuEditFilter.Enabled = True
            .mnuEditSearch.Enabled = True
            .mnuEditNotepad.Enabled = False
            .mnuEditShowList.Enabled = False
            .mnuEditUse.Enabled = False
            .mnuFilePrintSetup.Enabled = False
            .mnuFilePrint.Enabled = False
            .mnuFilePrintReceipt.Enabled = False
            .mnuToolRefresh.Enabled = True
            If msgGrid.Rows > 1 Then
                .mnuEditEdit.Enabled = True
                .mnuEditDel.Enabled = True
                .mnuFilePrint.Enabled = True
                .mnuFilePrintSetup.Enabled = True
                .mnuFilePrintReceipt.Enabled = True
                .SetToolBar
            End If
        End With
    Case "工作量(&W)"
        With frmMain
            .mnuEditCopy.Enabled = False
            .mnuEditEdit.Enabled = False
            .mnuEditNew.Enabled = False
            .mnuEditDel.Enabled = False
            .mnuEditInActive.Enabled = False
            .mnuEditShowAll.Checked = False
            .mnuEditShowAll.Enabled = False
            .mnuEditUse.Enabled = False
            .mnuEditColumn.Enabled = True
            .mnuEditFilter.Enabled = True
            .mnuEditSearch.Enabled = False
            .mnuEditNotepad.Enabled = False
            .mnuEditShowList.Enabled = False
            .mnuEditUse.Enabled = False
            .mnuFilePrintSetup.Enabled = False
            .mnuFilePrint.Enabled = False
            .mnuFilePrintReceipt.Enabled = False
            .mnuToolRefresh.Enabled = True
            .SetToolBar
        End With
    Case "固资卡片(&D)"
        With frmMain
            .mnuEditCopy.Enabled = False
            .mnuEditEdit.Enabled = False
            .mnuEditNew.Enabled = False
            .mnuEditDel.Enabled = False
            .mnuEditInActive.Enabled = False
            .mnuEditShowAll.Checked = False
            .mnuEditShowAll.Enabled = False
            .mnuEditUse.Enabled = False
            .mnuEditColumn.Enabled = True
            .mnuEditFilter.Enabled = True
            .mnuEditSearch.Enabled = False
            .mnuEditNotepad.Enabled = False
            .mnuEditShowList.Enabled = False
            .mnuEditUse.Enabled = False
            .mnuFilePrintSetup.Enabled = True
            .mnuFilePrint.Enabled = True
            .mnuFilePrintReceipt.Enabled = True
            .mnuToolRefresh.Enabled = True
            .SetToolBar
        End With
    End Select
End Sub

'删除选中的固资变动资料
Private Function DeleteFix() As Boolean
    Dim strSql As String
    Dim recAlter As rdoResultset
    Dim recCard As rdoResultset
    Dim recBalance As rdoResultset
    Dim recVoucher As rdoResultset
    Dim lngLastFixedAlterID As Long
    Dim intYear As Integer
    Dim bytPeriod As Integer
    Dim lngAlterID As Long
    Dim lngCardID As Long
    Dim strDate As String
    Dim errNo As Long
    
    With msgGrid
        strDate = GetValue(.Row, GetGridCol("变动日期", msgGrid), "String")
        lngAlterID = GetValue(.Row, 1)
        lngCardID = GetValue(.Row, 2)
    End With
    If Not IsDate(strDate) Then
        Exit Function
    End If
    bytPeriod = gclsBase.PeriodOfDate(CDate(strDate))
    intYear = gclsBase.FYearOfDate(CDate(strDate))
    If gclsBase.PeriodClosed(strDate) Then
        ShowMsg hwnd, intYear & "." & bytPeriod & "期已结帐,不能修改变动资料!", vbExclamation, Me.Caption
        Exit Function
    End If
    If PeriodDepection(intYear, bytPeriod, 1, False) Then
        NextPeriod intYear, bytPeriod, 1
        ShowMsg hwnd, intYear & "." & bytPeriod & "期(或以后期间)数据已提折旧,不能删除!", vbExclamation, Me.Caption
        Exit Function
    End If
    
    If AlterExistVoucher(lngAlterID) Then
        ShowMsg hwnd, "不能删除已生成凭证的变动资料!", vbExclamation, Me.Caption
        Exit Function
    End If
    
    strSql = "SELECT * FROM FixedAlter WHERE lngLastFixedAlterID=" & lngAlterID
    Set recAlter = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If Not recAlter.EOF Then
        ShowMsg hwnd, "该固定资产在以后期间又发生过变动,不能删除!", vbExclamation, Me.Caption
        recAlter.Close
        Exit Function
    End If
    recAlter.Close
    
    strSql = "SELECT * FROM FixedCard WHERE NOT LTRIM(strStartDate) IS NULL AND lngCreateFixedAlterID=" & lngAlterID
    Set recAlter = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If Not recAlter.EOF Then
        If PeriodDepection(intYear, bytPeriod, 0, False) Then
            If FixedDeprection(lngCardID, intYear, bytPeriod) Then
                ShowMsg hwnd, intYear & "." & bytPeriod & "期(或以后期间)数据已提折旧,不能删除!", vbExclamation, Me.Caption
                recAlter.Close
                Exit Function
            End If
        End If
    End If
    recAlter.Close
    
    If ShowMsg(hwnd, "你是否确定要删除该变动资料?", vbQuestion + vbYesNo + vbDefaultButton2, Caption) <> vbYes Then
        Exit Function
    End If
    
    On Error GoTo HandleErr
    gclsBase.BaseWorkSpace.BeginTrans
    
    strSql = "SELECT * FROM FixedAlter WHERE lngFixedAlterID=" & lngAlterID & " FOR UPDATE NOWAIT"
    Set recAlter = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    If Not recAlter.EOF Then
        lngLastFixedAlterID = recAlter!lngLastFixedAlterID
        strSql = "DELETE FROM FixedAlter WHERE lngFixedAlterID=" & lngAlterID
        If Not gclsBase.ExecSQL(strSql) Then GoTo HandleErr
        strSql = "DELETE FROM FixedDepartment WHERE lngFixedAlterID=" & lngAlterID
        If Not gclsBase.ExecSQL(strSql) Then GoTo HandleErr
        strSql = "DELETE FROM FixedCost WHERE lngFixedAlterID=" & lngAlterID
        If Not gclsBase.ExecSQL(strSql) Then GoTo HandleErr
        strSql = "DELETE FROM FixedAccount WHERE lngFixedAlterID=" & lngAlterID
        If Not gclsBase.ExecSQL(strSql) Then GoTo HandleErr
        strSql = "SELECT * FROM FixedAlter WHERE lngFixedCardID=" & lngCardID _
            & " AND TO_DATE(strDate,'YYYY-MM-DD')>TO_DATE('" & strDate & "','YYYY-MM-DD') AND lngFixedAlterID>" & lngAlterID & " ORDER BY TO_DATE(strDate,'YYYY-MM-DD')"
        Set recAlter = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
        If lngLastFixedAlterID = 0 Then
            If Not recAlter.EOF Then
                '第一条变动记录删除
                strSql = "UPDATE FixedAlter SET lngLastFixedAlterID=0 WHERE lngFixedAlterID=" & recAlter!lngFixedAlterID
                If gclsBase.ExecSQL(strSql) Then GoTo HandleErr
                strSql = "UPDATE FixedCard SET lngCreateFixedAlterID=" & recAlter!lngFixedAlterID _

⌨️ 快捷键说明

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