⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usjdr.pas

📁 图书管理系统,已经用于市场,此软件只供学习使用,不的用于商业行为
💻 PAS
字号:
unit Usjdr;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Buttons, Grids, DBGrids, ExtCtrls, ComCtrls;

type
  Tsjdrfrm = class(TForm)
    Panel1: TPanel;
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    btopen: TBitBtn;
    btdr: TBitBtn;
    OpenDialog1: TOpenDialog;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    adodbf: TADOQuery;
    DataSourcedbf: TDataSource;
    BitBtn1: TBitBtn;
    ProgressBar1: TProgressBar;
    procedure btopenClick(Sender: TObject);
    procedure btdrClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  sjdrfrm: Tsjdrfrm;

implementation

uses UDM, Utxcj, UMain;

{$R *.dfm}

procedure Tsjdrfrm.btopenClick(Sender: TObject);  //打开dbf文件事件
var  s:string; //得到opendialog的文件名(如c:\temp\1.dbf)就得到1.dbf
     s1:string; //得到opendialog的文件名的路径 (得到 c:\temp)
begin
   opendialog1.Title :='Open Microsoft DBF File';
   opendialog1.Filter:='Microsoft DBF File (*.dbf)|*.dbf';
   if opendialog1.Execute then
     begin
        s:=opendialog1.FileName;
        s1:='';
        while pos('\',s)>0 do        begin          s1:=s1+copy(s,1,pos('\',s));          s:=copy(s,pos('\',s)+1,length(s));        end;
        s1:=copy(s1,1,length(s1)-1);// 文件的路径名
        btopen.Enabled :=false;
        btdr.Enabled :=true;
        adodbf.ConnectionString:='provider=Microsoft.Jet.OLEDB.4.0'+';data source='+s1+';Extended properties=dbase 5.0;persist security info=false';
        with adodbf do
          begin
            close;
            sql.Clear;
            sql.add('select * from '+s);
            open;
          end;
        adodbf.First ;
        label2.Caption :=inttostr(adodbf.RecordCount); //记录打开的dbf文件的记录数
     end;
end;

procedure Tsjdrfrm.btdrClick(Sender: TObject);//导入数据库按钮事件
var i:integer;
begin
   screen.Cursor:=crHourGlass;  //使鼠标为筛漏型
   btdr.Enabled :=false;  //导入按钮不可用
   btopen.Enabled :=true; //打开dbf文件的按钮可用
   with dm.adoinfo do  //打开information表
      begin
         close;
         sql.Clear ;
         sql.Add('select * from information');
         open;
      end;
   progressbar1.Min :=0;
   ProgressBar1.Max:=adodbf.RecordCount * 2;
   for i:=1 to adodbf.RecordCount do
      begin
        if((adodbf.Fieldbyname('xz').AsString)<>'')and((adodbf.Fieldbyname('bhmc').AsString)<>'')and((adodbf.Fieldbyname('sxh').AsString)<>'')and((adodbf.Fieldbyname('zydm').AsString)<>'')then
           begin
             dm.adoinfo.Insert;
             dm.adoinfo.FieldValues['xz']:=trim(adodbf.Fieldbyname('xz').AsString);
             dm.adoinfo.FieldByName('bhmc').AsString:=trim(adodbf.Fieldbyname('bhmc').AsString);
             dm.adoinfo.FieldValues['sxh']:=trim(adodbf.Fieldbyname('sxh').AsString);
             dm.adoinfo.FieldValues['zydm']:=trim(adodbf.Fieldbyname('zydm').AsString);
             dm.adoinfo.FieldValues['xh']:=trim(adodbf.Fieldbyname('xh').AsString);
             dm.adoinfo.FieldValues['zyxh']:=trim(adodbf.Fieldbyname('zyxh').AsString);
             dm.adoinfo.FieldValues['yx']:=trim(adodbf.Fieldbyname('yx').AsString);
             dm.adoinfo.FieldValues['zymc']:=trim(adodbf.Fieldbyname('zymc').AsString);
             dm.adoinfo.FieldValues['ksh']:=trim(adodbf.Fieldbyname('ksh').AsString);
             dm.adoinfo.FieldValues['xm']:=trim(adodbf.Fieldbyname('xm').AsString);
             dm.adoinfo.Post;
            end;
        adodbf.Next;
        progressbar1.Position :=i*2;
      end;
   progressbar1.Position :=0; //使进度条为空,即未填充
   screen.Cursor:=crDefault; //使鼠标为默认的箭头型
   if messagebox(handle,'数据导入完备,是否关闭此窗口','系统提示',mb_iconwarning+mb_yesno)=idyes then
      self.Close;
end;

procedure Tsjdrfrm.FormCreate(Sender: TObject); //窗体创建时
begin
  mainfrm.StatusBar1.Panels.Items[1].Text:='您当前的操作为: '+'数据导入';
  btdr.Enabled :=false;  //导入按钮不可用
end;

procedure Tsjdrfrm.BitBtn1Click(Sender: TObject); //退出窗体
begin
   self.Close;
end;

procedure Tsjdrfrm.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);   //对dbgrid实现隔行着色
begin
    if (DBGrid1.DataSource.DataSet.RecNo mod 2)=0 then
       DBGrid1.Canvas.Brush.Color := clWhite
    else
       DBGrid1.Canvas.Brush.Color := clAqua;
    if((State=[gdSelected]) or (State=[gdSelected,gdFocused])) then
       if  not DBGrid1.SelectedRows.CurrentRowSelected then
         DBGrid1.Canvas.Brush.Color := clHighlight;
    DBGrid1.Canvas.Pen.Mode := pmMask;
    DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure Tsjdrfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    mainfrm.StatusBar1.Panels.Items[1].Text:='';
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -