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

📄

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 2 页
字号:
        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 + -