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

📄 frmaccountcard.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
                   vbExclamation + MB_TASKMODAL, "删除会计科目"
            End If
            GoTo ErrHandle
        ElseIf recAcn!blnIsPreDefine = 1 Then
            If blnIsShow Then
                ShowMsg 0, "“" & strCode & " " & strName & "”" & "会计科目是预置科目,不能删除!", _
                   vbExclamation + MB_TASKMODAL, "删除会计科目"
            End If
            GoTo ErrHandle
        End If
    End If
    recAcn.Close
    
    If AccountIsUsed(lngID) Then
        If blnIsShow Then
            ShowMsg lnghWnd, "“" & strCode & " " & strName & "”" & "会计科目已被使用,不允许删除!", _
                  vbExclamation + MB_TASKMODAL, "删除会计科目"
        End If
        GoTo ErrHandle
    End If
    
    If blnIsShow Then
        If ShowMsg(lnghWnd, "你确实要删除" & "“" & strCode & " " & strName & "”" & "会计科目吗?", _
                  vbQuestion + vbYesNo + MB_TASKMODAL + vbDefaultButton2, "删除会计科目") = vbNo Then
            GoTo ErrHandle
        End If
    End If
    
    If Not DeleteAccountCurrency(lngID) Then GoTo ErrHandle
    strSql = "DELETE FROM AccountDaily WHERE lngAccountID=" & lngID
    If Not gclsBase.ExecSQL(strSql) Then GoTo ErrHandle
    strSql = "DELETE FROM Account WHERE lngAccountID=" & lngID
    If Not gclsBase.ExecSQL(strSql) Then GoTo ErrHandle
    strSql = "DELETE FROM BankDetail WHERE lngAccountID=" & lngID
    If Not gclsBase.ExecSQL(strSql) Then GoTo ErrHandle
    strSql = "DELETE FROM BankInit WHERE lngAccountID=" & lngID
    If Not gclsBase.ExecSQL(strSql) Then GoTo ErrHandle
    If Not ChangeHigherCardDetail("Account", "strAccountCode", strCode) Then GoTo ErrHandle
    
    gclsBase.BaseWorkSpace.CommitTrans
    DelCard = True
    gclsSys.SendMessage Me.hwnd, Message.msgAccount
    Exit Function
ErrHandle:
    gclsBase.BaseWorkSpace.RollBacktrans
End Function
'新增(LNGID=0)或编辑科目
Public Sub EditCard(ByVal lngID As Long, Optional intModal As Integer = 0, Optional lnghWnd As Long = 0)
    
    If Not CheckIDUsed("Account", "lngAccountID", lngID) Then
        ShowMsg lnghWnd, "该会计科目不存在,不能进行修改!", vbExclamation + MB_TASKMODAL, "修改会计科目"
        Unload Me
        Exit Sub
    Else
        mblnIsChanged = False
        mlngAccountID = lngID
        mblnIsNew = False
        Caption = "修改会计科目"
        InitCard
        Show intModal
    End If
End Sub
'根据ID返回名称或根据名称返回ID
Private Function AccountX(Value, Index As Integer)
    Dim i As Integer
    
    If TypeName(Value) = "String" Then
        If Value = "" Then
            AccountX = 6
            Exit Function
        End If
        For i = 0 To cboAccount(Index).ListCount - 1
            If cboAccount(Index).list(i) = Value Then
                AccountX = cboAccount(Index).ItemData(i)
                cboAccount(Index).ListIndex = i
                Exit For
            End If
        Next i
        If Index = 1 Then
            #If conVersionType = 16 Then
                If AccountX > 4 Then AccountX = 0
            #Else
                If AccountX > 5 Then AccountX = 0
            #End If
        End If
    Else
        If Value = 6 Then
            AccountX = ""
            Exit Function
        End If
        If Value = 0 Then
            AccountX = "其它"
            Exit Function
        End If
        For i = 0 To cboAccount(Index).ListCount - 1
            If Abs(cboAccount(Index).ItemData(i)) = Abs(Value) Then
                AccountX = cboAccount(Index).list(i)
                cboAccount(Index).ListIndex = i
                Exit Function
            End If
        Next i
    End If
