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

📄 frmend.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
            Height          =   180
            Index           =   5
            Left            =   5145
            TabIndex        =   9
            Top             =   1290
            Width           =   180
         End
         Begin VB.Label lblNote 
            AutoSize        =   -1  'True
            Caption         =   "3."
            Height          =   180
            Index           =   6
            Left            =   5145
            TabIndex        =   8
            Top             =   2070
            Width           =   180
         End
         Begin VB.Label lblPeriod 
            AutoSize        =   -1  'True
            Caption         =   "lblPeriod"
            Height          =   180
            Left            =   6105
            TabIndex        =   7
            Top             =   3375
            Width           =   810
         End
      End
   End
   Begin VB.Line linEndBalance 
      BorderColor     =   &H80000005&
      X1              =   60
      X2              =   7245
      Y1              =   4290
      Y2              =   4290
   End
End
Attribute VB_Name = "frmEnd"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 期末结帐
' 1998.7.7
' 作者:唐维勇
'
' 过程:
'     CheckBalance                                                 期初平衡检查
'     ValidStep                                                    向导每步合法检查
'     Execute                                                      向导完成后需执行的操作
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit

Private Const HelpID = 60018                                      '18005

Private mintStepNum As Integer                                    '向导总步骤
Private mintStep As Integer                                       '向导当前步骤
Private mblnEnd As Boolean                                        '完成按扭是否有效
Private mblnValid() As Boolean                                    '向导每步是否合法

Private WithEvents mclsPeriodGrid As Grid                         'Grid对象
Attribute mclsPeriodGrid.VB_VarHelpID = -1
'Private WithEvents mclsMainControl As MainControl                 '主控对象
'Private mclsBackup As BackRestore

Private mintYear As Integer                                       '当前会计年度
Private mintPeriod As Integer                                     '当前会计期间
Private mdtmFirst As Date                                         '期间起始日期
Private mdtmEnd As Date                                           '期间终止日期
Private mintPeriodNum As Integer                                  '当前会计年度会计期间数
Private mstrAccountSystem As String                               '帐套会计制度
Private mintStartYear As Integer                                  '帐套启用会计年度
Private mintStartPeriod As Integer                                '帐套启用会计期间
Private mblnSucceed As Boolean
Private mblnControl As Boolean
Private mstrMsgVoucher As String

Public Function EndAccount() As Boolean
    On Error Resume Next
    mblnSucceed = False
    #If conTest = 1 Then
        mblnControl = True
    #Else
        mblnControl = False
    #End If
    Me.Show vbModal
    EndAccount = mblnSucceed
    If mblnSucceed Then
        If PeriodCloseAll() Then
            If ShowMsg(frmMain.hwnd, "本年度全部结帐,是否新增会计年度?", vbQuestion + vbYesNo, "新增会计年度") = vbYes Then
                Load frmOptions
                frmOptions.SSTab1.Tab = 3
                frmOptions.Show vbModal
            End If
        End If
    End If
End Function

Private Sub Form_Activate()
    '进入向导第一步
    SetHelpID HelpContextID
    frmMain.SetEditUnEnabled
    If Not mblnValid(0) Then
        stabEnd.Tab = 0
        stabEnd_Click -1
    End If
End Sub

Private Sub Form_Load()
    Dim intCount As Integer
    
    Me.HelpContextID = HelpID
    '关闭所有子窗口
    For intCount = gclsSys.MainControls.Count To 1 Step -1
        If gclsSys.MainControls(intCount).Form.Name <> "frmNavigate" Then
            Unload gclsSys.MainControls(intCount).Form
        End If
    Next
    
    '会计制度
     mstrAccountSystem = gclsBase.AccountSys
    '启用日期
    GetStartPeriod mintStartYear, mintStartPeriod
    mintYear = gclsBase.AccountYear
    
    '备份
'    Set mclsBackup = New BackRestore
    
    '加载图片资源
    Utility.LoadFormResPicture Me
    '向导初始化(包括每步仅需初始一次的部分)
    mintStepNum = stabEnd.Tabs - 1
    mintStep = -1
    mblnEnd = False
    ReDim mblnValid(mintStepNum)
End Sub


Private Sub Form_Unload(Cancel As Integer)
    On Error Resume Next
    Utility.UnLoadFormResPicture Me
End Sub


