用公式实现动态设置图表的轴数据项
本文适用于单表中有多类统计项目的情况,同时也适用制作程序的公用模块。
本文仅使用了程序与水晶报表的公式参数传递,而未使用动态创建功能
传统的图表制作中,我们都是先选择要进行图表显示的字段,在这里,我们的思路是以公式代替实际字段代替报表
用不同的字段填充公式,从而达到动态设置的目的
在这里要说明一下,纵轴上的汇总字段x2,如果要汇总的话,请将该公式默认为0
此时的报表呈现如下,为了显示的美观,我们把各默认标题置为空,用另外的3个公式来实现这几个项目
将x轴标题和报表标题公式拉到与图表同宽,字体设置未居中
将y轴标题公式纵向拉到与图表同高,字体居中,宽度拉到一个字宽,且设置属性为 可扩大
保存之~~
然后切换到程序中,以VB6为例
本文仅使用了程序与水晶报表的公式参数传递,而未使用动态创建功能
传统的图表制作中,我们都是先选择要进行图表显示的字段,在这里,我们的思路是以公式代替实际字段代替报表
用不同的字段填充公式,从而达到动态设置的目的
在这里要说明一下,纵轴上的汇总字段x2,如果要汇总的话,请将该公式默认为0
此时的报表呈现如下,为了显示的美观,我们把各默认标题置为空,用另外的3个公式来实现这几个项目
将x轴标题和报表标题公式拉到与图表同宽,字体设置未居中
将y轴标题公式纵向拉到与图表同高,字体居中,宽度拉到一个字宽,且设置属性为 可扩大
保存之~~
然后切换到程序中,以VB6为例
Option Explicit
Private crApp As New CRAXDRT.Application
Private crReport As CRAXDRT.Report
Private Sub Form_Load()
Set crReport = crApp.OpenReport(App.Path & "\report1.rpt")
' 注意参数的顺序(是按照你新建的顺序的,与显示顺序可能不一致),如果你拿不准,弹出来看看
'
'MsgBox crReport.FormulaFields(1).Name
'MsgBox crReport.FormulaFields(2).Name
'MsgBox crReport.FormulaFields(3).Name
'MsgBox crReport.FormulaFields(4).Name
'MsgBox crReport.FormulaFields(5).Name
' 动态指定两个轴的字段(表名.字段)
crReport.FormulaFields(1).Text = "{产品.产品类别}"
crReport.FormulaFields(2).Text = "{产品.产品 ID}"
'设置轴描述,题头,注意!传入的值必须以双引号包起来
crReport.FormulaFields(3).Text = """我的横轴啊横轴"""
crReport.FormulaFields(4).Text = """我的纵轴啊纵轴"""
crReport.FormulaFields(5).Text = """标题啊标题"""
CRViewer91.ReportSource = crReport
CRViewer91.ViewReport
End Sub
Private crApp As New CRAXDRT.Application
Private crReport As CRAXDRT.Report
Private Sub Form_Load()
Set crReport = crApp.OpenReport(App.Path & "\report1.rpt")
' 注意参数的顺序(是按照你新建的顺序的,与显示顺序可能不一致),如果你拿不准,弹出来看看
'
'MsgBox crReport.FormulaFields(1).Name
'MsgBox crReport.FormulaFields(2).Name
'MsgBox crReport.FormulaFields(3).Name
'MsgBox crReport.FormulaFields(4).Name
'MsgBox crReport.FormulaFields(5).Name
' 动态指定两个轴的字段(表名.字段)
crReport.FormulaFields(1).Text = "{产品.产品类别}"
crReport.FormulaFields(2).Text = "{产品.产品 ID}"
'设置轴描述,题头,注意!传入的值必须以双引号包起来
crReport.FormulaFields(3).Text = """我的横轴啊横轴"""
crReport.FormulaFields(4).Text = """我的纵轴啊纵轴"""
crReport.FormulaFields(5).Text = """标题啊标题"""
CRViewer91.ReportSource = crReport
CRViewer91.ViewReport
End Sub
运行之,效果如下
特别说明:
crReport.FormulaFields(3).Text = """我的横轴啊横轴"""
crReport.FormulaFields(4).Text = """我的纵轴啊纵轴"""
crReport.FormulaFields(5).Text = """标题啊标题"""
注意!传入报表的公式应为 "我的横轴啊横轴" ,而不是 我的横轴啊横轴 。
报表制作视频可在此处下载:https://files.cnblogs.com/babyt/CR20080122Dychart.rar