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

📄 ufrmbook.pas

📁 这也是一个图书管理系统,不过比上一个更加具有价值,是难得的尤物
💻 PAS
字号:
unit ufrmBook;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ToolWin, ActnMan, ActnCtrls, StdActns, BandActn,
  ExtActns, ActnList, ComCtrls, Grids, ValEdit, ExtCtrls, XPStyleActnCtrls,
  DBGrids, DB, ImgList, ActnMenus;

type
  TForm1 = class(TForm)
    ActionManager1: TActionManager;
    EditCopy1: TEditCopy;
    EditPaste1: TEditPaste;
    EditCut1: TEditCut;
    EditSelectAll1: TEditSelectAll;
    ActionToolBar2: TActionToolBar;
    CoolBar1: TCoolBar;
    Tree: TTreeView;
    Splitter1: TSplitter;
    Panel1: TPanel;
    ListView1: TListView;
    Splitter2: TSplitter;
    ActionToolBar3: TActionToolBar;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    imlLarge: TImageList;
    imlSmall: TImageList;
    actView1: TAction;
    ToolbarImages: TImageList;
    actView2: TAction;
    actView3: TAction;
    actView4: TAction;
    actNew: TAction;
    actEdit: TAction;
    actDelete: TAction;
    actFind: TAction;
    actPrint: TAction;
    actExit: TAction;
    ActionToolBar1: TActionToolBar;
    ActionMainMenuBar1: TActionMainMenuBar;
    procedure FormCreate(Sender: TObject);
    procedure TreeClick(Sender: TObject);
    procedure actView1Execute(Sender: TObject);
  private
    procedure AddChildNodes(nodeName:String;SQLStr:string;imlID:integer);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  

implementation

uses uDM;

{$R *.dfm}
var
  rootnode,nodePub,nodeYear,nodeTimes,nodeType:TTreenode;

procedure TForm1.AddChildNodes(nodeName:String;SQLStr:string;imlID:integer);
var
  curID,SubNodeName:string;
  subnode,subnodechild:TTreenode;
begin
    subnode:=tree.Items.AddChild(rootnode,nodeName);
    subnode.ImageIndex:=imlID;
    with dmMain.adqBook do
    begin
      close;
      sql.Clear;
      sql.Add(SQLStr);
      open;
      first;
      while not Eof do
      begin
        curID:=trim(FieldByName('a').AsString);
        SubNodeName:=curID;
        subnodechild:=tree.items.addchild(subnode,SubNodeName);
        subnodechild.ImageIndex:=2;
        next;
      end;
    end;
end;


procedure TForm1.FormCreate(Sender: TObject);
var
  strQry:string;
  NewColumn: TListColumn;
begin
  rootnode:=TTreenode.Create(nil);
  rootnode:= Tree.Items.Add(nil, '全部'); { Add a root node }
  rootnode.ImageIndex:=1;
  strQry:='select distinct 出版社 as a from mybook ';
  AddChildNodes('出版社',strQry,3);
  strQry:='select distinct 印次 as a from mybook ';
  AddChildNodes('印次',strQry,4);
  strQry:='select distinct 类别 as a from mybook ';
  AddChildNodes('类别',strQry,5);
  strQry:='select distinct 出版时间 as a from mybook ';
  AddChildNodes('出版时间',strQry,6);
  with dmMain.adqBook do
  begin
    close;
    sql.Clear;
    sql.Add('select *  from mybook ');
    open;
  end;
  with ListView1 do
  begin
    SmallImages := imlSmall;
    LargeImages := imlLarge;
    NewColumn := Columns.Add;
    NewColumn.Caption :='书名';
    NewColumn.Width:=200;
    NewColumn := Columns.Add;
    NewColumn.Caption :='译著者';
    NewColumn.Width:=60;
    NewColumn := Columns.Add;
    NewColumn.Caption :='出版社';
    NewColumn.Width:=100;
    NewColumn := Columns.Add;
    NewColumn.Caption :='出版时间';
    NewColumn.Width:=60;
  end;
end;

procedure TForm1.TreeClick(Sender: TObject);
var
  a,b:string;
  I: Integer;
  ListItem: TListItem;
  NewColumn: TListColumn;
begin
  a:=tree.Selected.Text;
  with dmMain.adqBook do
  begin
    Filtered:=false;
    if (a<>'全部') then
    begin
      b:=tree.Selected.Parent.Text;
      Filtered:=false;
      if  (b<>'全部') then
      begin
        Filter:=b+'='+#39+a+#39;
        Filtered:=True;
      end;
    end;
  end;

  // Create a ListView item for each image in the ImageList
  with ListView1 do
  begin
    SmallImages := imlSmall;
    LargeImages := imlLarge;
    Clear;
        // Create two columns to show during viewing as vsReport
    {
    NewColumn := Columns.Add;
    NewColumn.Caption :='书名';
    NewColumn := Columns.Add;
    NewColumn.Caption :='译著者';
    NewColumn := Columns.Add;
    NewColumn.Caption :='出版社';
    NewColumn := Columns.Add;
    NewColumn.Caption :='出版时间';
    }
    with dmMain.adqBook do
      for I := 0 to RecordCount - 1 do
      begin
        ListItem := Items.Add;
        Listitem.Caption :=FieldByName('图书名称').AsString;
        ListItem.ImageIndex :=2;
        ListItem.SubItems.Add(FieldByName('译著者').AsString);
        ListItem.SubItems.Add(FieldByName('出版社').AsString);
        ListItem.SubItems.Add(FieldByName('出版时间').AsString);
        next;
      end;
    end;
end;

procedure TForm1.actView1Execute(Sender: TObject);
begin
 ListView1.ViewStyle := TViewStyle((Sender as TComponent).Tag);
end;

end.

⌨️ 快捷键说明

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