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

📄 frmfinancereport.frm

📁 金算盘软件代码
💻 FRM
📖 第 1 页 / 共 5 页
字号:
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000008&
      Height          =   4095
      Left            =   90
      TabIndex        =   20
      Top             =   900
      Width           =   9660
   End
   Begin VB.Label lblTo 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "到"
      Height          =   180
      Index           =   1
      Left            =   3375
      TabIndex        =   19
      Top             =   540
      Width           =   180
   End
   Begin VB.Label lblTo 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "到"
      Height          =   180
      Index           =   0
      Left            =   8415
      TabIndex        =   18
      Top             =   540
      Width           =   180
   End
   Begin VB.Label lblFrom 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "从"
      Height          =   180
      Index           =   1
      Left            =   1890
      TabIndex        =   15
      Top             =   540
      Width           =   180
   End
   Begin VB.Label lblAnalyPeriod 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "分析期"
      Height          =   180
      Left            =   45
      TabIndex        =   14
      Top             =   540
      Width           =   540
   End
   Begin VB.Label lblReportPeriod 
      AutoSize        =   -1  'True
      BackColor       =   &H8000000B&
      BackStyle       =   0  'Transparent
      Caption         =   "报告期"
      Height          =   180
      Left            =   6660
      TabIndex        =   13
      Top             =   2790
      Visible         =   0   'False
      Width           =   540
   End
   Begin VB.Label lblTitle 
      AutoSize        =   -1  'True
      BackColor       =   &H80000009&
      BackStyle       =   0  'Transparent
      Caption         =   "财务分析表"
      Height          =   195
      Left            =   3645
      TabIndex        =   12
      Top             =   1485
      Width           =   915
   End
   Begin VB.Label lblShadow 
      Appearance      =   0  'Flat
      BackColor       =   &H00808080&
      ForeColor       =   &H80000008&
      Height          =   4095
      Left            =   45
      TabIndex        =   11
      Top             =   990
      Width           =   9660
   End
   Begin VB.Label lblD 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "比较期"
      Height          =   180
      Left            =   4995
      TabIndex        =   10
      Top             =   555
      Width           =   540
   End
   Begin VB.Label lblFrom 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      Caption         =   "从"
      Height          =   180
      Index           =   0
      Left            =   6885
      TabIndex        =   9
      Top             =   555
      Width           =   180
   End
End
Attribute VB_Name = "frmFinanceReport"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'                               财务分析表窗体代码
'   作者:雷宇
'   时间:1998-07-01
'
'   接口函数(过程):
'   Public Function ShowFinanceReport(ByVal lngReportId As Long, ByVal ViewId As Long, Optional clsFinanceReport As FinanceReportWizard = Nothing)
'   功能:调入财务分析表窗体
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Const lngFormWidth As Long = 10080                               '窗体最小宽度
Const lngFormHeight As Long = 5775                              '窗体最小高度
Const lngGridTop As Long = 735                                  '表格与帐表顶部距离
Const lngGridTopNoTitle As Long = 400                           '表格与帐表顶部距离(无标题时)
Private WithEvents mclsMainControl As MainControl               '主控对象
Attribute mclsMainControl.VB_VarHelpID = -1
Private mclsFinanceReport As FinanceReportWizard                               '帐表设置对象
Private mblnHaveHead As Boolean                                 '是否需要标题
Private WithEvents mclsHook As Hook
Attribute mclsHook.VB_VarHelpID = -1
Private mOldCol As Integer
Private mbytBookType As Byte                                    '帐册类型 1=三栏帐 2=多栏帐
Private mblnLoad As Boolean                                     '窗体是否已经加载
Private mstrDateCond As String                                  '日期条件
Private mstrAccountCond As String                               '科目条件
Private mintAmountBanCol As Integer                             '金额余额列
Private mintQuantityBanCol As Integer                           '数量余额列
Private mintCurrencyBanCol As Integer                           '外币余额列
Private mintRemarkCol As Integer                                '摘要列
Private mintDirectCol As Integer                                '方向列
Private mintMastDealRow As Integer                              '已进行数据处理的最大行
Private mstrMonth As String                                     '上一行的月
Private mstrDay As String                                       '上一行的日
Private mintMonthCol As Integer                                 '月对应的列号
Private mintDayCol As Integer                                   '日对应的列号
Private mblnIsOver As Boolean                                   '是否处理到帐册的最后一列
Private mblnIsReLoad As Boolean
Private mblnIsAnaly As Boolean                                  '是否已经生成了数据
Private mstrAccountDataType As String                           '是财务帐还是业务帐
Private rstTemp As rdoResultset                                    '模块内有效的查询
Private dblAnalyData() As Single                                '保存参与分析的数据的二维数组
Private dblAnalySum() As Single                                 '保存每列的合计数
Private strGrdDataText() As String                              '保存表格的标题
Private strRateCols() As String                                 '保存那些属于比率的列
Private strSumData() As String                                  '保存那些属于"合计"的列
Private dblColSumData() As Double
Private dblColPartData() As Double
Private mblnQueryHasRecord As Boolean                           '查询是否有数据
Private lngOldGridTop As Long                                   '表格原来的顶端位置,备恢复用
Private lngOldGridHeight As Long                                '表格原来的高度,备恢复用
Private mblnIsReferPeriod As Boolean                            '是比较期还是报告期起作用
Private mlngReportID As Long                                    '当前报表的ID
Private mlngAnalyFieldID As Long                                '分析期的ID
Private mstrAnalyDateOP As String                               '分析期的类型
Private mdtmAnalyDate1 As String                                '分析期的起始时间
Private mdtmAnalyDate2 As String                                '分析期的终止时间
Private mlngReferFieldID As Long                                '比较期的ID
Private mstrReferDateOP As String                               '比较期的类型
Private mdtmReferDate1 As String                                '比较期的起始时间
Private mdtmReferDate2 As String                                '比较期的终止时间
Private mstrCodeID As String                                    '报告期的ID
Private mstrKeyName As String                                   '报告期的类型名称
Private mblnIsPeriodChanged As Boolean                          '检测当前的期间类型是否改变
Private mblnResponseChange As Boolean
Private mblnFirstChange As Boolean
Private mblnReportReset As Boolean
Private mintReferRow1 As Long
Private mintReferRow2 As Long
Private mblnIsCheckPlan As Boolean
Private mblnJustChooseWeek As Boolean
Private mblnErrHappened As Boolean
Private mstrRptPeriod As String
Private mstrGridData() As String
Private Sub AnalyBeginDate_LostFocus()
    If AnalyBeginDate.Text = "" Then
        MsgBox "请输入一个日期!", vbExclamation
    End If
    If AnalyBeginDate.Value > AnalyEndDate.Value Then
        MsgBox "请输入小于截止时间的日期!", vbExclamation
    ElseIf AnalyEndDate.Text = "" Then
        AnalyEndDate.SetFocus
    Else
        mblnIsPeriodChanged = True
        If mblnResponseChange = False And CDate(AnalyBeginDate.Text) <> CDate(mclsFinanceReport.DateBegin) Then
            cmbAnalyDate_Choose
            cmbAnalyDate.Text = "自定义"
        End If
        mblnResponseChange = False
    End If
End Sub

Private Sub AnalyEndDate_LostFocus()
    If AnalyEndDate.Text = "" Then
        MsgBox "请输入一个日期!", vbExclamation
    End If
    If AnalyBeginDate.Value > AnalyEndDate.Value Then
        MsgBox "请输入大于开始时间的日期!", vbExclamation
    ElseIf AnalyBeginDate.Text = "" Then
        AnalyBeginDate.SetFocus
    Else
        mblnIsPeriodChanged = True
        If mblnResponseChange = False And CDate(AnalyEndDate.Text) <> CDate(mclsFinanceReport.DateEnd) Then
            cmbAnalyDate_Choose
            cmbAnalyDate.Text = "自定义"
        End If
        mblnResponseChange = False
    End If
End Sub

Private Sub cmbAnalyDate_Choose()
    Dim D1 As Date
    Dim D2 As Date
    Dim rs As rdoResultset
    Dim Strsql As String
    On Error GoTo ErrHandler
    If mblnFirstChange = True Or mblnReportReset = True Or (cmbAnalyDate.Text = mclsFinanceReport.DateCond And cmbAnalyDate.Text <> "自定义") Then
        Exit Sub
    End If
    If CDate(AnalyBeginDate.Text) = CDate(mclsFinanceReport.DateBegin) And CDate(AnalyEndDate.Text) = CDate(mclsFinanceReport.DateEnd) And cmbAnalyDate.Text = "自定义" Then
        Exit Sub
    End If
    If cmbAnalyDate.Text = cmbReferDate.Text And cmbAnalyDate.Text <> "自定义" Then
        MsgBox "分析期类型与比较期类型重复!", vbExclamation
        cmbAnalyDate.ReferRow = mintReferRow1
        Me.Refresh
        Exit Sub
    End If
    mstrAnalyDateOP = mclsFinanceReport.ExgPeriodType(cmbAnalyDate.Text)
    If Trim(cmbAnalyDate.Text) = "自定义" Then
        mdtmAnalyDate1 = AnalyBeginDate.Text
        mdtmAnalyDate2 = AnalyEndDate.Text
        UpdateCond "AnalyPeriod"
        mblnIsPeriodChanged = True
        Exit Sub
    End If
    If Trim(cmbAnalyDate.Text) = "所有" Then
        Strsql = "SELECT MAX(Cdate(" & mstrAccountDataType & ".strDate)) AS MaxDate,MIN(Cdate(" & mstrAccountDataType & ".strDate)) AS MinDate " & _
                " FROM " & mstrAccountDataType
        Set rs = gclsBase.BaseDB.OpenRecordset(Strsql, dbOpenSnapshot)
        With rs
            AnalyBeginDate.Value = !MinDate
            AnalyEndDate.Value = !MaxDate
            .Close
        End With
    Else
        gclsBase.GetBeginAndEndDate cmbAnalyDate.Text, Date, D1, D2
        AnalyBeginDate.Value = D1
        AnalyEndDate.Value = D2
    End If
    mdtmAnalyDate1 = AnalyBeginDate.Text
    mdtmAnalyDate2 = AnalyEndDate.Text
    mblnIsPeriodChanged = True
    UpdateCond "AnalyPeriod"
    mblnResponseChange = True
    Exit Sub
ErrHandler:
    cmbAnalyDate.Text = mclsFinanceReport.DateCond
End Sub

Private Sub cmbReferDate_Choose()
    Dim D1 As Date
    Dim D2 As Date
    Dim rs As rdoResultset
    Dim Strsql As String
    On Error GoTo ErrHandler
    If mblnFirstChange = True Or mblnReportReset = True Or (cmbReferDate.Text = mclsFinanceReport.DateCond1 And cmbReferDate.Text <> "自定义") Then
        Exit Sub
    End If
    If CDate(ReferBeginDate.Text) = CDate(mclsFinanceReport.DateBegin1) And CDate(ReferEndDate.Text) = CDate(mclsFinanceReport.DateEnd1) And cmbReferDate.Text = "自定义" Then
        Exit Sub
    End If
    If cmbReferDate.Text = cmbAnalyDate.Text And cmbReferDate.Text <> "自定义" Then
        MsgBox "比较期类型与分析期类型重复!", vbExclamation
        cmbReferDate.ReferRow = mintReferRow2
        Me.Refresh
        Exit Sub
    End If
    mstrReferDateOP = mclsFinanceReport.ExgPeriodType(cmbReferDate.Text)
    If Trim(cmbReferDate.Text) = "自定义" Then
        mdtmReferDate1 = ReferBeginDate.Text
        mdtmReferDate2 = ReferEndDate.Text
        UpdateCond "ReferPeriod"
        Exit Sub
    End If
    If Trim(cmbReferDate.Text) = "所有" Then
        Strsql = "SELECT MAX(Cdate(" & mstrAccountDataType & ".strDate)) AS MaxDate,MIN(Cdate(" & mstrAccountDataType & ".strDate)) AS MinDate " & _
                " FROM " & mstrAccountDataType
        Set rs = gclsBase.BaseDB.OpenRecordset(Strsql, dbOpenSnapshot)
        With rs
            ReferBeginDate.Value = !MinDate
            ReferEndDate.Value = !MaxDate
            .Close
        End With
    Else
        gclsBase.GetBeginAndEndDate cmbReferDate.Text, Date, D1, D2
        ReferBeginDate.Value = D1
        ReferEndDate.Value = D2
    End If
    mdtmReferDate1 = ReferBeginDate.Text
    mdtmReferDate2 = ReferEndDate.Text
    mblnIsPeriodChanged = True
    UpdateCond "ReferPeriod"
    Exit Sub
ErrHandler:
    ReferBeginDate.Text = mclsFinanceReport.DateCond1
End Sub

Private Sub cmdDefine_Click()
    If mclsFinanceReport.ShowReportSet(mclsFinanceReport.ReportID, mclsFinanceReport.ViewId) = True Then
        mblnReportReset = True
        ChangeDate
        Set rstTemp = Nothing
        Me.Hide
        RefreshData
        mblnReportReset = False
    Else
        Me.Show
    End If
End Sub

Private Sub cmdHide_Click()
    grdAcntBook.Redraw = False
    grdTitle.Redraw = False
    If mblnHaveHead Then
        cmdHide.Caption = "隐藏标题(&H)"
        lblCaption.Visible = True
        grdAcntBook.top = lngOldGridTop
        grdAcntBook.Height = lblBorder.Height - 600 - lblCaption.Height - 200
        grdTitle.Width = grdAcntBook.Width
        If mblnQueryHasRecord = False Then
            grdTitle.Visible = True
        End If
        Me.Refresh
    Else
        lngOldGridTop = grdAcntBook.top
        lngOldGridHeight = lblBorder.Height - 600 - lblCaption.Height - 200
        cmdHide.Caption = "显示标题(&I)"

⌨️ 快捷键说明

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