📄 frmbook.pas
字号:
unit frmBook;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frmLook, framMyBook, ComCtrls, ExtCtrls, Grids, DBGrids,
StdCtrls, Mask, DBCtrls,ADODB;
type
TBookFrm = class(TLookFrm)
fmMyBook1: TfmMyBook;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label8: TLabel;
Label9: TLabel;
cbPress: TComboBox;
cbState: TComboBox;
cbSort: TComboBox;
cbWriter: TComboBox;
btnQuery: TButton;
cbYear: TComboBox;
procedure FormCreate(Sender: TObject);
procedure TreeClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
BookFrm: TBookFrm;
implementation
uses main,dataModule;
{$R *.dfm}
procedure TBookFrm.FormCreate(Sender: TObject);
var strQry:string;
level,chindex,cnode,num:integer;
mynode:array[0..6] of TTreenode;
//---SUB procedure START
procedure AddItem(SQL:string;myCB:TComboBox);
var i:integer;
myList:TStrings;
begin
myList:=TStringList.create;
// mylist.clear;
mainform.querydata(DM.qryTemp,SQL);
DM.qryTemp.First ;
myList.Add('');
for i :=1 to DM.qryTemp.RecordCount do
begin
myList.Add(DM.qryTemp.FieldByName('a').asstring);
DM.qryTemp.next;
end;
myCB.Items.Assign(myList);
mylist.Free;
end;
//---SUB procedure1 OVER
procedure LoadTree(treeDB:TADOQuery;sort:string);//初始化树
var curID,nodeTxt:string;
begin
mynode[level]:=tree.items.addchild(mynode[level-1],sort);
level:=2;
with treeDB do
begin
try
if not Active then open;
first;
while not Eof do
begin
curID:=trim(FieldByName('a').AsString);
nodeTxt:=curID;
mynode[level]:=tree.items.addchild(mynode[level-1],nodeTxt);
// level:=GetNodeLevel(cTreeCodeFormat,curID);
{if level>0 then
begin
mynode[level]:=tree.items.addchild(mynode[level-1],nodeTxt);
if level>4 then
mynode[level].ImageIndex:=3
else
mynode[level].ImageIndex:=1;
// mynode[level].tag:=curID;
end;}
next;
end;
finally;
close;
End;
mynode[0].expand(False);
Screen.Cursor:=crDefault;
end;
level:=1;
end;
//---SUB procedure2 OVER
begin
inherited;
//ini tree value
Screen.Cursor:=crHourGlass;
tree.Enabled:=True;
tree.Items.Clear;
level:=0 ;
num:=1;
tree.items.clear;
mynode[level]:=tree.items.add(Tree.Topitem,'全部');
mynode[level].ImageIndex:=1;
level:=1;
//初始化查询条件
strQry:='select distinct 出版社 as a from mybook ';
AddItem(strQry,cbPress);
LoadTree(DM.qryTemp,'出版社');
strQry:='select distinct 状态 as a from mybook ';
AddItem(strQry,cbState);
LoadTree(DM.qryTemp,'状态');
strQry:='select distinct 类别 as a from mybook ';
AddItem(strQry,cbSort);
LoadTree(DM.qryTemp,'类别');
strQry:='select distinct 译著者 as a from mybook ';
AddItem(strQry,cbWriter);
LoadTree(DM.qryTemp,'译著者');
strQry:='select distinct year(出版时间) as a from mybook ';
AddItem(strQry,cbYear);
LoadTree(DM.qryTemp,'出版时间');
// date2.Date:=date+1;
// date1.date:=date2.date-60;
end;
procedure TBookFrm.TreeClick(Sender: TObject);
var a,b:string;
begin
inherited;
a:=tree.Selected.Text;
dm.atMyBook.Filtered:=false;
if (a<>'全部') then
begin
b:=tree.Selected.Parent.Text;
dm.atMyBook.Filtered:=false;
if (b<>'全部') then
begin
dm.atMyBook.Filter:=b+'='+#39+a+#39;
dm.atMyBook.Filtered:=True;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -