各位大侠,我照抄fastreport 的例程
但出现这样的错误
undeclared identifer "c"
程序片段如下:
请指点:
procedure Tyyrb.frxReport1BeforePrint(Sender: TfrxReportComponent);
var
  Cross: TfrxCrossView;
  i, j: Integer;
begin
  if c is TfrxCrossView then
  begin
    Cross := TfrxCrossView(c);    adoquery5.First;
    i := 0;
    while not adoquery5.Eof do
    begin
      for j := 0 to adoquery5.Fields.Count - 1 do
        Cross.AddValue([i], [adoquery5.Fields[j].DisplayLabel], [adoquery5.Fields[j].AsString]);      adoquery5.Next;
      Inc(i);
    end;
  end;end;undeclared identifer "c"

解决方案 »

  1.   

    你那个“C”类型没有定义
    看看uses是不是需要引用其他单元
      

  2.   

    这段代码是抄来的吧,你这里的C应该是sender,就是(Sender: TfrxReportComponent)这个参数,改了就ok
      

  3.   

    很明显是抄来的,不重要,重要的是要知道如何去声明C,你在外部传或内部声明一个C变量C:TfrxCrossView即交叉表格类型变量,,编译就会通过了,至于是不是想要的效果就看你的C变量是传还是怎么搞了..
      

  4.   

    procedure Tyyrb.frxReport1BeforePrint(Sender: TfrxReportComponent); procedure Tyyrb.frxReport1BeforePrint(C: TfrxReportComponent); 其实都是一样的,无论是C还是Sender,这里都是作为传入参数使用一般默认方法都是sender的
      

  5.   

    既然都是一样的,为什么出现这样的错误 
    undeclared identifer "c"?这个东西在哪里声明?请高人赐教!