请各位帮帮忙(100分)

  • 主题发起人 主题发起人 remag_rui
  • 开始时间 开始时间
R

remag_rui

Unregistered / Unconfirmed
GUEST, unregistred user!
在报表输出时如何做到在grid中相同内容的列只显示最前一格的内容。
例如:
----------------------------
时间 | 库号 |.....
----------------------------
2002-2-2 | 1 |.....
----------------------------
| 2 |.....
----------------------------
| 3 |.....
----------------------------
2002-2-3 | 1 |.....
----------------------------
 
这个需要写程序来控制,比如用两个QUERY,第一个取时间,第二个取其他字段数据。
query1.close;
query1.sql.clear;
query1.sql.add('select distinct 时间 from 表名');
query2.close;
query2.sql.clear;
query2.sql.add('select * from 表名 where 时间=:sj');
query1.open;
while not query1.eofdo
begin
query2.close;
query2.parambyname('sj').asstring:=query1.fields[0].asstring;
query2.open;
//在这里处理显示
query1.next;
 
查出数据后再使不用的数据设为null
 
如果用fastreport那么可以用变量实现
设一个全局变量,保存日期第一次显示,以后遇到不同的显示,负责置空
应该可以
 
设置一个全局变量aDate:String;在Form的OnCreate事件中:
aDate:='';
假如QRDBtext1显示日期,QRDBtext2,在QRDBText1的OnPrint事件中:
begin
if Value<>aDate then
aDate:=Value
else
Value:='';
end;
 
多人接受答案了。
 
后退
顶部