求助啊···Delphi2009下如何调用水晶报表?网上都找不到相关资料啊·老板一定要用水晶报表啊···有人会吗???

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Crpe1.ReportName := 'C:\your report.rpt';
      Crpe1.Execute;
    end;
    ·将TADODataSet的Connection属性设置为TADOConnection(ADOConnection1)。
    ·将TcrpeDS的DataSet属性设置为TADODataSet(ADODataSet1)。
    ·代码实现:
        Crpe1.Tables[0].DataPointer := CrpeDS1.DataPointer;
        Crpe1.Refresh;
        Crpe1.Execute; 
    TclientDataSet的使用方法,为什么要使用TclientDataSet呢?因为我们一方面不想使程序需要第三方数据库引擎,另一方面想提高速度的时候,就可以考虑使用TclientDataSet,这样我们可以把数据写入TclientDataSet所建立的表临时表中,完全在内存中使用,当然也可以保存,写入文件。
    同上面的道理,我们首先需要利用TclientDataSet来建立表,然后将数据写入TclientDataSet建立的表中:
    ·创建表,进行初始化
    table: TclientDataSet;
    table := TClientDataset.Create(Application);
    ·添加字段定义
    table.FieldDefs.Add('ID', ftInteger, 0, False);
    table.FieldDefs.Add('Status', ftString, 10, False);
    table.FieldDefs.Add('Created', ftDate, 0, False);
    table.FieldDefs.Add('Volume', ftFloat, 0, False);·创建数据集
    table.CreateDataset;
    ·打开数据集
    table.Open;·加入数据(加入数据的方法比较多,参考TclientDataSet的使用方法)
      for i := 1 to 100 do
      begin
        table.Append;
        table.FieldByName('ID').AsInteger := i;
        table.FieldByName('Status').AsString := 'Code'+IntToStr(i);
        table.FieldByName('Created').AsDateTime := Date();
        table.FieldByName('Volume').AsFloat := Random(10000);
        table.Post;
      end;
    ·加入索引
    table.IndexFieldNames := 'Created';
       ·可以将内存中的数据写入文件
    table.SaveToFile('c:\mem.cds');
    table.LoadFromFile('c:\mem.cds');·使用过滤条件
    table.Filtered := True;
    table.Filer := ‘test’;·显示报表代码
    CrpeDS1.DataSet := table
    Crpe1.Tables[0].DataPointer := CrpeDS1.DataPointer;
        Crpe1.Refresh;
        Crpe1.Execute; 4、处理中遇到的问题
    在利用Crystal Report VCL来编写我们的程序的过程中总会遇到这样那样的问题。
    例如显示的报表中有超链接,但不能够正常使用,是因为Crystal Report 中drill down event设置为False,需要代码中设置为True,就可以正常使用了。
    with Crpe1.WindowButtonBar do 
    begin 
    Visible := True; 
    AllowDrillDown := True; 
    CancelBtn := False; 
    ToolbarTips := True; 
    end; 
    crpe1.execute
      

  2.   

    2楼是delphi7的用法吧,2009装不上报表控件啊·····
      

  3.   

    顶上去·继续求助ing