如实现以下格式: 部门: 销售一科
---------------------------------
客户 数量 日期
aa 44 2002-09-12
bb 55 2002-09-12
..... 部门: 销售二科
---------------------------------
客户 数量 日期
cc 23 2002-03-11
dd 45 2002-09-23
ee 445 2002-09-23
.....
---------------------------------
客户 数量 日期
aa 44 2002-09-12
bb 55 2002-09-12
..... 部门: 销售二科
---------------------------------
客户 数量 日期
cc 23 2002-03-11
dd 45 2002-09-23
ee 445 2002-09-23
.....
当然也可以完全不要dataenvironment,直接设计分组的报表结构,然后用后一种方法打开报表的数据源。
报表设计期间先用dataenvironment设计好报表的结构。再在程序运行期间更改dataenvironment的数据库连接和数据集,sql 用data shape 格式。
下面代码可供参靠:
...
cn_rpt_cnstr = "Provider=MSDataShape.1;Persist Security Info=True;Data Source="
cn_rpt_cnstr = cn_rpt_cnstr & serv & ";User ID=sa;Password=" + psd + ";Initial Catalog=" + my_db + ";Data Provider=SQLOLEDB.1"
det_rpt.cn_rpt.CursorLocation = adUseClient
det_rpt.cn_rpt.CommandTimeout = 10
det_rpt.cn_rpt.connectionstring = cn_rpt_cnstr
det_rpt.cn_rpt.Open
det_rpt.Commands.Item("rpt_fhtj_Grouping").commandtext = "SHAPE {SELECT * FROM v_sell_fhtj " + query_sql + "} AS rpt_fhtj COMPUTE rpt_fhtj BY 'depart','name','guige'"
det_rpt.rsrpt_fhtj_Grouping.Source = "SHAPE {SELECT * FROM v_sell_fhtj " + query_sql + "} AS rpt_fhtj COMPUTE rpt_fhtj BY 'depart','name','guige'"
' det_rpt.rsrpt_fhtj_Grouping.ActiveConnection = det_rpt.cn_rpt
' det_rpt.rsrpt_fhtj_Grouping.Open
det_rpt.Commands.Item("rpt_fhtj_Grouping").ActiveConnection = det_rpt.cn_rpt
det_rpt.Commands.Item("rpt_fhtj_Grouping").Execute
drt_fhtj_03.Show 1
...
On Error GoTo lable_0
det_rpt.rsrpt_fhtj_Grouping.Close
det_rpt.cn_rpt.Close
lable_0:
Err.Clear
end sub