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

📄 结息日设置.frm

📁 财务信息管理系统,适合做毕业论文的人使用
💻 FRM
📖 第 1 页 / 共 4 页
字号:
'--------------------------------
'时间:2001.11.12
'版权:北京用友软件股份有限公司
'设计:章景峰
'编码:章景峰
'说明:U8资金管理---结息日定义
'--------------------------------
Option Explicit
Private Const conMoveLimit = 1000
Private Const m_conBIStyle = 3
Private Const m_conChildBIStyle = 92

Private m_EO         As U8FDEso.EntityObject     '----当前实体对象实例
Private m_OldEO      As U8FDEso.EntityObject     '----在新增或编辑时备份当前实体对象,用于恢复操作
Private m_OID        As New U8FDEso.OIDObject
Private m_EditStatus As Boolean
Private NodeKey      As String
Private PrintTypeList        As String
Private PrintSizeList        As String
Private SetPrintDataStyleXML_flag As Boolean

Public Property Get EO() As U8FDEso.EntityObject
    Set EO = m_EO
End Property

Public Property Set EO(NewEO As U8FDEso.EntityObject)
    Set m_EO = NewEO
End Property

Public Sub AddNew()
    Dim oEO      As U8FDEso.EntityObject
    Dim objCadBI As New U8FDBso.clsCadBI
        
    On Error GoTo lblHandle
    '1、申请权限
    
    '初始化实体对象
    Set oEO = objCadBI.Init(g_sDataSourceName, m_conBIStyle)
        
    '----用于备份
    If Not m_EO Is Nothing Then Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
    Set m_EO = oEO
    
    m_EO.State = U8FDEso.esoAddNew
    
    '----设置界面(值和状态)
    SetUI
    Me.txtCode.SetFocus
    
    Exit Sub
lblHandle:
    MsgBox Err.Description, vbInformation, g_conSysName
End Sub

Public Sub Edit(Optional OID As U8FDEso.OIDObject)
    Dim objCadBI     As New U8FDBso.clsCadBI
    Dim objLockMgr   As New U8FDMgr.LockManager
    
    On Error GoTo lblHandle
    
    '----
    If Not OID Is Nothing Then
        m_EO.OID = OID
    ElseIf mID(NodeKey, 2) = m_OID.id Then
        m_EO.OID = mID(Me.treStyle.Nodes(NodeKey).Parent.key, 2)
    End If
    
    '----锁定实体对象
    objLockMgr.LockIt g_sDataSourceName, m_EO.OID, zjLogInfo.cUserName, ComputerName
    Set objLockMgr = Nothing
    
    '----用于备份
    Set m_OldEO = m_EO.Clone(U8FDEso.esoStructureAndData)
    m_EO.State = U8FDEso.esoEdit
    
    '----设置界面
    SetUI
    If Me.txtMonth.Enabled = True Then
        Me.txtMonth.SetFocus
    Else
        SendKeys "{TAB}"
    End If
    Exit Sub
lblHandle:
    MsgBox Err.Description, vbInformation, g_conSysName
End Sub

Public Sub View(Optional OID As U8FDEso.OIDObject)
    Dim objCadBI As New U8FDBso.clsCadBI
    
    On Error GoTo lblHandle
    
    '----
    If Not OID Is Nothing Then
        Set m_EO = objCadBI.MoveTo(g_sDataSourceName, U8FDEso.esoCurrent, m_conBIStyle, OID)
    Else
        Set m_EO = objCadBI.MoveTo(g_sDataSourceName, U8FDEso.esoFirst, m_conBIStyle)
    End If
    
    '----设置界面
    SetUI
    
    Exit Sub
lblHandle:
    MsgBox Err.Description, vbInformation, g_conSysName
End Sub

Private Function Save() As Boolean
    Dim objCadBI    As New U8FDBso.clsCadBI
    Dim objLockMgr  As New U8FDMgr.LockManager
    Dim Child_EO    As U8FDEso.EntityObject
    Dim objOIDMgr   As New U8FDMgr.OIDManager
    Dim i           As Integer
    Dim close_date  As Date
    Dim CodeCount   As Integer
    
    On Error GoTo lblHandle
    If Me.txtMonth.Text = "" Then
        MsgBox "结息周期不能为空!"
        Me.txtMonth.SetFocus
        Exit Function
    End If
    If Len(Trim(txtDate.Text)) = 0 Then
        MsgBox "日期不能为空!"
        Me.txtDate.SetFocus
        Exit Function
    ElseIf Len(Trim(ForDate(txtDate.Text))) = 1 Then
        Me.txtDate.SetFocus
        Exit Function
    Else
        txtDate.Text = ForDate(txtDate.Text)
    End If
    If DateDiff("d", Year(ZjAccInfo.zjNdEnd) + 1 & "-1-1", Me.txtDate) >= 0 Then 'Or DateDiff("d", Year(ZjAccInfo.zjNdEnd) & "-1-1", Me.txtDate) < 0
        MsgBox "日期不能大于会计年度!"
        Me.txtDate.SetFocus
        Exit Function
    End If
    'Dim BeginCad As Date
    'Dim EndCad As Date
    'Dim rec As UfRecordset
    '
    'Set rec = zjLogInfo.UfSystemDb.OpenRecordset("Select dBegin, dend from UA_Period where cAcc_ID='" & zjLogInfo.cacc_id & "' And iYear=" & zjLogInfo.cIYear & " And (iid=1 or iid=12) order by iID", dbOpenSnapshot)
    'rec.MoveFirst
    'BeginCad = Format(rec!dbegin, "YYYY-MM-DD")
    'rec.MoveLast
    'EndCad = Format(rec!dEnd, "YYYY-MM-DD")
    'rec.oClose
    '
    'If DateDiff("d", Me.txtDate, BeginCad) > 0 Or DateDiff("d", Me.txtDate, EndCad) < 0 Then
    '    MsgBox "日期超出本年度财年"
    '    Exit Function
    'End If

    '----赋值
    With m_EO
        If m_EO.State = U8FDEso.esoAddNew Then
            m_EO("cad_code") = Me.txtCode.Text
            If Me.txtMonth.Text = "" Or Me.txtMonth.Text = "0" Then
                m_EO("month_num") = 1
                Me.txtMonth.Text = 1
            Else
                m_EO("month_num") = Me.txtMonth.Text
            End If
            m_EO("delay_num") = Me.txtDelay.Text
            m_EO("digest") = Me.txtDigest.Text
            
            close_date = Me.txtDate.Text
            i = 0
            Do Until Year(close_date) > Year(ZjAccInfo.zjNdEnd)
                If Year(close_date) >= 1800 Then
                    Set Child_EO = objCadBI.Init(g_sDataSourceName, m_conChildBIStyle)
                    Child_EO("cad_b_id") = objOIDMgr.GetNewOID(g_sDataSourceName, m_conChildBIStyle, True)
                    Child_EO("cad_code") = Me.txtCode.Text
                    Child_EO("close_date") = close_date
                    m_EO.EOS.Append Child_EO, "K" & Child_EO("cad_b_id")
                End If
                i = i + 1
                close_date = DateAdd("m", Me.txtMonth.Text * i, Me.txtDate.Text)
                Set Child_EO = Nothing
            Loop
            
            Set Child_EO = Nothing
        ElseIf m_EO.State = U8FDEso.esoEdit Then
            m_EO("cad_code") = Me.txtCode.Text
            If Me.txtMonth.Text = "" Or Me.txtMonth.Text = "0" Then
                m_EO("month_num") = 1
                Me.txtMonth.Text = 1
            Else
                m_EO("month_num") = Me.txtMonth.Text
            End If
            m_EO("delay_num") = Me.txtDelay.Text
            m_EO("digest") = Me.txtDigest.Text
            
            '删除所有子表数据
            For i = 1 To m_EO.EOS.count
                m_EO.EOS.Delete 1
            Next
            
            close_date = Me.txtDate.Text
            i = 0
            Do Until Year(close_date) > Year(ZjAccInfo.zjNdEnd)
                If Year(close_date) >= 1800 Then
                    Set Child_EO = objCadBI.Init(g_sDataSourceName, m_conChildBIStyle)
                    Child_EO("cad_b_id") = objOIDMgr.GetNewOID(g_sDataSourceName, m_conChildBIStyle, True)
                    Child_EO("cad_code") = Me.txtCode.Text
                    Child_EO("close_date") = close_date
                    m_EO.EOS.Append Child_EO, "K" & Child_EO("cad_b_id")
                End If
                i = i + 1
                close_date = DateAdd("m", Me.txtMonth.Text * i, Me.txtDate.Text)
                Set Child_EO = Nothing
            Loop
            
            Set Child_EO = Nothing
        End If
    End With
    
    '----实体对象验证
    If Not m_EO.Validate Then
        For i = 1 To m_EO.EOS.count
            m_EO.EOS.Delete 1
        Next
        Exit Function
    End If
    
    '----调用业务对象并保存
    If objCadBI.Save(g_sDataSourceName, m_EO, m_conBIStyle) Then
        If m_EO.State = U8FDEso.esoAddNew Then
            Me.treStyle.Nodes.Add , , "K" & m_EO("cad_id"), m_EO("cad_code")
            Me.treStyle.Nodes("K" & m_EO("cad_id")).Image = 2
            Me.treStyle.Nodes("K" & m_EO("cad_id")).Expanded = True
            For i = 1 To m_EO.EOS.count
                Me.treStyle.Nodes.Add "K" & m_EO("cad_id"), tvwChild, "K" & m_EO.EOS(i)("cad_b_id"), m_EO.EOS(i)("close_date")
                Me.treStyle.Nodes("K" & m_EO.EOS(i)("cad_b_id")).Image = 3
            Next
            Me.treStyle.Nodes("K" & m_EO.EOS(1)("cad_b_id")).Selected = True
            NodeKey = "K" & m_EO.EOS(1)("cad_b_id")
            m_OID.id = m_EO.EOS(1)("cad_b_id")
        ElseIf m_EO.State = U8FDEso.esoEdit Then
            Me.treStyle.Nodes.Remove Me.treStyle.Nodes("K" & m_OID.id).Parent.key
            
            Me.treStyle.Nodes.Add , , "K" & m_EO("cad_id"), m_EO("cad_code")
            Me.treStyle.Nodes("K" & m_EO("cad_id")).Image = 2
            Me.treStyle.Nodes("K" & m_EO("cad_id")).Expanded = True
            For i = 1 To m_EO.EOS.count
                Me.treStyle.Nodes.Add "K" & m_EO("cad_id"), tvwChild, "K" & m_EO.EOS(i)("cad_b_id"), m_EO.EOS(i)("close_date")
                Me.treStyle.Nodes("K" & m_EO.EOS(i)("cad_b_id")).Image = 3
            Next
            Me.treStyle.Nodes("K" & m_EO.EOS(1)("cad_b_id")).Selected = True
            NodeKey = "K" & m_EO.EOS(1)("cad_b_id")
            m_OID.id = m_EO.EOS(1)("cad_b_id")
        End If
    Else
        For i = 1 To m_EO.EOS.count
            m_EO.EOS.Delete 1
        Next
        Exit Function
    End If
    
    '----解除锁定
    If m_EO.State = U8FDEso.esoEdit Then
        objLockMgr.UnlockIt g_sDataSourceName, m_EO.OID
    End If
        
    m_EO.State = U8FDEso.esoInstance
    
    '----释放任务
    
    '刷新参照表单数据
    For i = 0 To Forms.count - 1
        If Forms(i).Name = "frmRefCtl" Then
            frmRefCtl.FDRefCtrl.Refresh
            Exit For
        End If
    Next
    
    '----设置界面
    SetUI
    
    Save = True
    
    Exit Function

