问题: fastreport不满一页用空行代替的问题 ( 积分: 30 )
分类: 报表/统计图形
来自: a-ming, 时间: 2005-06-26 16:28:00, ID: 3114456
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
while freespace>child1.heightdo
showband(child1);
end;
如上过程中,我想在未满一页时打印空行,想预览,却说“标识符未宣告:'freespace'?若在上面的过程中只用showband(child1)一句,却告知“标识符未宣告:'showband'?我用的是fastreport3.03中文版。谁能帮我解决未满一页时打印空行呀?
来自: n@p, 时间: 2005-06-26 20:19:24, ID: 3114631
用 insert new band 后选report summary不就得了,不用编程
来自: zxy666666, 时间: 2005-06-27 10:39:08, ID: 3114943
showband(child1);
試改為: Engine.ShowBand(Child1);
var
PageLine: integer;
//在現在頁列印到第幾行
PageMaxRow: integer=15;
//設定每頁列數
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
PageLine := <line> mod PageMaxRow;
if (PageLine = 1) and (<line> > 1) then
Engine.newpage;
end;
//Footer1高度設為0
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
var
i: integer;
begin
i := iif(PageLine=0, PageMaxRow, PageLine);
while i < PageMaxRowdo
begin
i := i + 1;
Engine.ShowBand(Child1);
//印空白表格
end;
end;
begin
end.
来自: a-ming, 时间: 2005-06-27 20:26:34, ID: 3115994
to:n@p
能否说清楚点?
来自: leadyli, 时间: 2005-06-27 20:48:16, ID: 3116011
while Engine.freespace>child1.heightdo
Engine.showband(child1);
来自: a-ming, 时间: 2005-06-28 19:07:19, ID: 3117185
to:zxy666666:
你的也不行呀。
to:leadyli:
用你这每页打一行后,剩下的都打空行,而不是最后一页才打空行。
来自: leadyli, 时间: 2005-06-29 12:01:38, ID: 3117925
你是不是限制了每頁只打一行???
来自: liwfeng, 时间: 2005-06-29 13:38:19, ID: 3118063
zxy666666..的方法是可以的..前几天..我也遇到这个问题...现在解决了..
来自:do
s1234, 时间: 2005-06-29 16:53:37, ID: 3118411
20. 每页固定行数
报表要求每页固定行数,最后一页不足要自动填空白行,每页在数据后就是本页合计和本期合计
1> 在FastReport里定义一个变量i
2> 在ReportBand的(OnBeforePrint)里初始化i
3> 在主数据band的(OnBeforePrint)里i:=i+1;
4> 然后添加分组头,分组条件为[INT([/20])]
不要用[LINETHROUGH#]代替i,也许是bug
5> 然后添加分组尾里(OnBeforePrint)
i:=[i MOD 20];
While (i<20) and (i>0)do
begin
ShowBand(Child1);
//Child1是一个子Band,里面放自动填充行或格子
i:=i+1;
End
来自: a-ming, 时间: 2005-06-29 20:12:28, ID: 3118596
问题是我不想固定行数,就是在最后一页未满时打印空行。
来自: leadyli, 时间: 2005-07-02 8:26:51, ID: 3121502
沒說清楚。應該是這樣的:
放一個Footer,設置它的Visible為False;再放一個Child,畫上你要的空格。
然后在Footer的BeforePrint事件中:
while Engine.freespace>child1.heightdo
Engine.showband(child1);
来自: kaida, 时间: 2005-07-02 8:39:16, ID: 3121509
在[red]Masterfooter[/red]的OnbeforePrint中键入:
begin
while FreeSpace > 20do
ShowBand(Child1)
end;
来自: a-ming, 时间: 2005-07-02 8:46:56, ID: 3121517
谢谢各位!
得分大富翁:do
s1234-5,leadyli-20,zxy666666-5,