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

📄 clskmcheck.cls

📁 一个用VB写的财务软件源码
💻 CLS
📖 第 1 页 / 共 2 页
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "clsKmCheck"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Private UsedFlag As UsedFlagInfo
Private WarningInfo(1 To 3, 1 To 30) As String

Public Function NormalCheck() As Boolean
'一般检查 返回检查结果chechresult ,报警WarningInfo(),使用窗体信息 nodeinputinfo
'一般检查包括:代码非空,中文名称非空,代码非重复,代码是否超限长,
'上级代码与下级代码的首位是否相同,新增代码的顺序号>=2
 Dim adoRstTemp As ADODB.Recordset
 Dim BoolTemp As Boolean '结果暂存量
 Dim KmFirstLen As Integer '科目一级科目长度
 
 Set adoRstTemp = New ADODB.Recordset
 adoRstTemp.CursorLocation = adUseClient
 BoolTemp = True
 If NodeInputInfo.sKmdm = "" Then
     BoolTemp = False
     WarningInfo(1, 1) = "科目代码非空!"
 End If
 If NodeInputInfo.sKmmc = "" Then
     BoolTemp = False
     WarningInfo(1, 2) = "科目中文名非空!"
 End If
 If ThisNodeInfo.iAppendModifyFlag = 1 Then
     adoRstTemp.Open "select kmdm from tzw_km" & glo.sOperateYear & " where kmdm = '" & Trim$(NodeInputInfo.sKmdm) & "' order by kmdm", _
            glo.cnnMain, adOpenStatic, adLockOptimistic
     If Not (adoRstTemp.EOF And adoRstTemp.BOF) Then
          BoolTemp = False
          WarningInfo(1, 3) = "科目重复!"
     End If
     adoRstTemp.Close
 End If
 KmFirstLen = InStr(1, NodeInputInfo.sKmdm, "-") - 1
 If KmFirstLen > ThisNodeInfo.iMaxlen Then
     BoolTemp = False
     WarningInfo(1, 4) = "科目代码不能超限长!"
 End If
 If Left$(NodeInputInfo.sKmdm, 1) <> Trim$(str$(ThisNodeInfo.iNodeGrand)) Then
     BoolTemp = False
     WarningInfo(1, 5) = "科目代码不属于本大类!"
 End If
 If ThisNodeInfo.iNodeIndex < 2 Then
     BoolTemp = False
     WarningInfo(1, 6) = "不能在根节点操作!"
 End If
 If Right$(Trim$(NodeInputInfo.sKmdm), 1) = "-" Then
     BoolTemp = False
     WarningInfo(1, 7) = "科目代码输入错误!"
 End If
 If NodeInputInfo.iSldw = -1 And NodeInputInfo.sSldw = "" Then
     BoolTemp = False
     WarningInfo(1, 8) = "数量核算单位不能为空!"
 End If
 If NodeInputInfo.iWbdw = -1 And NodeInputInfo.sWbdw = "" Then
     BoolTemp = False
     WarningInfo(1, 9) = "外币币种不能为空!"
 End If
 If NodeInputInfo.iIsXjllkm = -1 And NodeInputInfo.sXjlllb = "" Then
     BoolTemp = False
     WarningInfo(1, 10) = "现金流量类别不能为空!"
 End If
 If NodeInputInfo.sKmlx = "" Then
     BoolTemp = False
     WarningInfo(1, 16) = "科目类型不能为空!"
 End If
 If NodeInputInfo.sZygs = "" Then
     BoolTemp = False
     WarningInfo(1, 17) = "账页格式不能为空!"
 End If
 NormalCheck = BoolTemp
 Set adoRstTemp = Nothing
 
End Function

Private Function IsXgbzCheck() As Boolean
'记账/审核标志检查
Dim adoRstTemp As ADODB.Recordset
Set adoRstTemp = New ADODB.Recordset
adoRstTemp.CursorLocation = adUseClient

    adoRstTemp.Open "select xgbz from tzw_pzsj" & glo.sOperateYear & "  where kmdm like '" & ThisNodeInfo.sKmdm & "%'" _
          , glo.cnnMain, adOpenStatic, adLockOptimistic
    If Not (adoRstTemp.EOF And adoRstTemp.BOF) Then
