关于FastReport的问题
1.如何动态取得MemoView的Value?
procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
if Sender.Name = 'Memo1' then
begin
ShowMessage(TfrxMemoView(Sender).Memo.Text);
end
end;
但显示的是 [frxDBDataset1."FieldName"], 并不是我想取的实际字段值.2.在FastReport设计器放一个childband
然后在(OnBeforePrint)事件中
begin
while FreeSpace > 10 do
ShowBand(Child1)
end
运行时出现 Undeclared identifier:'FreeSpace'
1.如何动态取得MemoView的Value?
procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
if Sender.Name = 'Memo1' then
begin
ShowMessage(TfrxMemoView(Sender).Memo.Text);
end
end;
但显示的是 [frxDBDataset1."FieldName"], 并不是我想取的实际字段值.2.在FastReport设计器放一个childband
然后在(OnBeforePrint)事件中
begin
while FreeSpace > 10 do
ShowBand(Child1)
end
运行时出现 Undeclared identifier:'FreeSpace'
我在網上找了下代碼, 好像你的都沒錯呀.
是不是你的FastReport的版本有問題呀.
while freespace>18 do
showband(child1);
PageFooter1.height:=PageFooter1.height+freespace;
end
1.
FastReport的事例文件中有一个这样的例子,你可以参考一下14.frf,
(1)增加一个过程:
procedure TfWzlydMx.frReport1ObjectClick(View: TfrView);
begin
ShowMessage('Name: ' + View.Name + #13#10 + 'Contents:' + #13#10 +
View.Memo.Text);
end;
(2)在打印之前调用一下
如:
frReport1.OnObjectClick := frReport1ObjectClick;
frReport1.LoadFromFile('reports\YkLyd.frf');
frReport1.ShowReport;2.
在MasterFooter的OnBeforePrint的事件中写
begin
while FreeSpace > 10 do
ShowBand(Child1)
end我用的是FastReport2.46,测试通过,高版本应该也可以,你试试!
你用是的哪个版本?
1.如何动态取得MemoView的Value?
//不明白你要取什么值,数据带上的值是变化的,而且是你通过dataset赋的,为什么要再从报表中取值?如果只是要在报表中用,也应该写在fastreport的band里面的OnBeforePrint2.
第二个问题好象也是这样:也应该写在fastreport的band里面的OnBeforePrint
1.在QuickReport中, 很容易就可以取得QRDBText的Value, 在OnPrint就有Value这个参数,
但在FastReport里就不知怎样取了.2.我是想在每页打印固定行数, 如果数据不夠则用空行补夠,
把代码改成以下就可以编绎通过, 但还不能实现我想要的效果,
顺序变乱了, 变成:
数据
空行
空行
.
.
.
数据
procedure Footer1OnBeforePrint(Sender: TfrxComponent);
begin
while Engine.FreeSpace > 30 do
begin
Engine.ShowBand(Child1);
end;
end;