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

📄 unit1.pas

📁 图书管理购买,用于购买图书检查图书是否重复
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, ComCtrls, StdCtrls, Spin, Mask,
  DBCtrls, ExtCtrls, Dbf,unit2,unit3,unit4;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    SpinEdit1: TSpinEdit;
    Button1: TButton;
    Label3: TLabel;
    SpinEdit2: TSpinEdit;
    Label4: TLabel;
    Panel1: TPanel;
    Label5: TLabel;
    DBEdit1: TDBEdit;
    Label6: TLabel;
    DBEdit2: TDBEdit;
    Label7: TLabel;
    DBEdit3: TDBEdit;
    Label8: TLabel;
    DBEdit4: TDBEdit;
    Label9: TLabel;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    DBGrid2: TDBGrid;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    GroupBox2: TGroupBox;
    Label15: TLabel;
    Label16: TLabel;
    Edit6: TEdit;
    Button4: TButton;
    Button5: TButton;
    ListBox1: TListBox;
    Button6: TButton;
    OpenDialog1: TOpenDialog;
    ProgressBar1: TProgressBar;
    GroupBox3: TGroupBox;
    Label17: TLabel;
    Edit7: TEdit;
    Label18: TLabel;
    Button7: TButton;
    GroupBox4: TGroupBox;
    ListBox2: TListBox;
    ADOTable1: TADOTable;
    DataSource2: TDataSource;
    Edit13: TEdit;
    Label25: TLabel;
    ADOQuery2: TADOQuery;
    DataSource3: TDataSource;
    DataSource4: TDataSource;
    Label19: TLabel;
    Edit8: TEdit;
    Button2: TButton;
    ADOTable2: TADOTable;
    DataSource5: TDataSource;
    ADOQuery3: TADOQuery;
    DataSource6: TDataSource;
    ADOQuery4: TADOQuery;
    DataSource7: TDataSource;
    Panel3: TPanel;
    Edit11: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Label23: TLabel;
    Label21: TLabel;
    Label22: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    Label24: TLabel;
    Label20: TLabel;
    Label26: TLabel;
    Edit12: TEdit;
    Edit9: TEdit;
    Edit10: TEdit;
    Label27: TLabel;
    Edit14: TEdit;
    Button8: TButton;
    Button3: TButton;
    DBGrid3: TDBGrid;
    Panel4: TPanel;
    Button11: TButton;
    Button10: TButton;
    Button9: TButton;
    Label13: TLabel;
    Edit5: TEdit;
    Label14: TLabel;
    Edit15: TEdit;
    Button15: TButton;
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ADOQuery1AfterScroll(DataSet: TDataSet);
    procedure Button1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure ListBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button6Click(Sender: TObject);
    procedure Edit7KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
   
    
    procedure ListBox2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure fbsKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure Button7Click(Sender: TObject);
    procedure SpinEdit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button3Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Edit5KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button15Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=13 then
begin
   adoquery1.Close;
   adoquery1.Parameters.FindParam('aaa').Value:=edit1.Text;
   adoquery1.Open;
   //spinedit1.SetFocus;
   if adoquery1.RecordCount >0 then if MessageDlg('是否购买此书? ' ,
mtConfirmation, [mbYes, mbNo], 0) = mrYes then spinedit1.SetFocus else begin
   edit1.Text:='';
   edit1.SetFocus;
   //spinedit1.SetFocus;
   end
   else
   edit5.SetFocus;
end
else
begin
   edit2.Text:='';
   edit3.Text:='';
   edit4.Text:='';
   edit5.Text:='';
   adoquery1.Close;
end;
end;

procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
edit2.Text:=adoquery1.fieldbyname('书名').AsString;
edit3.Text:=adoquery1.fieldbyname('作者').AsString;
edit4.Text:=adoquery1.fieldbyname('出版社').AsString;
edit5.Text:=adoquery1.fieldbyname('定价').AsString;
spinedit1.Value:=adoquery1.fieldbyname('复本数').AsInteger;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//
if ((edit1.Text='') or (spinedit1.Value<=0)  or (strtofloat(edit5.Text)<=0) or (edit5.Text='')) then
begin
   showmessage('基本信息不全!');
   exit;
end;
if adotable1.RecordCount>300 then
begin
   statusbar1.Panels.Items[4].Text:='技术支持';
   statusbar1.Panels.Items[5].Text:='电话:0371-5017552   Email: yuanxq888@yahoo.com.cn';
   //showmessage('此版本为试用版,只能处理30条记录,你已处理'+inttostr(adotable1.RecordCount)+'条!');
