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

📄 test.cls

📁 财务信息管理系统,适合做毕业论文的人使用
💻 CLS
📖 第 1 页 / 共 2 页
字号:
            Rs.Open sql, m_objCon, adOpenDynamic, adLockOptimistic
            If Rs.RecordCount = 0 Then
                AppendRtn "1", "错误的单据号!", id
            ElseIf CInt(Rs!success_flag) = 0 Then
                Rs!success_flag = 1
                Rs.Update
                'AppendRtn "0", "添加成功标志成功!", id
            Else
                'AppendRtn "0", "已添加过成功标志!", id
            End If
            Rs.Close
        End If
    Next
End Sub

'去掉查询条件
Private Sub DeMark()
'必须是未记账,未制单的记录才能进行
    Dim root As IXMLDOMElement
    Dim node As IXMLDOMElement
    Dim id As String
    Dim Rs As New ADODB.Recordset
    Dim sql As String
    
    Set root = m_objXmlIn.documentElement.selectSingleNode("//" & sRootTag(m_objXmlIn))
    For Each node In root.childNodes
        id = GetAttributeVal("id", node)
        If id = "" Then
            AppendRtn "1", "编号不能为空!"
        Else
            sql = "select success_flag from fd_transactions where invoice_code='" & id & "' and pz_code is null and book_name is null and importexport_flag='1'"
            Rs.Open sql, m_objCon, adOpenDynamic, adLockOptimistic
            If Rs.RecordCount = 0 Then
                AppendRtn "1", "单据已经制单或记账,不能修改!", id
            ElseIf CInt(Rs!success_flag) = 0 Then
                'AppendRtn "0", "尚未指定成功标志!", id
            Else
                Rs!success_flag = 0
                Rs.Update
                'AppendRtn "0", "成功删除成功标志!", id
            End If
            Rs.Close
        End If
    Next
    Rs.Update
    Exit Sub
End Sub

'去掉导出标志
Private Sub Delete()
'必须是未记账,未制单的记录才能进行
    Dim root As IXMLDOMElement
    Dim node As IXMLDOMElement
    Dim id As String
    Dim Rs As New ADODB.Recordset
    Dim sql As String
    
    Set root = m_objXmlIn.documentElement.selectSingleNode("//" & sRootTag(m_objXmlIn))
    For Each node In root.childNodes
        id = GetAttributeVal("id", node)
        If id = "" Then
            AppendRtn "1", "编号不能为空!"
        Else
            sql = "select importexport_flag from fd_transactions where transactions_id='" & id & "' and importexport_flag='2'"
            Rs.Open sql, m_objCon, adOpenDynamic, adLockOptimistic
            If Rs.RecordCount = 0 Then
                AppendRtn "1", "单据编号错误!", id
            Else
                Rs!importexport_flag = 0
                Rs.Update
                'AppendRtn "0", "成功删除导出标志!", id
            End If
            Rs.Close
        End If
    Next
    Exit Sub
End Sub


