📄 financereportwizard.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "FinanceReportWizard"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'名称: 财务分析表类模块
'作者:雷宇
'时间:1998-07-01
'调用函数:
' Public Function ShowReportSet(ByVal lngReportId As Long, ByVal ReportViewID As Long, Optional ParentId As Long = 0, Optional ParentLevel As Integer = 0) As Boolean
' 功能:初始化向导,并调用向导
'其它公用函数(或过程)有:
' Public Sub GetSelect():在初始化向导以及报表生成时调用
' Public Sub GetFrom():在初始化向导以及报表生成时调用
' Public Sub GetWhere():在初始化向导以及报表生成时调用
' Public Sub GetGroupBy():在初始化向导以及报表生成时调用
'以上四个过程生成整个用以生成报表数据的SQL语句
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Private mvarViewID As Long '视图ID
Private mvarViewName As String '视图名称
Private mvarReportName As String '报表名称
Private mvarReportID As Long '报表ID
Private mvarReportType As Byte '报表类型
'栏目属性设置
Private mvarColumns As Integer '栏目数
Private mvarFixColumns As Integer '固定栏目数
Private mvarChoosedColumns As Integer '已选栏目数
Private mvarColumnWidth() As Long '栏目宽度
Private mvarColumnIsFix() As Integer '是否固定栏目
Private mvarColumnIsChoosed() As Integer '是否已选栏目
Private mvarReportFieldNO() As Long '报表栏目顺序
Private mvarColumnFieldID() As Long '栏目字段ID
Private mvarColumnFieldName() As String '栏目字段
Private mvarColumnDesc() As String '栏目说明
Private mvarColumnFieldType() As String '栏目字段类型
Private mvarColumnFieldSize() As Integer '栏目字段长度
Private mvarColumnTableName() As String '栏目字段所属表名
Private mvarColumnOrderType() As Integer '栏目排序方式 0=不排序 1=升序列 2=降序
Private mvarReportOrderType As Integer '报表排序方式 0=不排序 1=升序列 2=降序
Private mvarColumnCombine() As String
Private mvarColumnIsFind() As Integer '是否查找栏目
Private mvarHeadColumns As Integer '已选表头栏目数
Private mvarHeadDesc() As String '表头栏目说明
Private mvarHeadFuncIndex() As Integer '表头栏目涵数索引
Private mvarHeadWidth() As Long '表头栏目宽度
Private mvarHeadHeight() As Long '表头栏目高度
Private mvarHeadLeft() As Long '表头栏目左间距
Private mvarHeadTop() As Long '表头栏目上间距
Private mvarTailColumns As Integer '已选表尾栏目数
Private mvarTailDesc() As String '表尾栏目说明
Private mvarTailFuncIndex() As Integer '表尾栏目涵数索引
Private mvarTailWidth() As Long '表尾栏目宽度
Private mvarTailHeight() As Long '表尾栏目高度
Private mvarTailLeft() As Long '表尾栏目左间距
Private mvarTailTop() As Long '表尾栏目上间距
Private mvarTitleWidth As Long '报表标题宽度
Private mvarTitleHeight As Long '报表标题高度
Private mvarTitleLeft As Long '报表标题左间距
Private mvarTitleTop As Long '报表标题上间距
Private mvarHeadAlignment() As Integer '表头对齐方式
Private mvarTailAlignment() As Integer '表尾对齐方式
Private mvarTitleAlignment As Integer '标题对齐方式
Private mvarGridTop As Integer
Private mvarDateCond1 As String '比较期条件
Private mvarDateBegin1 As String
Private mvarDateEnd1 As String
Private mvarAccountCond1 As String
Private mvarDateCond As String '分析期条件
Private mvarDateBegin As String
Private mvarDateEnd As String
Private mvarAccountCond As String
Private mvarFrom As String 'SQL 的 FROM 子句
Private mvarSelect As String 'SQL 的 SELECT 子句
Private mvarWhere As String 'SQL 的 WHERE 子句
Private mvarGroupBy As String 'SQL 的 GROUP BY 子句
Private mvarAnalyViewFieldID As Long '分析期ID
Private mvarReferViewFieldID As Long '比较期ID
Private mvarReportViewFieldID As Long '报告期ID
Private mvarOtherAnalyViewFieldID As Long '分析期2ID
Private mvarOtherReferViewFieldID As Long '比较期2ID
Private mvarAccountDataType As String '财务帐,业务帐
Private mlngParentID As Long '所属报表目录ID
Private mintParentLevel As Integer '所属报表目录层次
Private mbytGroup As Byte
Private mbytPrep As Byte '预置标志 0=向导 1=预置表 2=自定义表
Private mstrFromSQL As String
Private mblnHasReferPeriod As Boolean
Private strDataAccountDetail As String
Private strDataAccount As String
Private blnIsVoucher As Boolean
Private mvarRptPeriod As String '报告期
Private mvarAnalyType As Byte '结构分析类型
Private mvarAccountTypeID As Byte 'Report.bytAccountStyle
Private mvarAccountStyle As Byte 'Report.bytAccountType
Private strPeriods() As String
Private intPeriodIndex() As String
Private mblnIsLastSum As Boolean
Private mblnIsLatestSum As Boolean
Private mblnCountRemain As Boolean '是否计算余额
Private mblnCountPlan As Boolean '是否计算计划
Private mstrFromTable() As String
'仅为“应收应付”而设
Private mstrActivityFrom As String '业务FROM
Private mstrItemFrom As String '商品From
Private mstrArapFrom As String '期初From
Private mstrActivitySelect As String '业务Select
Private mstrItemSelect As String '商品Select
Private mstrArapSelect As String '期初Select
Private mstrOrderBy As String
Private mblnIsNewReport As Boolean
Private mvarAnalyStart As Date
Private mvarAnalyEnd As Date
Private mvarReferStart As Date
Private mvarReferend As Date
Private mvarAnalyPeriodType As String
Private mvarReferPeriodType As String
Private mvarReportPeriod As String
Private mvarFixedCondOprator As String
Private mvarDepartmentCondOprator As String
Private mvarFixedValue As Integer
Private mvarDepartmentValue As Integer
'以下数组和变量专为工资分析表而设。
Private mstrSalaryFieldDesc() As String '工资项目说明
Private mstrSalaryFieldName() As String '工资项目字段
Private mvarSalaryFieldDec() As Byte '工资项目的小数位数
Private mvarSalaryFieldCount As Integer
Private mstrSalaryDesc As String
Private mstrSalaryListName As String
Private mvarItemCond As String
Private mvarViewSQL As String
Private mvarBalanceSQL As String
Private mvarFixedAlterMethod As String '固资变动方式
Private mstrFixedMaxAlterID As String '固资最近变动ID
Private mlngPrintSetupID As Long '报表打印设置ID
Private mbytVersion As Byte
Private mintBudgetYear As Integer '预算年度
Private mlngBudgetID As Long '预算方案ID
Private mbytIncludeUnPosted As Byte '用于财务状况分析表的属性:是否包含“未记帐凭证”
Private mblnSumBalance As Boolean '用于财务状况分析表的属性:是否包含“未记帐凭证”
Private mbytAccountSystem As Byte '会计制度
Private mlngCurrencyID As Long '当前帐套的本币ID
Private mstrBudgetObjectName As String '(经营分析)当前行的被选择的预算对象
Private mstrBudgetIsTax As Integer '(经营分析)当前行的被选择的预算数据是否含税
Private mbytAnalysisMethodID As Byte '汇率分析的分析方法
Private mbytSaleAnalyType As Byte '销售数据类型(收入、成本、毛利)
Private mblnIsCareDirection As Boolean '是否要考虑科目的方向(仅针对财务预算分析和财务状况分析表)
Private mblnIsOnlyAnalyPeriod As Boolean '是否只要分析期
Private mbytDataType As Byte '数据类型条件
Private mbytDataSource As Byte '数据来源条件
Private mstrWhereOfPeriod As String
Private mstrCondDesc() As String '条件描述
Private mstrCondValue() As String '条件值
Private mstrCondWhere() As String '用于生成where的条件值
Private mstrLevelCond() As String '编码层次条件
Private mdtmCondPeriodStart() As Date '期间条件起始日期
Private mdtmCondPeriodEnd() As Date '期间条件终止日期
Private mintCondCount As Integer '条件个数
Private mblnReportIsFromWizard As Boolean '报表是否由向导生成
Private mstrReportPeriodFromWizard As String '由向导生成的报告期的条件
Private mstrBudgetName As String '由向导生成的预算名称
Private mstrBudgetObject As String '由向导生成的预算对象
Private mblnIsTax As Integer '由向导生成的是否含税的条件
Private mvarRelationWhere As String 'Oracle版本的 Where子句。
Private mvarRelationViewWhere As String 'Oracle版本的 Where子句。
Private mstrCodeLevelCond As String '编码层次条件
Private mblnSaveFlag As Boolean '预算分析的报表是否生成
Private mstrInitStockSql As String
'雷宇1999-10-29增加
Private mblnHasReportPeriod As Boolean
Private mintDataColumns As Integer '数据列数
Private mblnIsHeadColumn() As Boolean '是否作为固定列
Private mbytColumnSort() As Boolean '是否排序
Private mintColumnSortNo() As Byte '排序栏目序号
'以下变量用于5.32版
Private mblnIsUseRefer As Boolean '是否用到对比分析
Private mstrReferCondString As String '对比分析的日期条件
Private mstrReferStart As String '对比分析期间的起始日期
Private mstrReferTerminal As String '对比分析期间的终止日期
Private mblnTrendReportIsUseRefer As Boolean '趋势分析报表是否需要对比分析
Private mblnNeedGatherData As Boolean '是否需要汇总(对经营分析表——尤其是销售和采购分析表,当第一列是单位等时)
Private mstrOtherAnalyCond As String '分析期2的条件
Private mstrOtherAnalyBegin As String '分析期2的条件
Private mstrOtherAnalyEnd As String '分析期2的条件
Private mstrOtherReferCond As String '比较期2的条件
Private mstrOtherReferBegin As String '比较期2的条件
Private mstrOtherReferEnd As String '比较期2的条件
Private mstrOrderWhere As String '订购条件
Private mblnHasOrderColumn As Boolean
'1999-11-25增加,用于定单数据
Private mstrOrderSql As String
Private mstrOrderGroupby As String
Private mbytCondShow As Byte '表头表尾显示方式
Private mstrCondShowing As String '表头表尾的条件
Private mintCondShowAlign As Integer
Private mintCondShowLeft As Integer
Private mintCondShowTop As Integer
Private mintCondShowHeight As Integer
Private mintCondShowWidth As Integer
Private mstrAccountCond As String '用于财务状况分析表
Private mblnHasOrderData As Integer '经营分析是否含有采购数据
Private mstrOrderFrom As String
Private mvarOrderWhere As String
'1999-12-29增加,用于解决工资项目分析表的问题
Private mstrSortColumnDesc As Long '用于销售分析的排名问题
Private mbytColumnSortStyle As Byte '用于销售分析的排名问题
'**************************************************************************************************************
'1999-12-24增加,用于解决工资项目分析表的问题
Private mstrSalaryFieldSQL() As String '工资项目查询数组
Public Property Get SortColumnDesc() As Long
SortColumnDesc = mstrSortColumnDesc
End Property
Public Property Let SortColumnDesc(ByVal vData As Long)
mstrSortColumnDesc = vData
End Property
Public Property Get ColumnSortStyle() As Byte
ColumnSortStyle = mbytColumnSortStyle
End Property
Public Property Let ColumnSortStyle(ByVal vData As Byte)
mbytColumnSortStyle = vData
End Property
'1999-12-24增加
Public Property Get strOutOrderFrom() As String
strOutOrderFrom = mstrOrderFrom
End Property
Public Property Let strOutOrderFrom(ByVal vData As String)
mstrOrderFrom = vData
End Property
Public Property Get strOutOrderWhere() As String
strOutOrderWhere = mvarOrderWhere
End Property
Public Property Let strOutOrderWhere(ByVal vData As String)
mvarOrderWhere = vData
End Property
Public Property Get SalaryFieldSQL(ByVal CondIndex As Integer) As String
SalaryFieldSQL = mstrSalaryFieldSQL(CondIndex)
End Property
Public Property Let SalaryFieldSQL(ByVal CondIndex As Integer, ByVal vData As String)
mstrSalaryFieldSQL(CondIndex) = vData
End Property
'**************************************************************************************************************
Public Property Get HasOrderData() As Integer
HasOrderData = mblnHasOrderData
End Property
Public Property Let HasOrderData(ByVal vData As Integer)
mblnHasOrderData = vData
End Property
Public Property Get strAccountCond() As String
strAccountCond = mstrAccountCond
End Property
Public Property Let strAccountCond(ByVal vData As String)
mstrAccountCond = vData
End Property
Public Property Get CondShowWidth() As Integer
CondShowWidth = mintCondShowWidth
End Property
Public Property Let CondShowWidth(ByVal vData As Integer)
mintCondShowWidth = vData
End Property
Public Property Get CondShowHeight() As Integer
CondShowHeight = mintCondShowHeight
End Property
Public Property Let CondShowHeight(ByVal vData As Integer)
mintCondShowHeight = vData
End Property
Public Property Get CondShowTop() As Integer
CondShowTop = mintCondShowTop
End Property
Public Property Let CondShowTop(ByVal vData As Integer)
mintCondShowTop = vData
End Property
Public Property Get CondShowLeft() As Integer
CondShowLeft = mintCondShowLeft
End Property
Public Property Let CondShowLeft(ByVal vData As Integer)
mintCondShowLeft = vData
End Property
Public Property Get CondShowAlign() As Integer
CondShowAlign = mintCondShowAlign
End Property
Public Property Let CondShowAlign(ByVal vData As Integer)
mintCondShowAlign = vData
End Property
Public Property Get CondShowing() As String
CondShowing = mstrCondShowing
End Property
Public Property Let CondShowing(ByVal vData As String)
mstrCondShowing = vData
End Property
Public Property Get CondShow() As Byte
CondShow = mbytCondShow
End Property
Public Property Let CondShow(ByVal vData As Byte)
mbytCondShow = vData
End Property
Public Property Get HasOrderColumn() As Boolean
HasOrderColumn = mblnHasOrderColumn
End Property
Public Property Let HasOrderColumn(ByVal vData As Boolean)
mblnHasOrderColumn = vData
End Property
Public Property Get OrderWhere() As String
OrderWhere = mstrOrderWhere
End Property
Public Property Let OrderWhere(ByVal vData As String)
mstrOrderWhere = vData
End Property
'以下属性用于5.32版
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -