回 帖 发 新 帖 刷新版面

主题:查询后打印一对多报表

客户表为父表,走访表为子表,已经创建一对多报表。点查询后,表格显示的是查询客户表的结果,现想把查询的结果打印出来----客户表和走访表都打出(即查询到的)。不知该怎么写。
客户表:
客户编号 客户姓名 性别 地址
1        张三     男   北京
2        李四     男   上海

走访表:
客户编号  走访日期     走访活动
1         2009/10/10   无
1         2009/10/05   有
2         2009/11/10   有

如查询张三,则一对多报表显示:
客户编号 客户姓名 性别 地址
1        张三     男   北京

客户编号  走访日期     走访活动
1         2009/10/10   无
1         2009/10/05   有

回复列表 (共5个回复)

沙发

在数据库中建立一个与客户表结构完全一样的表temp,利用一对多报表向导创建temp与走访表的一对多报表temp.frx。

每次表单init和退出时,把temp表zap掉;每次点查询时,也先把temp表zap掉。

查询click事件:

..

select * from 客户表 where ... into cursor temp1

insert into temp select * from temp1 &&复制查询结果到temp

...
打印click:
select temp
report form temp.frx to printer preview
感觉这种方法不好,强行退出会使temp损坏。

板凳

能否在运行时,把临时表temp和走访表添加到temp.frx报表的数据环境,并建立关系?
select * from 客户表 where ... into cursor temp &&temp是临时表
...
...  &&把临时表temp和走访表添加到temp.frx报表的数据环境,并以客户编号建立关系

select temp
report form temp.frx to printer preview
这该怎么写呀?说得好,马上加分!

3 楼

没人知?

4 楼

SELECT a.客户编号,b.走访日期,b.走访活动 FROM 客户表 a,走访表 b WHERE b.客户编号=a.客户编号 ORDER BY b.客户编号 INTO CURSOR TMP
REPORT FORM TEMP TO PRINT PROMPT    &&打印
REPORT FORM TEMP PREVIEW            &&预览

5 楼

照4楼的去做,达不到想要的效果。
如在附件中输入查询条件---性别:男,报表预览应显示所有性别为男的客户信息,并显示与之对应的走访信息。

我来回复

您尚未登录,请登录后再回复。点此登录或注册