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

📄 frmpingheng.frm

📁 财务管理信息系统
💻 FRM
📖 第 1 页 / 共 2 页
字号:
            SubFormatType   =   0
         EndProperty
      EndProperty
      BeginProperty Column07 
         DataField       =   "期末贷方"
         Caption         =   "期末贷方"
         BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED} 
            Type            =   0
            Format          =   ""
            HaveTrueFalseNull=   0
            FirstDayOfWeek  =   0
            FirstWeekOfYear =   0
            LCID            =   2052
            SubFormatType   =   0
         EndProperty
      EndProperty
      SplitCount      =   1
      BeginProperty Split0 
         BeginProperty Column00 
            ColumnWidth     =   929.764
         EndProperty
         BeginProperty Column01 
            ColumnWidth     =   824.882
         EndProperty
         BeginProperty Column02 
            ColumnWidth     =   900.284
         EndProperty
         BeginProperty Column03 
            ColumnWidth     =   945.071
         EndProperty
         BeginProperty Column04 
            ColumnWidth     =   1170.142
         EndProperty
         BeginProperty Column05 
            ColumnWidth     =   1214.929
         EndProperty
         BeginProperty Column06 
            ColumnWidth     =   854.929
         EndProperty
         BeginProperty Column07 
            ColumnWidth     =   840.189
         EndProperty
      EndProperty
   End
End
Attribute VB_Name = "frmPingHeng"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub form_load()
    Dim db As New DataBases
    Dim strSQL As String
    strSQL = "select 科目代码,科目名称,(case"
    strSQL = strSQL + " when 余额方向='借方' then 期初余额 else 0 end -"
    strSQL = strSQL + " 累计借方) as 期初借方,(case when 余额方向='贷方'"
    strSQL = strSQL + " then 期初余额 else 0 end - 累计贷方) as 期初贷方,"
    strSQL = strSQL + "累计借方 as 本期发生借方,累计贷方 as 本期发生贷方,"
    strSQL = strSQL + "case when 余额方向='借方' then 期初余额 else 0 end as "
    strSQL = strSQL + "期末借方,case when 余额方向='贷方' then 期初余额 else 0"
    strSQL = strSQL + " end as 期末贷方 from 帐簿初始化表 where 累计借方<>0 or"
    strSQL = strSQL + " 累计贷方<>0 or 期初余额<>0"
    Set Adodc1.Recordset = db.RunSelectSQL(strSQL)
    fgBottom.Rows = 1
    fgBottom.Cols = 8
    fgBottom.TextMatrix(0, 1) = "是否平衡"
    fgBottom.TextMatrix(0, 2) = "期初借方合计"
    fgBottom.TextMatrix(0, 3) = "期初贷方合计"
    fgBottom.TextMatrix(0, 4) = "本期借方合计"
    fgBottom.TextMatrix(0, 5) = "本期贷方合计"
    fgBottom.TextMatrix(0, 6) = "期末借方合计"
    fgBottom.TextMatrix(0, 7) = "期末贷方合计"
    CalPingHeng (0)
End Sub

