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

📄 unit4.pas

📁 一个简单的图书管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Unit4;

interface

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

type
  TForm4 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    Button1: TButton;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Edit2: TEdit;
    Label5: TLabel;
    Edit3: TEdit;
    Label7: TLabel;
    DateTimePicker1: TDateTimePicker;
    Label8: TLabel;
    Button2: TButton;
    Button3: TButton;
    ADODataSet1: TADODataSet;
    Label9: TLabel;
    ComboBox2: TComboBox;
    Button4: TButton;
    Button5: TButton;
    ADODataSet2: TADODataSet;
    ADODataSet3: TADODataSet;
    ADOCommand1: TADOCommand;
    Edit6: TEdit;
    Button6: TButton;
    Edit7: TEdit;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    DBGrid1: TDBGrid;
    Label11: TLabel;
    ADODataSet4: TADODataSet;
    DataSource1: TDataSource;
    Label6: TLabel;
    Edit4: TEdit;
    Button7: TButton;
    Label10: TLabel;
    Label12: TLabel;
    Edit8: TEdit;
    Edit9: TEdit;
    Label13: TLabel;
    Edit10: TEdit;
    Label14: TLabel;
    Edit11: TEdit;
    Label15: TLabel;
    Edit12: TEdit;
    Label16: TLabel;
    Edit13: TEdit;
    Label17: TLabel;
    Edit14: TEdit;
    Label18: TLabel;
    Button8: TButton;
    Button9: TButton;
    ADODataSet5: TADODataSet;
    Button10: TButton;
    Edit15: TEdit;
    ADOCommand2: TADOCommand;
    ComboBox3: TComboBox;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure ComboBox1Enter(Sender: TObject);
    procedure ComboBox2Enter(Sender: TObject);
    procedure ComboBox2Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Edit6Change(Sender: TObject);
    procedure Edit7Change(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure TabSheet1Exit(Sender: TObject);
    procedure TabSheet2Exit(Sender: TObject);
    procedure TabSheet3Exit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  Form4: TForm4;
  Leibie:string;
  bianhao:string;
  ID_2:integer;

implementation

{$R *.dfm}
uses unit1,unit5,unit6;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  Form_show:=False;
end;

procedure TForm4.Button1Click(Sender: TObject);
begin
  close;
end;

procedure TForm4.FormCreate(Sender: TObject);
var
  i:integer;
begin
  DateTimePicker1.date:=Date();
  Form_show:=True;
  xinleibie_show:=False;
  //从数据库读出新书种类信息
  Adodataset1.Active:=False;
  Adodataset1.CommandText:='select * from leibie';
  Adodataset1.Active:=True;
  //循环写到 comboboxx1中去
  for i:=0 to 99 do
    form1.combobox[i]:='';
  form1.stringlength:=0;


  for i:=0 to Adodataset1.RecordCount-1 do
    begin
      Form1.combobox[i]:=Adodataset1.Fields[1].AsString;
      Adodataset1.Next;
    end;
  form1.stringlength:=i;
  Adodataset1.Active:=True;
end;

procedure TForm4.ComboBox1Click(Sender: TObject);
var
 i:integer;
begin
  Leibie:=Combobox1.Text;
  
  edit1.Text:='';
  combobox2.Enabled:=True;


  //为显示小类别作字符串数组准备
  //取得类别leibie_num
  Adodataset1.Active:=False;
  Adodataset1.CommandText:='select id from Leibie where leibie='''+trim(leibie)+'''';
  Adodataset1.Active:=True;
  Form1.leibie_num:=Adodataset1.Fields[0].AsString;
  Adodataset1.Active:=False;

  //打开leibie_num所对应的数据库
  Adodataset2.Active:=False;
  Adodataset2.CommandText:='select * from '+form1.leibie_num;
  Adodataset2.Active:=True;

  for i:=0 to 99 do
    form1.combobox_1[i]:='';
  form1.stringlength_1:=0;
  for i:=0 to Adodataset2.RecordCount-1 do
    begin
      form1.combobox_1[i]:=Adodataset2.Fields[1].AsString;
      Adodataset2.Next;
    end;
  form1.stringlength_1:=i;

  combobox2.Text:='请选择';

end;

procedure TForm4.Button4Click(Sender: TObject);
var
  xinleibie_1:TForm5;
begin
  if not xinleibie_show then
    begin
      xinleibie_1:=TForm5.Create(application);
      xinleibie_1.Show;     
    end
  else
    messagedlg('窗口已打开!',mtwarning,[mbok],0)  
end;

procedure TForm4.ComboBox1Enter(Sender: TObject);
var
  i:integer;
begin
   combobox1.Items.Clear;
   for i:=0 to form1.stringlength-1 do
     begin
       combobox1.Items.Add(Form1.combobox[i])
     end;

end;

procedure TForm4.ComboBox2Enter(Sender: TObject);
var
  i:integer;
begin
  //重写combobox2下拉列表
  Combobox2.Items.Clear;
  for i:=0 to form1.stringlength_1-1 do
    begin
      combobox2.Items.Add(Form1.combobox_1[i]);
    end;

end;

procedure TForm4.ComboBox2Click(Sender: TObject);
begin
  form1.leibie_num_1:=Combobox2.Text;
  Adodataset3.Active:=False;
  Adodataset3.CommandText:='select * from '+Form1.leibie_num+' where mincheng='''+Form1.leibie_num_1+'''';
  Adodataset3.Active:=True;

  Form1.leibie_num_1:=Adodataset3.Fields[0].AsString;
  Adodataset3.Active:=False;



end;

procedure TForm4.Button5Click(Sender: TObject);
var
  xinleibie_1:Tform6;
begin
  if not xinleibie_show then
    begin
      xinleibie_1:=Tform6.Create(application);
      xinleibie_1.Show;
    end
  else
    messagedlg('窗口已打开!',mtwarning,[mbok],0)  
end;

procedure TForm4.ComboBox2Change(Sender: TObject);
var
  year,month,day:word;
  command_exe:boolean;

begin
  form1.leibie_num_1:=Combobox2.Text;
  Adodataset3.Active:=False;
  Adodataset3.CommandText:='select * from '+Form1.leibie_num+' where mincheng='''+Form1.leibie_num_1+'''';
  Adodataset3.Active:=True;

  Form1.leibie_num_1:=Adodataset3.Fields[0].AsString;
  Adodataset3.Active:=False;



   command_exe:=True;
   //计算新进图书的最后编号
   DecodeDate(date,year,month,day);
   bianhao:=Form1.leibie_num+inttostr(year)+Form1.leibie_num_1;
   Adodataset3.Active:=False;
   adodataset3.CommandText:='select book_id,id_1,id_2 from Shuku where id_1='''+bianhao+''' order by ID_2 DESC';
   //showmessage(adodataset3.CommandText);
   Adodataset3.Active:=True;

   //将数据集的指针移到最后一条记录上
   if Adodataset3.RecordCount<> 0 then
     begin
       while Adodataset3.Eof  do
         Adodataset3.Next;
     end;

   if Adodataset3.Fields[2].AsInteger=0 then
     begin
      //第一本书入库则第二个编号为'A'
      id_2:=65;
     end
   else
     begin
       //不是第一本书则第二个编号为前一本书的编号前加1
      id_2:=Adodataset3.Fields[2].AsInteger+1;
      if id_2>=91 then
        begin
         messagedlg('不能输入新书',mtwarning,[mbok],0);
        //第二个编号超过了26(Z)不能输入新书
        command_exe:=False;
        edit1.Text:='';
        end
     end;

   if  command_exe then
     begin
      edit1.Text:=bianhao+chr(id_2);
     end;
end;

procedure TForm4.Button2Click(Sender: TObject);
begin
  if (edit1.Text<>'') and  (edit2.Text<>'') and (edit3.Text<>'')  and (combobox3.Text<>'') then
    begin
    //新书信息写入数据库
    Adocommand1.CommandText:='insert into shuku (BOOK_ID,ID_1,ID_2,Shumin,Jiage,Ru_riqi,GJbumen,ZhuTai) values ('''+Trim(edit1.Text)+''','''+bianhao+''','''+inttostr(ID_2)+''','''+trim(edit2.Text)+''','''+Trim(edit3.Text)+''','''+DateToStr(DateTimePicker1.Date)+''','''+Trim(combobox3.Text)+''',''正常'')';
    showmessage(Adocommand1.CommandText);
    Adocommand1.Execute;

    messagedlg('操作完成!',mtinformation,[mbok],0);
    //还原文本框

⌨️ 快捷键说明

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