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

📄 jshs_form.pas

📁 sql版功能齐全
💻 PAS
字号:
unit JSHS_Form;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Buttons, ComCtrls, TFlatComboBoxUnit,
  TFlatEditUnit, TFlatGroupBoxUnit, TFlatSpeedButtonUnit,DB,DBTables,
  TFlatRadioButtonUnit, TFlatMemoUnit, TFlatButtonUnit, ADODB;

type
  TJSHS_F = class(TForm)
    Close_Btn: TButton;
    JSHS_PC: TPageControl;
    JS_TS: TTabSheet;
    JSQD_FBtn: TFlatButton;
    FlatEdit1: TFlatEdit;
    Label1: TLabel;
    FlatButton1: TFlatButton;
    Label2: TLabel;
    FlatButton2: TFlatButton;
    FlatMemo2: TFlatMemo;
    FlatEdit2: TFlatEdit;
    ADOQuery1: TADOQuery;
    FlatMemo1: TFlatMemo;
    FlatButton3: TFlatButton;
    FlatButton4: TFlatButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure Close_BtnClick(Sender: TObject);
    procedure FlatButton1Click(Sender: TObject);
    procedure FlatButton2Click(Sender: TObject);
    procedure FlatButton3Click(Sender: TObject);
    procedure JSQD_FBtnClick(Sender: TObject);
    procedure FlatButton4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  JSHS_F: TJSHS_F;
  jssl,jssj,tskc,gqts:integer;
  torf:boolean;

implementation

uses
  Common_Unit,DateUtils, ShowBook_Form, Main_Form;

{$R *.dfm}


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

procedure TJSHS_F.FormDestroy(Sender: TObject);
begin
  JSHS_F:=nil;
end;

procedure TJSHS_F.Close_BtnClick(Sender: TObject);
begin
  close;
end;

procedure TJSHS_F.FlatButton1Click(Sender: TObject);
begin
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Text:='select tsjbxx.tsbh,tsjbxx.class,tsjbxx.tsname,tsjbxx.auther,tsjbxx.outdate,tsjbxx.cbs,tsjbxx.cost,tsjbxx.totalnum,tsjbxx.lastnum,tsjbxx.bz,tslb.classname from tsjbxx,tslb where tsjbxx.class=tslb.classid and tsbh='+chr(39)+FlatEdit1.Text+chr(39) ;
  adoquery1.open;
  if adoquery1.RecordCount >0 then
     begin
        FlatMemo1.Lines.Clear;
        FlatMemo1.Lines.Add('图书信息:');
        FlatMemo1.Lines.Add('编号:'+adoquery1.Fields.Fields[0].value);
        FlatMemo1.Lines.Add('类别:'+adoquery1.Fields.Fields[1].value+'-'+adoquery1.Fields.Fields[10].value);
        FlatMemo1.Lines.Add('书名:'+adoquery1.Fields.Fields[2].value);
        FlatMemo1.Lines.Add('作者:'+adoquery1.Fields.Fields[3].value);
        FlatMemo1.Lines.Add('出版时间:'+datetimetostr(adoquery1.Fields.Fields[4].value));
        FlatMemo1.Lines.Add('出版社:'+adoquery1.Fields.Fields[5].value);
        FlatMemo1.Lines.Add('定价:'+inttostr(adoquery1.Fields.Fields[6].value));
        FlatMemo1.Lines.Add('总数量:'+inttostr(adoquery1.Fields.Fields[7].value));
        tskc:=adoquery1.Fields.Fields[8].value;
        FlatMemo1.Lines.Add('库存数量:'+inttostr(tskc));
        FlatMemo1.Lines.Add('备注:'+adoquery1.Fields.Fields[9].value);
     end
  else
     MessageBox(handle,'图书不存在,请检查编号!','错误',MB_OK or MB_ICONINFORMATION);
end;

procedure TJSHS_F.FlatButton2Click(Sender: TObject);
var
   m:integer;
begin
    try
       adoquery1.SQL.Clear;
       adoquery1.SQL.Text:='select yh.userid,yh.name,yh.sex,yh.groupid,yh.zjid,groupuser.groupname,groupuser.maxdate,groupuser.maxnum from yh,groupuser where yh.groupid=groupuser.groupid and userid='+FlatEdit2.Text;
       adoquery1.open;
       FlatMemo2.Lines.Clear;
       if adoquery1.RecordCount >0 then
         begin
           JSQD_FBtn.Enabled:=true;
           FlatButton4.Enabled:=true;
           FlatMemo2.Lines.Add('借书证号码:'+inttostr(adoquery1.Fields.Fields[0].Value));
           FlatMemo2.Lines.Add('姓名:'+adoquery1.Fields.Fields[1].Value);
           FlatMemo2.Lines.Add('性别:'+adoquery1.Fields.Fields[2].Value);
           FlatMemo2.Lines.Add('用户类别:'+trim(adoquery1.Fields.Fields[3].Value)+'-'+adoquery1.Fields.Fields[5].Value);
           FlatMemo2.Lines.Add('证件号码:'+adoquery1.Fields.Fields[4].Value);
           jssj:=adoquery1.Fields.Fields[6].Value;
           m:=adoquery1.Fields.Fields[7].Value;
           gqts:=m;
           FlatMemo2.Lines.Add('借书最大天数:'+inttostr(jssj));
           FlatMemo2.Lines.Add('借书最大数量:'+inttostr(m));
           adoquery1.SQL.Clear;
           adoquery1.SQL.Text:='select tsbh from jyxxb where hdate is null and userid='+chr(39)+FlatEdit2.Text+chr(39);
           adoquery1.open;
           FlatMemo2.Lines.Add('用户已借图书数量:'+inttostr(adoquery1.RecordCount));
           jssl:=m-adoquery1.RecordCount;
           torf:=true;
           if adoquery1.RecordCount >0 then
             begin
               while not adoquery1.Eof do
               begin
                 FlatMemo2.Lines.Add('图书编号:'+adoquery1.Fields.Fields[0].value);
                 if adoquery1.Fields.Fields[0].value=FlatEdit1.Text then torf:=false;
                 adoquery1.Next;
               end;
             end;
         end;
    except
       MessageBox(handle,'无法读取用户资料,请检查编号!','错误',MB_OK or MB_ICONINFORMATION);
    end;

end;

procedure TJSHS_F.FlatButton3Click(Sender: TObject);
begin
  FlatEdit1.Text:='';
  FlatEdit2.Text:='';
  FlatMemo1.Lines.Clear;
  FlatMemo2.Lines.Clear;
  JSQD_FBtn.Enabled:=false;
  FlatButton4.Enabled:=false;
end;

procedure TJSHS_F.JSQD_FBtnClick(Sender: TObject);
var
  m:integer;
begin
    if torf=false then MessageBox(handle,'读者已经借了这本书,不能再借!','错误',MB_OK or MB_ICONINFORMATION);;
    if (jssl>1) and (tskc>1) and (torf=true) then
    begin
    try
       adoquery1.Close;
       adoquery1.SQL.Clear;
       adoquery1.SQL.add('INSERT INTO jyxxb (userid,tsbh,jdate,lastdate)');
       adoquery1.SQL.add('VALUES ('+FlatEdit2.Text+','+chr(39)+FlatEdit1.Text+chr(39)+',');
       adoquery1.SQL.add(chr(39)+datetimetostr(date())+chr(39)+','+chr(39)+datetimetostr(date()+jssj)+chr(39)+')');
       adoquery1.SQL.Add('update tsjbxx set lastnum=lastnum-1 where tsbh='+chr(39)+FlatEdit1.Text+chr(39));
       adoquery1.ExecSQL;
       try
       adoquery1.SQL.Clear;
       adoquery1.SQL.Text:='select yh.userid,yh.name,yh.sex,yh.groupid,yh.zjid,groupuser.groupname,groupuser.maxdate,groupuser.maxnum from yh,groupuser where yh.groupid=groupuser.groupid and userid='+FlatEdit2.Text;
       adoquery1.open;
       FlatMemo2.Lines.Clear;
       if adoquery1.RecordCount >0 then
         begin
           JSQD_FBtn.Enabled:=false;
           FlatButton4.Enabled:=false;
           FlatMemo2.Lines.Add('借书证号码:'+inttostr(adoquery1.Fields.Fields[0].Value));
           FlatMemo2.Lines.Add('姓名:'+adoquery1.Fields.Fields[1].Value);
           FlatMemo2.Lines.Add('性别:'+adoquery1.Fields.Fields[2].Value);
           FlatMemo2.Lines.Add('用户类别:'+trim(adoquery1.Fields.Fields[3].Value)+'-'+adoquery1.Fields.Fields[5].Value);
           FlatMemo2.Lines.Add('证件号码:'+adoquery1.Fields.Fields[4].Value);
           jssj:=adoquery1.Fields.Fields[6].Value;
           m:=adoquery1.Fields.Fields[7].Value;
           FlatMemo2.Lines.Add('借书最大天数:'+inttostr(jssj));
           FlatMemo2.Lines.Add('借书最大数量:'+inttostr(m));
           adoquery1.SQL.Clear;
           adoquery1.SQL.Text:='select tsbh from jyxxb where hdate is null and userid='+chr(39)+FlatEdit2.Text+chr(39);
           adoquery1.open;
           FlatMemo2.Lines.Add('用户已借图书数量:'+inttostr(adoquery1.RecordCount));
           jssl:=m-adoquery1.RecordCount;
           FlatMemo1.Lines.Clear;
           FlatMemo1.Lines.Add('图书('+FlatEdit1.Text+')成功借给当前读者!');
           torf:=true;
           if adoquery1.RecordCount >0 then
             begin
               while not adoquery1.Eof do
               begin
                 FlatMemo2.Lines.Add('图书编号:'+adoquery1.Fields.Fields[0].value);
                 if adoquery1.Fields.Fields[0].value=FlatEdit1.Text then torf:=false;
                 adoquery1.Next;
               end;
             end;
           FlatEdit1.Text:='';
         end;
    except
       MessageBox(handle,'无法读取用户资料,请检查编号!','错误',MB_OK or MB_ICONINFORMATION);
    end;
    except
    end;
    end;
end;

procedure TJSHS_F.FlatButton4Click(Sender: TObject);
var
  ts,jg,m:integer;
begin
  try
    adoquery1.SQL.Clear;
    adoquery1.SQL.Text:='select jdate,lastdate from jyxxb where hdate is null and userid='+FlatEdit2.Text+' and tsbh='+chr(39)+FlatEdit1.Text+chr(39);
    adoquery1.open;
    if adoquery1.RecordCount <1 then
       begin
         MessageBox(handle,'当前读者没有借该书,请检查编号!','错误',MB_OK or MB_ICONINFORMATION);
       end
    else
      begin
        ts:=strtoint(FloatToStr(adoquery1.Fields.Fields[0].Value-Date()));
        adoquery1.SQL.Clear;
        adoquery1.SQL.Text:='select s1 from sx';
        adoquery1.open;
        jg:=adoquery1.Fields.Fields[0].Value;
        adoquery1.SQL.Clear;
        adoquery1.SQL.Text:='update jyxxb set hdate='+chr(39)+datetostr(date())+chr(39)+' where userid='+FlatEdit2.Text+' and tsbh='+chr(39)+FlatEdit1.Text+chr(39);
//        showmessage(adoquery1.SQL.Text);
        adoquery1.ExecSQL;
        try
           adoquery1.SQL.Clear;
           adoquery1.SQL.Text:='select yh.userid,yh.name,yh.sex,yh.groupid,yh.zjid,groupuser.groupname,groupuser.maxdate,groupuser.maxnum from yh,groupuser where yh.groupid=groupuser.groupid and userid='+FlatEdit2.Text;
           adoquery1.open;
           FlatMemo2.Lines.Clear;
           if adoquery1.RecordCount >0 then
             begin
               JSQD_FBtn.Enabled:=false;
               FlatButton4.Enabled:=false;
               FlatMemo2.Lines.Add('借书证号码:'+inttostr(adoquery1.Fields.Fields[0].Value));
               FlatMemo2.Lines.Add('姓名:'+adoquery1.Fields.Fields[1].Value);
               FlatMemo2.Lines.Add('性别:'+adoquery1.Fields.Fields[2].Value);
               FlatMemo2.Lines.Add('用户类别:'+trim(adoquery1.Fields.Fields[3].Value)+'-'+adoquery1.Fields.Fields[5].Value);
               FlatMemo2.Lines.Add('证件号码:'+adoquery1.Fields.Fields[4].Value);
               jssj:=adoquery1.Fields.Fields[6].Value;
               m:=adoquery1.Fields.Fields[7].Value;
               FlatMemo2.Lines.Add('借书最大天数:'+inttostr(jssj));
               FlatMemo2.Lines.Add('借书最大数量:'+inttostr(m));
               adoquery1.SQL.Clear;
               adoquery1.SQL.Text:='select tsbh from jyxxb where hdate is null and userid='+chr(39)+FlatEdit2.Text+chr(39);
               adoquery1.open;
               FlatMemo2.Lines.Add('用户已借图书数量:'+inttostr(adoquery1.RecordCount));
               jssl:=m-adoquery1.RecordCount;
               FlatMemo1.Lines.Clear;
               if ts<=gqts then  FlatMemo1.Lines.Add('没有超期!')
               else
                 begin
                   FlatMemo1.Lines.Add('超期'+inttostr(ts-gqts)+'天');
                   FlatMemo1.Lines.Add('罚款'+inttostr((ts-gqts)*jg)+'元');
                 end;
               FlatMemo1.Lines.Add('图书('+FlatEdit1.Text+')成功归还!');
               torf:=true;
               if adoquery1.RecordCount >0 then
                 begin
                   while not adoquery1.Eof do
                   begin
                     FlatMemo2.Lines.Add('图书编号:'+adoquery1.Fields.Fields[0].value);
                     if adoquery1.Fields.Fields[0].value=FlatEdit1.Text then torf:=false;
                     adoquery1.Next;
                   end;
                 end;
               FlatEdit1.Text:='';
             end;
        except
           MessageBox(handle,'无法读取用户资料,请检查编号!','错误',MB_OK or MB_ICONINFORMATION);
        end;
      end;
  except
  end;
end;

end.

⌨️ 快捷键说明

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