' 计算是否平衡并显示出计算结果
' nStatus 0 初始化帐簿时计算
' 1 正式使用后凭证的计算
Public Function CalPingHeng(ByVal iStatus As Integer) As Boolean
    Dim bResult As Boolean
    ' 根据不同的状态计算平衡情况
    Dim strSQL As String
    ' 初始化帐簿的试算平衡,需要根据初始化的信息反算期初
    Dim db As New DataBases
    If iStatus = 0 Then
        strSQL = "select 科目代码, 科目名称,"
        strSQL = strSQL + "(case when 余额方向='借方' then 期初余额 "
        strSQL = strSQL + " else 0 end - 累计借方) as 期初借方,"
        strSQL = strSQL + "(case when 余额方向='贷方' then 期初余额"
        strSQL = strSQL + "  else 0 end - 累计贷方) as 期初贷方,"
        strSQL = strSQL + "累计借方 as 本期发生借方,累计贷方 as 本期发生贷方,"
        strSQL = strSQL + "case when 余额方向='借方' then 期初余额 "
        strSQL = strSQL + "else 0 end as 期末借方,"
        strSQL = strSQL + "case when 余额方向='贷方' then 期初余额 "
        strSQL = strSQL + " else 0 end as 期末贷方 "
        strSQL = strSQL + " from 帐簿初始化表 "
        strSQL = strSQL + " where 累计借方<>0 or 累计贷方<>0 or 期初余额<>0"
        Set grdDataGrid.DataSource = db.RunSelectSQL(strSQL)
        ' 计算合计金额,用于判断是否平衡
        strSQL = "select "
        strSQL = strSQL + "sum(case when 余额方向='借方' "
        strSQL = strSQL + " then 期初余额 else 0 end-累计借方) as 期初借方合计,"
        strSQL = strSQL + "sum(case when 余额方向='贷方' "
        strSQL = strSQL + " then 期初余额 else 0 end-累计贷方) as 期初贷方合计,"
        strSQL = strSQL + "sum(累计借方) as 本期借方合计,sum(累计贷方) "
        strSQL = strSQL + "as 本期贷方合计,"
        strSQL = strSQL + "sum(case when 余额方向='借方' then  "
        strSQL = strSQL + "期初余额 else 0 end) as 期末借方合计,"
        strSQL = strSQL + "sum(case when 余额方向='贷方' then  "
        strSQL = strSQL + " 期初余额 else 0 end) as 期末贷方合计"
        strSQL = strSQL + " from 帐簿初始化表 "
        strSQL = strSQL + " where 累计借方<>0 or 累计贷方<>0 or 期初余额<>0"
        Dim rs As Recordset
        Set rs = db.RunSelectSQL(strSQL)
        bResult = AddToDataTable(rs)
    Else
        strSQL = "select a.科目代码, b.科目名称,"
        strSQL = strSQL + "(case when a.余额方向='借方' "
        strSQL = strSQL + " then 期初余额 else 0 end ) as 期初借方,"
        strSQL = strSQL + "(case when a.余额方向='贷方' "
        strSQL = strSQL + " then 期初余额 else 0 end) as 期初贷方,"
        strSQL = strSQL + "本期借方合计 as 本期发生借方, 本期贷方合计 "
        strSQL = strSQL + "as 本期发生贷方,"
        strSQL = strSQL + "case when a.余额方向='借方' then 余额 else 0 end "
        strSQL = strSQL + "as 期末借方,"
        strSQL = strSQL + "case when a.余额方向='贷方' then 余额 else 0 end "
        strSQL = strSQL + "as 期末贷方"
        strSQL = strSQL + " from 本期汇总账簿 as a, 科目表 as b  "
        strSQL = strSQL + " where a.科目代码 = b.科目代码 and (本期借方合计<> 0"
        strSQL = strSQL + " or 本期贷方合计<>0 or 期初余额<>0 or 余额<>0)"
        Set grdDataGrid.DataSource = db.RunSelectSQL(strSQL)
        strSQL = "select "
        strSQL = strSQL + "sum(case when 余额方向='借方' then 期初余额 else 0 end)"
        strSQL = strSQL + " as 期初借方合计,"
        strSQL = strSQL + "sum(case when 余额方向='贷方' then 期初余额 else 0 end)"
        strSQL = strSQL + " as 期初贷方合计,"
        strSQL = strSQL + "sum(本期借方合计) as 本期借方合计,sum(本期贷方合计) "
        strSQL = strSQL + "as 本期贷方合计,"
        strSQL = strSQL + "sum(case when 余额方向='借方' then 余额 else 0 end) "
        strSQL = strSQL + "as 期末借方合计,"
        strSQL = strSQL + "sum(case when 余额方向='贷方' then 余额 else 0 end) "
        strSQL = strSQL + "as 期末贷方合计"
        strSQL = strSQL + " from 本期汇总账簿 "
        strSQL = strSQL + " where 本期借方合计<> 0 or 本期贷方合计<>0 or "
        strSQL = strSQL + "期初余额<>0 or 余额<>0"
        Set rs = db.RunSelectSQL(strSQL)
        bResult = AddToDataTable(rs)
'        Set Me.fgBottom.DataSource = rs
    End If
    CalPingHeng = bResult
End Function

Private Function AddToDataTable(ByRef rs As Recordset) As Boolean
    Dim bResult As Boolean
    '清空数据表的内容
    Dim iRow As Integer
    fgBottom.Rows = 2
    iRow = fgBottom.Rows - 1
    '获取一行数据
    fgBottom.TextMatrix(iRow, 2) = SetText(rs("期初借方合计"))
    fgBottom.TextMatrix(iRow, 3) = SetText(rs("期初贷方合计"))
    fgBottom.TextMatrix(iRow, 4) = SetText(rs("本期借方合计"))
    fgBottom.TextMatrix(iRow, 5) = SetText(rs("本期贷方合计"))
    fgBottom.TextMatrix(iRow, 6) = SetText(rs("期末借方合计"))
    fgBottom.TextMatrix(iRow, 7) = SetText(rs("期末贷方合计"))
    '判断是否平衡
    If SetText(rs("期初借方合计")) _
        <> SetText(rs("期初贷方合计")) Or _
        SetText(rs("本期借方合计")) _
        <> SetText(rs("本期贷方合计")) Or _
        SetText(rs("期末借方合计")) _
        <> SetText(rs("期末贷方合计")) Then
            fgBottom.TextMatrix(iRow, 1) = "不平衡"
            bResult = False
    Else
        fgBottom.TextMatrix(iRow, 1) = "平衡"
        bResult = True
    End If
    AddToDataTable = bResult
End Function

Private Function SetText(ByVal obj As Object) As String
    If IsNull(obj) Then
        SetText = ""
    Else
        SetText = obj
    End If
End Function

⌨️ 快捷键说明

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