lblHandle:
    MsgBox Err.Description, vbInformation, g_conSysName
    Select Case Err.Source
    
    End Select
End Function

Private Sub Delete()
    If MsgBox("真的要删除当前记录吗?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
    
    Dim objCadBI As New U8FDBso.clsCadBI
        
    On Error GoTo lblHandle
    '----删除当前记录
    If objCadBI.Delete(g_sDataSourceName, m_EO, m_conBIStyle) Then
        Dim NodeTemp As String
        NodeTemp = Me.treStyle.Nodes("K" & m_OID.id).Parent.key
        Me.treStyle.Nodes.Remove Me.treStyle.Nodes("K" & m_OID.id).Parent.key
            
        Dim objOID As New U8FDEso.OIDObject
        
        '----移动到下一条记录
        If objCadBI.RecordCount(g_sDataSourceName, EO) > 0 Then
            objOID = mID(NodeTemp, 2)
            Set m_EO = objCadBI.MoveTo(g_sDataSourceName, U8FDEso.esoNext, m_conBIStyle, objOID)
            m_OID = m_EO.EOS(1)(EO.EOS.EOMetaData.SourceOIDField)
            NodeKey = "K" & m_OID.id
            Set objOID = Nothing
            
            SetUI
            
            Me.treStyle.Nodes("K" & m_OID).Parent.Expanded = True
            Me.treStyle.Nodes("K" & m_OID).Selected = True
        Else
            NodeKey = ""
            m_OID.id = ""
            Set m_EO = objCadBI.Init(g_sDataSourceName, m_conBIStyle)
            SetUI
        End If
        '----设置界面
        'SetUI
    Else
        MsgBox "删除没有成功!"
    End If
    
    Set objCadBI = Nothing
    
    Exit Sub
lblHandle:
    MsgBox Err.Description, vbInformation, g_conSysName
End Sub

Private Sub CancelDo()
    Dim objCadBI     As New U8FDBso.clsCadBI
    Dim objLockMgr   As New U8FDMgr.LockManager
    
    If Not m_EditStatus Then
        If MsgBox("真的要取消当前操作吗?", vbQuestion + vbYesNo, g_conSysName) = vbNo Then Exit Sub
    End If
        
    On Error GoTo lblHandle
    '----State 若为 esoEdit, 解锁
    If m_EO.State = U8FDEso.esoEdit Then
        objLockMgr.UnlockIt g_sDataSourceName, m_EO.OID
    End If
    
    '----恢复原实体对象
    If Not m_OldEO Is Nothing Then
        Set m_EO = m_OldEO.Clone(U8FDEso.esoStructureAndData)
    Else
        Set m_EO = objCadBI.MoveTo(g_sDataSourceName, U8FDEso.esoLast, m_conBIStyle)
    End If
    
    '----设置界面
    SetUI
    
    Exit Sub
lblHandle:
    MsgBox Err.Description, vbInformation, g_conSysName
End Sub

Private Sub SetUI()
    Dim objCadBI    As New U8FDBso.clsCadBI
    Dim objOID      As New U8FDEso.OIDObject
    

⌨️ 快捷键说明

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