DATAREPORT中报表分组注脚如何实现计算功能
编号:QA003984
建立日期: 2001年3月15日 最后修改日期:2001年3月15日
所属类别:
singer:
操作系统:win98
编程工具:vb60
问题:DATAREPORT中报表分组注脚如何实现计算功能?我的报表分组注脚有2个FUNCTION、1个LABEL1,FUNCTION1、FUNCTION2均对报表细节的某字段进行SUM统计。我希望LABEL1=FUNCTION2/FUNCTION1,以便实现分组的另一个统计,但却不知该如何对LABEL1进行设置,肯请各位帮助!
水平: 中级
回答:
'如果要LABEL1=FUNCTION2/FUNCTION1,DataReport无法实现这样的功能。
'可以用数据环境设计器构造一个分层的RECORDSET。
'假设在app.path下的test.mdb中有一个表table1(a text,b long,c long)
'现在Datareport1要列出它的所有行并sum(b),sum(c),再sum(b)/sum(c) group by a.
'在细节(Section1)加入三个文本框(text1,text2,text3)。
'然后给Datareport1插入一个分组(Section7),在组注脚加入三个文本框(text4,text5,text6)。
'下面的形状语句可用数据环境设计器创建,要详述操作细节比较麻烦,就用代码实现吧:
sub showReport()
dim cn as new adodb.connection
Dim rs As New ADODB.Recordset
cn.Open "provider=msdatashape;data provider=Microsoft.Jet.OLEDB.4.0;data source="+iif(right(app.path,1)<>"\",app.path+"\",app.path)+"test.mdb;"
Dim rs As New ADODB.Recordset
rs.Open " SHAPE {select a,sum(b) as sumb,sum(c) as sumc,sum(b)/sum(c) as sumbc from table1 group by a} AS xxx APPEND ({select * from table1} AS yyy RELATE 'a' TO 'a') AS yyy", cn
With DataReport1
.Sections("Section1").Controls("text1").DataMember = "yyy"
.Sections("Section1").Controls("text2").DataMember = "yyy"
.Sections("Section1").Controls("text3").DataMember = "yyy"
.Sections("Section1").Controls("text1").DataField = "a"
.Sections("Section1").Controls("text2").DataField = "b"
.Sections("Section1").Controls("text3").DataField = "c"
.Sections("Section7").Controls("text4").DataField = "sumb"
.Sections("Section7").Controls("text5").DataField = "sumc"
.Sections("Section7").Controls("text6").DataField = "sumbc"
Set .DataSource = rs
.Show
End With
end sub
此问题由Oscar回答。
| |
|
|
| |
|
|