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

📄 readermanage.pas

📁 本图书管理系统一sql server为数据库开发平台
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    cardinfo.AllowNum:=fieldbyname('allownum').AsInteger;
    cardinfo.TimeLong:=fieldbyname('timelong').AsInteger;
  end;
end;

procedure TReaderForm.ComboBox31KeyPress(Sender: TObject; var Key: Char);
begin
  {if speedbutton9.Enabled  then
    if (key=#13) and (trim((sender as TCombobox).Text)<>'')   then
    begin
      Customshowfield('Cardid',(sender as TCombobox).Text);
      if not speedbutton9.Enabled then
        combobox4.SetFocus;
    End;}

  if speedbutton9.Enabled  then
  if (key=#13) and (trim((sender as TMyCombobox).Text)<>'')  then
  begin
    if not (sender as TMyCombobox).DroppedDown then
    begin
     Customshowfield('Cardid',(sender as TMyCombobox).Text);
     if combobox4.Enabled then
       combobox4.SetFocus;
     end;
  end
  else
     (sender as TMyCombobox).DroppedDown:=true;


end;

procedure TReaderForm.ComboBox4KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
    edit2.SetFocus;
  key:=#0;
end;

procedure TReaderForm.setedit(value:Boolean);
begin
  edit2.Enabled:=value;
  edit7.Enabled:=value;
  edit13.Enabled:=value;
  edit14.Enabled:=value;
  edit10.Enabled:=value;
  memo2.Enabled:=value;
  combobox4.Enabled:=value;
end;


procedure TReaderForm.writefield(test:boolean;fieldname:string;value:variant);
begin
  with data.PublicQuery do
  begin
    if test then
    begin
      close;
      sql.Clear;
      sql.add('select * from Lendcardinfo where '+fieldname+'=:value and not Cardid=:cardid');
      parameters.parambyname('value').value:=value;
      parameters.ParamByName('cardid').Value:=recordmemory;
      open;
      if recordcount > 0 then
        begin
        myshowmessage(pchar('你所填写的字段值:'+VarToStr(value)+' 与其他纪录的重复'));
        exit;
        end;
    end;
    close;
    sql.Clear;
    sql.Add('update Lendcardinfo set '+fieldname+'=:value where Cardid=:cardid');
    parameters.ParamByName('value').Value:=value;
    parameters.ParamByName('cardid').Value:=recordmemory;
    execsql;
  end;
end;


procedure TReaderForm.SpeedButton10Click(Sender: TObject);
begin
  if not speedbutton9.Enabled then
   begin  //s
    speedbutton9.Enabled:=true;
    if edit2.Modified then
      writefield(false,'name',edit2.Text);
    if edit7.Modified then
      writefield(false,'ID',edit7.Text);
    if edit13.Modified then
      writefield(false,'phone',edit13.Text);
    if edit14.Modified then
      writefield(false,'worker',edit14.Text);
    if edit10.Modified then
      writefield(false,'live',edit10.Text);
    if memo2.Modified then
      writefield(false,'Memo',memo2.Text);
    writefield(true,'cardid',combobox3.Text);
    kindchange;
    if imagechanged then
    begin
      imagetotable;
      imagechanged:=false;
    end;
    speedbutton12.Caption:='&C刷新';
    setedit(false);
    formshow(self);
  end;  //s
end;

procedure TreaderForm.kindchange;
begin
  with data.PublicQuery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from lendcardinfo where cardid=:cardid');
    parameters.ParamByName('cardid').Value:=recordmemory;
    open;
    if combobox4.Text <> fieldbyname('cardkind').asstring then
    begin
      close;
      sql.Clear;
      sql.Add('update Lendcardinfo set enddate=:value where Cardid=:cardid');
      parameters.ParamByName('value').Value:=EncodeDate((strtoint(formatdatetime('yyyy',date))+(strtoint(formatdatetime('mm',date))+cardinfo.TimeLong) div 12),((strtoint(formatdatetime('mm',date))+cardinfo.TimeLong) mod 12),strtoint(formatdatetime('dd',date)));
      parameters.ParamByName('cardid').Value:=recordmemory;
      execsql;
      writefield(false,'cardkind',combobox4.Text);
      close;
      sql.Clear;
      sql.Add('insert into lendcardrecord values(:CardID,:Worker,:CardKind,:consignDate,:timelong,:Memo)');
      parameters.ParamByName('CardID').Value:=recordmemory;
      parameters.ParamByName('Worker').Value:=edit14.Text;
      parameters.ParamByName('CardKind').Value:=combobox4.Text;
      parameters.ParamByName('consignDate').Value:=date;
      parameters.ParamByName('Timelong').Value:=cardinfo.TimeLong;
      parameters.ParamByName('Memo').Value:=memo2.Text;
      execsql;
    end;
  end;

end;
procedure TReaderForm.imagetotable;
begin
  with data.PublicQuery do
  begin
    close;
    sql.Clear;
    sql.Add('update lendcardinfo set picture=:value where cardid=:cardid');
    parameters.ParamByName('value').Assign(image2.picture);
    parameters.ParamByName('cardid').Value:=recordmemory;
    execsql;
  end;
end;

procedure TReaderForm.Image2Click(Sender: TObject);
begin
  if not speedbutton9.Enabled then
  begin
    if opdialog1.Execute then
    begin
      try
        image2.Picture.LoadFromFile(opdialog1.FileName);
        imagechanged:=true;
      except
        myshowmessage('对不起!图片载入失败');
      end;
    end;
  end;
end;

procedure TReaderForm.SpeedButton12Click(Sender: TObject);
begin
  if not speedbutton9.Enabled then
  begin
    speedbutton9.Enabled:=true;
    image2.Picture.Assign(nil);
    setedit(false);
    speedbutton12.Caption:='&C刷新';
  end;
  formshow(self);
end;

procedure TReaderForm.SpeedButton14Click(Sender: TObject);
begin
if recordmemory <> '' then
 if myshowmessage('您确定要删除本卡的信息吗?') then
  begin
  with data.PublicQuery do
  begin
    close;
    sql.Clear;
    sql.Add('delete from lendcardinfo where cardid=:cardid');
    parameters.ParamByName('cardid').Value:=recordmemory;
    execsql;
  end;
 formshow(self);
 end;
end;

procedure TReaderForm.SpeedButton15Click(Sender: TObject);
var
 sTime:string;
 itime:integer;
 olddate:TDatetime;
begin
if Inputquery('询问','输入续租的时间以月为单位:',stime) then
   begin        // input
      try
        itime:=strtoint(stime);
      except
        on econverterror do
        begin
          myshowmessage('对不起!请您输入数字!');
          exit;
         end;
      end;       //try
      with data.PublicQuery do
      begin        // with
        close;
        sql.Clear;
        sql.Add('select * from lendcardinfo where cardid=:card');
        parameters.ParamByName('card').Value:=recordmemory;
        open;
        olddate:=fieldbyname('enddate').AsDateTime;
        close;
        sql.Clear;
        sql.Add('update Lendcardinfo set enddate=:value where Cardid=:cardid');
        parameters.ParamByName('value').Value:=dateadd(olddate,itime);
        parameters.ParamByName('cardid').Value:=recordmemory;
        execsql;
        close;
        sql.Clear;
        sql.Add('insert into lendcardrecord values(:CardID,:Worker,:CardKind,:consignDate,:timelong,:Memo)');
        parameters.ParamByName('CardID').Value:=recordmemory;
        parameters.ParamByName('Worker').Value:=edit14.Text;
        parameters.ParamByName('CardKind').Value:=combobox4.Text;
        parameters.ParamByName('consignDate').Value:=date;
        parameters.ParamByName('Timelong').Value:=itime;
        parameters.ParamByName('Memo').Value:=memo2.Text;
        execsql;
        formshow(self);
     end;   //with
   end;      //input
end;

function TreaderForm.Dateadd(Vardate:Tdatetime;varmonth:integer):Tdatetime;
begin
  result:=EncodeDate((strtoint(formatdatetime('yyyy',vardate))+(strtoint(formatdatetime('mm',vardate))+varmonth) div 13),((strtoint(formatdatetime('mm',vardate))+varmonth) div 13+(strtoint(formatdatetime('mm',vardate))+varmonth) mod 13),strtoint(formatdatetime('dd',vardate)))
end;

procedure TReaderForm.SpeedButton16Click(Sender: TObject);
var
  stopdate,dateold:Tdatetime;
  itimelong:integer;
  stimelong:string;
begin
  if speedbutton16.Caption='&P报停' then
  begin  // setstop
    if inputboxshow('是否确认报停此卡?','报停时间长度',stimelong) then
    begin
      try
        itimelong:=strtoint(stimelong);
      except
        myshowmessage('请输入数字!');
        exit;
      end;
      with data.PublicQuery do
      begin
        close;
        sql.Clear;
        sql.Add('select * from lendcardinfo where cardid=:cardid');
        parameters.ParamByName('cardid').Value:=recordmemory;
        open;
        close;
        sql.Clear;
        sql.Add('select * from lendcardinfo where cardid=:cardid');
        parameters.ParamByName('cardid').Value:=recordmemory;
        open;
        dateold:=fieldbyname('enddate').AsDateTime;
        close;
        sql.Clear;
        sql.Add('update lendcardinfo set usesing=0,stoptime=:timelong,stopdate=:stopdate,enddate=:enddate where cardid=:cardid');
        parameters.ParamByName('cardid').Value:=recordmemory;
        parameters.ParamByName('timelong').Value:=itimelong;
        parameters.ParamByName('stopdate').Value:=date;
        parameters.ParamByName('enddate').Value:=dateadd(dateold,itimelong);
        execsql;
      end;
      formshow(self);
    end;
  end //setstop
  else
  begin  //restore
    if myshowmessage('是否确认恢复此卡?') then
    begin
      with data.PublicQuery do
      begin
        close;
        sql.Clear;
        sql.Add('select * from lendcardinfo where cardid=:cardid');
        parameters.ParamByName('cardid').Value:=recordmemory;
        open;
        dateold:=fieldbyname('enddate').AsDateTime;
        itimelong:=fieldbyname('stoptime').asinteger;
        stopdate:=fieldbyname('stopdate').AsDateTime;
        dateold:=dateold-(round(dateadd(stopdate,itimelong)-date));
        if dateold<=date then
          begin
           myshowmessage('此卡已经过期!请续费!');
           exit;
          end
          else
          begin
            close;
            sql.Clear;
            sql.Add('update lendcardinfo set usesing=1,enddate=:olddate where cardid=:cardid');
            parameters.ParamByName('cardid').Value:=recordmemory;
            parameters.ParamByName('olddate').Value:=dateold;
            execsql;
          end;
      end;
      formshow(self);
    end;
  end;    //restore
end;

procedure TReaderForm.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
  edit7.SetFocus;
 end;
end;

procedure TReaderForm.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
 begin
  edit13.SetFocus;
 end;
end;

procedure TReaderForm.Edit11KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
 begin
  combobox2.SetFocus;
 end;
end;

procedure TReaderForm.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
 begin
  edit1.SetFocus;
 end;
end;

procedure TReaderForm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
 begin
  edit12.SetFocus;
 end;
end;

procedure TReaderForm.Edit12KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
 begin
  edit5.SetFocus;
 end;
end;

procedure TReaderForm.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
 begin
  edit6.SetFocus;
 end;
end;

procedure TReaderForm.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
 begin
  memo1.SetFocus;
 end;
end;

procedure TReaderForm.Edit13KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
  edit14.SetFocus;
end;

procedure TReaderForm.Edit14KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
  edit10.SetFocus;
end;

procedure TReaderForm.Edit10KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
    memo2.SetFocus;
end;

end.

⌨️ 快捷键说明

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