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

📄 frmreaderu.pas

📁 图书借阅管理系统含源代码
💻 PAS
字号:
unit frmReaderU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
  cxGridLevel, cxClasses, cxControls, cxGridCustomView,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, Menus,
  Excel2000,RM_class, RM_dset, RM_dbset;

type
  TfrmReader = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    edLeaseNo: TEdit;
    Label2: TLabel;
    edName: TEdit;
    Label3: TLabel;
    edIDCard: TEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    GroupBox2: TGroupBox;
    dsReader: TDataSource;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle3: TcxStyle;
    cxgReader: TcxGrid;
    cxgReaderDBTableView1: TcxGridDBTableView;
    cxgReaderDBTableView1DBColumn1: TcxGridDBColumn;
    cxgReaderDBTableView1DBColumn2: TcxGridDBColumn;
    cxgReaderDBTableView1DBColumn3: TcxGridDBColumn;
    cxgReaderDBTableView1DBColumn4: TcxGridDBColumn;
    cxgReaderDBTableView1DBColumn5: TcxGridDBColumn;
    cxgReaderDBTableView1DBColumn6: TcxGridDBColumn;
    cxgReaderDBTableView1DBColumn7: TcxGridDBColumn;
    cxgReaderDBTableView1DBColumn8: TcxGridDBColumn;
    cxgReaderLevel1: TcxGridLevel;
    PopupMenu: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N4: TMenuItem;
    cxgReaderDBTableView1DBColumn9: TcxGridDBColumn;
    cxgReaderDBTableView1DBColumn10: TcxGridDBColumn;
    N3: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    Excel1: TMenuItem;
    N8: TMenuItem;
    RMReport1: TRMReport;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure cxgReaderDBTableView1CellDblClick(
      Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure N6Click(Sender: TObject);
    procedure Excel1Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Search();
  end;

var
  frmReader: TfrmReader;

implementation

uses DMU, frmAddReaderU, frmMainU, frmRechargeableU;

{$R *.dfm}

procedure TfrmReader.Search;
var
  LeaseNO,Name,IDCard,mySQL:String;
begin
  LeaseNO:=Trim(edLeaseNo.Text);
  Name:=Trim(edName.Text);
  IDCard:=Trim(edIDCard.Text);
  mySQL:='Select LeaseNo,Name,IDCard,BagMonth,BagMoTim,Balance,Sex,PhoneNo,Address,EMail from Reader where LeaseNO';
  if LeaseNo=''then
    mySQL:=mySQL+' Like '+QuotedStr('%'+LeaseNO+'%')
  else
    mySQL:=mySQL+'='+QuotedStr(LeaseNO);
  if Name<>'' then
    mySQL:=mySQL+' and Name Like '+QuotedStr('%'+Name+'%');
  if IDCard<>'' then
    mySQL:=mySQL+' and IDCard Like '+QuotedStr('%'+IDCard+'%');
  Dm.adoReader.Close;
  Dm.adoReader.SQL.Clear;
  Dm.adoReader.SQL.Text:=mySQL;
  Dm.adoReader.Open;
end;

procedure TfrmReader.BitBtn1Click(Sender: TObject);
begin
  Search();
end;

procedure TfrmReader.BitBtn2Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmReader.FormShow(Sender: TObject);
begin
  edLeaseNo.Clear;
  edLeaseNO.SetFocus;
  edName.Clear;
  edIDCard.Clear;
  Search();
end;

procedure TfrmReader.N1Click(Sender: TObject);
begin
  frmMain.OpenMyForm(frmAddReader);
  frmAddReader.Search(Dm.adoReader.FieldByName('LeaseNO').AsString);
end;

procedure TfrmReader.N4Click(Sender: TObject);
begin
  frmMain.OpenMyForm(frmAddReader);
  frmAddReader.Search(Dm.adoReader.FieldByName('LeaseNO').AsString);
  frmAddReader.btnAdd.Click;
end;

procedure TfrmReader.N2Click(Sender: TObject);
begin
  frmMain.OpenMyForm(frmAddReader);
  frmAddReader.Search(Dm.adoReader.FieldByName('LeaseNO').AsString);
  frmAddReader.btnEdit.Click;
end;

procedure TfrmReader.N3Click(Sender: TObject);
var
  str:String;
begin
  str:='';
  str:='真的要删除借书证号为:“'+DM.adoReader.FieldByName('LeaseNo').AsString+'”'+chr(13)+'姓名为:“'+DM.adoReader.FieldByName('Name').AsString+'”'+chr(13)+'的读者吗?';
  if MessageBox(0,Pchar(str),'提示',mb_okCancel+MB_ICONQUESTION+MB_DEFBUTTON2+MB_TASKMODAL)=IDOK then
  begin
    Dm.adoReader.Delete;
  end;
end;

procedure TfrmReader.cxgReaderDBTableView1CellDblClick(
  Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  N1.Click;  
end;

procedure TfrmReader.N6Click(Sender: TObject);
begin
  frmRechargeable.Search(Dm.adoReader.FieldByName('LeaseNo').AsString);
  frmRechargeable.ShowModal; 
end;

procedure TfrmReader.Excel1Click(Sender: TObject);
var
  ea:TExcelApplication;
  ewb:TExcelWorkbook;
  ews:TExcelWorksheet;
  i,j:integer;
begin
  ea:=TExcelApplication.Create(nil);
  ewb:=TExcelWorkbook.Create(nil);
  ews:=TExcelWorksheet.Create(nil);
  ea.Connect;
  ea.Visible[0]:=false;
  ea.Workbooks.Add(varNull,0);
  ewb.ConnectTo(ea.Workbooks[ea.Workbooks.Count]);
  ews.ConnectTo(ewb.Worksheets[1] as _worksheet);
  Self.Enabled:=false;

  ews.Cells.Item[1,1]:='借书证号';
  ews.Cells.Item[1,2]:='姓名';
  ews.Cells.Item[1,3]:='身份证号';
  ews.Cells.Item[1,4]:='是否包月';
  ews.Cells.Item[1,5]:='包月到期日';
  ews.Cells.Item[1,6]:='余额';
  ews.Cells.Item[1,7]:='性别';
  ews.Cells.Item[1,8]:='电话号码';
  ews.Cells.Item[1,9]:='地址';
  ews.Cells.Item[1,10]:='E-Mail';

  j:=0;
  Dm.adoReader.First();
  try
    while not Dm.adoReader.Eof do
    begin
      for i:=0 to Dm.adoReader.FieldCount-1 do
      begin
        ews.Cells.Item[j+2,i+1]:=Dm.adoReader.Fields[i].AsString;
      end;
      j:=j+1;
      Dm.adoReader.Next();
    end;
    ea.Visible[0]:=true;
  finally
    ea.Disconnect;
    ewb.Disconnect;
    ews.Disconnect;
    Self.Enabled:=true;
  end;
  MessageBox(0,'导出完成','提示',mb_ok+mb_taskmodal+mb_iconquestion);
end;

procedure TfrmReader.N8Click(Sender: TObject);
var
  rmReport: TRMReport;
  rmDBDataSet: TRMDBDataSet;
begin
  try
    rmDBDataSet:=TRMDBDataSet.Create(self);
    rmDBDataSet.DataSet:=Dm.adoReader;
    rmDBDataSet.RangeBegin:=rbFirst;
    rmDBDataSet.RangeEnd:=reLast;

    rmReport:=TRMReport.Create(self);
    rmReport.Dataset:=rmDBDataSet;
    rmReport.LoadFromFile(ExtractFilePath(Application.ExeName)+'Data\PrintReader.rmf');
    rmReport.ShowReport;
  except
    ShowMessage('初始化打印出错。');
    rmDBDataSet.Destroy;
    rmReport.Destroy;
    exit;
  end;
  rmDBDataSet.Destroy;
  rmReport.Destroy;
end;

end.

⌨️ 快捷键说明

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