在
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 按钮保存新记录
结论
通过对上面部分代码的修改可以实现数据的自动录入极大的提高了数据的录入速度