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

📄 frmbook.pas

📁 这也是一个图书管理系统,不过比上一个更加具有价值,是难得的尤物
💻 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 + -