知识大全 Delphi 7 中使用RAVE报表(三)

Posted 属性

篇首语:不要以为努力只是自己的事,别忘了生命赐给你的春光!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi 7 中使用RAVE报表(三)相关的知识,希望对你有一定的参考价值。

Delphi 7 中使用RAVE报表(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

 前面两篇 向大家介绍了RAVE的组件 从今天开始向大家介绍如何建立报表 首先要感谢li jack等各位朋友给我发的电子邮件 鼓励我继续写下去 今天也查了一下RAVE一词的意思   RAVE在辞典上的翻译为 咆哮 rave up喧闹的宴会 狂欢聚会 我们经常也听到锐舞派对 也就是RAVE PARTY   要对Rave文化追根溯源其实不太容易 并非是因为其无从追溯 恰恰相反 正因为它涵盖的面太广 根基太深 所以反而让人有些无从入手 从远的来说 Rave与各块大陆上土著部落的祭典仪式有着相当的渊源 因为这些祭典通常也是通过音乐与紧密的鼓点而使人进入某种超验状态 从近的来说 Rave又与 年代的嬉皮文化与迷幻实验有着密不可分的关系 两代年轻人除了装扮不同 许多心理状态与行为方式其实都有值得注意的相似之处   真正当代的将新式音乐与舞曲相结合的Rave运动起源于英国 多年前 Rave首先出现在曼彻斯特和伊比沙岛(英国著名度假胜地) 年末及 年初 两个并无关系的团体 Schoom和Genesis P开始在英国组织彻夜的舞会 前者是以house音乐为主 而后者以hardcore为主 与此同时 Rave在德国登陆 在柏林等大城市很受欢迎 很快 Rave在英德两地吸引了数以万计的青少年 更吸引了许多来自美国的DJ

  现在Rave已经是欧 美 日 甚至港台最时兴 最UNDERGROUND的一种青少年娱乐形式 Rave 文化从一开始便被打上了高科技的烙印 从急速疯狂的前卫电子舞曲 新奇剌激的影像视觉 到Sharp得眼花缭乱的装束 Rave与E Life 已经成为科技对青年文化影响的见证   当然我也不知道为什么Nevrona公司把这个报表组件叫做rave 也许和锐舞有着一定的关系吧 就像java咖啡

  一 建立一张简单的报表

  言归正传 我们开始建立一张简单的报表 打开Delphi 新建一个工程 打开Tools下的Rave Designer 在Rave 设计器的page 中 拖放Text 我们在text属性中写入文字内容 例如 我的第一张报表 通过Font属性更改字体和字的大小 颜色等 拖放Memo组件 在text属性中输入文字可以看到一个多行的文本 拖放Bitmap组件 在FileLink属性中选取插入图片的位置 就可以看到在报表中显示了一张图片

  点击[Execute Report]或者F 则查看到运行后报表

  接下来 对在可视环境中设计好的报表保存 可视化的报表就保存为* rav文件 那么在delphi程序中如何调用呢?在delphi中拖放RvProject RvSystem组件 并且把RvProject的Engine属性连接为RvSystem RvProject 的ProjectFile属性 选择为我们刚才保存的 rav文件 再在form 上放置一个Button 添加click 事件 代码如下

procedure TForm Button Click(Sender: TObject);

begin

RvProject Execute ; //或者 RvProject ExecuteReport( Report );

end;

  运行程序 点击按钮 就可以看到我们想要的报表了 您可能注意到 打印设置 报表预览的窗体都是英文的 如何使它显示中文我们在以后会介绍 不过我们刚才在窗体中放入了RvSystem组件 有TitlePreview TitleSetup TitleStatus三个属性 更改后可以看到我们窗体的标题栏显示的是您所希望显示的中文标题 RvSystem组件有很多我们需要的属性 将SystemPrinter的Orientation属性设置为poLandScape 则报表显示为横向的 将SystemPreview 的FormStatus属性设置为wsMaximized则报表预览的窗体最大化显示

  好了 这样我们就完成了一张简单的报表

  二 利用程序设计一张报表

  上面向大家介绍了建立一张简单报表的过程 下面向大家介绍rave报表代码编程实例 窗体上放置组件 RvSystem Button即可

具体代码如下

unit Unit ;

interface

uses

Windows Messages SysUtils Variants Classes Graphics Controls Forms

Dialogs StdCtrls RpDefine RpBase RpSystem;

type

TForm = class(TForm)

RvSystem : TRvSystem;

Button : TButton;

procedure RvSystem Print(Sender: TObject);

procedure Button Click(Sender: TObject);

private

Private declarations

public

Public declarations

end;

var

Form : TForm ;

implementation

$R * dfm

procedure TForm RvSystem Print(Sender: TObject);

var

I : integer;

S : string[ ];

S : string[ ];

Bitmap: TBitmap;

PolyLineArr: array[ ] of TPoint;

begin

with Sender as TBaseReport do begin

打印表头和表尾

SectionTop := ; //顶端

SetFont( 黑体 ); //设置字体

Underline := true; //下划线

Home;

YPos := ;

FontRotation := ;//旋转角度

PrintCenter( 我的报表 PageWidth / );

SetFont( 宋体 );

SectionBottom := ;

PrintFooter( 第 + IntToStr(CurrentPage) + 页 pjLeft); //页码

PrintFooter( 日期: +DateToStr(Date)+ pjRight); //日期

SectionBottom := ;

YPos := ;

SetFont( 宋体 );

SetTopOfPage;

Home;

打印列标题

ClearTabs;

SetPen(clBlack psSolid pmCopy); 设置画笔为一个点宽

SetTab( pjCenter BOXLINEALL );

SetTab(NA pjCenter BOXLINEALL );

SetTab(NA pjCenter BOXLINEALL );

SetTab(NA pjCenter BOXLINEALL );

Bold := true;

Tab( NA NA); 画出具有粗边框的表格

Print( Name );

Tab(NA NA NA);

Print( Number );

Tab(NA NA NA);

Print( Amount );

Tab(NA NA);

Println( Amount );

Bold := false;

打印具有边框的数据

ClearTabs;

SetTab( pjLeft BOXLINEALL );

SetTab(NA pjCenter BOXLINEALL );

SetTab(NA pjRight BOXLINEALL );

SetTab(NA pjRight BOXLINEALL );

for I := to do begin

Str(I * : : S );

Str(I * : : S );

Print(# LastName + IntToStr(I ) + );

SetFont( Times New Roman );

Print( FirstName M );

SetFont( Times New Roman );

Println(# + IntToStr(I ) + # $ + S + # $ + S );

end; for

打印具有阴影的数据

ClearTabs;

SetTab( pjLeft BOXLINENONE );

SetTab(NA pjCenter BOXLINENONE );

SetTab(NA pjRight BOXLINENONE );

SetTab(NA pjRight BOXLINENONE );

for I := to do begin

If Odd(I ) then begin

TabShade := ;

end else begin

TabShade := ;

end; else

Str(I * : : S );

Str(I * : : S );

Print(# LastName + IntToStr(I ) + );

SetFont( Times New Roman );

Print( FirstName M );

SetFont( Times New Roman );

Println(# + IntToStr(I ) + # $ + S + # $ + S );

end; for

ClearTabs;

分栏报表

ClearTabs;

SetTopOfPage;

SectionBottom := ;

Home;

SetFont( 宋体 );

Bold := true;

Underline := true;

Print( 分栏报表 (LinesLeft/ColumnLinesLeft/LineNum/ColumnNum) );

SetTopOfPage; Set top of page to current YPos

Bold := false;

Underline := false;

Italic := false;

Home; Goto home position

SetColumns( ); Create columns with beeen each

while ColumnLinesLeft > do begin

Println(IntToStr(LinesLeft) + / + IntToStr(ColumnLinesLeft) + / +

IntToStr(LineNum) + / + IntToStr(ColumnNum));

end; while

具有边框的分栏报表

ClearTabs;

SetTopOfPage;

SectionBottom := ;

Home;

SetFont( Times New Roman );

Bold := true;

Italic := true;

Print( Boxed Columns );

SetTopOfPage; Set top of page to current YPos

Bold := false;

Italic := false;

Home; Goto home position

ClearTabs;

SetPen(clBlack psSolid pmCopy);

SetTab( pjCenter BOXLINEALL );

SetTab(NA pjCenter BOXLINEALL );

SetTab(NA pjCenter BOXLINEALL );

SetTab(NA pjCenter BOXLINEALL );

SetColumns( ); Create columns with beeen each

while ColumnLinesLeft > do begin

if LineNum = then begin

TabShade := ;

Println(# LL # CLL # L# # C# ); 打印标题栏

end else begin

TabShade := ;

Println(# + IntToStr(LinesLeft) + # + IntToStr(ColumnLinesLeft) +

# + IntToStr(LineNum) + # + IntToStr(ColumnNum));

end; else

end; while

SetColumns( );

在指定位置绘出文本

NewPage;

OriginX := ; Set origin to normal

OriginY := ;

GotoXY( );

Print( Text @ );

GotoXY( );

Println( Text @ );

GotoXY( );

Println( Text @ );

GotoXY( );

Println( Text @ );

*** 图形 图片***

NewPage;

ResetSection;

SetFont( Arial );

Underline := true;

Home;

PrintCenter( Graphics Page Demo PageWidth / );

SetFont( Times New Roman );

SectionBottom := ; Temporarily move the section bottom down

PrintFooter( Page + IntToStr(CurrentPage) pjLeft);

PrintFooter( Date / / pjRight);

SectionBottom := ; Reset section bottom

OriginX := ;

OriginY := ;

SetFont( Arial );

半圆 弧线

SetPen(clBlack psSolid pmCopy); Set pen to black / ths wide

YPos := ;

PrintCenter( Arc() and Chord() );

Arc( );

SetBrush(clBlack bsClear nil);

Chord( );

饼图

YPos := ;

PrintCenter( Pie() );

SetPen(clBlack psSolid pmCopy); Set pen to black / ths wide

SetBrush(clBlack bsHorizontal nil);

Pie( );

SetBrush(clBlack bsVertical nil);

Pie( );

SetBrush(clBlack bsBDiagonal nil);

Pie( );

Bitmap 图片

YPos := ;

PrintCenter( PaintBitmapRect() );

Bitmap := TBitmap Create;

Bitmap LoadFromFile( RPDEMO BMP );

PrintBitmapRect( Bitmap);

Bitmap Free;

end;

end;

procedure TForm Button Click(Sender: TObject);

begin

RvSystem Execute; //执行报表!

end;

end

cha138/Article/program/Delphi/201311/24724

相关参考

知识大全 Delphi 7 中使用RAVE报表(四)

Delphi7中使用RAVE报表(四)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一新建一个数

知识大全 Delphi 7 中使用RAVE报表(五)

Delphi7中使用RAVE报表(五)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Delph

知识大全 Delphi 7 中使用RAVE报表(一)

Delphi7中使用RAVE报表(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!最近刚刚做完一

知识大全 Delphi 7 中使用RAVE报表(二)

Delphi7中使用RAVE报表(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!隔了好长时间终

知识大全 Delphi7中使用RAVE报表

Delphi7中使用RAVE报表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!最近刚刚做完一个项目

知识大全 初识Rave

初识Rave  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  初识Rave  其实在Delphi发

知识大全 Delphi水晶报表打包解决

Delphi水晶报表打包解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!开发环境        

知识大全 用Delphi实现自己的Excel报表

用Delphi实现自己的Excel报表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Excel是

知识大全 经典案例 财务管理系统(7)[4]

    ——此文章摘自《Delphi数据库开发经典案例解析》定价¥ 特价¥ 购买>>  //资产负债报表的生成和打印  procedureTmain

知识大全 Delphi字符串列表及应用(三)

Delphi字符串列表及应用(三)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  往字符串列表中