Office中国论坛/Access中国论坛

标题: [已解决]关于三联单打印与补空行的问题 [打印本页]

作者: snrvvfb    时间: 2009-9-3 14:16
标题: [已解决]关于三联单打印与补空行的问题
本帖最后由 snrvvfb 于 2009-9-8 10:59 编辑

我做了一个申购单的数据库,但是不知道如何实现点击打印按钮后,分别打印出三张内容相同的报表,只是每张报表上分别显示:第一联:申购部门   第二联:财务部门
第三联:采购部门
而且我还想实现补空行的报表,即无论我的报表根据我输入的条件从数据表中提取几条数据,我都想让报表多显示几行表格,有则显示相关数据,无则显示空表格.就是让整张纸占满,格式好看些.
    我从论坛上搜索过相关的主题,好象有人提过类似的问题,但是说的很简单,我没有看太明白,自己还是不会做,我把我做好的数据库发上来,请大家帮忙给改一下.
作者: djt    时间: 2009-9-3 14:19
select "第一联:申购部门" as Title,* from 表
union all
select "第二联:财务部门" as Title,* from 表
union all
select "第三联:财务部门" as Title,* from 表
作者: snrvvfb    时间: 2009-9-3 16:21
刚才你给我回复的那段代码我要放在那里?from 表指的是那个表?是报表吗?能再说的详细一些吗?
我把做好的数据库上传了附件,你能不能在帮忙看一下.我不太懂.谢谢!还有那个补空行能帮我实现嘛?
作者: tz-chf    时间: 2009-9-3 17:12
印刷厂里印一些好了
作者: snrvvfb    时间: 2009-9-4 08:14
啊?我要的是电子版的,不是印刷好了手工填写的.这样查询统计数据的时候方便呀
作者: aslxt    时间: 2009-9-4 08:42
第一个问题:
for i=1 to 3
   打开报表
  设置报表的某个标签为"第几联"
  打印报表
关闭报表

next i
作者: tz-chf    时间: 2009-9-4 12:06
印刷的不一定要手工填,套打
作者: snrvvfb    时间: 2009-9-4 16:03
印刷的不一定要手工填,套打
tz-chf 发表于 2009-9-4 12:06

呵呵,这样不是浪费金钱嘛!!领导肯定不同意的.
作者: wuheng    时间: 2009-9-7 11:37
呵呵,这样不是浪费金钱嘛!!领导肯定不同意的.
snrvvfb 发表于 2009-9-4 16:03

个人认为,如果是批量印的话,再套打,有可能会比你全打还会省钱
作者: tz-chf    时间: 2009-9-7 11:49
就是啊,只要打一张,否则你得打三张。
作者: djt    时间: 2009-9-7 12:41
不是那么简单,每一联都要单独打印报表头和脚,看来只有循环打开报表可行
作者: snrvvfb    时间: 2009-9-7 15:06
套打我还得用针式打印机吧,又涉及到买打印机的问题了.有没有人直接帮我把例子做好了传上来呀,楼上的教我的两种方法我都不会应用,到现在也没有实现我想做的效果.郁闷!     555555555555555.
作者: snrvvfb    时间: 2009-9-7 15:16
新建一个表,三条记录,分别是第一联:申购部门,第二联:财务部门,第三联:采购部门
然后与申购单卡尔积就行了.
cuxun 发表于 2009-9-7 12:17


"卡尔积"是什么意思?
作者: snrvvfb    时间: 2009-9-7 15:18
不是那么简单,每一联都要单独打印报表头和脚,看来只有循环打开报表可行
djt 发表于 2009-9-7 12:41

怎么个循环?我现在都是用最笨的方法.
我先在报表里设置好了页眉:第一联:申购部门留存,点打印.之后再回到设计报表,把刚才的页眉处改为第二联:财务部门留存.通过这样的方法打印.
作者: djt    时间: 2009-9-7 15:52
本帖最后由 djt 于 2009-9-7 15:59 编辑

没用代码,全部是基本的查询
PARAMETERS strBatch Text ( 255 );
SELECT *
FROM (SELECT 申购单.编号, 申购单.申购批次, 申购单.申购人, 申购单.申购日期, 申购单.付款方式, 申购单.供货商名称, 申购单.申购名称, 申购单.型号, 申购单.数量, 申购单.单价, 申购单.总价, 申购单.申购部门, 申购单.申购事由
FROM 申购单
WHERE (((申购单.申购批次)=strBatch))
Union all
select Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null
from CaseNo where CaseNo<=choose((select Count(*) from 申购单 as a where a.申购批次=strBatch) mod 5+1,0,4,3,2,1)
), CaseNo
WHERE CaseNo.CaseNo<=3
ORDER BY CaseNo.CaseNo;
[attach]39572[/attach]
作者: snrvvfb    时间: 2009-9-8 08:35
谢谢楼上的帮忙,终于实现了我想要的效果了.太谢谢了.
作者: leijiqiang    时间: 2009-9-11 13:50
不知何意
作者: shenxb    时间: 2009-9-19 12:43
太好了
作者: xing_8    时间: 2009-9-19 16:02
方法不错,学习,谢
作者: shenxb    时间: 2009-9-21 11:42
可以联打吧
作者: zhufree    时间: 2009-9-25 16:12
终于找到了,学习
作者: huangli0356    时间: 2011-8-11 23:45
看不明白啥意思?

作者: 乐以忘忧    时间: 2011-9-14 13:55
大家共同学习了。
作者: huxinhua    时间: 2012-1-10 18:28
学习,




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3