'获取查询条件
Private Function sCondition() As String
    Dim rootTag As String
    Dim node As IXMLDOMNode
    Dim Rs As New ADODB.Recordset
    Dim fld As ADODB.Field
    Dim vchstyle As String
    Dim tmp As String
    
    rootTag = GetAttributeVal("roottag", m_objXmlIn.documentElement)
    '查询条件只能是在fd_transactions范围内
    Rs.Open "select * from fd_transactions where 1>1", m_objCon, adOpenForwardOnly, adLockReadOnly
    sCondition = ""
    For Each node In m_objXmlIn.documentElement.selectSingleNode("//" & rootTag).childNodes
        If node.nodeType = NODE_ELEMENT Then
            tmp = GetAttributeVal("name", node)
            tmp = GetFieldName(tmp, m_objExport)
            If tmp <> "vchstyle" Then
                '是否要调整字段
                'tmp = AdjustField(tmp, node)
                Set fld = Rs(tmp)
                If Not IsNull(fld) Then
                    sCondition = sCondition & fld.Name & GetAttributeVal("operation", node)
                    Select Case fld.Type
                        Case adBSTR, adDate, adDBDate, adDBTime, adDBTimeStamp, adLongVarChar, adLongVarBinary, adBSTR, adLongVarChar, adVarChar, adVarWChar, adWChar
                            sCondition = sCondition & "'" & GetAttributeVal("value", node) & "'"
                        Case Else
                            sCondition = sCondition & GetAttributeVal("value", node)
                    End Select
                    sCondition = sCondition & " " & GetAttributeVal("logic", node) & " "
                End If
            'vchstyle字段特殊处理
            Else
                vchstyle = GetAttributeVal("value", node)
            End If
        End If
    Next
    '必须是已经审核,而且是为记账或制单的记录才能入选
    If sCondition <> "" Then
        sCondition = " importexport_flag='0' and check_name  is not null and pz_code is null and book_name is null and " & sCondition
    End If
    
    If vchstyle = "" Then
    ElseIf Not IsNull(vInRecord("select * from fd_entities where iBIType = '" & vchstyle & "'", m_objCon)) Then
        sCondition = sCondition & " and substring(fd_Transactions.transactions_id,1,2)='" & vchstyle & "' "
    Else
        Err.Raise 3333, "错误的单据类型编号!"
        Exit Function
    End If
End Function

'返回信息中加入节点
Private Sub AppendRtn(sCode As String, sDesc As String, Optional ByVal sKey As String = "")
    Dim node As IXMLDOMElement
    Set node = m_objRtn.createElement("item")
    node.setAttribute "succ", sCode
    node.setAttribute "desc", sDesc
    node.setAttribute "id", sKey
    m_objRtn.documentElement.appendChild node
End Sub

'将一条记录集转换为xml节点
Private Sub appendNode(Rs As ADODB.Recordset, con As ADODB.Connection)
    Dim root As IXMLDOMElement
    Dim node As IXMLDOMElement
    Dim child As IXMLDOMElement
    Dim tmp As IXMLDOMNode
    Dim str As String
    Dim fld As ADODB.Field
    
    Set node = m_objXmlOut.createElement(sRootTag(m_objXmlOut))
    Set root = m_objExport.documentElement.selectSingleNode("//" & sRootTag(m_objExport))
    
    '设置node的值,参照对应字段
    For Each tmp In root.childNodes
        If tmp.nodeType = NODE_ELEMENT Then
            '加入子节点
            str = Trim(tmp.Text)
            Set child = m_objXmlOut.createElement(str)
            
            '如果为空是以后要使用的
            Set fld = Rs(str)
            If Not IsNull(fld) And Not IsNull(fld.Value) And Not IsEmpty(fld.Value) Then
                child.Text = CStr(fld.Value)
            End If
         
            node.appendChild child
        End If
    Next
    '设置输出标志
    con.Execute "update fd_transactions set importexport_flag='2' where transactions_id =  '" & Rs!transactions_id & "'"
    '加入节点
    m_objXmlOut.documentElement.appendChild node
End Sub

'将一个节点转换为一条记录
Private Sub AppendRecord(node As IXMLDOMElement, Rs As ADODB.Recordset, chk As ADODB.Recordset)
    '合法性检查
    On Error GoTo last
    Dim tmp As IXMLDOMNode
    Dim root As IXMLDOMElement
    Dim idMgr As New U8FDMgr.OIDManager
    Dim sFieldName As String
    Dim child As IXMLDOMElement
    Dim negtive As String
    Dim id As String
    Dim ept As String
    Dim schk As String
    
    Rs.AddNew
    '加入主关键字
    id = idMgr.GetNewOID(m_objCon.ConnectionString, CInt(m_sVchStyle), True)
    Rs("transactions_id") = id
    Rs("transactions_code") = mID(id, 6, 15)
    m_sTranCode = mID(id, 6, 15)
    
    '检查编号是否冲突
    AdjustField "transactions_code", Nothing
  
    Set root = m_objImport.documentElement.selectSingleNode("//" & sRootTag(m_objImport))
    For Each tmp In root.childNodes
        If tmp.nodeType = NODE_ELEMENT Then
            sFieldName = tmp.nodename
            If sFieldName <> "" And tmp.Text <> "" Then
                Set child = node.selectSingleNode(tmp.Text)
                ept = GetAttributeVal("empty", tmp)
                If ept = "0" And child.Text = "" Then
                    Rs.CancelUpdate
                    AppendRtn "1", "要求字段" & tmp.nodename & "不能为空!", GetElementVal("iId", node)
                    Exit Sub
                End If
                CheckType chk, sFieldName, child
                schk = GetAttributeVal("check", tmp)
                If schk = "1" Then
                    sFieldName = AdjustField(sFieldName, child, GetElementVal(("iId"), node))
                End If
                If sFieldName <> "" And child.Text <> "" Then
                    Rs(sFieldName) = child.Text
                End If
            End If
        End If
    Next
    '设置导入标记
    Rs("importexport_flag") = "1"
    Rs.Update
    'AppendRtn "0", "成功导入单据!", GetElementVal(("iID"), node)
    Exit Sub
last:
'    AppendRtn "1", "错误原因:" & Error, GetElementVal(("iId"), node)
    Rs.CancelUpdate
End Sub


'校正字段名称
Private Function AdjustField(str As String, node As IXMLDOMElement, Optional key As String) As String
    Dim tmp As Variant
    Select Case str
        Case "transactions_code"
            Dim sql As String
            sql = "select 1 from fd_transactions where substring(transactions_id,1,2)='" & m_sVchStyle & "' and transactions_code = '" & m_sTranCode & "'"
            If Not IsNull(vInRecord(sql, m_objCon)) Then
                AppendRtn "1", "同类型单据编号冲突!", key
                Err.Raise 333
            End If
        Case "rcv_acc_code"
            AdjustField = "rcv_acc_id"
            '如果编号为空,不检查
            If node.Text <> "" Then
                tmp = vInRecord("select iid from fd_accdef where caccid = '" & node.Text & "' and bdestroy<>'1' and istate<>'1'", m_objCon)
                If Not IsNull(tmp) Then
                    node.Text = tmp
                Else
                    AppendRtn "1", "指定的账号不可用!", key
                    Err.Raise 333
                End If
            End If
        Case "pay_acc_code"
            AdjustField = "pay_acc_id"
            If node.Text <> "" Then
                tmp = vInRecord("select iid from fd_accdef where caccid = '" & node.Text & "' and bdestroy<>'1' and istate<>'1'", m_objCon)
                If Not IsNull(tmp) Then
                    node.Text = tmp
                Else
                    AppendRtn "1", "指定的账号不可用!", key
                    Err.Raise 333
                End If
            End If
        Case "invoice_code"
            AdjustField = "invoice_code"
            If Not IsNull(vInRecord("select invoice_code from fd_transactions where invoice_code = '" & node.Text & "'", m_objCon)) Then
                AppendRtn "1", "同编号的单据已经存在了!", key
                Err.Raise 333
            End If
        Case Else
            AdjustField = str
    End Select
End Function

'接口函数
Public Function Transact(sXmlIn As String, sXmlOut As String, Optional objCon As ADODB.Connection) As Boolean
    Transact = False
    If Not bSetTemplate(sXmlIn, 0) Or Not bCon(objCon) Or Not bParse Then
        Transact = False
    Else
        Transact = True
    End If
    
    sXmlOut = XmlOut
    ResetState
End Function

'初始化错误
Private Sub Class_Initialize()
    ResetState
    bSetTemplate sCurrentPath & "xml\export.xml", 2
    bSetTemplate sCurrentPath & "xml\import.xml", 1
End Sub

Private Sub Class_Terminate()
    Set m_objRtn = Nothing
    Set m_objXmlIn = Nothing
    Set m_objImport = Nothing
    Set m_objExport = Nothing
    Set m_objCon = Nothing
End Sub

'重新设置输入输出参数
Private Sub ResetState()
    m_objXmlIn.Load ""
    m_objRtn.loadXML "<ufinterface roottag='fd' proc='rtn'/>"
    m_objXmlOut.loadXML "<ufInterface roottag='fd' proc='export'/>"
End Sub




⌨️ 快捷键说明

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