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

📄 frmyh_yetjbcx.frm

📁 一个用VB写的财务软件源码
💻 FRM
📖 第 1 页 / 共 3 页
字号:
 '填加合计行
    Dim ddwzmye As Double
    Dim ddzdye As Double
    Dim dtzckye As Double
   
    Dim sWbdw As String
    Set rstTemp = New ADODB.Recordset
    rstTemp.CursorLocation = adUseClient
    sSQLTemp = "SELECT tZW_Yhdzqyrq.kmdm,kmmc,wbdw,qyrq,jzrq FROM tZW_Yhdzqyrq, tZW_Km" & glo.sOperateYear & _
                " WHERE rtrim(tZW_Yhdzqyrq.kmdm) = rtrim(tZW_Km" & glo.sOperateYear & ".kmdm) order by wbdw,tZW_Yhdzqyrq.kmdm"
    rstTemp.Open sSQLTemp, glo.cnnMain, adOpenStatic, adLockReadOnly
    With rstTemp
        mfgYetjbcx.Rows = 1
        mfgYetjbcx.ColAlignment(0) = flexAlignLeftCenter

        If .RecordCount > 0 Then
            m_bArr = True
            ReDim ArrYetjb(1 To .RecordCount)
            .MoveFirst
            i = 0
            sWbdw = FormatToString(.Fields("Wbdw").value)
            ddwzmye = 0
            ddzdye = 0
            dtzckye = 0
            Do Until .EOF
                Yhtzqye = 0
                Yhys = 0
                Yhyf = 0
                Yhtzhye = 0
                Dwtzqye = 0
                Dwys = 0
                Dwyf = 0
                Dwtzhye = 0
                i = i + 1
                kmdm = Trim$("" & .Fields("kmdm").value)
                Kmmc = Trim$("" & .Fields("kmmc").value) & "(" & kmdm & ")"
                JzRq = IIf(Format(.Fields("jzrq").value, "yyyy-mm-dd") > Format(.Fields("qyrq").value, "yyyy-mm-dd"), Format(.Fields("jzrq").value, "yyyy-mm-dd"), Format(.Fields("qyrq").value, "yyyy-mm-dd"))
                Call GetYetjb(kmdm, JzRq, Yhtzqye, Yhys, Yhyf, Yhtzhye, Dwtzqye, Dwys, Dwyf, Dwtzhye)
                ArrYetjb(i).Kmmc = Kmmc
                ArrYetjb(i).JzRq = JzRq
                ArrYetjb(i).Yhtzqye = Yhtzqye
                ArrYetjb(i).Yhys = Yhys
                ArrYetjb(i).Yhyf = Yhyf
                ArrYetjb(i).Yhtzhye = Yhtzhye
                ArrYetjb(i).Dwtzqye = Dwtzqye
                ArrYetjb(i).Dwys = Dwys
                ArrYetjb(i).Dwyf = Dwyf
                ArrYetjb(i).Dwtzhye = Dwtzhye
                If FormatToString(.Fields("wbdw").value) <> sWbdw Then
                    If sWbdw = "" Then sWbdw = "本位币"
                    mfgYetjbcx.AddItem "合   计 [" + sWbdw + "]:" & vbTab & "" & vbTab & Format(ddwzmye, "###,###,###,##0.00") & vbTab & Format(ddzdye, "###,###,###,##0.00") & vbTab & Format(dtzckye, "###,###,###,##0.00")
                    sWbdw = FormatToString(.Fields("Wbdw").value)
                    ddwzmye = 0
                    ddzdye = 0
                    dtzckye = 0
                End If
                mfgYetjbcx.AddItem Kmmc & vbTab & _
                                   JzRq & vbTab & _
                                   Format(Dwtzqye, "##,##0.00") & vbTab & _
                                   Format(Yhtzqye, "##,##0.00") & vbTab & _
                                   IIf(Abs((Yhtzhye - Dwtzhye)) < 0.01, Format(Yhtzhye, "##,##0.00"), Format(Abs(Yhtzhye - Dwtzhye), "###,###,###,##0.00")) & vbTab & i
                If FormatToString(.Fields("wbdw").value) = sWbdw Then
                    ddwzmye = ddwzmye + IIf(mfgYetjbcx.TextMatrix(mfgYetjbcx.Rows - 1, 2) <> "", (mfgYetjbcx.TextMatrix(mfgYetjbcx.Rows - 1, 2)), 0)
                    ddzdye = ddzdye + IIf(mfgYetjbcx.TextMatrix(mfgYetjbcx.Rows - 1, 3) <> "", (mfgYetjbcx.TextMatrix(mfgYetjbcx.Rows - 1, 3)), 0)
                    dtzckye = dtzckye + IIf(mfgYetjbcx.TextMatrix(mfgYetjbcx.Rows - 1, 4) <> "", (mfgYetjbcx.TextMatrix(mfgYetjbcx.Rows - 1, 4)), 0)
                End If
               .MoveNext
            Loop
            If sWbdw = "" Then sWbdw = "本位币"
            mfgYetjbcx.AddItem "合   计[" + sWbdw + "]:" & vbTab & "" & vbTab & Format(ddwzmye, "###,###,###,##0.00") & vbTab & Format(ddzdye, "###,###,###,##0.00") & vbTab & Format(dtzckye, "###,###,###,##0.00")
