RSS
热门关键字:  数据挖掘  人工智能  数据仓库  搜索引擎  数据挖掘导论

Delphi 7 中使用RAVE报表(四)

来源: 作者:unkonwn 时间:2004-12-16 点击:

Delphi 7 中使用RAVE报表(四)

                                                                                                                             ——利用程序设计一张报表 数据挖掘研究院


数据挖掘研究院


   上一篇向大家介绍了建立一张简单报表的过程。这篇文章向大家介绍rave报表代码编程实例。窗体上放置组件:RvSystem Button即可。 数据挖掘研究院

具体代码如下:
##################################################################################

unit Unit1;
数据挖掘研究院

interface 数据挖掘研究院

uses 数据挖掘实验室

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 数据挖掘实验室

  Dialogs, StdCtrls, RpDefine, RpBase, RpSystem;

数据挖掘研究院

type

数据挖掘实验室

  TForm1 = class(TForm)

    RvSystem1: TRvSystem;

    Button1: TButton;

    procedure RvSystem1Print(Sender: TObject); 数据挖掘实验室

    procedure Button1Click(Sender: TObject); 数据挖掘研究院

  private

    { Private declarations } 数据挖掘实验室

  public

    { Public declarations }

  end; 数据挖掘研究院

var 数据挖掘研究院

  Form1: TForm1;

implementation

数据挖掘研究院

{$R *.dfm} 数据挖掘研究院

 

数据挖掘实验室

procedure TForm1.RvSystem1Print(Sender: TObject);

var 数据挖掘研究院

  I1: integer;

数据挖掘研究院

  S1: string[20];

数据挖掘研究院

  S2: string[20];

  Bitmap: TBitmap;

  PolyLineArr: array[1..6] of TPoint; 数据挖掘研究院

begin 数据挖掘研究院

  with Sender as TBaseReport do begin 数据挖掘研究院

  { 打印表头和表尾 } 数据挖掘研究院

  数据挖掘研究院

    SectionTop := 0.75; //顶端 数据挖掘实验室

    SetFont("黑体",26); //设置字体

数据挖掘研究院

    Underline := true; //下划线 数据挖掘研究院

    Home; 数据挖掘实验室

    YPos := 1.0;

数据挖掘研究院

    FontRotation :=20;//旋转角度 数据挖掘研究院

    PrintCenter("我的报表",PageWidth / 2);

    SetFont("宋体",10); 数据挖掘研究院

    SectionBottom := 10.75; 数据挖掘研究院

    PrintFooter("第" + IntToStr(CurrentPage) + "页",pjLeft); //页码 数据挖掘研究院

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

    SectionBottom := 10.5; 数据挖掘研究院

    YPos := 1.5; 数据挖掘实验室

    SetFont("宋体",12); 数据挖掘实验室

    SetTopOfPage; 数据挖掘研究院

    Home; 数据挖掘实验室

  { 打印列标题 } 数据挖掘研究院

    ClearTabs; 数据挖掘研究院

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

数据挖掘实验室

    SetTab(0.5,pjCenter,3.5,0,BOXLINEALL,0);

数据挖掘实验室

    SetTab(NA,pjCenter,1.0,0,BOXLINEALL,0); 数据挖掘研究院

    SetTab(NA,pjCenter,1.5,0,BOXLINEALL,0);

数据挖掘实验室

    SetTab(NA,pjCenter,1.5,0,BOXLINEALL,0);

数据挖掘实验室

    Bold := true;

    Tab(-2,NA,-2,-2,NA); { 画出具有粗边框的表格 } 数据挖掘研究院

    Print("Name");

数据挖掘研究院

    Tab(NA,NA,-2,-2,NA); 数据挖掘研究院

    Print("Number");

    Tab(NA,NA,-2,-2,NA); 数据挖掘研究院

    Print("Amount 1"); 数据挖掘研究院

    Tab(NA,-2,-2,-2,NA); 数据挖掘实验室

    Println("Amount 2");

数据挖掘研究院

Bold := false;

数据挖掘研究院

  { 打印具有边框的数据 }

    ClearTabs; 数据挖掘研究院

    SetTab(0.5,pjLeft,3.5,2,BOXLINEALL,0);

数据挖掘研究院

    SetTab(NA,pjCenter,1.0,2,BOXLINEALL,0);

数据挖掘实验室

    SetTab(NA,pjRight,1.5,2,BOXLINEALL,10); 数据挖掘研究院

    SetTab(NA,pjRight,1.5,2,BOXLINEALL,0); 数据挖掘研究院

    for I1 := 1 to 10 do begin

      Str(I1 * 1.23:2:2,S1);

数据挖掘实验室

      Str(I1 * 98.76:2:2,S2);

      Print(#9"LastName" + IntToStr(I1) + ", "); 数据挖掘研究院

      SetFont("Times New Roman",8); 数据挖掘研究院

      Print("FirstName M.");

数据挖掘研究院

      SetFont("Times New Roman",12);

      Println(#9 + IntToStr(I1) + #9"$" + S1 + #9"$" + S2);

    end; { for }

  { 打印具有阴影的数据 } 数据挖掘研究院

    ClearTabs;

数据挖掘实验室

    SetTab(0.5,pjLeft,3.5,2,BOXLINENONE,0); 数据挖掘研究院

    SetTab(NA,pjCenter,1.0,2,BOXLINENONE,0); 数据挖掘实验室

    SetTab(NA,pjRight,1.5,2,BOXLINENONE,0);

数据挖掘研究院

    SetTab(NA,pjRight,1.5,2,BOXLINENONE,0); 数据挖掘研究院

    for I1 := 11 to 20 do begin

数据挖掘研究院

      If Odd(I1) then begin

数据挖掘研究院

        TabShade := 0;

      end else begin 数据挖掘实验室

        TabShade := 15;

数据挖掘研究院

      end; { else }

数据挖掘研究院

      Str(I1 * 1.23:2:2,S1);

      Str(I1 * 98.76:2:2,S2);

      Print(#9"LastName" + IntToStr(I1) + ", ");

数据挖掘研究院

      SetFont("Times New Roman",8); 数据挖掘研究院

      Print("FirstName M."); 数据挖掘实验室

      SetFont("Times New Roman",12); 数据挖掘研究院

      Println(#9 + IntToStr(I1) + #9"$" + S1 + #9"$" + S2); 数据挖掘研究院

    end; { for }

    ClearTabs;

数据挖掘研究院

  { 分栏报表 } 数据挖掘研究院

    ClearTabs;

    SetTopOfPage; 数据挖掘研究院

    SectionBottom := 8.0;

    Home; 数据挖掘研究院

    SetFont("宋体",12); 数据挖掘研究院

    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(4,0.5); { Create 4 columns with 0.5" between each }

数据挖掘研究院

    while ColumnLinesLeft > 0 do begin

数据挖掘研究院

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

数据挖掘研究院

       IntToStr(LineNum) + "/" + IntToStr(ColumnNum)); 数据挖掘研究院

    end; { while }

  { 具有边框的分栏报表 } 数据挖掘研究院

    ClearTabs; 数据挖掘研究院

    SetTopOfPage; 数据挖掘实验室

    SectionBottom := 10.5; 数据挖掘研究院

    Home;

    SetFont("Times New Roman",12); 数据挖掘研究院

    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,1,pmCopy);

数据挖掘研究院

    SetTab(0.5,pjCenter,0.375,0,BOXLINEALL,0);

    SetTab(NA,pjCenter,0.375,0,BOXLINEALL,0);

数据挖掘实验室

    SetTab(NA,pjCenter,0.375,0,BOXLINEALL,0); 数据挖掘研究院

    SetTab(NA,pjCenter,0.375,0,BOXLINEALL,0);

    SetColumns(4,0.5); { Create 4 columns with 0.5" between each }

    while ColumnLinesLeft > 0 do begin 数据挖掘研究院

      if LineNum = 1 then begin 数据挖掘实验室

        TabShade := 15;

数据挖掘研究院

        Println(#9"LL"#9"CLL"#9"L#"#9"C#"); { 打印标题栏 } 数据挖掘研究院

      end else begin

数据挖掘研究院

        TabShade := 0; 数据挖掘研究院

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

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

数据挖掘研究院

      end; { else } 数据挖掘研究院

    end; { while }

数据挖掘实验室

    SetColumns(1,0); 数据挖掘研究院

  { 在指定位置绘出文本 } 数据挖掘研究院

    NewPage;

数据挖掘实验室

    OriginX := 0.0; { Set origin to normal }

数据挖掘实验室

    OriginY := 0.0; 数据挖掘研究院

    GotoXY(1.0,1.5);

    Print("Text @ 1.0,1.5"); 数据挖掘研究院

    GotoXY(6.0,1.5); 数据挖掘研究院

    Println("Text @ 6.0,1.5"); 数据挖掘研究院

    GotoXY(2.0,2.0);

数据挖掘研究院

    Println("Text @ 2.0,2.0");

数据挖掘研究院

    GotoXY(3.0,2.5); 数据挖掘研究院

    Println("Text @ 3.0,2.5");

  {*** 图形 图片***}

数据挖掘研究院

    NewPage;

数据挖掘研究院

    ResetSection;

数据挖掘研究院

    SetFont("Arial",24);

    Underline := true;

    Home; 数据挖掘研究院

    PrintCenter("Graphics Page Demo",PageWidth / 2);

数据挖掘研究院

    SetFont("Times New Roman",8);

    SectionBottom := 10.75; { Temporarily move the section bottom down } 数据挖掘研究院

    PrintFooter("Page " + IntToStr(CurrentPage),pjLeft);

    PrintFooter("Date 01/20/95",pjRight); 数据挖掘研究院

    SectionBottom := 10.5; { Reset section bottom }

数据挖掘实验室

    OriginX := 0.0; 数据挖掘研究院

    OriginY := 0.5;

    SetFont("Arial",10); 数据挖掘研究院

  { 半圆 弧线} 数据挖掘研究院

    SetPen(clBlack,psSolid,-2,pmCopy); { Set pen to black 2/100ths" wide } 数据挖掘研究院

    YPos := 0.95;

    PrintCenter("Arc() and Chord()",2.125); 数据挖掘研究院

    Arc(1.125,1.0,3.125,3.0,3.125,2.0,0.0,0.0); 数据挖掘研究院

    SetBrush(clBlack,bsClear,nil);

    Chord(1.125,1.0,3.125,3.0,0.0,0.8,3.125,2.25); 数据挖掘研究院

  { 饼图 } 数据挖掘实验室

    YPos := 0.95; 数据挖掘研究院

    PrintCenter("Pie()",4.25);

    SetPen(clBlack,psSolid,-2,pmCopy); { Set pen to black 2/100ths" wide } 数据挖掘实验室

    SetBrush(clBlack,bsHorizontal,nil);

数据挖掘研究院

    Pie(3.25,1.0,5.25,3.0,5.25,2.0,0.0,0.0);

    SetBrush(clBlack,bsVertical,nil); 数据挖掘研究院

    Pie(3.25,1.0,5.25,3.0,0.0,0.0,3.25,7.0); 数据挖掘研究院

    SetBrush(clBlack,bsBDiagonal,nil); 数据挖掘研究院

    Pie(3.25,1.0,5.25,3.0,3.25,7.0,5.25,2.0); 数据挖掘研究院

   { Bitmap 图片} 数据挖掘研究院

    YPos := 3.4; 数据挖掘研究院

    PrintCenter("PaintBitmapRect()",6.375); 数据挖掘研究院

    Bitmap := TBitmap.Create; 数据挖掘研究院

    Bitmap.LoadFromFile("RPDEMO.BMP");

数据挖掘研究院

    PrintBitmapRect(5.375,3.5,7.375,5.5,Bitmap); 数据挖掘研究院

    Bitmap.Free; 数据挖掘研究院

   end; 数据挖掘研究院

end;

procedure TForm1.Button1Click(Sender: TObject); 数据挖掘研究院

begin

  RvSystem1.Execute; //执行报表!

数据挖掘研究院

end;

end. 数据挖掘研究院


##################################################################################
数据挖掘实验室

   好了,这样我们并没有使用rave,仅仅利用程序实现了报表。


                                                           (ps:转载请注明作者--高速公路上的鱼(cyq))




数据挖掘实验室

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?