Raves Reports中新建Report1,在Page1上添加Datatext1,添加database connection是ADO连接并选择数据库,添加DriverDataView1并设置FieldName属性为字段“桥梁名称”,将Datatext1的DataView设置为DriverDataView1,DataField属性设置为桥梁名称后按F9运行,但是生成报表只能显示第一条记录,怎样能显示全部记录呢,请高手教教,多谢

解决方案 »

  1.   

    implementation
    { ReportClass }function ReportClass.AddBitmap(parent: TRavecomponent;aBitmap:TBitmap;Top,Left,width,Height:Single): TRaveBitmap;
    var
      RVBmp:TRaveBitmap;
    begin
        if Parent=nil then Parent:=FRpPage;
        RVBmp:=TRaveBitmap.Create(parent);
        RVBmp.Name:=GetCtrlName(TRaveBitmap);
        RVBmp.Parent:=parent;
        RVBmp.Top:=Top;
        RVBmp.Left:=Left;
        if Assigned(aBitmap) then
        begin
            RVBmp.Image.Assign(aBitmap);
        end;
        Result:=RVBmp;
    end;function ReportClass.AddDataBind(RvRegion: TRaveRegion; Height:Single;
      DataViewID: Integer): TRaveDataBand;
    var
      RvDataBand:TRaveDataBand;
    begin
        RvDataBand:=TRaveDataBand.Create(RvRegion);
        RvDataBand.Name:=GetCtrlName(TRaveDataBand);
        RvDataBand.Parent:=RvRegion;
        RvDataBand.Height:=Height;
        RvDataBand.DataView:=TRaveDataView(DataViewList.items[DataViewID]);
        Result:=RvDataBand;
    end;function ReportClass.AddDataCycle(dataViewId: Integer): TRaveDataCycle;
    var
      Cycle:TRaveDataCycle;
    begin
        Cycle:=TRaveDataCycle.Create(FRpPage);
        Cycle.Name:=GetCtrlName(TRaveDataCycle);
        Cycle.Parent:=FRpPage;
        Cycle.DataView:=TRaveDataView(DataViewList.Items[dataViewId]);
        Result:=Cycle;
    end;procedure ReportClass.AddDataSetConnection(DSConn: TRvDataSetConnection);
    var
      RvDataView:TRaveDataView;
      FieldList:TList;
    begin
        FieldList:=TList.Create;
        RvDataView:=RvProject.ProjMan.NewDataObject(TRaveDataView) as TRaveDataView;
        RvDataView.Name:=GetCtrlName(TRaveDataView);
        RvDataView.ConnectionName:=DSConn.Name;
        rvData.CreateFields(RvDataView,nil,nil,true);
        DataViewList.Add(RvDataView);
        FieldList.Free;
    end;function ReportClass.AddDataText(Parent: TRavecomponent;
      DataViewId: Integer; FieldName: CString; Top, Left,width,
      Height: Single;Font:TRaveFont):TRaveDataText;
    var
      RvDataText:TRaveDataText;
    begin
        if Parent=nil then Parent:=FRpPage;
        RvDataText:=TRaveDataText.Create(Parent);
        RvDataText.Name:=GetCtrlName(TRaveDataText);
        RvDataText.Parent:=Parent;
        RvDataText.Top:=Top;
        RvDataText.Left:=Left;
        RvDataText.DataView:=TRaveDataView(DataViewList.Items[DataViewId]);
        RvDataText.DataField:=FieldName;
        if Assigned(Font) then RvDataText.Font.Assign(Font);
        Result:=RvDataText;
    end;function ReportClass.AddRegion(Parent: TRavecomponent; Top, Left, width,
      Height: Single): TRaveRegion;
    var
      RvRegion:TRaveRegion;
    begin
        if Parent=nil then Parent:=FRpPage;
        RvRegion:=TRaveRegion.Create(Parent);
        RvRegion.Name:=GetCtrlName(TRaveRegion);
        RvRegion.Parent:=Parent;
        RvRegion.Top:=Top;
        RvRegion.Left:=Left;
        RvRegion.Width:=Width;
        RvRegion.Height:=Height;
        Result:=RvRegion;
    end;function ReportClass.AddText(Parent:TRavecomponent;aText: CString; Top, Left,width,
      Height: Single;Font:TRaveFont):TRaveText;
    var
      RvText:TRaveText;
    begin
        if Parent=nil then Parent:=FRpPage;
        RvText:=TRaveText.Create(Parent);
        RvText.Name:=GetCtrlName(TRaveText);
        RvText.Parent:=Parent;
        RvText.Top:=Top;
        RvText.Left:=Left;
        RvText.Text:=aText;
        if Assigned(Font) then RvText.Font.Assign(Font);
        Result:=RvText;
    end;constructor ReportClass.Create(AWoner: TComponent);
    begin
        inherited;
        PreViewTop:=10;
        PreViewLeft:=10;
        ClsIndexList:=TStringList.Create;
        DataViewList:=TList.Create ;
        RvProject:=TRvProject.Create(self);
        RvProject.New;
        FReport:=RvProject.ProjMan.FindRaveComponent(ReportName,nil) as TRaveReport;
        FRpPage:=FReport.FirstPage;
        //
        RvNDRWriter:=TRvNDRWriter.Create(self);
        RvNDRWriter.StreamMode:=SMUser;
        RvNDRWriter.Stream:=TMemoryStream.Create ;
        RvRenderPreView:=TRvRenderPreView.Create(self);
        RvRenderPrinter:=TRvRenderPrinter.Create(self);
    end;destructor ReportClass.Destroy;
    begin
        RvRenderPrinter.Free;
        RvNDRWriter.Stream.Free;
        RvNDRWriter.Free;
        RvRenderPreView.Free;
        //
        RvProject.Free;
        DataViewList.Free;
        ClsIndexList.Free;
        inherited;
    end;function ReportClass.GetCtrlName(Cls: TClass): CString;
    var
      idx:Integer;
    begin
        idx:=StrToIntDef(ClsIndexList.Values[cls.ClassName],0);
        Result:=cls.ClassName+inttostr(idx);
        ClsIndexList.Values[cls.ClassName]:=IntToStr(idx+1);
    end;function ReportClass.GetReportName: CString;
    begin
        Result:=RvProject.ReportName;
    end;function ReportClass.PreviewPages: Integer;
    begin
        Result:=RvRenderPreView.Pages
    end;procedure ReportClass.PreView(ScrollBox: TScrollBox);
    begin
        RvProject.Engine:=RvNDRWriter;
        RvProject.Execute;
        RvRenderPreView.ScrollBox:=ScrollBox;
        RvRenderPreView.Render(RvNDRWriter.Stream);
        refreshScollBox;
        RvProject.Engine:=nil;
    end;procedure ReportClass.PreViewfirstPage;
    begin
        RvRenderPreView.RenderPage(0);
        refreshScollBox;
    end;procedure ReportClass.PreView上一页:JSP中Filter的简单应用 ;
    begin
        RvRenderPreView.RenderPage(RvRenderPreView.Pages);
        refreshScollBox;
    end;procedure ReportClass.PreView下一页:Delphi如何控制登陆失败的次数 " href="http://www.pushad.com/Info/13345.Html">Delphi如何控制登陆失败的次数 ;
    begin
        RvRenderPreView.下一页:Delphi如何控制登陆失败的次数 " href="http://www.pushad.com/Info/13345.Html">Delphi如何控制登陆失败的次数 ;
        refreshScollBox;
    end;
      

  2.   

    這裡有教程下載: http://download.csdn.net/source/1029885