📄 ufrmbook.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 + -