报表问题,各位大哥救命!(50分)

  • 主题发起人 龙骑士2002
  • 开始时间

龙骑士2002

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟想问一个菜鸟问题,大家不要笑。
table1: time_id time_desc
1 null
2 2003-03-05 17:00:20
3 2003-03-06 18:00:00
小弟想实现在报表显示中显示这个table1
但是如果time_desc是null ,则显示为 '',
如果 time_desc 不为null,则显示为 时间如 17:00:20

我用QRExpr来显示,设置QRExpr1.expression=RightStr(Adoquery1.fieldbyname(time_desc).asstring,8)
但是显示的结果有问题,出现这个结果
1 ‘’
2 ‘’
3 ‘’
而本来应该得到
1 ‘’
2 17:00:20
3 18:00:00
才正确,大家帮帮手了

 
time_desc是字符型的还是datetime型的
 
全部都是字符型的
 
用一个qrlabel就行了,在onprint里写
if not Adoquery1.fieldbyname(time_desc).isnull then
qrlabel1.text:=copy(Adoquery1.fieldbyname(time_desc).asstring,Length(Adoquery1.fieldbyname(time_desc).asstring)-7,8);
 
试过了,不行的,兄弟。无法在报表中动态的随记录变幻QRLabel1的值
 
一定可以,除非qrlabel没放在detail band上
 
我觉得TQrlabel那能在报表中象TQRDBtext那样动态变化显示数据库的数据
 
你的Quickrep的dataset设成adoquery1了吗
 
用QRTEXT在ONPRINT事件写:
if not Adoquery1.fieldbyname(time_desc).isnull then
Value:=copy(value,12,8);
 
统一楼上
 
zm30大哥,真的不行呀,我已经设了Quickrep的dataset设成adoquery1
而且你的程序中的qrlabel1.text有误
qrlabel1.text没有text这个属性,我换成了
qrlabel1.caption也是不行的,你可以试试
一个qrlabel就行了,在onprint
if not Adoquery1.fieldbyname('start_time').isnull then
QRLabel1.caption:='123'
else
QRLabel1.caption:='@@@';
 
Sorry,应该是
if not Adoquery1.fieldbyname('start_time').isnull then
Value:='123'
else
Value:='@@@';
 
感谢大家的捧场,正如大家所说的,问题解决,分已经送出
 

Similar threads

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