delphi7  由于软件里面装了teechart,fastreport不能用,而quickreport太慢。软件里面没有用到数据库,所以我把数据都放在stringgrid里面显示,请问怎么用reportbuilder预览打印,我搞了好久都没有搞出来。请大侠们帮忙,如果有谁用过教教我,本人十分着急。 如果有类似的程序也请发给我瞧瞧。谢谢各位!!

解决方案 »

  1.   

    没用过 reportbuilder,不知道这样行不。
    1、把stringgrid的数据转换成一个临时的表。
    2、用reportbuilder打印临时表。
      

  2.   

    将StringGrid的内容写到临时表
    procedure TForm1.Button1Click(Sender: TObject);
    var
        i,j:integer;
    begin
        for i:=0 to 5 do
            for j:=0 to 5 do
                StringGrid1.Cells[i,j]:=IntToStr((i+1)*(j+1));
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
        i,j:integer;
        ADataSet:TClientDataSet;
    begin
        ADataSet:=TClientDataSet.Create(Self);
        with ADataSet.FieldDefs do
        begin
            for i:=0 to StringGrid1.ColCount-1 do
            begin
                Add('field'+IntToStr(i),ftString,5,False);
            end;
        end;
        ADataSet.CreateDataSet;
        DataSource1.DataSet:=ADAtaSet;
        ADataSet.Open;
        for i:=1 to StringGrid1.RowCount-1 do
        begin
            ADataSet.Insert;
            for j:=0 to StringGrid1.ColCount-1 do
            begin
                ADataSet.FieldByName('field'+IntToStr(j)).AsString:=StringGrid1.Cells[i,j];
            end;
            ADataSet.Post;
        end;
        Application.MessageBox('haha','ha',Mb_OK);////////////////////此处把ADataSet连接到表reportbuilder ,预览及打印.
        ADataSet.Close;
        ADataSet.Free;
    end;