程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi中數據的自動錄入

Delphi中數據的自動錄入

編輯:Delphi

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

  1、利用Delphi調用Excel

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

  步驟如下:

  (1) 創建一個普通Application.

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

  (3) 連接Excel.

  打開Excel.

Try
ExcelApplication1.Connect;
Except
End; ExcelApplication1.Visible[0]:=True;

  增加一個Workbook.

ExcelWorkbook1.ConnectTo(ExcelApplication1 Workbooks.Add(EmptyParam,0));

  添加一個Worksheet.

Var Temp_Worksheet: _WorkSheet;
Begin
Try
Temp_Worksheet:=ExcelWorkbook1.
WorkSheets.Add(EmptyParam,
EmptyParam,EmptyParam,EmptyParam,0)
as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkShee);
Except
ShowMessage(′Failure′); End;

  關閉Excel.

Try
ExcelApplication1.Quit;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
Except
End;
End;

(4) 對Excel的一些操作:

  選擇某一工作簿中的一個工作表,然後對某一單元格進行賦值及取值。最後選擇某一區域作以下操作:
ExcelWorkSheet1.Range[′A1′,′C1′].Select;

  打開一個Excel文件.

if OpenDialog1.Execute then
Begin
Try
ExcelWorkBook1.ConnectTo(Excel
Application1.Workbooks.Open(OpenDialog1FileName,EmptyParam,EmptyParam,Empty Param, EmptyParam, EmptyParam,
EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,
EmptyParam,EmptyParam,0));
ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet);
Except;
End;

  2、利用OCR識別掃描

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

Procedure TForm1.buttonclick(sender:tobject);
Begin
Shellexecute(handle,’open’,’
c:\sh60\sh60.exe’,’,’,sw-shownormal);
Button3.enabled:=false;
End;
Procedure TForm1.formcreat(sender:tobject);
Var i:integer:
Begin
Chdir(‘c:\sh60’);
Form1.edit1.clear;
Form1.memo1.clear;
Assignfile(textid,form1.opendialog1.filename);
For i:=1 to form1.adoquery1.sql.count do
Begin
Form1.adoquery1.close;
Form1.adoquery1.clear;
Form1.adoquery1.sq1.add(‘select 表名
from Formname’)close;
Form1.adoquery1.open;
Form1.dbcombox1.datafIEld:=’表名’;
End;

  3、利用原記錄更改

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

ADODataSet1.Connection :=ADOConnection1;
ADODataSet1.CommandText :=select * from test;
ADODataSet1.Active :=True;
DataSource1.DataSet :=ADODataSet1;
DBGrid1.DataSource :=DataSource1;

  在 DBGrid 中看到數據庫表 test 中的數據,後在窗體上添加一些數據敏感的數據輸入控件(如 DBEdit 等),將其 DataSource 屬性設為 DataSource1,再分別與各字段綁定起來。

  在窗體上添加 2 個按鈕 Button1 和Button2,設計相應的觸發事件。

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

  4、結論

  通過對上面部分代碼的修改,可以實現數據的自動錄入,極大的提高了數據的錄入速度。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved