如何能生成这样特殊的报表形式 ( 积分: 200 )

  • 主题发起人 主题发起人 kid
  • 开始时间 开始时间
K

kid

Unregistered / Unconfirmed
GUEST, unregistred user!
报表形式大致如下:
姓名:Name004 | 姓名:Name003
------------------+------------------
姓名:Name005 | 姓名:Name002
------------------+------------------
姓名:Name006 | 姓名:Name001
第1页
姓名:Name010 | 姓名:Name009
------------------+------------------
姓名:Name011 | 姓名:Name008
------------------+------------------
姓名:Name012 | 姓名:Name007
第2页
它的格式比较特殊,数据排列方式是从右下->右上->左上->左下,形成两栏。
用什么报表控件可以生成这样的报表,如何做?
 
报表形式大致如下:
姓名:Name004 | 姓名:Name003
------------------+------------------
姓名:Name005 | 姓名:Name002
------------------+------------------
姓名:Name006 | 姓名:Name001
第1页
姓名:Name010 | 姓名:Name009
------------------+------------------
姓名:Name011 | 姓名:Name008
------------------+------------------
姓名:Name012 | 姓名:Name007
第2页
它的格式比较特殊,数据排列方式是从右下->右上->左上->左下,形成两栏。
用什么报表控件可以生成这样的报表,如何做?
 
还真稀奇,做几年软件还头一次见这种需求的。跟平时的分栏打印刚好相反。
 
做一个临时数据库,让数据是按照这样的方式排序。
或者使用SQL语句时按照你这样的方式排序,接下来
你就可以使用任何一种报工具实现了。
 
哈哈﹐杜撰的吧?在onneed?里寫數據吧﹐用二個查詢語句﹐
adoquery1定位到name004-->next
adoquery2定位到name003-->poior就行了。
第二頁重新計算﹐也很簡單﹐
 
絕對行﹐絕對簡單﹐在quickrep1的onneeddata里寫(具體寫查一下)
adoquery1定位到name004-->next
adoquery2定位到name003-->prior就行了。
adoquery2也可降序next.
第二頁簡單重新計算一下﹐
思路就這樣。
等著領分了。
 
to hhmyz:能不能详细说明一下,写个例子代码。对QuickRep控件我不熟悉,您上面用了两个adoquery,是不是也要两个quickrep,并且还要用个什么合并的控件??
 
quickrep里的onneeddata是用來手動寫報表用的﹐此時不用要求與
adoquery關聯。Qrband設為rbdetail,上放qrlabel給其賦值即可。
with bpcsdm.CDSqrytemp1do
begin
if not eof then
begin
qrlabel1.Caption:=fieldbyname('m_cycle').AsString;
qrlabel2.Caption:=fieldbyname('m_special').AsString;
next;
end;
if eof then
begin
moredata:=false;
first;
end
else
moredata:=true;
end;
有多個adoquery一樣的處理方法﹐如同你寫程序一樣。
 
楼上的,难道你不用考虑一页打印多少行吗?
这个必须事先知道,不然,怎么搞?
 
只需将文字角度倒转,就跟平时报表一样啦。。
FR 3.18、RM 等 都有文字角度可调的。
 
Grid++Report可以,设多栏报表,打印方向可以设定:先上到下后左到右 || 先左到右后上到下。去 http://www.rubylong.cn 下载。
 
自由界面和报表的完美解决方案!
http://www.anylib.com
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部