end;
//if adotable1.RecordCount>30 then
//begin
//   showmessage('你已处理30条记录,现在本软件将退出!');
//   close;
//end;



//adoquery3.Close;
//adoquery3.SQL.Clear;
//adoquery3.SQL.Add('');
//adoquery3.Open;
//if not adoquery3.Eof  then
//begin
//   showmessage('这本书你已经订过了,不能重订!');
//   exit;
//end;
adotable1.Append;
adotable1.FieldByName('isbn').AsString:=edit1.Text;
adotable1.FieldByName('书名').AsString:=edit2.Text;
adotable1.FieldByName('作者').AsString:=edit3.Text;
adotable1.FieldByName('出版社').AsString:=edit4.Text;
adotable1.FieldByName('定价').AsString:=edit5.Text;
adotable1.FieldByName('复本数').Value:=spinedit1.Value;
adotable1.FieldByName('zhekou').AsFloat:=spinedit2.Value/100;
adotable1.FieldByName('daohuo').AsInteger:=0;
adotable1.Post;
edit1.Text:='';
edit2.text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='0';
spinedit1.Value:=0;
adoquery1.Close;
edit1.SetFocus;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if opendialog1.Execute then edit6.Text:=opendialog1.FileName;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if edit6.Text='' then exit;
if listbox1.Items.IndexOf(edit6.Text)<0 then
listbox1.Items.Append(edit6.Text);
end;

procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
t:integer;
begin
if key=46 then
begin
for t:=1 to listbox1.Items.Count do
   begin
      if listbox1.Selected[t-1] then listbox1.Items.Delete(t-1);
   end;
end;
end;

procedure TForm1.Button6Click(Sender: TObject);
var
ttt,ttl:pchar;
i,m,n:integer;
aaa,bbb:string;
begin
if (listbox1.Items.Count<=1) or (edit13.Text='') then exit;
edit8.Text:=edit13.Text;
if adotable2.RecordCount=0 then  adotable2.Append else adotable2.Edit;
adotable2.Fields[0].AsString:=edit13.Text;
adotable2.Post;
ttt:=pchar(edit13.Text);
ttl:=pchar(listbox1.Items.strings[0]);
copyfile(ttl,ttt,true);
aaa:=extractfilename(listbox1.Items.Strings[1]);
m:=0;
bbb:='';
for i:=1 to length(aaa) do
begin
   if aaa[i]='.' then m:=1;
   if m=0 then bbb:=bbb+aaa[i];
end;
aaa:=bbb;
adoquery2.SQL.Strings[0]:='select * from '+aaa;
adoquery2.SQL.Strings[2]:='';
for i:=2 to listbox1.Items.Count do
begin
dbf1.Close;
dbf1.FilePathFull:=extractfiledir(listbox1.Items.Strings[i-1]);
dbf1.TableName:=extractfilename(listbox1.Items.Strings[i-1]);
dbf1.Open;
while  not dbf1.Eof  do
   begin
      aaa:=dbf1.Fields[0].AsString;
      bbb:=dbf1.Fields[1].AsString;
      adoquery2.Parameters.FindParam('cs2').Value:=aaa;
      adoquery2.Parameters.FindParam('cs3').Value:=bbb;

      adoquery2.Open;
      if adoquery2.Eof then
         begin
            adoquery2.Edit;
            adoquery2.Append;

            adoquery2.Fields[0]:=dbf1.Fields[0];
            adoquery2.Fields[1]:=dbf1.Fields[1];
            adoquery2.Fields[2]:=dbf1.Fields[2];
            adoquery2.Fields[3]:=dbf1.Fields[3];
            adoquery2.Fields[4]:=dbf1.Fields[4];
            adoquery2.Fields[5]:=dbf1.Fields[5];
            adoquery2.Fields[6]:=dbf1.Fields[6];
            adoquery2.Fields[7]:=dbf1.Fields[7];
            adoquery2.Fields[8]:=dbf1.Fields[8];
            adoquery2.Post;
         end
         else
         begin
            if adoquery2.Fields[5].AsInteger > dbf1.Fields[5].AsInteger then
               begin
                  dbf1.Delete;
               end
               else
               begin
                  adoquery2.Edit;
                  adoquery2.Fields[5]:=dbf1.Fields[5];
                  adoquery2.Post;
                  dbf1.Delete;
               end;
         end;
      dbf1.Next;
   end;
dbf1.PackTable;
end;
adoquery2.SQL.Strings[2]:=' and gengxin <> 1';
for i:=1 to listbox1.Items.Count do
   begin

⌨️ 快捷键说明

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