'            sWbdw = FormatToString(.Fields("Wbdw").Value)
        Else
            m_bArr = False
        End If
    End With
    Set rstTemp = Nothing
    If mfgYetjbcx.Rows > 1 Then
       mfgYetjbcx.Row = 1
    End If
    With mfgYetjbcx
        For i = 1 To .Rows - 1
            .RowHeight(i) = 320
            For j = 0 To .Cols - 1
                .Col = j
                .CellFontSize = 9
            Next j
        Next i
        .SelectionMode = flexSelectionByRow
    End With
End Sub

'计算期末余额调节表
Private Sub GetYetjb(ByVal kmdm As String, ByVal JzRq As String, ByRef Yhtzqye As Double, _
                    ByRef Yhys As Double, ByRef Yhyf As Double, ByRef Yhtzhye As Double, _
                    ByRef Dwtzqye As Double, ByRef Dwys As Double, ByRef Dwyf As Double, _
                    ByRef Dwtzhye As Double)
    Dim rstTemp As ADODB.Recordset
    Dim sSQL As String
    Dim rstDwf As ADODB.Recordset
    Dim rstYhf As ADODB.Recordset
    Dim sSQLDwf As String
    Dim sSQLYhf As String
    Dim sQueryStr As String
    Dim Yhdzqyrq As String
    
    Dim s As String
    If GetKmWbdw(kmdm) = "" Then
        s = "je"
    Else
        s = "wb"
    End If
    '从银行对账启用日期表中取出银行对账启用日期
    '如果银行对账启用日期等于当前注册年份, 则yhdzqyrq等于字段"qyrq"值;
    '否则yhdzqyrq等于"当前注册年份-01-01"
    Set rstTemp = New ADODB.Recordset
    rstTemp.CursorLocation = adUseClient
    sSQL = "SELECT qyrq FROM tZW_Yhdzqyrq WHERE kmdm = '" & kmdm & "'"
    rstTemp.Open sSQL, glo.cnnMain, adOpenStatic, adLockReadOnly
    With rstTemp
        If .RecordCount > 0 Then
            If Year(.Fields("qyrq").value) = CInt(glo.sOperateYear) Then
                Yhdzqyrq = Format(.Fields("qyrq").value, "yyyy-mm-dd")
            Else
                Yhdzqyrq = glo.sOperateYear & "-01-01"
            End If
        Else
            Yhdzqyrq = glo.sOperateYear & "-01-01"
        End If
    End With
    
    '计算单位方
    Set rstDwf = New ADODB.Recordset
    rstDwf.CursorLocation = adUseClient
    sQueryStr = " WHERE kmdm = '" & kmdm & "' AND (kjqj = 20 OR kjqj = 21) AND xgbz = '2'"
    sSQLDwf = "SELECT kjqj,pzrq,fx,je,yhdz_lqbz FROM tZW_Pzsj" & glo.sOperateYear & sQueryStr
    rstDwf.Open sSQLDwf, glo.cnnMain, adOpenStatic, adLockReadOnly
    While rstDwf.EOF = False
        If rstDwf.Fields("pzrq").value <= CDate(JzRq) _
                    Or (CDate(JzRq) < CDate(Yhdzqyrq)) Then
            If rstDwf.Fields("kjqj") = 20 Then
                Dwtzqye = Dwtzqye + FormatToDouble(rstDwf.Fields("je").value)
            Else
                If IsNull(rstDwf.Fields("yhdz_lqbz").value) Then
                    If rstDwf.Fields("fx").value = "借" Then
                        Dwys = Dwys + FormatToDouble(rstDwf.Fields("je").value)
                    Else
                        Dwyf = Dwyf + FormatToDouble(rstDwf.Fields("je").value)
                    End If
                End If
            End If
        End If
        rstDwf.MoveNext
    Wend
    rstDwf.Close
    
    If CDate(JzRq) >= CDate(Yhdzqyrq) Then
        sQueryStr = " WHERE kmdm = '" & kmdm & _
                "' AND (kjqj >= " & Month(CDate(Yhdzqyrq)) & _
                " AND kjqj <= " & Month(CDate(JzRq)) & ") AND xgbz = '2' "
        sSQLDwf = "SELECT kjqj,pzrq,fx," + s + " je,yhdz_lqbz FROM tZW_Pzsj" & glo.sOperateYear & sQueryStr
   
    rstDwf.Open sSQLDwf, glo.cnnMain, adOpenStatic, adLockReadOnly
    With rstDwf
        If .RecordCount <> 0 Then
            .MoveFirst
            Do Until .EOF
                '如果日期大于银行对账启用日期并且小于等于截止日期(或者截止日期小于启用日期)
                 If .Fields("pzrq").value <= CDate(JzRq) _
                    Or (CDate(JzRq) < CDate(Yhdzqyrq)) Then
                    '如果是期初单位调整前余额, 则将金额加到单位调整前余额
                    If .Fields("fx").value = "借" Then
                        '如果是每个月的银行账记录, 则将金额加到单位调整前余额;
                        If .Fields("kjqj").value < 20 Then
                            Dwtzqye = Dwtzqye + FormatToDouble(.Fields("je").value)
                        End If
                        '如果银行账记录的两清标志为空, 则将金额加到单位已收,银行未收
                        If IsNull(.Fields("yhdz_lqbz").value) Then
                            Dwys = Dwys + FormatToDouble(.Fields("je").value)
                        End If
                    Else
                        '如果是每个月的银行账记录, 则单位调整前余额减去该金额;
                        If .Fields("kjqj").value < 20 Then
                            Dwtzqye = Dwtzqye - FormatToDouble(.Fields("je").value)
                        End If
                        '如果银行账记录的两清标志为空, 则将金额加到单位已付,银行未付
                        If IsNull(.Fields("yhdz_lqbz").value) Then
                            Dwyf = Dwyf + FormatToDouble(.Fields("je").value)
                        End If
                    End If
                End If
                .MoveNext
            Loop
        End If
    End With
    rstDwf.Close
    End If
    Set rstDwf = Nothing
    
    '计算银行方
    Set rstYhf = New ADODB.Recordset
    rstYhf.CursorLocation = adUseClient
    If CDate(JzRq) < CDate(Yhdzqyrq) Then
        sQueryStr = " WHERE kmdm = '" & kmdm & _
                        "' AND (qcbz = 0 OR qcbz = 1)"
    Else
        sQueryStr = " WHERE kmdm = '" & kmdm & "'"
    End If
    sSQLYhf = "SELECT rq,qcbz,fx,je,lqbz FROM tZW_Yhdzd" & glo.sOperateYear & sQueryStr
    rstYhf.Open sSQLYhf, glo.cnnMain, adOpenStatic, adLockReadOnly
    With rstYhf
        If .RecordCount <> 0 Then
            .MoveFirst
            Do Until .EOF
                '如果日期大于银行对账启用日期并且小于等于截止日期(或截止日期小于启用日期)
'                If (.Fields("rq").Value >= CDate(Yhdzqyrq) And .Fields("rq").Value <= CDate(Jzrq)) _
'                    Or CDate(Jzrq) < CDate(Yhdzqyrq) Then
                If .Fields("rq").value <= CDate(JzRq) _
                    Or CDate(JzRq) < CDate(Yhdzqyrq) Then
                    
                    '如果是期初调整前余额,则将金额加到银行方调整前余额
                    If .Fields("qcbz").value = 0 Then
                        Yhtzqye = Yhtzqye + .Fields("je").value
                    Else
                        If .Fields("fx").value = "贷" Then
                            '如果是每个月的对账单,则将金额加到银行方调整前余额;
                            If .Fields("qcbz").value = 2 Then
                                Yhtzqye = Yhtzqye + .Fields("je").value
                            End If
                            '如果对账单的两清标志为空, 则将金额加到银行已收,单位未收
                            If IsNull(.Fields("lqbz").value) Then
                                Yhys = Yhys + .Fields("je").value
                            End If
                        Else
                            '如果是每个月的对账单,则银行方调整前余额减去该金额;
                            If .Fields("qcbz").value = 2 Then
                                Yhtzqye = Yhtzqye - .Fields("je").value
                            End If
                            '如果对账单的两清标志为空, 则将金额加到银行已付,单位未付
                            If IsNull(.Fields("lqbz").value) Then
                                Yhyf = Yhyf + .Fields("je").value
                            End If
                        End If
                    End If
                End If
                .MoveNext
            Loop
        End If
    End With
    rstYhf.Close
    Set rstYhf = Nothing
    Dwtzhye = Dwtzqye + Yhys - Yhyf
    Yhtzhye = Yhtzqye + Dwys - Dwyf
End Sub

Private Sub Form_Resize()
    If Me.WindowState <> 1 Then
        If Me.Height < 5000 Then
            Me.Height = 5000
        End If
        If Me.Width < 7000 Then
            Me.Width = 7000
        End If
        mfgYetjbcx.Width = Me.ScaleWidth - 2 * mfgYetjbcx.Left
        mfgYetjbcx.Height = Me.ScaleHeight - mfgYetjbcx.Top - 30
    End If

⌨️ 快捷键说明

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