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

Delphi中數據的自動錄入

2013-11-23 17:42:15  來源: Delphi編程 
    在Delphi數據庫應用系統的數據錄入過程中有些數據是保存在Excel中的有些是保存在紙張上的還有一些是需要新增加的由於各條記錄之間有大量的重復數據如果每條記錄都讓錄入人員全部手工錄入其間的重復勞動是相當大的還降低了工作效率下面就這個問題進行論述

  利用Delphi調用Excel

  Delphi中已經帶了Word與PowerPoint的例子因為Excel的調用與這兩個應用服務器的調用略有不同所以也可以利用Delphi調用Excel

  步驟如下:

  () 創建一個普通Application.

  () 在Form中分別放入ExcelApplication ExcelWorkbook和ExcelWorksheet.

  () 連接Excel.

  打開Excel.

Try
ExcelApplicationConnect;
Except
End; ExcelApplicationVisible[]:=True;
  增加一個Workbook.

ExcelWorkbookConnectTo(ExcelApplication WorkbooksAdd(EmptyParam));
  添加一個Worksheet.

Var Temp_Worksheet: _WorkSheet;
Begin
Try
Temp_Worksheet:=ExcelWorkbook
WorkSheetsAdd(EmptyParam
EmptyParamEmptyParamEmptyParam)
as _WorkSheet;
ExcelWorkSheetConnectTo(Temp_WorkShee);
Except
ShowMessage(′Failure′); End;
  關閉Excel

Try
ExcelApplicationQuit;
ExcelWorksheetDisconnect;
ExcelWorkbookDisconnect;
ExcelApplicationDisconnect;
Except
End;
End;
  () 對Excel的一些操作:

  選擇某一工作簿中的一個工作表然後對某一單元格進行賦值及取值最後選擇某一區域作以下操作
ExcelWorkSheetRange[′A′C′]Select;

  打開一個Excel文件.

if OpenDialogExecute then
Begin
Try
ExcelWorkBookConnectTo(Excel
ApplicationWorkbooksOpen(OpenDialogFileNameEmptyParamEmptyParamEmpty Param EmptyParam EmptyParam
EmptyParamEmptyParamEmptyParam EmptyParamEmptyParam
EmptyParamEmptyParam));
ExcelWorkSheetConnectTo(ExcelWorkBookActivesheet as _Worksheet);
Except;
End;
  利用OCR識別掃描

  OCR可以識別一頁A大小的印刷體中英文混排的純文本文件只用幾秒鐘所以我們可以把掃描的圖像進行識別處理保存然後通過添加記錄或批復制的操作將得到的數據轉入數據庫的相應的表中具體實現如下:

Procedure TFormbuttonclick(sender:tobject);
Begin
Shellexecute(handleopen
c:\sh\shexeswshownormal);
Buttonenabled:=false;
End;
Procedure TFormformcreat(sender:tobject);
Var i:integer:
Begin
Chdir(c:\sh);
Formeditclear;
Formmemoclear;
Assignfile(textidformopendialogfilename);
For i:= to formadoquerysqlcount do
Begin
Formadoqueryclose;
Formadoqueryclear;
Formadoquerysqadd(select 表名
from Formname)close;
Formadoqueryopen;
Formdbcomboxdatafield:=表名;
End;
  利用原記錄更改

  Delphi數據錄入時自動復制原記錄然後做很少的修改就完成了一條新記錄的編輯最後直接保存
使用 ADO 方法存取 Access數據庫中的表 test表的第一個字段是自動編碼字段在記錄復制時要跳過首先在 Form 上添加 ADOConnectionADODataSetDataSourceDBGrid 等數據庫相關組件使用連接向導把 ADOConnection 與 Access 數據庫連接起來把 ADOConnection 的 LoginPrompt 屬性設置為 False其它組件的對應屬性設置如下:

ADODataSetConnection :=ADOConnection;
ADODataSetCommandText :=select * from test;
ADODataSetActive :=True;
DataSourceDataSet :=ADODataSet;
DBGridDataSource :=DataSource;
  在 DBGrid 中看到數據庫表 test 中的數據後在窗體上添加一些數據敏感的數據輸入控件(如 DBEdit 等)將其 DataSource 屬性設為 DataSource再分別與各字段綁定起來

  在窗體上添加 個按鈕 Button 和Button設計相應的觸發事件

  程序編譯運行後按 Button 按鈕就會添加一條新的記錄記錄的內容為添加前記錄指針指向的記錄的內容.然後對現有數據做些改動按 Button 按鈕保存新記錄

  結論

  通過對上面部分代碼的修改可以實現數據的自動錄入極大的提高了數據的錄入速度
From:http://tw.wingwit.com/Article/program/Delphi/201311/24921.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.