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

DELPHI基礎教程:數據訪問部件的應用及編程(三)[4]

2013-11-23 17:49:40  來源: Delphi編程 

   增加字段部件

  字段編輯器Fields Editor中的Add Fields菜單項用於向數據集部件中增加字段部件的單擊Add Fields菜單項時便會打開增加字段部件對話框如圖所示Available Fields列表框中顯示出數據集部件TTable或TQuery中當前可以用於創建永久字段部件的全部的字段也就是說Available Fields列表框中顯示字段是數據庫表中實際存在的字段而且還沒有為這些字段創建相應的永久性的字段部件在缺省狀態下所有的字段都被選擇用於創建相應的永久性的字段部件用鼠標單擊其中的字段名可以有選擇地創建其相應的永久性的字段部件選擇好有關的字段名之後單擊OK按鈕便可以創建永久性的字段部件

  字段編輯器的增加字段部件對話框

   刪除字段部件

  用字段編輯器Fields Editor為數據集部件創建好的字段部件都會顯示在字段編輯器的Fields列表框中如果用戶認為其中的一些字段部件不合適或不再需要時可以單擊這些不需要的字段部件然後單擊鼠標右鍵彈出一傭彈出式菜單從彈出式菜單中選擇Delete菜單項便可刪除相應的字段部件如果在彈出式菜單中單擊Select All菜單項然後選擇Delete菜單項這樣會刪除已創建好的所有的字段部件某一個字段部件被刪除以後通過單擊Add Fields菜單項可以重新創建只是先前為該字段部件設定的一些屬性將不復存在

   定義新的字段部件

  字段編輯器Fields Editor中的彈出式菜單中New Fields菜單項是用來為數據集部件TTable或TQuery創建用於顯示目的的新的字段部件我們可以用它來為數據庫表中實際存在的字段創建新的字段部件(如改變字段的數據類型使它的字段值被顯示時不再需有關的類型轉換)但是我們使用New Fields菜單項創建新的字段部件主要是創建計算字段計算字段並不與數據庫表中實際存在的字段對應它的字段值是根據表中其它的字段值計算而來的具體的計算表達式由用戶為TTable部件或TQuery部件的OnCalCFields事件編寫程序代碼時決定

  定義(創建)計算字段的過程如下

  單擊字段編輯器中的New Fields菜單項定義字段對話框如圖所示

  在FieldName編輯框中輸入新字段部件的名字或者從下拉式列表框中選擇一個已存在的字段部件的名字

  在FieldType列表框中為新字段部件選擇一個字段類型

  單擊Calculated檢查框確認定義的新字段部件是計算字段

  單擊ok按鈕創建上述定義的計算字段部件此時該字段部件的名字會自動地加入到字段編輯中的Fields列表框中

  創建新的計算字段

  新的計算字段創建好了之後它是沒有任何字段值的我們必須要編寫相應的程序代碼根據數據庫表中實際存在的字段的字段值為計算字段的寶定義字段值我們為計算字段所在數據集部件的OnCalcFields事件編寫代碼來為計算字段賦值其步驟如下

  選擇數據集部件TTable或TQuery

  單擊數據集部件的事件頁

  雙擊OnCalcFields事件為TTable或TQuery部件編寫事件處理過程

   TReport部件及其應用

  在一般的數據庫應用程序中都包含著為最終用戶提供輸出報表的功能使用Delphi開發數據庫應用程序時可以使用一個叫TReport的部件來執行報表功能的報表的具體格式和內容是由Delphi提供的一個專用報表生成工具ReprotSmith創建的它報表的具體格式和內容生成一個報表文件然後為TReport部件設置相應的屬性參數由TReport部件執行報表功能

  我們可以在設計階段雙擊TReport部件調用ReportSimith工具或者在Delphi程序組內雙擊ReportSmith圖標來調用ReportSmith工具來創建一個報表文件具體的操作步驟和設計方法請參看ReportSimth工具的使用說明

  我們在使用TReport部件執行報表功能時要設置TReport部件的一些的一些屬性這些屬性是

  ReportName屬性說明報表文件的名字就是用ReportSmith創建的報表文件

  ReportDir屬性說明報表文件所在的途徑名

  PreView屬性這是一個布爾型屬性若它的值為True那麼在執行報表功能時只是在屏幕上顯示報表若它的值為False則報表內容將在缺省的打印機打印出來

  AutoUnload屬性布爾型屬性它的值為True時在執行完一個報表功能後自動地從內存中卸出ReportSmith工具它的值為False時在運行完一個報表功能後不從內存中卸出ReportSmith工具一般情況下如果應用程序只有一個報表或者只有較少的報表要輸出時應設置AutoUnload屬性為True如果應用程序一次要輸出多個報表那麼要應設置AutoUnload屬性為False

  InitialValues屬性這是一個字符串類型的屬性它是說明報表文件中使用的變量每一條說明一個變量

  ReportVAR := Value;

  要詳細了解創建和使用報表變量的過程請參看創建報表一節

  TReport部件要真正執行報表功能以輸出一個報表需要調用Run方法如下所示

  ReportRun;

  TReport部件所具有的重要方法如表所示

  表 TReport部件的方法

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  方法 功 能

  ────────────────────────────

  Run 執行報表功能輸出報表

  RunMacro 發送一個宏命令給Reportimith工具

  Connect 預先連接報表文件和數據庫在輸出報表時不需要登錄到數據庫

  SetVariable 改變說明的報表變量

  ReCalcReport 當報表變量改變以後重新輸出報表

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  還有一些其他的數據訪問部件如TBatchMove部件它主要用在兩個數據庫表之間移動或拷貝帆數據記錄具體的使用請參看本地SQL服務器的使用

   應用舉例多個窗體顯示同一個數據庫表

  在應用當中我們常常需要以不同的視圖顯示同一個數據庫表中的內容例如要在兩窗體中同時顯示一個數據庫表中一個記錄的不同字段時我們必須要想辦法使兩個窗體中的數據浏覽部件同步地顯示數據庫表中的同一條記錄的不同字段的值要想做到以不同的視圖顯示同一個數據庫表中的記錄下面兩條規則是很重要的

  ● 多個TDataSource部件能夠同時訪問同一個數據集部件

  ● 在多個窗體中顯示同一個表時必須為每個窗體設置一個TDataSource部件只須為其中的一個窗體設置一個TTable部件

  例如如果想在窗體Form和Form中同時顯示一個數據庫表的記錄最簡單可行的辦法是為Form和Form各設置一個TDataSource部件叫DataSourceDataSource並在Form中設置一個TTable部件Table連接Form中的Datasource和Table在程序運行過程中設置Form中的DataSource的DataSet屬性為Form中的Table代碼如下

  FormatDataSourceDataset := FormTable;

  這樣當Table被打開時兩個窗體中便可以同步地顯示數據庫表中的同一條記錄了

  一個名叫TWOFormsDPR的例子在C:\Delphi\DEMos\DB\TwoForms中(如果Delphi安裝在其它的磁盤驅動器中從相應的磁盤驅動器中可以找到該例子)它演示了在兩個窗體中顯示同一個數據庫表的記錄應用程序在第一個窗體中打開ContryDB表並在窗體中顯示NameCaptial和Continent字段在第二個窗體中顯示Area和Population字段在第一個窗體中有一個按鈕用於打開第二個窗體兩個窗體中都有TDBNavigator部件用於記錄的導航

  返回目錄DELPHI基礎教程

       編輯推薦

       Java程序設計培訓視頻教程

       JEE高級框架實戰培訓視頻教程

  Visual C++音頻/視頻技術開發與實戰

  Oracle索引技術

  ORACLEG數據庫開發優化指南

  Java程序性能優化讓你的Java程序更快更穩定

  C嵌入式編程設計模式

  Android游戲開發實踐指南

[]  []  []  []  


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