难题:同一张纸上,将数据分成多栏打印 ( 积分: 100 )

  • 主题发起人 genie007
  • 开始时间
G

genie007

Unregistered / Unconfirmed
GUEST, unregistred user!
有三张数据表,内容分别为:
表一:单据号、日期等
内容:001 2005-1-19
表二:单据号、物品号、物品名称、规格、数量等
内容:001 CP01 机箱 P4300W 10
001 CP02 显示器 15"
5
001 .............................
表三:单据号、零件号、零件名称、数量等
001 LJ001 螺丝 100
001 LJ002 垫片 150
001 LJ003 扳手 20
001 LJ004 线圈 30
001 ......................
其中,表一为主表,表二、表三为从表,通过单据号关联。
现要求打印效果如下:
单据号:001 日期:2005-1-19
--------------------------------------------
物品号 物品名称 规格 数量
CP01 机箱 P4300W 10
CP02 显示器 15"
5
.............................
-----------------------------------------
零件号 零件名称 数量 | 零件号 零件名称 数量
LJ001 螺丝 100 | LJ002 垫片 150
LJ003 扳手 20 | LJ004 线圈 30
......................
说明如下:
物品行数不固定,有几行就打印几行;零件信息紧跟在物品信息后面,而且,因为零件信息数据较少,所以在一行内要可以打印两条记录(或多条记录,由用户在打印时自己确定),同样,零件行数也不固定。
请问该如何实现此功能
 
有三张数据表,内容分别为:
表一:单据号、日期等
内容:001 2005-1-19
表二:单据号、物品号、物品名称、规格、数量等
内容:001 CP01 机箱 P4300W 10
001 CP02 显示器 15"
5
001 .............................
表三:单据号、零件号、零件名称、数量等
001 LJ001 螺丝 100
001 LJ002 垫片 150
001 LJ003 扳手 20
001 LJ004 线圈 30
001 ......................
其中,表一为主表,表二、表三为从表,通过单据号关联。
现要求打印效果如下:
单据号:001 日期:2005-1-19
--------------------------------------------
物品号 物品名称 规格 数量
CP01 机箱 P4300W 10
CP02 显示器 15"
5
.............................
-----------------------------------------
零件号 零件名称 数量 | 零件号 零件名称 数量
LJ001 螺丝 100 | LJ002 垫片 150
LJ003 扳手 20 | LJ004 线圈 30
......................
说明如下:
物品行数不固定,有几行就打印几行;零件信息紧跟在物品信息后面,而且,因为零件信息数据较少,所以在一行内要可以打印两条记录(或多条记录,由用户在打印时自己确定),同样,零件行数也不固定。
请问该如何实现此功能
 
使用嵌套子报表的方式打印.
 
在FASTREPORT中,嵌套子报表不能分栏。而且,我只能对主项数据从上到下分下,再从左到右栏,而不能实现从左到右,再从上到下分栏。各位高手,有没有办法解决啊?
 
比较麻烦!
 
这么长时间了,难道没有高手愿意指点一二吗?
 
从视图着手应该是可以的,只是要下些功夫。我也做过类似的打印问题,不过没这么复杂。
 
这问题可能还真不是很方便解决,提供一个思路:
把子表字段double一下
这样,报表就把2栏当成一栏处理了
 
表一视图:单据号、日期等
内容:001 2005-1-19
表二视图:单据号、物品号、物品名称、规格、数量等
内容:001 CP01 机箱 P4300W 10
001 CP02 显示器 15"
5
001 .............................
表三视图一:单据号1、零件号1、零件名称1、数量1等
001 LJ001 螺丝 100
001 LJ003 扳手 20
001 LJ005......................
表三视图二:单据号2、零件号2、零件名称2、数量2等
001 LJ002 垫片 150
001 LJ004 线圈 30
001 LJ006......................
打印视图:
select a.单据号,a.日期,
b.物品号,b.物品名称,b.规格,b.数量,
c1.零件号1,c1.零件名称1,c1.数量1,
c2.零件号2,c2.零件名称2,c2.数量2
from 表一视图 a
left join 表二视图 b on b.单据号 = a.单据号
left join 表三视图一 c1 on c1.单据号 = a.单据号
left join 表三视图二 c2 on c2.单据号 = a.单据号
打印设置:
--表头--
单据号: 日期:
--表体--------------------------------------
物品号 物品名称 规格 数量
CP01 机箱 P4300W 10
CP02 显示器 15"
5
.............................
--表尾(因为零件信息数据较少所以可确定一最大条数或使用如表体一样的循环栏<不知有没有嵌套报表>)------------------------------------
零件号 零件名称 数量 | 零件号 零件名称 数量
LJ001 螺丝 100 | LJ002 垫片 150
LJ003 扳手 20 | LJ004 线圈 30
LJ005....................| LJ006......................
..........................................................
LJ2N-1...................| LJ2N ......................
此处2N为零件信息数据的条数.N应在5以下吧:)
 
是否考虑使用Excel打印这样的复杂报表?
对于分栏的报表,实现起来很复杂
 
各位,问题我已经解决了。设一个主表,两个从表就可以了。FASTREPORT3.07自己的分栏,就是先横向再纵向的。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
720
import
I
S
回复
0
查看
823
SUNSTONE的Delphi笔记
S
I
回复
0
查看
638
import
I
顶部