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

📄 studentbook.~pas

📁 一个图书管理系统
💻 ~PAS
字号:
unit studentbook;

interface

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

type
  TStudentBookForm = class(TForm)
    Label1: TLabel;
    ComboBox1: TComboBox;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Label4: TLabel;
    Edit3: TEdit;
    Label5: TLabel;
    Edit4: TEdit;
    DBGrid1: TDBGrid;
    Label6: TLabel;
    Edit5: TEdit;
    Label7: TLabel;
    Edit6: TEdit;
    Label8: TLabel;
    Edit7: TEdit;
    Label9: TLabel;
    Edit8: TEdit;
    Label10: TLabel;
    Edit9: TEdit;
    Label11: TLabel;
    Edit10: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ADOConnection1: TADOConnection;
    ADODataSet1: TADODataSet;
    DataSource1: TDataSource;
    Label12: TLabel;
    Edit11: TEdit;
    procedure BitBtn2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure ComboBox1Click(Sender: TObject);
    procedure Edit4Exit(Sender: TObject);
    procedure ADODataSet1AfterScroll(DataSet: TDataSet);
    procedure Edit7Exit(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure initiate;
  end;

var
  StudentBookForm: TStudentBookForm;

implementation
 uses main;
{$R *.dfm}

procedure TStudentBookForm.BitBtn2Click(Sender: TObject);
begin
      close;
end;
procedure TStudentBookForm.initiate;
begin
    combobox1.text:='';
    edit1.text:='0';
    edit1.Enabled:=false;
    edit1.TabStop:=false;
    edit1.ReadOnly:=true;
    edit2.text:='0';
    edit2.Enabled:=false;
    edit2.TabStop:=false;
    edit2.ReadOnly:=true;
    edit3.text:='';
    edit3.Enabled:=false;
    edit3.TabStop:=false;
    edit3.ReadOnly:=true;
    edit4.text:='';
    edit5.text:='';
    edit5.Enabled:=false;
    edit5.TabStop:=false;
    edit5.ReadOnly:=true;
    edit6.text:='';
    edit6.Enabled:=false;
    edit6.TabStop:=false;
    edit6.ReadOnly:=true;
    edit7.text:='0';
    edit8.text:='0';
    edit8.Enabled:=false;
    edit8.TabStop:=false;
    edit8.ReadOnly:=true;
    edit9.text:='0';
    edit9.Enabled:=false;
    edit9.TabStop:=false;
    edit9.ReadOnly:=true;
    edit10.text:='';
    edit11.text:='0';
    edit11.Enabled:=false;
    edit11.TabStop:=false;
    edit11.ReadOnly:=true;
    combobox1.setfocus;
end;
procedure TStudentBookForm.FormActivate(Sender: TObject);
var
  adotable1:TAdoTable;
begin
    dbgrid1.DataSource:=datasource1;
    datasource1.DataSet:=adodataset1;
    adodataset1.Connection:=adoconnection1;
    adodataset1.Close;
    adodataset1.CommandType:=cmdtext;
//    adodataset1.CommandText:='select * from 教材表';
//    adodataset1.open;
    dbgrid1.ReadOnly:=true;
    adotable1:=TAdoTable.Create(self);
    adotable1.Connection:=adoconnection1;
    adotable1.TableName:='班级表';
    adotable1.open;
    combobox1.Items.clear;
    while not adotable1.Eof do
    begin
        combobox1.Items.Add(adotable1.fieldbyname('班级名').asstring);
        adotable1.next;
    end;
    adotable1.close;
    initiate;
end;

procedure TStudentBookForm.ComboBox1Click(Sender: TObject);
var
    adodataset1:TAdoDataset;
begin
    adodataset1:=TAdoDataset.Create(self);
    adodataset1.Connection:=adoconnection1;
    adodataset1.CommandType:=cmdtext;
    adodataset1.CommandText:='select * from 班级表 where 班级名=:s0';
    adodataset1.Parameters.Clear;
    adodataset1.Parameters.AddParameter;
    adodataset1.Parameters[0].name:='s0';
    adodataset1.Parameters[0].DataType:=ftstring;
    adodataset1.Parameters[0].Direction:=pdinput;
    adodataset1.Parameters[0].Value:=combobox1.text;
    adodataset1.Active:=true;
    edit1.text:=IntToStr(adodataset1.fieldbyname('班级人数').asinteger);
    edit2.text:=FloatToStr(adodataset1.fieldbyname('书费').ascurrency);
    edit3.text:=adodataset1.fieldbyname('所在院系').asstring;
    adodataset1.Close;    
end;

procedure TStudentBookForm.Edit4Exit(Sender: TObject);
begin
    adodataset1.Close;
    adodataset1.CommandText:='select * from 教材表 where 教材名=:s0';
    adodataset1.Parameters.clear;
    adodataset1.Parameters.AddParameter;
    adodataset1.Parameters[0].Name:='s0';
    adodataset1.Parameters[0].DataType:=ftstring;
    adodataset1.Parameters[0].Direction:=pdinput;
    adodataset1.Parameters[0].Value:=edit4.text;
    adodataset1.Open;
end;

procedure TStudentBookForm.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
    edit5.text:=adodataset1.fieldbyname('出版社').asstring;
    edit6.text:=adodataset1.fieldbyname('作者').asstring;
    edit11.text:=Inttostr(adodataset1.fieldbyname('教材数量').asinteger);
    edit8.text:=floattostr(adodataset1.fieldbyname('教材单价').ascurrency);
end;

procedure TStudentBookForm.Edit7Exit(Sender: TObject);
begin
    if StrToInt(Edit7.text)>StrToInt(Edit11.text) then
    begin
        Application.MessageBox('目前书库该书的数量不够,请检查!','提示信息',mb_ok);
        edit7.SetFocus;
    end
    else
        edit9.text:=FloatToStr(StrToInt(Edit7.Text)*StrToFloat(Edit8.text));
end;

procedure TStudentBookForm.BitBtn1Click(Sender: TObject);
var
    adoquery1:TAdoQuery;
    adotable1:Tadotable;
begin
    adoquery1:=TAdoQuery.Create(self);
    adoquery1.Connection:=adoconnection1;
    adoquery1.close;
    adoquery1.SQL.add('update 班级表 set 书费=:s0 where 班级名=:s1');
    adoquery1.Parameters.Clear;
    adoquery1.Parameters.AddParameter;
    adoquery1.Parameters[0].name:='s0';
    adoquery1.Parameters[0].DataType:=ftcurrency;
    adoquery1.Parameters[0].Direction:=pdinput;
    adoquery1.Parameters[0].Value:=strToFloat(Edit2.Text)-StrToFloat(Edit9.text);
    adoquery1.Parameters.AddParameter;
    adoquery1.Parameters[1].name:='s1';
    adoquery1.Parameters[1].DataType:=ftstring;
    adoquery1.Parameters[1].Direction:=pdinput;
    adoquery1.Parameters[1].Value:=combobox1.text;
    adoquery1.Prepared;
    adoquery1.ExecSQL;
    adoquery1.close;
    adotable1:=TAdoTable.Create(self);
    adotable1.Connection:=adoconnection1;
    adotable1.Close;
    adotable1.TableName:='学生书费历史库';
    adotable1.open;
    adotable1.AppendRecord([combobox1.text,StrToFloat(Edit2.text),StrToFloat(Edit9.text),StrToFloat(Edit2.text)-StrToFloat(Edit9.text),Edit10.text,username,date(),'学生领书'+Edit7.text+'*'+Edit8.text]);
    adotable1.close;
    adoquery1.close;
    adoquery1.SQL.Clear;
    adoquery1.sql.add('update 教材表 set 教材数量=:s0,最后修改时间=Date() where 教材名=:s1');
    adoquery1.Parameters.Clear;
    adoquery1.Parameters.AddParameter;
    adoquery1.Parameters[0].name:='s0';
    adoquery1.Parameters[0].DataType:=ftinteger;
    adoquery1.Parameters[0].Direction:=pdinput;
    adoquery1.Parameters[0].Value:=StrToInt(Edit11.text)-StrToInt(Edit7.text);
    adoquery1.Parameters.AddParameter;
    adoquery1.Parameters[1].name:='s1';
    adoquery1.Parameters[1].DataType:=ftstring;
    adoquery1.Parameters[1].Direction:=pdinput;
    adoquery1.Parameters[1].Value:=edit4.text;
    adoquery1.ExecSQL;
    adoquery1.close;
    adotable1.Close;
    adotable1.TableName:='教材出入库历史表';
    adotable1.open;
    adotable1.AppendRecord([edit4.text,Edit5.text,adodataset1.FieldByName('获奖情况').AsString,adodataset1.FieldByName('出版年月').Asdatetime,combobox1.text,Edit10.text,StrToInt(Edit11.text),StrToInt(Edit7.text),StrToInt(Edit11.text)-StrToInt(Edit7.text),StrToFloat(Edit8.text),adodataset1.FieldByName('使用说明').AsString,date(),'学生领书'+Edit7.text+'*'+Edit8.text,username,date()]);
    adotable1.close;
    initiate;
end;

end.

⌨️ 快捷键说明

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