'        If adoRstTemp.Fields("xgbz") = 2 Or adoRstTemp.Fields("xgbz") = 1 Then
        If adoRstTemp.Fields("xgbz") = 2 Then
            If adoRstTemp.Fields("xgbz").value = 2 Then
                ThisNodeInfo.iXgbzFlag = 1
            End If
            IsXgbzCheck = False
        Else
            IsXgbzCheck = True
        End If
    Else
        IsXgbzCheck = True
    End If
    adoRstTemp.Close
    Set adoRstTemp = Nothing

End Function

Private Function IsQcyeCheck() As Boolean
'初期余额检查
Dim sTemp, sTemp2, sTemp3 As String
Dim adoRstTemp As ADODB.Recordset
Set adoRstTemp = New ADODB.Recordset
adoRstTemp.CursorLocation = adUseClient
IsQcyeCheck = True
If Not (ThisNodeInfo.sYefx = NodeInputInfo.sYefx And ThisNodeInfo.iAppendModifyFlag = 0) Then
    adoRstTemp.Open "select * from tzw_balance" & glo.sOperateYear & " where kmdm = '" & ThisNodeInfo.sKmdm & "'" _
         , glo.cnnMain, adOpenStatic, adLockOptimistic
    If Not (adoRstTemp.EOF And adoRstTemp.BOF) Then
         sTemp = Format(glo.sBeginMonth, "00")
         sTemp2 = Trim$("ljj" & Trim$(sTemp))
         sTemp3 = Trim$("ljd" & Trim$(sTemp))
         If adoRstTemp.Fields(sTemp2).value <> 0 Or adoRstTemp.Fields(sTemp3).value <> 0 Then
            IsQcyeCheck = False
            ThisNodeInfo.iQcyelb = 1
         End If
         sTemp2 = Trim$("ljjsl" & Trim$(sTemp))
         sTemp3 = Trim$("ljdsl" & Trim$(sTemp))
         If adoRstTemp.Fields(sTemp2).value <> 0 Or adoRstTemp.Fields(sTemp3).value <> 0 Then
            IsQcyeCheck = False
            ThisNodeInfo.iQcyelb = 2
         End If
         sTemp2 = Trim$("ljjwb" & Trim$(sTemp))
         sTemp3 = Trim$("ljdwb" & Trim$(sTemp))
         If adoRstTemp.Fields(sTemp2).value <> 0 Or adoRstTemp.Fields(sTemp3).value <> 0 Then
            IsQcyeCheck = False
            ThisNodeInfo.iQcyelb = 3
         End If
    End If
    adoRstTemp.Close
    Set adoRstTemp = Nothing
End If

End Function

Private Function IsFzhsCheck() As String
'辅助核算检查
With NodeInputInfo
   ' If .iIsBmhs = -1 And UsedFlag.bBmUsed Then IsFzhsCheck = "此科目已经使用了部门核算!"
   ' If .iIsXmhs = -1 And UsedFlag.bXmUsed Then IsFzhsCheck = "此科目已经使用了项目核算!"
   ' If .iIsKhwlhs = -1 And UsedFlag.bKhUsed Then IsFzhsCheck = "此科目已经使用了客户往来!"
  '  If .iIsGrwlhs = -1 And UsedFlag.bGrUsed Then IsFzhsCheck = "此科目已经使用了个人往来!"
  '  If .iIsGyswlhs = -1 And UsedFlag.bGysUsed Then IsFzhsCheck = "此科目已经使用了供应商往来!"
End With

End Function



Private Sub loadUsedFlag(ByVal kmdm As String)
'读入相关对象是否使用信息,包括:凭证,调汇模板,凭证模板,银行对账单,非法对应科目,凭证类别;若使用置True,没使用置False
    
    Dim IniTemp As Integer
    
    Dim adoRstTemp As ADODB.Recordset
    Set adoRstTemp = New ADODB.Recordset
    adoRstTemp.CursorLocation = adUseClient
    
    With UsedFlag
            On Error GoTo 0
            If g_FLAT = "ORACLE" Then
                adoRstTemp.Open "select * from tzw_pzsj" & glo.sOperateYear & " where kmdm ='" & kmdm & "' and rownum<2" _
                     , glo.cnnMain, adOpenStatic, adLockOptimistic
            Else
                adoRstTemp.Open "select top 1 * from tzw_pzsj" & glo.sOperateYear & " where kmdm ='" & kmdm & "'" _
                     , glo.cnnMain, adOpenStatic, adLockOptimistic
            End If
            If adoRstTemp.RecordCount > 0 Then .bPzUsed = True
            adoRstTemp.Close
            If g_FLAT = "ORACLE" Then
                adoRstTemp.Open "select * from tfz_xmbmpzsj" & glo.sOperateYear & " where kmdm ='" & kmdm & "' and (rtrim(Xmdm)<>'' or xmdm is null) and rownum<2" _
                     , glo.cnnMain, adOpenStatic, adLockOptimistic
            Else
                adoRstTemp.Open "select top 1 * from tfz_xmbmpzsj" & glo.sOperateYear & " where kmdm ='" & kmdm & "' and (rtrim(Xmdm)<>'' or xmdm is null) " _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
            End If
            If adoRstTemp.RecordCount > 0 Then .bXmUsed = True
            adoRstTemp.Close
            
            If g_FLAT = "ORACLE" Then
                adoRstTemp.Open "select * from tfz_xmbmpzsj" & glo.sOperateYear & " where kmdm ='" & kmdm & "' and (rtrim(bmdm)<>'' or bmdm is null) and rownum<2" _
                     , glo.cnnMain, adOpenStatic, adLockOptimistic
            Else
                adoRstTemp.Open "select top 1 * from tfz_xmbmpzsj" & glo.sOperateYear & " where kmdm ='" & kmdm & "' and (rtrim(bmdm)<>'' or bmdm is null) " _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
            End If
            If adoRstTemp.RecordCount > 0 Then .bBmUsed = True
            adoRstTemp.Close
             
            If g_FLAT = "ORACLE" Then
                adoRstTemp.Open "select * from tYsyf_pzsj" & glo.sOperateYear & " where ckmdm ='" & kmdm & "' and (rtrim(CPERSONCODE)<>'' or CPERSONCODE is null) and rownum<2" _
                     , glo.cnnMain, adOpenStatic, adLockOptimistic
            Else
                adoRstTemp.Open "select top 1 * from tYsyf_pzsj" & glo.sOperateYear & " where ckmdm ='" & kmdm & "' and (rtrim(CPERSONCODE)<>'' or CPERSONCODE is null) " _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
            End If
            If adoRstTemp.RecordCount > 0 Then .bGrUsed = True
            adoRstTemp.Close
            
             If g_FLAT = "ORACLE" Then
                adoRstTemp.Open "select * from tYsyf_pzsj" & glo.sOperateYear & " where ckmdm ='" & kmdm & "' and (rtrim(CCUSCODE)<>'' or CCUSCODE is null) and rownum<2" _
                     , glo.cnnMain, adOpenStatic, adLockOptimistic
            Else
                adoRstTemp.Open "select top 1 * from tYsyf_pzsj" & glo.sOperateYear & " where ckmdm ='" & kmdm & "' and (rtrim(CCUSCODE)<>'' or CCUSCODE is null) " _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
            End If
            If adoRstTemp.RecordCount > 0 Then .bKhUsed = True
            adoRstTemp.Close
            
             If g_FLAT = "ORACLE" Then
                adoRstTemp.Open "select * from tYsyf_pzsj" & glo.sOperateYear & " where ckmdm ='" & kmdm & "' and (rtrim(CVENCODE)<>'' or CVENCODE is null) and rownum<2" _
                     , glo.cnnMain, adOpenStatic, adLockOptimistic
            Else
                adoRstTemp.Open "select top 1 * from tYsyf_pzsj" & glo.sOperateYear & " where ckmdm ='" & kmdm & "' and (rtrim(CVENCODE)<>'' or CVENCODE is null) " _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
            End If
            If adoRstTemp.RecordCount > 0 Then .bGysUsed = True
            adoRstTemp.Close
            
             adoRstTemp.Open "select * from tzw_check" & glo.sOperateYear & " where kmdm ='" & kmdm & "' order by kmdm" _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
             If adoRstTemp.RecordCount > 0 Then .bZpUsed = True
             adoRstTemp.Close
             adoRstTemp.Open "select * from tzw_zzpzset" & glo.sOperateYear & " where ckmdm ='" & kmdm & "' order by id" _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
             If adoRstTemp.RecordCount > 0 Then .bZzpzmbUsed = True
             adoRstTemp.Close
             adoRstTemp.Open "select * from tzw_zzhdset" & glo.sOperateYear & " where kmdm ='" & kmdm & "' order by id" _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
             If adoRstTemp.RecordCount > 0 Then .bThmbUsed = True
             adoRstTemp.Close
             adoRstTemp.Open "select * from tzw_templetdetail" & glo.sOperateYear & " where kmdm ='" & kmdm & "' order by kmdm" _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
             If adoRstTemp.RecordCount > 0 Then .bPzmbUsed = True
             adoRstTemp.Close
