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

📄 studentbook.~pas

📁 一个详实的图书信息管理系统
💻 ~PAS
字号:
unit studentbook;

interface

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

type
  Tstudentform = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    ComboBox1: TComboBox;
    GroupBox2: TGroupBox;
    Label8: TLabel;
    Label9: TLabel;
    Edit7: TEdit;
    Edit8: TEdit;
    Label10: TLabel;
    Edit9: TEdit;
    Edit10: TEdit;
    Label11: TLabel;
    Label12: TLabel;
    Edit11: TEdit;
    ADOConnection1: TADOConnection;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    ADODataSet1: TADODataSet;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Label3: TLabel;
    Edit4: TEdit;
    Edit5: TEdit;
    Label6: TLabel;
    ADOTable1: TADOTable;
    Label7: TLabel;
    Edit6: TEdit;
    ADODataSet2: TADODataSet;
    procedure FormActivate(Sender: TObject);
    procedure BitBtn2Click(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 initform();
  end;

var
  studentform: Tstudentform;

implementation

{$R *.dfm}


procedure Tstudentform.initform();
begin
  edit1.Text:='0';
  edit1.ReadOnly:=true;
  edit1.TabStop:=false;
  edit1.Enabled:=false;

  edit2.Text:='0';
  edit2.ReadOnly:=true;
  edit2.TabStop:=false;
  edit2.Enabled:=true;

  edit3.Text:='0';
  edit3.ReadOnly:=true;
  edit3.TabStop:=false;
  edit3.Enabled:=true;

  edit6.Text:='';
  edit6.ReadOnly:=true;
  edit6.TabStop:=false;
  edit6.Enabled:=true;

  edit8.Text:='0';
  edit8.ReadOnly:=true;
  edit8.TabStop:=false;
  edit8.Enabled:=true;

  edit9.Text:='0';
  edit9.ReadOnly:=true;
  edit9.TabStop:=false;
  edit9.Enabled:=true;

  edit11.Text:='0';
  edit11.ReadOnly:=true;
  edit11.TabStop:=false;
  edit11.Enabled:=true;

  edit4.Text:='';
  edit5.Text:='';
  edit10.Text:=username;
  edit7.Text:='0';

  combobox1.Text:='';
  combobox1.SetFocus;
  edit4.Text:='';
  edit4.SetFocus;
end;

procedure Tstudentform.FormActivate(Sender: TObject);
begin
   ADOConnection1:=CheckUserForm.ADOConnection1;
   adotable1.Connection:=ADOConnection1;
   dbgrid1.DataSource:=DataSource1;
   DataSource1.DataSet:=adodataset1;
   adodataset1.Connection:=ADOConnection1;
   adodataset2.Connection:=ADOConnection1;
   adodataset1.CommandType:=cmdtext;
   adodataset1.Close;
   dbgrid1.ReadOnly:=true;


   adotable1.TableName:='班级表';
   adotable1.Active:=true;

   while not adotable1.Eof do
   begin
     combobox1.Items.Add(adotable1.fieldbyname('班级名').AsString);
     adotable1.Next;
   end;
   combobox1.Text:='';
   adotable1.Close;
//----------------------模块的初始化-------------------
   initform;
end;

procedure Tstudentform.BitBtn2Click(Sender: TObject);
begin
    close;
end;



procedure Tstudentform.ComboBox1Click(Sender: TObject);
begin
  adodataset2.CommandType:=cmdtext;
  adodataset2.CommandText:='select * from 班级表 where 班级名=:classname order by 班级名 asc';
  adodataset2.Parameters.Clear;
  adodataset2.Parameters.AddParameter;
  adodataset2.Parameters[0].Name:='classname';
  adodataset2.Parameters[0].DataType:=ftstring;
  adodataset2.Parameters[0].Direction:=pdinput;
  adodataset2.Parameters[0].Value:=combobox1.Text;
  adodataset2.Active:=true;
  edit2.Text:=currtostr(adodataset2.fieldbyname('书费').AsCurrency);
  edit1.Text:=inttostr(adodataset2.fieldbyname('班级人数').AsInteger);
  edit3.Text:=adodataset2.fieldbyname('所在院系').AsString;
  adodataset2.Close;
end;

procedure Tstudentform.Edit4Exit(Sender: TObject);
begin
  adodataset1.Close;
  adodataset1.CommandText:='select * from 教材表 where 教材名=:classname order by 教材名 asc';
  adodataset1.Parameters.Clear;
  adodataset1.Parameters.AddParameter;
  adodataset1.Parameters[0].Name:='classname';
  adodataset1.Parameters[0].DataType:=ftstring;
  adodataset1.Parameters[0].Direction:=pdinput;
  adodataset1.Parameters[0].Value:=edit4.Text;
  adodataset1.Active:=true;

    dbgrid1.Columns[0].Width:=60;
    dbgrid1.Columns[1].Width:=90;
    dbgrid1.Columns[2].Width:=60;
    dbgrid1.Columns[3].Width:=80;
    dbgrid1.Columns[4].Width:=60;
    dbgrid1.Columns[5].Width:=60;
    dbgrid1.Columns[6].Width:=60;

    dbgrid1.Columns[7].Width:=55;
    dbgrid1.Columns[8].Width:=55;
    dbgrid1.Columns[9].Width:=60;
    dbgrid1.Columns[10].Width:=60;
    dbgrid1.Columns[11].Width:=80;
    dbgrid1.Columns[12].Width:=60;
    dbgrid1.Columns[13].Width:=80;
    dbgrid1.Columns[14].Width:=20;
end;

procedure Tstudentform.ADODataSet1AfterScroll(DataSet: TDataSet);
begin
   edit5.Text:=ADODataSet1.Fieldbyname('出版社').AsString;
   edit6.Text:=ADODataSet1.Fieldbyname('作者').AsString;
   edit11.Text:=inttostr(ADODataSet1.Fieldbyname('教材数量').asinteger);
   edit8.Text:=currtostr(ADODataSet1.Fieldbyname('教材单价').Ascurrency);
end;

procedure Tstudentform.Edit7Exit(Sender: TObject);
begin

   if strtoint(edit7.Text)>strtoint(edit11.Text) then
    begin
        application.MessageBox('库存不足!','提示!',48);
        edit7.SetFocus;
    end
    else
      edit9.Text:=floattostr(strtofloat(edit8.Text)*strtofloat(edit7.Text));
end;

procedure Tstudentform.BitBtn1Click(Sender: TObject);
  var  adoquery1:tadoquery;
begin
//------------------更新班级表信息---------------------
     adoquery1:=tadoquery.Create(self);
     adoquery1.Connection:=ADOConnection1;
     adoquery1.Close;
     adoquery1.SQL.Clear;
     adoquery1.SQL.Add('update 班级表 set 书费=:SF where 班级名=:classname');
     adoquery1.Parameters.Clear;
     adoquery1.Parameters.AddParameter;
     adoquery1.Parameters[0].Name:='SF';
     adoquery1.Parameters[0].DataType:=ftstring;
     adoquery1.Parameters[0].Direction:=pdinput;
     adoquery1.Parameters[0].Value:=strtocurr(edit2.Text)-strtocurr(edit9.Text);

     adoquery1.Parameters.AddParameter;
     adoquery1.Parameters[1].Name:='classname';
     adoquery1.Parameters[1].DataType:=ftstring;
     adoquery1.Parameters[1].Direction:=pdinput;
     adoquery1.Parameters[1].Value:=combobox1.Text;

     adoquery1.ExecSQL;
     adoquery1.Close;

//------------------更新教材表---------------------
      adoquery1.SQL.Clear;
     adoquery1.SQL.Add('update 教材表 set 教材数量=:SL,最后修改时间=date() where 教材名=:name');
     adoquery1.Parameters.Clear;
     adoquery1.Parameters.AddParameter;
     adoquery1.Parameters[0].Name:='SL';
     adoquery1.Parameters[0].DataType:=ftstring;
     adoquery1.Parameters[0].Direction:=pdinput;
     adoquery1.Parameters[0].Value:=strtoint(edit11.Text)-strtoint(edit7.Text);

     adoquery1.Parameters.AddParameter;
     adoquery1.Parameters[1].Name:='name';
     adoquery1.Parameters[1].DataType:=ftstring;
     adoquery1.Parameters[1].Direction:=pdinput;
     adoquery1.Parameters[1].Value:=edit4.Text;

     adoquery1.ExecSQL;
//---------------添加学生书费历史记录----------------
     adotable1.Close;
     adotable1.TableName:='学生书费历史库';
     adotable1.Open;

     adotable1.AppendRecord ([combobox1.Text,strtocurr(edit2.Text),strtocurr(edit9.Text),
                    strtocurr(edit2.Text)-strtocurr(edit9.Text),
                    username,username,date(),
                    '领书花费'+edit9.Text+'元']);

     adotable1.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),
                             strtocurr(edit8.Text),
                             adodataset1.FieldByName('使用说明').AsString,
                             date(),
                             '领书花费'+edit9.Text+'元',
                             username,
                             date()]);

     adotable1.Close;
     initform;
end;

end.

⌨️ 快捷键说明

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