Rave报表使用求助 Raves Reports中新建Report1,在Page1上添加Datatext1,添加database connection是ADO连接并选择数据库,添加DriverDataView1并设置FieldName属性为字段“桥梁名称”,将Datatext1的DataView设置为DriverDataView1,DataField属性设置为桥梁名称后按F9运行,但是生成报表只能显示第一条记录,怎样能显示全部记录呢,请高手教教,多谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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.Pagesend;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; 這裡有教程下載: http://download.csdn.net/source/1029885 向大家推荐一个用DELPHI6开发的简单实用的远程控制软件: 学友远程助手 连表查询更新数据的问题? 生產排程中的進度圖(柏柆圖吧)用什么控件可以實現?給例子 有关idftp的问题求高手解答 求相片处理控减!!!!!!!!!! quickrep问题 请问有没有人做过, 在DELPHI的设计期能够把FORM上的actionlist中的action的信息写到数据库中. 想问一下,从TControls类继承下来的类如何添加“OnMouseDown”等标准事件? 问个TreeView的问题 指针释放问题! QQ截图静止桌面 DELPHI 2011(XE)发现的问题
{ 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;