关于报表界面的问题,那位高手帮帮忙,谢谢(50分)

  • 主题发起人 asjjjkkk
  • 开始时间
A

asjjjkkk

Unregistered / Unconfirmed
GUEST, unregistred user!
我原来提过这个问题。
我的问题是这样的:我用的是delphi里的Qreport控件做的报表,其中在QRband 的类型是Detail型的数据区,想实现下面的报表形式
类别 单位名称 中餐费用 后勤费用 出差费用
机械类 |化工厂 | 30000 | 40000 | 50000
|________|___________|_________|_______
|机械厂 | 45000 | 56000 | 34999
|________|___________|_________|_______
|钢铁厂 | 45454 | 45456 | 56000
________|________|___________|_________|_______
商业类 |音像店 | 40000 | 50000 | 34000
|________|___________|_________|_______
|水果店 | 45000 | 45000 | 34000
|________|___________|_________|_______
|鲜花店 | 34000 | 34000 | 23000
________|________|___________|_________|_______
对于单位名称,中餐费用,后勤费用,出差费用这几个字段我用"select 单位名称,中餐费用,后勤费用,出差费用 from tablename "就能选出来
可是对应《类别》里的《机械类》和《商业类》就不知道怎么放进去。
后来delphiland帮我解决了这个问题,他是这样说的:
你是要不重复打印 机械类、商业类 吧,
定义一个 Private 变量:
OldValue:String;
然后放一个QrDBText连到类别字段
在其OnPrint 事件写:
if Value<>OldValue then

begin
OldValue:=Value;
end
else
Value:='';
我的数据问题解决了,数据打印出来了,可是报表变成了这个样子:
类别 单位名称 中餐费用 后勤费用 出差费用
机械类 |化工厂 | 30000 | 40000 | 50000
|________|___________|_________|_______
|机械厂 | 45000 | 56000 | 34999
|________|___________|_________|_______
|钢铁厂 | 45454 | 45456 | 56000
|________|___________|_________|_______
商业类 |音像店 | 40000 | 50000 | 34000
|________|___________|_________|_______
|水果店 | 45000 | 45000 | 34000
|________|___________|_________|_______
|鲜花店 | 34000 | 34000 | 23000
|________|___________|_________|_______
请教那位高手知道《机械类》和《商业类》下面的横线怎么能弄出来,谢谢,我是个新手拜托大家了
 
if Value<>OldValue then

begin
tt := '________';
OldValue:=Value;
end
else
begin
Value:='';
tt := '';
end;
tt为打印的横线
 
不行我试过,报表就变成了这个样子
类别 单位名称 中餐费用 后勤费用 出差费用
机械类 |化工厂 | 30000 | 40000 | 50000
________|________|___________|_________|_______
|机械厂 | 45000 | 56000 | 34999
|________|___________|_________|_______
|钢铁厂 | 45454 | 45456 | 56000
|________|___________|_________|_______
商业类 |音像店 | 40000 | 50000 | 34000
________|________|___________|_________|_______
|水果店 | 45000 | 45000 | 34000
|________|___________|_________|_______
|鲜花店 | 34000 | 34000 | 23000
|________|___________|_________|_______
 
用fastreport。
 
不行呀,现在只能用delphi里的Qreport控件做。各位高手还有什么办法?我好急呀,如果谁把问题解决了,我在加50分!谢谢
 
設置QRLabel1.Frame.DrawBottom :=True;
 
不好意思,不知道QRLabel1放在哪里,是放在数据区里吗?放在里面怎么会起作用?
 
建议你放一个QrShape,设成水平线,高度为1,放在连到类别字段QrDBText的上面,也在DetailBand
然后同样在那个事件中写
if Value<>OldValue then

begin
OldValue:=Value;
QrShape.Enable:=True;
end
else
begin
Value:='';
QrShape.Enable:=False;
end;
应该可以,你试试
 
这个方法我昨天就试过了,结果就会搞成图二的样子,你看是不是:(
 
留下你的Email,我发例子给你吧
 
好的,谢谢
jjjkkk123@263.sina.com
 
忠心感谢delphiland,问题解决了,谢谢你在节日里忙着帮我解决问题!
 
顶部