飞絮文博

专注于各种综合类资讯以及技术文章&优化等各类学习资讯

« 大名鼎鼎的灰鸽子源码——delphi源码visual studio 2010 正式版 中文版 微软官方 下载 VC2010 »

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、其他单位或个人使用、转载或引用本文时必须同时征得本博客的同意;
3、若由其他人转载所引起的任何纠纷,本网站概不负责;
4、本网站部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

加入您的收藏     设为您的主页

日历

最新评论及回复

最近发表

联系邮箱:[email protected] , Powered By 飞絮视频乐园 , 鲁ICP备08128977号 , 值班站长:
本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

_×
博主强烈推荐
等待您的加盟,MV美女图库网是一个MV|美女|AV美女,美女图库下载网,集合所有美女、风景、壁纸下载网。