📄 frmlastyearcarryforward.frm
字号:
VERSION 5.00
Begin VB.Form frmLastYearCarryForward
BorderStyle = 3 'Fixed Dialog
Caption = "结转上年数据"
ClientHeight = 2940
ClientLeft = 45
ClientTop = 330
ClientWidth = 4680
Icon = "frmLastYearCarryForward.frx":0000
LinkTopic = "Form1"
LockControls = -1 'True
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 2940
ScaleWidth = 4680
ShowInTaskbar = 0 'False
StartUpPosition = 2 '屏幕中心
Begin VB.PictureBox Picture3
Height = 315
Left = 1740
ScaleHeight = 255
ScaleWidth = 1635
TabIndex = 6
Top = 2040
Width = 1695
Begin VB.Label lblNewYear
AutoSize = -1 'True
Caption = "xxxx"
Height = 180
Left = 60
TabIndex = 7
Top = 30
Width = 360
End
End
Begin VB.PictureBox Picture2
Height = 315
Left = 1740
ScaleHeight = 255
ScaleWidth = 1905
TabIndex = 4
Top = 1530
Width = 1965
Begin VB.Label lblAccountName
AutoSize = -1 'True
Caption = "xxxx"
Height = 180
Left = 60
TabIndex = 5
Top = 30
Width = 360
End
End
Begin VB.Frame frmInf
Caption = "说明"
Height = 1215
Left = 120
TabIndex = 2
Top = 90
Width = 4455
Begin VB.Label lblInf
Caption = $"frmLastYearCarryForward.frx":000C
Height = 855
Left = 150
TabIndex = 3
Top = 300
Width = 4170
End
End
Begin VB.CommandButton cmdOk
Caption = "确定(&O)"
Default = -1 'True
Height = 315
Left = 780
TabIndex = 0
Top = 2550
Width = 1005
End
Begin VB.CommandButton cmdCancel
Caption = "取消(&C)"
Height = 315
Left = 2970
TabIndex = 1
Top = 2550
Width = 1005
End
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "年"
Height = 180
Left = 3510
TabIndex = 10
Top = 2100
Width = 180
End
Begin VB.Label Label4
AutoSize = -1 'True
Caption = "结转年份:"
Height = 180
Left = 810
TabIndex = 9
Top = 2100
Width = 900
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "账套名称:"
Height = 180
Left = 810
TabIndex = 8
Top = 1590
Width = 900
End
End
Attribute VB_Name = "frmLastYearCarryForward"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Option Base 1
Const PrecentOfKm = 40
Const PrecentOfYe = 15
Const PrecentOfFz = 5
Const PrecentOfPz = 10
Const PrecentOfYhdzd = 10
Dim sCarryForwardYear As String '结转年份
Dim sBeginYear As String '账套启用年份
Dim sModiYear As String '账套结账年份
Dim sModiMonth As Integer '账套结账月份
Dim adoRst As ADODB.Recordset
Dim adoSQL As String
Dim i As Integer
Dim sCarryForwardTableCode() As String '需要结转表的代码
Dim sCarryForwardTableName() As String '需要结转表的名称
Dim sHaveTableName() As String '已经成功结转的表名
Dim adoCmd As ADODB.Command
Dim lMutexID As Integer '互斥ID
Public Property Let uMutexID(ByVal L As Integer)
lMutexID = L
End Property
Public Function usCarryForwardTableCode() As String() '传递需要结转表的代码
usCarryForwardTableCode = sCarryForwardTableCode
End Function
Public Function usCarryForwardTableName() As String() '传递需要结转表的名称
usCarryForwardTableName = sCarryForwardTableName
End Function
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOk_Click()
If sBeginYear > sModiYear Then
MsgBox glo.sAccountName & "账套的账务子系统刚启用,不能进行上年结转!", vbInformation
Unload Me
Exit Sub
End If
If sCarryForwardYear = sModiYear + 1 Then
Call GetCarryForwardTable
With frmSelectCarryForwardTable
' .usCarryForwardTableCode = sCarryForwardTableCode
.usCarryForwardTableName = sCarryForwardTableName
.Show 1
If .Ok Then
Me.Hide
If MsgBox("是否确认将以上所选的" & glo.sAccountName & "账套的" & sModiYear & _
"年度会计数据结转至" & sCarryForwardYear & "年?", _
vbQuestion + vbYesNo + vbDefaultButton2) = vbYes Then
fMainForm.MousePointer = vbHourglass
glo.frmProg.Show
glo.frmProg.ShowProgress 0
For i = 0 To .lstTable.ListCount - 1
If .lstTable.Selected(i) = True Then
'结转上年数据
Call CarryForwardData(sCarryForwardTableCode(i + 1), .lstTable.List(i))
End If
Next i
glo.frmProg.Hide
fMainForm.MousePointer = vbDefault
MsgBox "上年数据结转完成!", vbInformation
End If
End If
Unload frmSelectCarryForwardTable
Unload Me
End With
ElseIf sCarryForwardYear = sModiYear Then
MsgBox "请先在系统管理中结转" & sCarryForwardYear & "年账务子系统跨年表结构,然后进行上年数据结转!"
Unload Me
Exit Sub
Else
MsgBox sCarryForwardYear - 1 & "年账务子系统还未结账,不能进行上年数据结转!"
Unload Me
Exit Sub
End If
End Sub
Private Sub form_load()
Set adoRst = New ADODB.Recordset
adoRst.CursorLocation = adUseClient
'从会计期间系统表中取出当前选择账套最大年份
adoSQL = "SELECT MAX(Year) maxYear FROM tSYS_Period" & _
" WHERE AccountID = '" & glo.sAccountID & "'"
With adoRst
.Open adoSQL, gloSys.cnnSYS, adOpenStatic, adLockReadOnly
If .BOF And .EOF Then
MsgBox "缺少账套会计期间!"
ElseIf IsNull(.Fields("maxYear").Value) Then
MsgBox "缺少账套会计期间!"
Else
sCarryForwardYear = .Fields("maxYear").Value
End If
.Close
End With
'从子系统启用表中取出当前账套的结账年份
adoSQL = "SELECT * FROM tSYS_SubSysUsed" & _
" WHERE AccountID = '" & glo.sAccountID & "' and subsysid='ZW'"
With adoRst
.Open adoSQL, gloSys.cnnSYS, adOpenStatic, adLockReadOnly
If .RecordCount > 0 Then
sBeginYear = .Fields("BeginYear").Value
sModiYear = .Fields("ModiYear").Value
sModiMonth = .Fields("ModiMonth").Value
End If
.Close
End With
lblAccountName.Caption = glo.sAccountName
lblNewYear.Caption = sCarryForwardYear
Set adoCmd = New ADODB.Command
adoCmd.CommandType = adCmdText
adoCmd.ActiveConnection = glo.cnnMain
End Sub
Private Sub GetCarryForwardTable()
ReDim sCarryForwardTableCode(1 To 3)
ReDim sCarryForwardTableName(1 To 3)
sCarryForwardTableCode(1) = "tZW_Balance"
sCarryForwardTableCode(2) = "tZW_Pzsj"
sCarryForwardTableCode(3) = "tZW_Yhdzd"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -