FastReport 报表的横向显示数据内容,希望大师光临指导!该怎么处理
FastReport 报表的横向显示数据内容,希望大师光临指导!!!
各位大师小弟有一个小问题,想请教各位大师,还请各位大师多多帮忙
数据表内容如下:
序号 名称
1 A
2 B
3 C
4 D
5 E
7 G
8 A
9 D
10 DF
希望在报表以如下形式显示
名称 A 序号 1 | 序号2 名称 B
名称 C 序号 3 | 序号4 名称 D
名称 E 序号 5 | 序号7 名称 G
名称 A 序号 8 | 序号9 名称 D
名称 DF 序号 10
希望各位大师指导!!!
------解决方案--------------------
用代码控制,出数据的时候你可以增加一列自增长(id)什么的(目的是让记录成为有序),然后在报表里面用代码控制,设置一变量,判断与数据集里面相同的就按位显示!
如:ID_Num(为自增长id),序号,姓名------是你出的DBDataSet
代码:
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
end;
procedure Memo6OnBeforePrint(Sender: TfrxComponent);
var
i:integer;
begin
if ( <DBDataSet. "ID_Num "> mod 2=1) then
begin
memo6.text:= <DBDataSet. "序号 "> ;
end
end;
procedure Memo8OnBeforePrint(Sender: TfrxComponent);
begin
if (( <Line> -1) mod 2 =1) then
begin
if ( <DBDataSet. "ID_Num "> mod 2=0) then
begin
memo8.text:= <DBDataSet. "序号 "> ;
end
end;
end;
procedure Memo7OnBeforePrint(Sender: TfrxComponent);
begin
if ( <DBDataSet. "ID_Num "> mod 2=1) then
begin
memo7.text:= <DBDataSet. "姓名 "> ;
end
end;
procedure Memo9OnBeforePrint(Sender: TfrxComponent);
begin
if (( <Line> -1) mod 2 =1) then
begin
if ( <DBDataSet. "ID_Num "> mod 2=0) then
begin
memo9.text:= <DBDataSet. "姓名 "> ;
end
end
end;
begin
end.
可以实现你的需求 ,需要对显示行控制一下,就不举例了!
各位大师小弟有一个小问题,想请教各位大师,还请各位大师多多帮忙
数据表内容如下:
序号 名称
1 A
2 B
3 C
4 D
5 E
7 G
8 A
9 D
10 DF
希望在报表以如下形式显示
名称 A 序号 1 | 序号2 名称 B
名称 C 序号 3 | 序号4 名称 D
名称 E 序号 5 | 序号7 名称 G
名称 A 序号 8 | 序号9 名称 D
名称 DF 序号 10
希望各位大师指导!!!
------解决方案--------------------
用代码控制,出数据的时候你可以增加一列自增长(id)什么的(目的是让记录成为有序),然后在报表里面用代码控制,设置一变量,判断与数据集里面相同的就按位显示!
如:ID_Num(为自增长id),序号,姓名------是你出的DBDataSet
代码:
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
end;
procedure Memo6OnBeforePrint(Sender: TfrxComponent);
var
i:integer;
begin
if ( <DBDataSet. "ID_Num "> mod 2=1) then
begin
memo6.text:= <DBDataSet. "序号 "> ;
end
end;
procedure Memo8OnBeforePrint(Sender: TfrxComponent);
begin
if (( <Line> -1) mod 2 =1) then
begin
if ( <DBDataSet. "ID_Num "> mod 2=0) then
begin
memo8.text:= <DBDataSet. "序号 "> ;
end
end;
end;
procedure Memo7OnBeforePrint(Sender: TfrxComponent);
begin
if ( <DBDataSet. "ID_Num "> mod 2=1) then
begin
memo7.text:= <DBDataSet. "姓名 "> ;
end
end;
procedure Memo9OnBeforePrint(Sender: TfrxComponent);
begin
if (( <Line> -1) mod 2 =1) then
begin
if ( <DBDataSet. "ID_Num "> mod 2=0) then
begin
memo9.text:= <DBDataSet. "姓名 "> ;
end
end
end;
begin
end.
可以实现你的需求 ,需要对显示行控制一下,就不举例了!