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

📄 readunit.pas

📁 图书馆管理系统,非常有用,希望给你带来帮助
💻 PAS
字号:
unit ReadUnit;

interface

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

type
  TReadForm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    ComboBox2: TComboBox;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    StatusBar1: TStatusBar;
    BitBtn4: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure WMNCpaint(var Msg:TWMNCPaint); message WM_NCPAINT;
  public
    { Public declarations }
  end;

var
  ReadForm: TReadForm;

implementation
uses DMUnit,Share;

{$R *.dfm}

procedure TReadForm.WMNCpaint(var Msg: TWMNCPaint);
begin
  inherited;
  Draw(ReadForm);
end;

procedure TReadForm.FormCreate(Sender: TObject);
var
  readstr:TStrings;
begin
  readstr:=TStringList.Create;
  try
    readstr:=DM.GetReadTyp;
    Combobox2.Items.Clear;
    combobox2.Items.Assign(readstr);
    combobox2.ItemIndex:=0;
    readstr:=DM.GetAllReadID;
    Combobox1.Items.Clear;
    combobox1.Items.Assign(readstr);
    combobox1.ItemIndex:=0;
  finally
    readstr.Free;
  end;
end;

procedure TReadForm.ComboBox1Change(Sender: TObject);
begin
  with DM.ReadQuery do
  begin
    SQL.Text:='select read_name,read_type,read_addr,read_post,'+
              'read_phone,read_hand,read_email,read_qq from read_info'+
              ' where read_id=:in0';
    Parameters[0].Value:=Trim(combobox1.Text);
    Prepared;
    Open;
    if RecordCount=1 then
    begin
      edit1.Text:=Fields[0].AsString;
      combobox2.Text:=Fields[1].AsString;
      Edit2.Text:=Fields[2].AsString;
      Edit3.Text:=Fields[3].AsString;
      Edit4.Text:=Fields[4].AsString;
      Edit5.Text:=Fields[5].AsString;
      Edit6.Text:=Fields[6].AsString;
      Edit7.Text:=Fields[7].AsString;
    end;
    Close;
  end;
end;

procedure TReadForm.ComboBox2Change(Sender: TObject);
var
  i:byte;
begin
  With DM do
  begin
    ReadQuery.SQL.Text:='select book_num from read_type where type_sno=:in0';
    REadQuery.Parameters[0].Value:=combobox2.Text;
    ReadQuery.Prepared;
    ReadQuery.Open;
    i:=ReadQuery.Fields[0].AsInteger;
    ReadQuery.Close;
  end;
  StatusBar1.Panels[1].Text:='此类型用户可借书'+inttostr(i)+'本';
end;

procedure TReadForm.BitBtn1Click(Sender: TObject);
begin
  with DM do
  begin
    if not ValRead(Trim(combobox1.Text)) then
    begin
      showmessage('此读者编号在数据库中不存在!');
      combobox1.SetFocus;
      exit;
    end;
    ADOConn.BeginTrans;
    try
      ReadQuery.SQL.Text:='update read_info set read_name=:in0,read_type=:in1,'+
                          'read_addr=:in2,read_post=:in3,read_phone=:in4,'+
                          'read_hand=:in5,read_email=:in6,read_qq=:in7 where '+
                          ' read_id=:in8';
      ReadQuery.Parameters[0].Value:=Trim(edit1.Text);
      ReadQuery.Parameters[1].Value:=combobox2.Text;
      ReadQuery.Parameters[2].Value:=Trim(edit2.Text);
      ReadQuery.Parameters[3].Value:=Trim(edit3.Text);
      ReadQuery.Parameters[4].Value:=Trim(edit4.Text);
      ReadQuery.Parameters[5].Value:=Trim(edit5.Text);
      ReadQuery.Parameters[6].Value:=Trim(edit6.Text);
      ReadQuery.Parameters[7].Value:=Trim(edit7.Text);
      ReadQuery.Parameters[8].Value:=Trim(combobox1.Text);
      ReadQuery.Prepared;
      ReadQuery.ExecSQL;
      ADOconn.CommitTrans;
    except
      ADOconn.RollbackTrans;
      showmessage('更新读者信息时出错!');
    end;
    ReadQuery.Close;
  end;
  showmessage('恭喜!修改成功。');
end;

procedure TReadForm.BitBtn2Click(Sender: TObject);
begin
  with DM do
  begin
    if ValRead(trim(combobox1.Text)) then
    begin
      showmessage('此读者信息在库存中已存在!');
      combobox1.SetFocus;
      exit;
    end;
    ADOConn.BeginTrans;
    try
      ReadQuery.SQL.Text:='insert into read_info(read_id,read_name,read_type,'+
                          'read_addr,read_post,read_phone,read_hand,read_email,'+
                          'read_qq) values(:in0,:in1,:in2,:in3,:in4,:in5,:in6,:in7,:in8)';
      ReadQuery.Parameters[0].Value:=Trim(combobox1.Text);
      ReadQuery.Parameters[1].Value:=Trim(edit1.Text);
      ReadQuery.Parameters[2].Value:=combobox2.Text;
      ReadQuery.Parameters[3].Value:=Trim(edit2.Text);
      ReadQuery.Parameters[4].Value:=Trim(edit3.Text);
      ReadQuery.Parameters[5].Value:=Trim(edit4.Text);
      ReadQuery.Parameters[6].Value:=Trim(edit5.Text);
      ReadQuery.Parameters[7].Value:=Trim(edit6.Text);
      ReadQuery.Parameters[8].Value:=Trim(edit7.Text);
      ReadQuery.Prepared;
      ReadQuery.ExecSQL;
      ADOConn.CommitTrans;
    except
      ADOConn.RollbackTrans;
      showmessage('添加读者时发生异常情况!');
    end;
    ReadQuery.Close;
  end;
  showmessage('恭喜,添加成功');
end;

procedure TReadForm.BitBtn3Click(Sender: TObject);
begin
  with DM do
  begin
    if not valRead(trim(combobox1.Text)) then
    begin
      showmessage('数据库中没有这个读者编号!');
      combobox1.SetFocus;
      exit;
    end;
    ADOConn.BeginTrans;
    try
      ReadQuery.SQL.Text:='delete from read_info where read_id=:in0';
      ReadQuery.Parameters[0].Value:=Trim(combobox1.Text);
      ReadQuery.Prepared;
      ReadQuery.ExecSQL;
      ADOConn.CommitTrans;
    except
      ADOconn.RollbackTrans;
      showmessage('发生了意外事故!');
    end;
    ReadQuery.Close;
  end;
  BitBtn4Click(Sender);
end;

procedure TReadForm.BitBtn4Click(Sender: TObject);
var
  readstr:TStrings;
begin
  readstr:=TStringList.Create;
  try
    readstr:=DM.Getreadid;
    combobox1.Items.Clear;
    combobox1.Items.Assign(readstr);
    combobox1.ItemIndex:=0;
  finally
    readstr.Free;
  end;
end;

procedure TReadForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ReadForm:=nil;
  Action:=caFree;
end;

end.

⌨️ 快捷键说明

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