关于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.   

    FastReport很少用呀
    我在網上找了下代碼, 好像你的都沒錯呀. 
    是不是你的FastReport的版本有問題呀.
      

  2.   

    FreeSpace 写在delphi的代码里(OnBeforePrint)认不出来的。FreeSpace是写在fastreport的band里面的。随便点一个band,按ctrl + 回车,就会打开编辑fastreport的代码编辑框了。///不是无人能回答,是人家高手先在都懒得回答问题了。
      

  3.   

    这里是我的一个实例:begin
     while freespace>18 do
         showband(child1);
      PageFooter1.height:=PageFooter1.height+freespace;
    end
      

  4.   

    这个问题我可能可以帮你!
    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,测试通过,高版本应该也可以,你试试!
      

  5.   

    标题比较大a
    你用是的哪个版本?
    1.如何动态取得MemoView的Value?
    //不明白你要取什么值,数据带上的值是变化的,而且是你通过dataset赋的,为什么要再从报表中取值?如果只是要在报表中用,也应该写在fastreport的band里面的OnBeforePrint2.
    第二个问题好象也是这样:也应该写在fastreport的band里面的OnBeforePrint
      

  6.   

    我用的版本是最新版本3.18.
    1.在QuickReport中, 很容易就可以取得QRDBText的Value, 在OnPrint就有Value这个参数,
      但在FastReport里就不知怎样取了.2.我是想在每页打印固定行数, 如果数据不夠则用空行补夠, 
      把代码改成以下就可以编绎通过, 但还不能实现我想要的效果,
      顺序变乱了, 变成:
      数据
      空行
      空行
      .
      .
      .
      数据
    procedure Footer1OnBeforePrint(Sender: TfrxComponent);
    begin
      while Engine.FreeSpace > 30 do
      begin
        Engine.ShowBand(Child1);
      end;
    end;