End Function
'指定的科目是否已使用
Public Function AccountIsUsed(ByVal lngID As Long) As Boolean
    
    AccountIsUsed = True
    If UsedInAccountDaily("lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("Customer", "lngARAccountID", lngID) Then Exit Function
    If CheckIDUsed("customer", "lngAPAccountID", lngID) Then Exit Function
    If CheckIDUsed("ActivityDetail", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("ARAPInit", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("BankInfo", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("Project", "lngAccountID", lngID) Then Exit Function
'    If CheckIDUsed("BankInit", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("BudgetBalance", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("FixedAccount", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("FixedMethod", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("ItemActivity", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("Tax", "lngPurchaseTaxAccountID", lngID) Then Exit Function
    If CheckIDUsed("Tax", "lngSaleTaxAccountID", lngID) Then Exit Function
    If CheckIDUsed("TransVoucherDetail", "lngAccountID", lngID) Then Exit Function
    If CheckIDUsed("VoucherDetail", "lngAccountID", lngID) Then Exit Function
    If UsedInSetting(lngID) Then Exit Function
    If UsedInVoucherType(lngID) Then Exit Function
    AccountIsUsed = False
End Function

Private Function UsedInVoucherType(ByVal lngID As Long) As Boolean
    Dim recA As rdoResultset, strSql As String
    
    strSql = "SELECT * FROM VoucherType WHERE LNGDEBITACCOUNTID1=" & lngID _
        & " OR LNGDEBITACCOUNTID2=" & lngID & " OR LNGCREDITACCOUNTID1=" & lngID _
        & " OR LNGCREDITACCOUNTID2=" & lngID & " OR LNGVOUCHERACCOUNTID1=" & lngID _
        & " OR LNGVOUCHERACCOUNTID2=" & lngID & " OR LNGVOUCHERNOACCOUNTID1=" & lngID _
        & " OR LNGVOUCHERNOACCOUNTID2=" & lngID
    Set recA = gclsBase.BaseDB.OpenResultset(strSql, rdOpenForwardOnly)
    UsedInVoucherType = Not recA.EOF
    recA.Close
End Function

Private Function UsedInSetting(ByVal lngID As Long) As Boolean
    Dim recA As rdoResultset, strSql As String
    
    strSql = "SELECT * FROM Setting WHERE strSection='特殊科目' AND strSetting='" & CStr(lngID) & "'"
    Set recA = gclsBase.BaseDB.OpenResultset(strSql, rdOpenForwardOnly)
    UsedInSetting = Not recA.EOF
    recA.Close
End Function

Private Function AllowChangeCheck() As Boolean
    Dim recAccount As rdoResultset, strSql As String
    
    strSql = "SELECT * FROM AccountDaily WHERE lngAccountID=" & mlngAccountID _
        & " AND lngCurrencyID<>1"
    Set recAccount = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
    AllowChangeCheck = recAccount.EOF
    recAccount.Close
End Function

Private Sub InitCard(Optional ByVal lngTypeID As Long = -1, _
    Optional strName As String = "", Optional lngNatureID As Long = 0)
    Dim recAccount As rdoResultset ', recAcntType As rdoresultset
    Dim strSql As String, i As Integer, blnModifyProperty As Boolean
    
    mblnIsInit = True
    If Not mblnIsNew Then
        Caption = "修改会计科目"
        cmdOk(2).Visible = False
    End If
    
    cboAccount(0).Enabled = True
    cboAccount(1).Enabled = True
    mblnOAllCur = False
    mblnOPartCur = False
    mblnSelCur = False
    mlngPCodeID = 0
    mblnPIsDetail = False
    mblnPIsInActive = False
'    cboAccount(1).ItemData(cboAccount(1).NewIndex) = 6
'    cboAccount(1).AddItem "    ", 6
    
    If Not mblnIsNew Then
        strSql = "SELECT * FROM Account WHERE lngAccountID=" & mlngAccountID
        Set recAccount = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
        txtAccount(0).Text = recAccount("strAccountCode")
        txtAccount(1).Text = recAccount("strAccountName")
        If recAccount("blnIsPreDefine") Then
            txtAccount(0).Enabled = False
            txtAccount(1).Enabled = False
        End If
        mstrLastCode = recAccount("strAccountCode")
        mstrOldFullName = Trim$(recAccount("strFullName"))
        mblnIsDetail = recAccount("blnIsDetail")
        cboAccount(0).Text = AccountX(recAccount("lngAccountTypeID"), 0)
        mlngTypeID = recAccount("lngAccountTypeID")
        mlngOldTypeID = mlngTypeID
        If recAccount("lngAccountNatureID") <> 6 Then
            cboAccount(1).Text = AccountX(recAccount("lngAccountNatureID"), 1)
        End If
        mtxtAccountNature = cboAccount(1).Text
        txtAccount(2).Text = Format$(recAccount("strQuantityUnit"), "@;;;")
        chkQuantity.Value = recAccount("blnIsQuantity")
        mintOldLevel = recAccount("intLevel")
        If recAccount!intLevel <> 1 Then
            cboAccount(0).Enabled = False
           ' cboAccount(1).Enabled = False
        End If
        optDirection(0).Value = (recAccount("intDirection") = 1)
        optDirection(1).Value = Not optDirection(0).Value
        mintDirection = recAccount("intDirection")
        'mblnIsInit = recAccount("blnIsMultCurrency")
'        optCheck(0).Enabled = AllowChangeCheck
        optCheck(2).Value = (recAccount("blnIsMultCurrency") = 1)
        optCheck(1).Value = (recAccount("blnIsAllCurrency") = 1)
        mblnOAllCur = recAccount("blnIsAllCurrency")
        mblnOPartCur = recAccount("blnIsMultCurrency")
        chkSuit.Value = recAccount("blnIsCalcExchange")
        If optCheck(0).Value = True Then
           chkSuit.Enabled = False
        Else
           chkSuit.Enabled = True
        End If
        chkAid(0).Value = recAccount("blnIsCustomer")
        chkAid(1).Value = recAccount("blnIsDepartment")
        chkAid(2).Value = recAccount("blnIsEmployee")
        chkAid(3).Value = recAccount("blnIsCash")
        chkAid(4).Value = recAccount("blnIsClass1")
        chkAid(5).Value = recAccount("blnIsClass2")
        chkAid(6).Value = recAccount("blnIsCalcInterest")
        chkStop.Value = recAccount("blnIsInActive")
        recAccount.Close
        If CodeIsDetail("Account", "strAccountCode", txtAccount(0).Text) Then
            mblnAcntNEdit = Not NatureAllowEdit(mlngAccountID, blnModifyProperty)  'Or AccountIsUsed(mlngAccountID)
            If cboAccount(0).Enabled Then cboAccount(0).Enabled = Not mblnAcntNEdit
            cboAccount(1).Enabled = Not mblnAcntNEdit
        Else
'           cboAccount(1).ListIndex = 5
            For i = 0 To 5
                chkAid(i).Enabled = False
                If i < 3 Then optCheck(i).Enabled = False
           Next i
           Frame1.Enabled = False
           chkSuit.Enabled = False
           Label1(2).Enabled = False
           cboAccount(1).Enabled = False
           chkQuantity.Enabled = False
        End If
'        bytModifyProperty = PropertyAllowEdit(mlngAccountID)
        If Not blnModifyProperty Then
            For i = 0 To 5
                If i <> 3 Then chkAid(i).Enabled = False
'                If i < 3 Then optCheck(i).Enabled = False
            Next i
            If Not optCheck(0).Value Then
                optCheck(0).Enabled = mblnCurAllowEdit
            End If
'            Label1(5).Enabled = False
'            chkQuantity.Value = 0
'            chkQuantity.Enabled = False
'        Else
'            Label1(2).Enabled = True
'            chkQuantity.Value = 0
'            chkQuantity.Enabled = True
        End If
    Else
        For i = 0 To 5
            If i <> 3 Then chkAid(i).Value = Unchecked
        Next i
        chkQuantity.Value = Unchecked
        If mlngAccountID = 0 Then
            For i = 0 To cboAccount(0).ListCount - 1
                If Abs(cboAccount(0).ItemData(i)) = lngTypeID Then Exit For
            Next i
            If i < cboAccount(0).ListCount Then
                cboAccount(0).ListIndex = i
            Else
                cboAccount(0).ListIndex = 0
            End If
            mblnAcntNEdit = False
    '        If lngTypeID Mod 3 = 1 Then
    '            optDirection(0).Value = True
    '        Else
    '            optDirection(1).Value = True
    '        End If
            If lngNatureID <> 0 Then
                cboAccount(1).ListIndex = lngNatureID - 1
            Else
                #If conVersionType = 16 Then
                    cboAccount(1).ListIndex = 4
                #Else
                    cboAccount(1).ListIndex = 5
                #End If
            End If
        Else
            cboAccount(0).ListIndex = mlngTypeID - 1
            cboAccount(1).ListIndex = IIf(mlngNatureID > 0, mlngNatureID - 1, mlngNatureID)
            If cboAccount(1).ListIndex = 2 Or cboAccount(1).ListIndex = 3 Then chkAid(0).Value = Checked
        End If
        optCheck(0).Value = True
        chkSuit.Enabled = False
        chkStop.Value = 0
        mstrOldFullName = ""

⌨️ 快捷键说明

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