rave报表打印预览的时候如何直接最大化
发布网友
发布时间:2022-05-12 13:39
我来回答
共1个回答
热心网友
时间:2023-10-09 19:25
怎么样让标题在每一页显示呢?
选到TitleBand,在设置BandStyle在Print Occurrence把New page打勾选中,这样在预览你就会发现,这时生成的报表每一页都会有标题。
当然,我们的报表时用程序调用的,那么我们在delphi中来设计连接数据库的报表。
1.新建工程,在窗体上放置以下组件:RvProject,RvSystem,RvDataSetConnection,ADOConnection,ADOTable,DataSource,Button,DBGrid。设置相应的数据库连接可以看到在DBGrid中显示了数据,具体的设置在这里不进行讲解了,请参考相应的数据库书。RvSystem1的Engine为RvSystem1,RvProjectFile选择保存了的为*.Rav文件。RvDataSetConnection1的DataSet属性设置为:ADOTable1。
2.打开Rave设计器打开*.Rav文件。
3.[File]àNew Data ObjectàDirect Data Viewà选择RvDataSetConnection1,[Finish]看到报表设计导航区的Data View Dictionary增加了DataView1,扩展后可以看到数据字段;
4.利用前例步骤3,同样的方法,进行报表的可视化设计。在可视化设计时,注意看生成的简单数据库代码的组成部分,注意TitleBand,DataBand, Band的属性设置。当然我们也可以不用Report Wizards自动生成也可以自己来根据需要直接做报表。步骤是:
1)添加组件页的Region组件,来描述报表的范围。
2)添加Band,Band, DataBand组件,设置相应的BandStyle 和Dataview属性。
3)在DataBand中添加,DataText选择其Dataview属性和DataFile属性。
4)预览即可,如果不能正常显示,注意查看属性的设置,尤其是Dataview属性,同时可以与Report Wizards自动生成的报表进行对比。
5.添加如下代码:
procere TForm1.Button1Click(Sender: TObject);
begin
RvProject1.Open ;
RvProject1.ExecuteReport('Report1');
RvProject1.Close ;
end;
6.运行后,点击[确定]按钮,既显示报表设置窗体,确定后可以看到你想要得窗体。
关于和数据库连接报表的一些问题:
1)上面的例子是直接从数据库输出的报表,如果要输出的报表是根据用户的条件输出,怎么办?
如果是要根据用户的条件输出相应的报表,使用Query组件,当然要是涉及到存储过程的操作,也是一样的阿。选择相应的数据库访问组件,将RvDataSetConnection的Dataset属性连接到数据库访问组件即可。
2)我在数据库表中的字段是中文的,在Rave中连接数据库,DataView不能显示我的字段,并且提示“DataView1已经存在!” ,怎么办?
出现这样的问题主要是DataView1的name属性不支持中文名,而不能根据数据段名来命名,你将DataView1更改为相应的英文名,更改Fieldname为响应的字段中文,刷新DataView,还会有提示,同样更改name和Fieldname属性,直到你要的字段都更改好为止。
3)默认的报表时竖排的,怎么样才能将页面设置为横向的?
关于页面的设置请注意熟悉RvSystem的属性。
RvSystem1.SystemPrinter.Orientation :=poLandScape; //页面为横向的
RvSystem1.SystemPreview.FormState := wsMaximized; //预览窗体最大化
RvSystem1.SystemPreview.MarginPercent :=3; //报表页面据预览窗体的边距。
当然还有很多的设置TitleSetup,TitleStatus,TitlePreview属性可以将你的报表设置,报表预览的窗体的标题改为你想要的。当然我们最基本的是要改为中文的阿。
详细看参考资料。