如何在报表中显示数据序号(50分)

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

lovewei

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的,我的报表从数据库中取得数据,并进行分组统计。现在我想在表的第一列中加上序号
序号 姓名 金额
1 甲
2 100
3 200
4 小计 300
5 丙
6 600
7 200
8 小计 800
9 合计 1100
 
如果用的是QuickRep
可以首先设置一个全局变量I初始值为0,在DetailBand放一个QRLabel1
procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
inc(i);
QRLabel1.Caption := IntToStr(I);
end;
 
我用的是FASTREPORT
 
怎么不见“乙”? :)
把master header band拉宽,以容纳两排memo,或者再加一个masterheader band,先试一下,
不行再告知。
 
不行的话就自己用一个变量来代替吧,每打一行+1就行了。
 
用line#会显示数据序号,可问题是它只会显示分组里的记录,而不会将各分组项加进去。
也就是说上表中甲、丙及小计中的内容加进序号。
TO wujer:
如果用变量写,应该如何写,能说的清楚点吗? 我很菜的
 
[line through#] OK??!!!
 
在query的固定字段中选择你的id字段,在报表中对应好,然后再GetText事件中写:
procedure TYearShootForm.ADOQuery‘你的字段’GetText(Sender: TField;
var Text: String;
DisplayText: Boolean);
begin
if not ADOQuery.IsEmpty then
begin
Text := IntToStr(ADOQuery.RecNo);
end;
end;
 
to giltbook:用[LINE THROUTH#]是这种效果:

1 100
2 200
小计 300

3 200
4 600
小计 800
合计 1100
因为报表中使用了分组和统计功能,使用line# 或 line throuth#会将分组项和数据项分开排序
 
fast report里有個函數:LINE#
 
LINE#,并可设置在不同组间是连续排号还是整体排号。
 
to zjwyyh:
如何设置,能说清楚点吗?
 
在主项数据band(master data)区最左边插入一个矩形对象(memo object),双击该对象弹出对手框中选择"插入表达式(insert expression)->插入变量(insert variant)" 此时弹出的框中右边列出所有fr提供的系统变量。选择 行#(line#) 或 行 through#(line through#) ,点击确定 即是 我上面所提到的组间排号 或 整体排号。
注: 以上括号里为英文版时的选择项名称。
祝 : 成功
 
to zjwyyh:
这个我已经用过了,达不到我要的效果,用line throuth#是这种效果,无法将分组的组头及小计部分包括进去

1 100
2 200
小计 300

3 200
4 600
小计 800
合计 1100
 
当然可以,
加band 的顺序如下:
page header
(此处加表头)
Group header
(此处组头)
Master data
(数据)
Group footer
(组小计)
Master footer
(总计)
page footer
(页码)
没问题,我的一个程序中的报表和你要求的一样。
 
注意,使用之前,数据集一定要按分组字段进行排序。
不然的话.... 呵呵!
 
To: lovewei 老弟 不好意思,上次弄错啦!就象你所说的!
但你想达到的效果是可以达到的。
其实只需在不同的BRAND里写上脚本即可。
参考如下:
1、在report title 中设置全局变量:line_T := 0;
2、在group header 中添加memo1 [line0] begin
line0 := line_T + 1;
line_T := line_T + 1;
end
3、在master data 中添加memo2 [line1] begin
line1 := line_T + 1;
line_T := line_T + 1;
end
4、在group foot 中添加memo3 [line2] begin
line2 := line_T + 1;
line_T := line_T + 1;
end
OK????
 
to GiltBook:
终于做出来那种效果,用您的那种方法。不过在report title我是这样写的:
begin
line_t:=0 end;
其余 的各项如你所说。你查了相关的资料,在fastreportk中各变量都默认为全局变量,因此不需单独定义。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部