其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

Delphi中数据的自动录入


发布日期:2024年01月31日
 
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 按钮保存新记录

结论

通过对上面部分代码的修改可以实现数据的自动录入极大的提高了数据的录入速度               

上一篇:如何用Delphi写一个聊天辅助程序

下一篇:在Delphi下用Direct Sound 实现混音器组件