熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi 7 中使用RAVE報表(四)

2022-06-13   來源: Delphi編程 
 新建一個數據庫

  以access數據庫為例先新建一個數據庫建立一張表包括的字段為{[name][sex][age][province]}添加數據當然不要太少了

  首先我們不考慮Delphi程序的調用打開rave新建一個report

  .[File]àNew Data Objectà選擇Use Connection String選擇[Microsoft Jet OLE DB Provider]選擇保存的數據庫的位置並測試連接成功[ok]後看到報表設計導航區的Data View Dictionary增加了Database

  .[File]àNew Data Object Driver Data View 選擇Database [Finish] 彈出Query Advenced Designr將Query Advenced Designr的Tables欄的數據表拖放到layout中à[ok]à看到報表設計導航區的Data View Dictionary增加了DriveDataView擴展後可以看到數據字段

  .選[Tools]àReport WizardsàSingle Table 選DriveDataView選擇數據庫字段Report Title改為個人情況報表好了之後可以看到在page中生成了報表

  .按[F]或者快捷按鈕[Execute Report]你就可以看到連接到數據庫的報表了rave報表根據數據量的多少自動分頁根據需要更改格式再預覽直到是你所想要的報表格式

  這時候就很簡單的完成了一張報表當然有些人也許很看到這樣設計出來的報表的標題在報表的第一頁顯示了後在其他頁並沒有顯示

  怎麼樣讓標題在每一頁顯示呢?選到TitleBand在設置BandStyle在Print Occurrence把New page打勾選中這樣在預覽你就會發現這時生成的報表每一頁都會有標題

  二設計連接數據庫的報表

  當然我們的報表是用程序調用的那麼我們在delphi中來設計連接數據庫的報表

  新建工程在窗體上放置以下組件RvProjectRvSystemRvDataSetConnectionADOConnectionADOTableDataSourceButtonDBGrid設置相應的數據庫連接可以看到在DBGrid中顯示了數據具體的設置在這裡不進行講解了請參考相應的數據庫書RvSystem的Engine為RvSystemRvProjectFile選擇保存了的為*Rav文件RvDataSetConnection的DataSet屬性設置為ADOTable

  打開Rave設計器打開*Rav文件

  [File]àNew Data ObjectàDirect Data Viewà選擇RvDataSetConnection[Finish]看到報表設計導航區的Data View Dictionary增加了DataView擴展後可以看到數據字段

  利用前例步驟同樣的方法進行報表的可視化設計在可視化設計時注意看生成的簡單數據庫代碼的組成部分注意TitleBandDataBand Band的屬性設置當然我們也可以不用Report Wizards自動生成也可以自己來根據需要直接做報表步驟是

  )添加組件頁的Region組件來描述報表的范圍

  )添加BandBand DataBand組件設置相應的BandStyle 和Dataview屬性

  )在DataBand中添加DataText選擇其Dataview屬性和DataFile屬性

  )預覽即可如果不能正常顯示注意查看屬性的設置尤其是Dataview屬性同時可以與Report Wizards自動生成的報表進行對比

  添加如下代碼

procedure TFormButtonClick(Sender: TObject);
begin
RvProjectOpen ;
RvProjectExecuteReport(Report);
RvProjectClose ;
end;

  運行後點擊[確定]按鈕既顯示報表設置窗體確定後可以看到你想要得窗體

  三關於和數據庫連接報表的一些問題

  上面的例子是直接從數據庫輸出的報表如果要輸出的報表是根據用戶的條件輸出怎麼辦?

  如果是要根據用戶的條件輸出相應的報表使用Query組件當然要是涉及到存儲過程的操作也是一樣的阿選擇相應的數據庫訪問組件將RvDataSetConnection的Dataset屬性連接到數據庫訪問組件即可

  我在數據庫表中的字段是中文的在Rave中連接數據庫DataView不能顯示我的字段並且提示DataView已經存在! 怎麼辦?

  出現這樣的問題主要是DataView的name屬性不支持中文名而不能根據數據段名來命名你將DataView更改為相應的英文名更改Fieldname為相應的字段中文刷新DataView還會有提示同樣更改name和Fieldname屬性直到你要的字段都更改好為止

  默認的報表是豎排的怎麼樣才能將頁面設置為橫向的?

  關於頁面的設置請注意熟悉RvSystem的屬性

  RvSystemSystemPrinterOrientation :=poLandScape; //頁面為橫向的
  RvSystemSystemPreviewFormState := wsMaximized; //預覽窗體最大化
  RvSystemSystemPreviewMarginPercent :=; //報表頁面據預覽窗體的邊距

  當然還有很多的設置TitleSetupTitleStatusTitlePreview屬性可以將你的報表設置報表預覽的窗體的標題改為你想要的當然我們最基本的是要改為中文的阿關於怎麼讓你的報表預覽報表設置窗體為中文的我在後面會專門介紹


From:http://tw.wingwit.com/Article/program/Delphi/201311/24723.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.