热情软件屋

 

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回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio