📄 frmend.frm
字号:
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 + -