📄
字号:
End If
Rectemp.Fields("EndDiff") = Val(Rectemp.Fields("StartDiff")) + Val(Rectemp.Fields("JfDiff")) - Val(Rectemp("DfDiff"))
Rectemp.UpdateBatch
'生成下月期初
RecTempFz.AddNew
RecTempFz.Fields("WhCode") = Trim(Rectemp.Fields("WhCode"))
RecTempFz.Fields("MNumber") = Trim(Rectemp.Fields("MNumber"))
RecTempFz.Fields("StartQuan") = Val(Rectemp.Fields("EndQuan"))
RecTempFz.Fields("StartPrice") = Val(Rectemp.Fields("EndPrice"))
RecTempFz.Fields("StartMoney") = Val(Rectemp.Fields("EndMoney"))
RecTempFz.Fields("StartDiff") = Val(Rectemp.Fields("EndDiff"))
RecTempFz.Fields("kjyear") = mYear
RecTempFz.Fields("period") = mPeriod
RecTempFz.UpdateBatch
Rectemp.MoveNext
Loop
'汇总下月的红字回冲单
SqlStr = "SELECT WhCode, MNumber, SUM(InQuan) AS InQuan,SUM(InMoney) AS InMoney," & _
"SUM(JfDiff) AS JfDiff,SUM(DfDiff) AS DfDiff " & _
"FROM Chhs_List WHERE Period =" & mPeriod & "and Kjyear=" & mYear & _
" GROUP BY WhCode, MNumber"
Set Rec_Query = Cw_DataEnvi.DataConnect.Execute(SqlStr)
Do While Not Rec_Query.EOF
If RecTempFz.State = 1 Then RecTempFz.Close
SqlStr = "SELECT * FROM Chhs_Mate WHERE Kjyear=" & mYear & " and Period=" & mPeriod & _
" and WhCode='" & Trim(Rec_Query.Fields("WhCode")) & "'" & _
" AND MNumber ='" & Trim(Rec_Query.Fields("MNumber")) & "'"
RecTempFz.Open SqlStr, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockBatchOptimistic
If Not RecTempFz.EOF Then
RecTempFz.Fields("InQuan") = Val(Rec_Query.Fields("InQuan"))
RecTempFz.Fields("InMoney") = Val(Rec_Query.Fields("InMoney"))
If Rec_Query.Fields("InQuan") <> 0 Then
RecTempFz.Fields("InPrice") = Format(Val(Rec_Query.Fields("InMoney")) / Val(Rec_Query.Fields("InQuan")), "##0." + String(Xtdjxsws, "0"))
End If
RecTempFz.Fields("JfDiff") = Val(Rec_Query.Fields("JfDiff"))
RecTempFz.Fields("DfDiff") = Val(Rec_Query.Fields("DfDiff"))
RecTempFz.UpdateBatch
Else
RecTempFz.AddNew
RecTempFz.Fields("WhCode") = Trim(Rec_Query.Fields("WhCode"))
RecTempFz.Fields("MNumber") = Trim(Rec_Query.Fields("MNumber"))
RecTempFz.Fields("kjyear") = mYear
RecTempFz.Fields("period") = mPeriod
RecTempFz.Fields("InQuan") = Val(Rec_Query.Fields("InQuan"))
RecTempFz.Fields("InMoney") = Val(Rec_Query.Fields("InMoney"))
If Rec_Query.Fields("InQuan") <> 0 Then
RecTempFz.Fields("InPrice") = Format(Val(Rec_Query.Fields("InMoney")) / Val(Rec_Query.Fields("InQuan")), "##0." + String(Xtdjxsws, "0"))
End If
RecTempFz.Fields("JfDiff") = Val(Rec_Query.Fields("JfDiff"))
RecTempFz.Fields("DfDiff") = Val(Rec_Query.Fields("DfDiff"))
RecTempFz.UpdateBatch
End If
Rec_Query.MoveNext
Loop
'结帐标志
SqlStr = "Update Gy_Kjrlb SET Chhsjzbz=1 WHERE Kjyear=" & Now_year & " and Period=" & Now_period
Cw_DataEnvi.DataConnect.Execute (SqlStr)
'清除仓库期末结帐标志
SqlStr = "Update Gy_Warehouse SET EndDealFlagChhs=0 WHERE chhsuseflag=1"
Cw_DataEnvi.DataConnect.Execute (SqlStr)
Cw_DataEnvi.DataConnect.CommitTrans
Label1.Visible = False
Call Sub_Query
Call Sub_Opt
Tsxx = "期末结帐完毕!"
Call Xtxxts(Tsxx, 0, 4)
Set Rectemp = Nothing
Set RecTempFz = Nothing
End Sub
Private Sub Sub_HfQmjz() '恢复期末结帐
Dim Rectemp As New ADODB.Recordset
Dim RecTempFz As New ADODB.Recordset
Dim Msg As Integer
Dim Now_year As Integer
Dim Now_period As Integer
Dim Hf_year As Integer
Dim Hf_period As Integer
Dim Pre_Period As Integer
Dim SqlStr As String
Now_year = PGKjYear
Now_period = PGNowmon
Hf_year = PGPrevKjYear
Hf_period = PGPrevKjMon
'判断是否全部期末处理完毕
Set Rectemp = Cw_DataEnvi.DataConnect.Execute("SELECT WhCode,EndDealFlagChhs FROM GY_WareHouse Where chhsuseflag=1 ORDER BY WhCode")
Do While Not Rectemp.EOF
If Rectemp.Fields("EndDealFlagChhs") Then
Tsxx = "仓库(" + Trim(Rectemp.Fields("WhCode")) + ")已进行当前月份期末处理!"
Call Xtxxts(Tsxx, 0, 4)
Exit Sub
End If
Rectemp.MoveNext
Loop
'判断是否记帐
Set Rectemp = Cw_DataEnvi.DataConnect.Execute("SELECT ChalkitupMan FROM GY_InoutMain WHERE kjyear=" & Now_year & " and Period=" & Now_period & " and ChalkitupMan<>''")
If Not Rectemp.EOF Then
Tsxx = "当前月份单据已记帐!"
Call Xtxxts(Tsxx, 0, 4)
Exit Sub
End If
'判断库房管理系统是否已结帐
Set Rectemp = Cw_DataEnvi.DataConnect.Execute("SELECT Kfjzbz FROM GY_Kjrlb WHERE kfjzbz=1 and kjyear=" & Now_year & " and Period=" & Now_period)
If Not Rectemp.EOF Then
Tsxx = "库房管理系统 " + CStr(Now_year) + "." + CStr(Now_period) + " 已结帐,不允许恢复 " + CStr(Hf_year) + "." + CStr(Hf_period) + " 的期末结帐!"
Call Xtxxts(Tsxx, 0, 4)
Exit Sub
End If
Tsxx = "是否进行恢复期末结帐?"
Msg = Xtxxts(Tsxx, 1, 2)
If Not Msg = 6 Then Exit Sub
Label1.Visible = True
Label1.Refresh
Cw_DataEnvi.DataConnect.BeginTrans
'会计日历表标记
Cw_DataEnvi.DataConnect.Execute ("UPDATE GY_Kjrlb SET Chhsjzbz=0 WHERE Kjyear=" & Hf_year & " AND Period=" & Hf_period)
'仓库期末结帐标志
SqlStr = "Update Gy_Warehouse SET EndDealFlagChhs=1 WHERE chhsuseflag=1"
Cw_DataEnvi.DataConnect.Execute (SqlStr)
'删除当前月期初
Cw_DataEnvi.DataConnect.Execute ("DELEte Chhs_Mate WHERE Kjyear=" & Now_year & " and Period=" & Now_period)
'清除恢复月份期末结存
Cw_DataEnvi.DataConnect.Execute ("UPDATE Chhs_Mate Set EndQuan=0,EndPrice=0,EndMoney=0,EndDiff=0 WHERE Kjyear=" & Hf_year & " and Period=" & Hf_period)
Cw_DataEnvi.DataConnect.CommitTrans
Label1.Visible = False
Call Sub_Query
Call Sub_Opt
Tsxx = "期末结帐恢复完毕!"
Call Xtxxts(Tsxx, 0, 4)
End Sub
Private Sub Com_Qmjz_Click()
If Opt_Qmjz.Value Then
If Not Month(Xtrq) = PGNowmon Then
Tsxx = "操作日期不在当前会计期间(" + Trim(Str(PGKjYear)) + "." + Trim(Str(PGNowmon)) + ")之内,请重新登录!"
Call Xtxxts(Tsxx, 0, 1)
Exit Sub
End If
Call Sub_Qmjz
Else
Call Sub_HfQmjz
End If
End Sub
Private Sub Com_Qx_Click()
Unload Me
End Sub
Private Sub Form_Load() '窗体装入
'调 入 网 格
GridCode = "Chhs_EndCheckOut"
Call BzWgcsh(CxbbGrid, GridCode, GridInf(), GridBoolean(), GridInt(), GridStr())
Qslz = GridInf(1)
Sjhgd = GridInf(2)
Sfxshjwg = GridInf(7)
Szzls = CxbbGrid.Cols - 1
CxbbGrid.AllowUserResizing = flexResizeNone
CxbbGrid.SelectionMode = flexSelectionByRow
CxbbGrid.BackColorSel = &HFFFFC0
DyLock = True
Dqrow = 0
End Sub
Private Sub Sub_Query() '填充网格
Dim Rectemp As New ADODB.Recordset
Dim Dqrow As Long
Dim SqlStr As String
Lbl_labText = Str(PGKjYear) + "." + Str(PGNowmon)
With CxbbGrid
.Rows = .FixedRows
Set Rectemp = Cw_DataEnvi.DataConnect.Execute("select Period,Qsrq,Zzrq,Chhsjzbz from GY_kjrlb where kjyear=" & Me.Dyear & " order by kjyear ,Period")
Do While Not Rectemp.EOF
.AddItem ""
.RowHeight(.Rows - 1) = Sjhgd
.TextMatrix(.Rows - 1, Sydz("001", GridStr(), Szzls)) = Trim(Rectemp.Fields("Period"))
.TextMatrix(.Rows - 1, Sydz("002", GridStr(), Szzls)) = Format(Trim(Rectemp.Fields("Qsrq")), "yyyy-mm-dd")
.TextMatrix(.Rows - 1, Sydz("003", GridStr(), Szzls)) = Format(Trim(Rectemp.Fields("Zzrq")), "yyyy-mm-dd")
.TextMatrix(.Rows - 1, Sydz("004", GridStr(), Szzls)) = Trim(Rectemp.Fields("chhsjzbz"))
Rectemp.MoveNext
Loop
.Enabled = False
End With
Set Rectemp = Nothing
End Sub
Private Sub Opt_Hfqmjz_Click()
If DyLock Then Exit Sub
With CxbbGrid
If Dqrow - 1 > 0 Then
.Select Dqrow - 1, 0, Dqrow - 1, .Cols - 1
End If
End With
End Sub
Private Sub Opt_Qmjz_Click()
If DyLock Then Exit Sub
With CxbbGrid
If Dqrow > 0 Then
.Select Dqrow, 0, Dqrow, .Cols - 1
End If
End With
End Sub
Private Sub Timer1_Timer()
Timer1.Enabled = False
'加快显示速度
CxbbGrid.Redraw = False
'生成查询结果
Call Sub_Query
Call Sub_Opt
CxbbGrid.Redraw = True
End Sub
Private Sub Sub_Opt() '恢复状态
DyLock = True
Lbl_labText = Str(PGKjYear) + "." + Str(PGNowmon)
With CxbbGrid
If Me.Dmonth = Val(.TextMatrix(.Rows - 1, Sydz("001", GridStr(), Szzls))) Then
If .TextMatrix(.Rows - 1, .Cols - 1) = True Then
Opt_Qmjz.Enabled = False
Opt_Hfqmjz.Enabled = True
Opt_Hfqmjz.Value = True
Else
Opt_Qmjz.Enabled = True
Opt_Hfqmjz.Enabled = True
Opt_Qmjz.Value = True
End If
Else
If .TextMatrix(.FixedRows, .Cols - 1) = False Then
Opt_Qmjz.Enabled = True
Opt_Hfqmjz.Enabled = False
Opt_Qmjz.Value = True
Else
Opt_Qmjz.Enabled = True
Opt_Hfqmjz.Enabled = True
Opt_Qmjz.Value = True
End If
End If
If .Rows > .FixedRows Then
If Me.Dmonth = Val(.TextMatrix(.Rows - 1, Sydz("001", GridStr(), Szzls))) Then
Dqrow = .Rows - 1
Else
Dqrow = .Findrow("False", 0, .Cols - 1)
End If
End If
If Dqrow > 0 Then
.Select Dqrow, 0, Dqrow, .Cols - 1
End If
End With
DyLock = False
End Sub
Public Property Get Dyear() As Variant
Dyear = mKjYear
End Property
Public Property Let Dyear(ByVal vNewValue As Variant)
mKjYear = vNewValue
End Property
Public Property Get Dmonth() As Variant
Dmonth = mKjMonth
End Property
Public Property Let Dmonth(ByVal vNewValue As Variant)
mKjMonth = vNewValue
End Property
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -