亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? unit1.pas

?? 程序啟動時
?? PAS
字號:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, VirtualTrees, Buttons, ExtCtrls, DB, DBTables, ImgList,
  StdCtrls, ComCtrls;

const
  gpMainRegionName = '某公司';

type
  TForm1 = class(TForm)
    Panel6: TPanel;
    Panel5: TPanel;
    SpeedButton1: TSpeedButton;
    Query1: TQuery;
    Query2: TQuery;
    LargeImages: TImageList;
    ControlTree: TVirtualStringTree;
    Splitter1: TSplitter;
    RichEdit1: TRichEdit;
    procedure FormCreate(Sender: TObject);
    procedure ControlTreeGetText(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
      var CellText: WideString);
    procedure ControlTreeGetImageIndex(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
      var Ghosted: Boolean; var ImageIndex: Integer);
    procedure ControlTreeGetHint(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex;
      var LineBreakStyle: TVTTooltipLineBreakStyle;
      var HintText: WideString);
    procedure SpeedButton1Click(Sender: TObject);
    procedure ControlTreeFocusChanged(Sender: TBaseVirtualTree;
      Node: PVirtualNode; Column: TColumnIndex);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure LoadGroup;
  end;

  NodeKind = (nkCompany, nkDepartment, nkEmployee);
  
  PEntry = ^TEntry;
  TEntry = record
      Caption: string;
           ID: Word;
         Kind: NodeKind;
   ImageIndex: Byte;
  end;


var
  Form1: TForm1;

implementation

{$R *.dfm}

function FindChild(Sender: TBaseVirtualTree; hParent: PVirtualNode; EMPID: integer): PVirtualNode;
var
  llhChild: PVirtualNode;
  Data: PEntry;
begin
  Result := nil;

  llhChild := hParent.FirstChild; //獲取hParent的第一個子節(jié)點
  while Assigned(llhChild) do begin
    Data := Sender.GetNodeData(llhChild);
    if (Data.Kind = nkEmployee) and (Data.ID = EMPID) then begin
       Result := llhChild;
       Exit;
    end;

    {對llhChild節(jié)點進行處理}
    Result := FindChild(Sender, llhChild, EMPID);
    if Result <> nil then Exit;
    llhChild := llhChild.NextSibling;
  end;

end;


procedure TForm1.LoadGroup;
var
  MainNodeLevel, ChildNodeLevel1, ChildNodeLevel2: PVirtualNode;
  Data: PEntry;
begin
  ControlTree.Clear;
  ControlTree.NodeDataSize  := SizeOf(TEntry);
  MainNodeLevel := ControlTree.AddChild(nil);
  MainNodeLevel.States := MainNodeLevel.States + [vsExpanded];
  Data := ControlTree.GetNodeData(MainNodeLevel);
  Data.Caption := gpMainRegionName;
  Data.ImageIndex := 1;
  Data.Kind := nkCompany;

  Query2.DisableControls;
  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('SELECT * FROM Department.db');
  Query2.Prepare;
  Query2.Open;
  Query2.First;
  while not Query2.Eof do begin
       ChildNodeLevel1 := ControlTree.AddChild(MainNodeLevel);
       Data := ControlTree.GetNodeData(ChildNodeLevel1);
       Data.Caption := Query2.FieldByName('DEPNAME').AsString;
       Data.ID := Query2.FieldByName('DEPID').AsInteger;
       Data.Kind := nkDepartment;
       Data.ImageIndex := 0;
       Query1.DisableControls;
       Query1.Close;
       Query1.SQL.Clear;
       Query1.SQL.Add('SELECT * FROM Employee.db WHERE(DEPID=:InputData)');
       Query1.ParamByName('InputData').AsInteger := Data.ID;
       Query1.Prepare;
       Query1.Open;
       Query1.First;
       while not Query1.Eof do begin
          ChildNodeLevel2 := ControlTree.AddChild(ChildNodeLevel1);
          Data := ControlTree.GetNodeData(ChildNodeLevel2);
          Data.Caption := Query1.FieldByName('EMPNAME').AsString;
          Data.ID := Query1.FieldByName('EMPID').AsInteger;
          Data.Kind := nkEmployee;
          Data.ImageIndex := 2;
          Query1.Next;
       end;
       Query1.EnableControls;
       Query1.SQL.Clear;
       Query1.Close;
       Query2.Next;
  end;
  Query2.EnableControls;
  Query2.SQL.Clear;
  Query2.Close;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Query1.DatabaseName := GetCurrentDir + '\' + 'DataBase';
  Query2.DatabaseName := GetCurrentDir + '\' + 'DataBase';
  LoadGroup;  
end;

procedure TForm1.ControlTreeGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
var
  Data: PEntry;
begin
  Data := Sender.GetNodeData(Node);
  if Data.Kind = nkEmployee then
     CellText := Data.Caption + '(' + IntToStr(Data.ID) + ')'
  else
     CellText := Data.Caption;
end;

procedure TForm1.ControlTreeGetImageIndex(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Kind: TVTImageKind; Column: TColumnIndex;
  var Ghosted: Boolean; var ImageIndex: Integer);
var
  Data: PEntry;
begin
  Data := Sender.GetNodeData(Node);
  case Kind of
    ikNormal, ikSelected:
      begin
        ImageIndex := Data.ImageIndex;
      end;
  end;

end;

procedure TForm1.ControlTreeGetHint(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex;
  var LineBreakStyle: TVTTooltipLineBreakStyle; var HintText: WideString);
var
  Data: PEntry;
begin
  Data := ControlTree.GetNodeData(Node);
  if not Assigned(Data) then Exit;
  
  with Query1 do begin
    try
      DisableControls;
      Close;
      SQL.Clear;
      SQL.Add('SELECT DISTINCT d.*, d1.DEPNAME');
      SQL.Add('FROM "Employee.DB" d,"Department.DB" d1');
      SQL.Add('where (d.EMPID=:Para1) and (d.DEPID=d1.DEPID)');
      ParamByName('Para1').AsInteger := Data.ID;
      Prepare;
      Open;

      if Data.Kind = nkEmployee then
         HintText := '職員編號: ' + IntToStr(Data.ID) + #13#10 +
                     '姓名: ' + Data.Caption + #13#10 +
                     '工資:' + IntToStr(FieldByName('Pay').AsInteger)
      else if  Data.Kind = nkDepartment then
         HintText := '部門名稱: ' + Data.Caption
      else
         HintText := '公司名稱: ' + Data.Caption;

    finally
      SQL.Clear;
      Close;
      DisableControls;
    end;

  end;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  PNode: PVirtualNode;
  AStr: string;
  EMPID: integer;
begin
  if not InputQuery('公司職員','請輸入職員編號:', AStr) then Exit;
  try
    EMPID := StrToInt(AStr);
  except
    MessageDlg('輸入的編號無效!',mtError,[mbOK],0);
    Exit;
  end;

  PNode := FindChild(Controltree,Controltree.RootNode,EMPID);
  if PNode<>nil then begin
     Controltree.SetFocus;
     Controltree.Selected[PNode] := True;
     Controltree.FocusedNode := PNode;
  end
  else
    MessageDlg('該職員編號不存在!',mtError,[mbOK],0);

end;

procedure TForm1.ControlTreeFocusChanged(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex);
var
  Data: PEntry;
  EMPPAY: integer;
  S: string;