Private Sub stabEnd_Click(PreviousTab As Integer)
    Dim intCnt As Integer
    
    For intCnt = 0 To stabEnd.Tabs - 1
        fraend(intCnt).Visible = (intCnt = stabEnd.Tab)
    Next intCnt
    
    ' 若向导进入其他步骤,进行该步骤合法检查
    If stabEnd.Tab > mintStep And mintStep < mintStepNum Then
        If ValidStep(mintStep) Then
            mintStep = stabEnd.Tab
            
            '初始向导步骤
            InitStep mintStep
            
        End If
    Else
        mintStep = stabEnd.Tab
        InitStep mintStep
        RefreshCmd
    End If
End Sub


''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'向导公用过程
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 向导每步合法检查
Private Function ValidStep(ByVal TabIndex As Integer) As Boolean
    Dim strMsg As String, lngBottom As Integer
    
    Select Case TabIndex
    Case 0: ValidStep = ValidPeriod(strMsg)        '会计期间
    Case 1: ValidStep = ValidReport(strMsg)        '结帐报告
    Case 2: ValidStep = ValidOver(strMsg)          '执行结帐
    Case Else
        ValidStep = True
    End Select
    
    '返回上一步
    If Not ValidStep Then
        If mintStep < stabEnd.Tab Then
            stabEnd.Tab = mintStep
            ShowMsg hwnd, strMsg, vbExclamation + vbOKOnly, Caption
        Else
            mintStep = stabEnd.Tab
            RefreshCmd
        End If
    End If
    
    '设置每步合法性
    If TabIndex <> -1 Then
        mblnValid(TabIndex) = ValidStep
    End If
    
End Function

' 向导每步初始设置
Private Sub InitStep(ByVal TabIndex As Integer)
    Me.MousePointer = vbHourglass
    Select Case TabIndex
    Case 0: InitPeriod        '会计期间
    Case 1: InitReport        '结帐报告
    Case 2: InitOver          '执行结帐
    End Select
    RefreshCmd
    Me.MousePointer = vbDefault
End Sub

' 向导完成后需执行的操作
Private Sub Execute()
    Dim strSql As String
    '关闭结帐期间
    strSql = "UPDATE AccountPeriod SET lngCloseID=" & gclsBase.OperatorID & "," _
        & "strCloseDate='" & Format(gclsBase.BaseDate, "yyyy-mm-dd") & "' " _
        & "WHERE intYear=" & mintYear & " AND bytperiod=" & mintPeriod
    mblnSucceed = gclsBase.ExecSQL(strSql)
    
    If Not mblnSucceed Then
        ShowMsg hwnd, "结帐失败!", vbExclamation + vbOKOnly, Caption
    Else
        gclsBase.GetBaseInfo
    End If
End Sub

Private Sub cmdStep_Click(Index As Integer)
    Dim blnUnload As Boolean
    Dim strMsg As String
    
    blnUnload = False
    
    Select Case Index
    Case 0  '取消
        blnUnload = True
    Case 1  '上一步
        If stabEnd.Tab > 0 Then
            stabEnd.Tab = stabEnd.Tab - 1
        End If
    Case 2  '下一步
        If stabEnd.Tab < mintStepNum Then
            stabEnd.Tab = stabEnd.Tab + 1
        End If
    Case 3: '完成
        If ValidStep(mintStepNum) Then
            cmdStep(3).Enabled = False
            Execute
            blnUnload = True
        End If
    End Select
    
    If blnUnload Then
       Unload Me
    End If
End Sub

'重设按扭显示属性
Private Sub RefreshCmd()
    Dim lngCnt As Long
    
    Select Case stabEnd.Tab
    Case 0
        cmdStep(1).Enabled = False
        cmdStep(2).Enabled = True
    Case mintStepNum
        cmdStep(1).Enabled = True
        cmdStep(2).Enabled = False
    Case Else
        cmdStep(1).Enabled = True
        cmdStep(2).Enabled = True
    End Select
    
    '是否每步都合法
    For lngCnt = 0 To mintStepNum
        If Not mblnValid(lngCnt) Then
            Exit For
        End If
    Next lngCnt
    cmdStep(3).Enabled = (lngCnt > mintStepNum)
    
    '若是最后一步,把完成按扭变为有效
    If Not cmdStep(3).Enabled Then
        If stabEnd.Tab = mintStepNum Then
            cmdStep(3).Enabled = True
        End If
    End If

    If stabEnd.Tab = stabEnd.Tabs - 1 Then
        On Error Resume Next
        cmdStep(3).SetFocus
    Else
        On Error Resume Next
        cmdStep(2).SetFocus
    End If
End Sub


''''''''''''''''''''''''''''''''
'
' 初始过程
'

⌨️ 快捷键说明

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