怎么让重复的记录不打印呢?(100分)

  • 主题发起人 主题发起人 hblq69
  • 开始时间 开始时间
H

hblq69

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在quickrep中设置:
如下的记录内容
------------------
a1 b1 50
a2 b2 50
a3 b2 50
------------------------
在打印时打印成
-------------------------
a1 b1 50
a2
a3 b2 100
-------------------------------
 
这不是重复的记录啊
如果是的话(a1,a2,a3不是字段),那么用select distinct ....可以选出不重复的记录嘛
 
在報表事件做看看﹐有點難呀
 
不是重复的记录,是部分字段的值重复,不需要重复打印,是数值结果的需要统计在一起。
 
用报表的自带功能实现比较困难。
 
hanpengshan_00 是比较理想的!!!!
 
在存储过程中用for select读每条记录,与上一条记录比较,不同的则返回上一条记录(指定字段的值可能为原值或累加和),相同则进行累加并使上条记录的指定字段为NULL后再返回,你用什么数据库?
 
定义几个变量就可以了,在每行打印前先比较变量和对应字段的值是不是一样,
相等则qrdbtext.enabled := False ,不等则qrdbtext.enabled := True,
在每行打印后对字段附值.
unit Unit2;
interface
uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, Quickrpt, QRCtrls;
type
TQuickReport2 = class(TQuickRep)
QRBandtitle: TQRBand;
Query1: TQuery;
QRBandDetails: TQRBand;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText1: TQRDBText;
procedure QRBandDetailsBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
procedure QRBandDetailsAfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
private
Sfield1,SField2:String
public
end;

var
QuickReport2: TQuickReport2;
implementation
{$R *.DFM}
procedure TQuickReport2.QRBandDetailsBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
If Sfield1<>QuickReport2.dataset.fieldByname('Field1').asstring then
QRDBText1.enabled :=True
else
QRDBText1.enabled :=False;
If Sfield2<>QuickReport2.dataset.fieldByname('Field2').asstring then
QRDBText2.enabled :=True
else
QRDBText2.enabled :=False;
end;

procedure TQuickReport2.QRBandDetailsAfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
begin
Sfield1:=QuickReport2.dataset.fieldByname('Field1').asstring;
Sfield2:=QuickReport2.dataset.fieldByname('Field2').asstring;
end;

end.
 
你说得不明白,是不是先加入一个query,sql写成:
select 字段名,...,sum(所需统计的字段名) as xxx from 表 group by 字段名
再显示出来
 
我的数据记录是:
-------------------------
技术科 李四 80
技术科 王五 100
车间 张三 90
-------------------------
其实我的打印结果是:
科室 人员 总数
--------------------------------
技术科 李四 180
王五
车间 张三 90
----------------------------------
to:bryanwang 的意见很不错,避免打印重复的内容,就是没有统计结果。
to :jwfy2001
我可以分组和明细进行打印,但客户要求格式的不一样,减少打印重复的内容。
to:labelsoft我的数据库是sql server,你说的我没有明白。
谢谢大家!
 
多人接受答案了。
 
用fastreport 如何实现以上功能?能不能具体点!
 

Similar threads

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