begin
  Data := ControlTree.GetNodeData(Node);
  if not Assigned(Data) then Exit;

  if Data.Kind = nkEmployee then begin
     with Query1 do begin
       try
         DisableControls;
         Close;
         SQL.Clear;
         SQL.Text := 'SELECT pay FROM Employee.DB WHERE(EMPID=:Para1)';
         ParamByName('Para1').AsInteger := Data.ID;
         Prepare;
         Open;
         EMPPAY := FieldByName('pay').AsInteger;
       finally
         SQL.Clear;
         Close;
         DisableControls;
       end;
     end;
    S := '職員編號: ' + IntToStr(Data.ID) + #13#10 +
         '姓名: ' + Data.Caption + #13#10 +
         '工資:' + IntToStr(EMPPAY);
    Showmessage(S);
  end;  
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜在线视频| 中文字幕成人网| 香蕉乱码成人久久天堂爱免费| 97久久人人超碰| 亚洲精品欧美激情| 欧美亚洲综合久久| 无码av免费一区二区三区试看 | 国产精品国产三级国产有无不卡| 国产成人午夜精品5599| 国产精品乱人伦一区二区| 99久久精品99国产精品| 一区二区三区四区国产精品| 欧美亚洲一区二区在线观看| 人人精品人人爱| 久久久精品综合| 91在线视频免费91| 亚洲va韩国va欧美va| 欧美xxxxxxxxx| 99久久精品免费看| 日韩精品午夜视频| 中文字幕不卡的av| 欧美剧在线免费观看网站 | 久久久99免费| 91在线视频免费观看| 日韩高清在线电影| 国产日韩成人精品| 欧美性受xxxx黑人xyx性爽| 精品亚洲成a人| 亚洲视频一区在线| 日韩欧美一区二区三区在线| 不卡一区中文字幕| 舔着乳尖日韩一区| 国产精品视频你懂的| 欧美美女喷水视频| 成人性生交大片免费看中文| 午夜精品福利一区二区三区蜜桃| 久久久久久久久久美女| 色老头久久综合| 国内精品视频666| 一区二区免费在线播放| 久久精品一区蜜桃臀影院| 欧美综合色免费| 国产大片一区二区| 日日摸夜夜添夜夜添国产精品| 日本一区二区三区国色天香| 欧美精品久久一区| 色婷婷精品久久二区二区蜜臂av| 久国产精品韩国三级视频| 欧美电视剧在线看免费| 欧美午夜在线一二页| 成人午夜免费电影| 久久99国产精品免费网站| 亚洲制服丝袜在线| 久久精品网站免费观看| 欧美一区二区视频在线观看2020| 91美女片黄在线观看91美女| 激情综合色综合久久| 日韩精品福利网| 亚洲线精品一区二区三区| 综合久久久久久久| 国产精品美女久久久久久久久| 日韩视频一区二区三区在线播放| 日本高清不卡在线观看| 99在线精品免费| 丁香六月久久综合狠狠色| 久久国产精品第一页| 日产精品久久久久久久性色| 亚洲一区在线观看网站| 亚洲免费av高清| 国产精品国产三级国产| 亚洲国产岛国毛片在线| 久久久久久久久久久久电影| 久久综合久久99| 精品日韩99亚洲| 欧美va在线播放| 日韩欧美一级在线播放| 日韩一区二区三| 精品乱码亚洲一区二区不卡| 欧美一区二区三区在线观看| 日韩欧美国产小视频| 日韩一区二区精品在线观看| 欧美一级免费大片| 日韩一二三区视频| 精品国产精品网麻豆系列 | 欧美日韩精品一区二区三区四区| 色域天天综合网| 91国偷自产一区二区三区观看 | 在线播放亚洲一区| 欧美一级日韩一级| 久久一区二区三区四区| 久久久久97国产精华液好用吗| 欧美韩国日本一区| 亚洲精品日韩综合观看成人91| 一区二区三区日韩欧美精品 | 琪琪久久久久日韩精品| 奇米影视7777精品一区二区| 精品一区二区三区免费毛片爱| 激情综合色播激情啊| 成人精品免费视频| 色8久久人人97超碰香蕉987| 欧美区一区二区三区| 精品福利一区二区三区| 欧美激情在线免费观看| 亚洲日本丝袜连裤袜办公室| 亚洲香肠在线观看| 色婷婷精品大视频在线蜜桃视频| 色婷婷综合久色| 欧美一区二区三区系列电影| 精品国产91洋老外米糕| 国产精品久久久久9999吃药| 亚洲一级不卡视频| 国内精品第一页| 91官网在线观看| 日韩精品一区二区三区中文不卡| 欧美激情资源网| 亚洲国产精品综合小说图片区| 久久成人麻豆午夜电影| av成人动漫在线观看| 欧美精品免费视频| 国产精品看片你懂得| 免费观看久久久4p| 97久久精品人人爽人人爽蜜臀| 欧美日韩日日夜夜| 国产欧美精品一区aⅴ影院| 夜夜精品视频一区二区| 国产一区二区伦理| 色视频成人在线观看免| 2欧美一区二区三区在线观看视频| 中文字幕一区三区| 精品一区二区影视| 91国偷自产一区二区三区观看| 26uuu色噜噜精品一区二区| 一区二区三区在线观看动漫| 国产在线播放一区二区三区| 欧美日韩久久久一区| 亚洲欧洲精品天堂一级| 蜜臀久久99精品久久久久久9 | 中文字幕不卡在线播放| 日本亚洲视频在线| 色噜噜偷拍精品综合在线| 国产亚洲成年网址在线观看| 午夜精品爽啪视频| 97se狠狠狠综合亚洲狠狠| 久久夜色精品国产欧美乱极品| 亚洲国产欧美在线| 91福利小视频| 亚洲欧美日韩在线| 成人性生交大片免费| 精品久久久久久久久久久久久久久 | 岛国精品在线播放| 精品粉嫩aⅴ一区二区三区四区| 亚洲福利视频一区二区| aa级大片欧美| 国产精品二三区| 成人综合激情网| 国产欧美一区二区精品仙草咪| 蜜臀av国产精品久久久久 | 乱一区二区av| 欧美放荡的少妇| 五月天国产精品| 欧美夫妻性生活| 日本人妖一区二区| 91精品国产色综合久久不卡蜜臀 | 欧美一二三四在线| 日韩精品乱码av一区二区| 欧美久久久久久久久| 午夜一区二区三区在线观看| 欧美性做爰猛烈叫床潮| 亚洲成人动漫在线免费观看| 欧美日韩一区成人| 天天操天天干天天综合网| 91麻豆精品91久久久久同性| 蜜臀久久99精品久久久画质超高清| 91精品欧美综合在线观看最新| 午夜一区二区三区视频| 欧美一二三区在线观看| 久色婷婷小香蕉久久| 精品福利在线导航| 国产不卡免费视频| 中文字幕一区二区三区不卡 | 日韩av午夜在线观看| 在线综合亚洲欧美在线视频| 久久精品久久精品| 久久婷婷国产综合精品青草| 国产91综合网| 亚洲美女免费在线| 欧美日韩不卡一区二区| 美国一区二区三区在线播放| 欧美精品一区二区在线观看| 成人精品国产免费网站| 亚洲丝袜另类动漫二区| 欧美日韩综合色| 国产综合色视频| 中文字幕在线观看不卡视频| 欧美日韩亚洲综合一区| 国产真实乱子伦精品视频| 国产精品短视频| 337p亚洲精品色噜噜噜| 国产成人精品www牛牛影视| 亚洲另类春色国产|