'             adoRstTemp.Open "select * from tzw_yhdzd" & glo.sOperateYear & " where kmdm ='" & Kmdm & "' order by id" _
'                  , glo.cnnMain, adOpenStatic, adLockOptimistic
'             If adoRstTemp.RecordCount > 0 Then .bYhdzdUsed = True
'             adoRstTemp.Close
             adoRstTemp.Open "select * from tzw_km" & glo.sOperateYear & " order by kmdm" _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
             If adoRstTemp.RecordCount = 0 Then
                 .bFfdykm = False
             Else
                 Do Until adoRstTemp.EOF
                      If Not IsNull(adoRstTemp.Fields("clawless")) Then
                           IniTemp = InStr(1, adoRstTemp.Fields("clawless"), kmdm)
                      End If
                      If IniTemp > 0 Then .bFfdykm = True
                      adoRstTemp.MoveNext
                 Loop
             End If
             adoRstTemp.Close
             adoRstTemp.Open "select * from tzw_type" & glo.sOperateYear & " order by signid" _
                  , glo.cnnMain, adOpenStatic, adLockOptimistic
             If adoRstTemp.RecordCount = 0 Then
                 .bPzlb = False
             Else
                 Do Until adoRstTemp.EOF
                    If Not IsNull(adoRstTemp.Fields("jfbykm").value) Then
                        If InStr(1, Trim$(adoRstTemp.Fields("jfbykm").value), kmdm) > 0 Then .bPzlb = True
                    End If
                    If Not IsNull(adoRstTemp.Fields("jfbwkm").value) Then
                        If InStr(1, Trim$(adoRstTemp.Fields("jfbwkm").value), kmdm) > 0 Then .bPzlb = True
                    End If
                    If Not IsNull(adoRstTemp.Fields("dfbykm").value) Then
                        If InStr(1, Trim$(adoRstTemp.Fields("dfbykm").value), kmdm) > 0 Then .bPzlb = True
                    End If
                    If Not IsNull(adoRstTemp.Fields("dfbwkm").value) Then
                        If InStr(1, Trim$(adoRstTemp.Fields("dfbwkm").value), kmdm) > 0 Then .bPzlb = True
                    End If
                    If Not IsNull(adoRstTemp.Fields("pzbykm").value) Then
                        If InStr(1, Trim$(adoRstTemp.Fields("pzbykm").value), kmdm) > 0 Then .bPzlb = True
                    End If
                    If Not IsNull(adoRstTemp.Fields("pzbwkm").value) Then
                        If InStr(1, Trim$(adoRstTemp.Fields("pzbwkm").value), kmdm) > 0 Then .bPzlb = True
                    End If
                    adoRstTemp.MoveNext
                 Loop
             End If
             adoRstTemp.Close
             Set adoRstTemp = Nothing
             
    End With
End Sub

Public Function CheckUse() As String
Dim i As Long
Dim j As Integer
Dim k As Integer
i = ThisNodeInfo.bUsed
If i < 0 Then i = i + 65536
j = 1
On Error Resume Next
While i > 0

⌨️ 快捷键说明

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