如何让数据库的记录报表输出时由纵向变为横向(100分)

  • 主题发起人 主题发起人 ltp
  • 开始时间 开始时间
L

ltp

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位高手,本人要打印报表,遇到难题(如上标题),请赐教,谢谢!
 
如用QuickRep的话在QuickRep中按鼠标右键选择Report Settings进去后有一选项
在窗口的右上角,具体叫什么我忘了,是个下拉列表框,有两个选项,其中一个就是
使报表输出变为横向的!
 
Wrap属性设为TRUE;
 
QReport.Page.Orientation := poPortrait (纵)
QReport.Page.Orientation := poLandScape (横)
 
我不知道你是指纸横放,还是横向打印,如果是前者crab君和Wind200君都对,如果是后者只要设置横向打印就行了。
 
对不起,我没有说清楚,本人想把库里的表前面一个字段prodno按纵向输出,而另外
两个字段sizeno,quantity按横向输出,其中sizeno为标题,quantity对应输出。
如下所示:sizeno的内容如(tc100,tc101,tc102,...)
prodno tc100 tc101 tc102 ...
aaa 111
bbb 323
ccc 223
;
;
;
 

在QuickRep之前做:
(Table1)结构为: Prodno sizeno quantity
把数据转换为一个临时表:(Table2)
结构为:
prodno A1 A2 A3 A4 ...
//Table1转换为Table2:
var
n:integer;
begin
Table1.first;
n:=0;
while not Table1.eofdo
begin
n:=n+1;
Table2.append;
Table2.fieldByName('prodno').AsString:=
Table1.fieldByName('prodno').AsString ;
Table2.fieldByName('A'+IntToStr(n)).AsInteger:=
Table2.fieldByName('quantity').AsInteger;


Table1.next;
end;
Table2.refresh;
end;

//精华所在是
//Table2.fieldByName('A'+IntToStr(n)).AsInteger:=
//请慢慢体会一下。为什么我定义字段名为A1 A2 A3 ...

转换好表后
在用QuickRep做。估计对你不是难题了吧!

 

黄师傅果然利害!
在下佩服!
真是妙不可言!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
625
import
I
后退
顶部