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

📄 barunit.pas

📁 人事管理源码 Delphi+ADO+Acce
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit barunit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, fcButton, fcImgBtn, fcShapeBtn, ExtCtrls, fcClearPanel,
  fcButtonGroup, fcOutlookBar, ComCtrls, ImgList, Menus;

type
  Tbarform = class(TForm)
    OtkBar: TfcOutlookBar;
    ZZBtn: TfcShapeBtn;
    NTBtn: TfcShapeBtn;
    TYBtn: TfcShapeBtn;
    TXBtn: TfcShapeBtn;
    JSBtn: TfcShapeBtn;
    ZZTree: TTreeView;
    NTTree: TTreeView;
    TYTree: TTreeView;
    TXTree: TTreeView;
    JSTree: TTreeView;
    ImageList1: TImageList;
    BarFrmMenu: TPopupMenu;
    Z1: TMenuItem;
    N1: TMenuItem;
    Y1: TMenuItem;
    X1: TMenuItem;
    J1: TMenuItem;
    N2: TMenuItem;
    T1: TMenuItem;
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure OtkBarChange(ButtonGroup: TfcCustomButtonGroup;
      OldSelected, Selected: TfcButtonGroupItem);
    procedure ZZTreeChange(Sender: TObject; Node: TTreeNode);
    procedure NTTreeChange(Sender: TObject; Node: TTreeNode);
    procedure TYTreeChange(Sender: TObject; Node: TTreeNode);
    procedure TXTreeChange(Sender: TObject; Node: TTreeNode);
    procedure JSTreeChange(Sender: TObject; Node: TTreeNode);
    procedure T1Click(Sender: TObject);
    procedure Z1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure Y1Click(Sender: TObject);
    procedure X1Click(Sender: TObject);
    procedure J1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ZZTreeChanging(Sender: TObject; Node: TTreeNode;
      var AllowChange: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure InitZZTree;
    procedure FreeZZtree;
    procedure InitTree(LB:string;tree:TTreeView);
    procedure FreeTree(tree:TTreeView);

    procedure ZZenter;
    procedure NTenter;
    procedure TYenter;
    procedure TXenter;
    procedure JSenter;

    procedure ZZAddNode(bm,dw,dname,sex:string;mainid:integer);
    procedure AddNode(tree:TTreeView;bm,Dname,sex:string;mainid:integer);
    procedure DelNode(Tree:ttreeview;main_id:integer);

    Function FindTextInTree(tree:TTreeView;txt:string;Inlevel:integer):integer;
    Function FindIDIntree(tree:TTreeView;main_id:integer):integer;
  end;


var
  barform: Tbarform;

implementation

uses
  dataunit,browunit,viewunit;
{$R *.dfm}

//在在职职工树中添加新节点
procedure Tbarform.ZZAddNode(bm,dw,dname,sex:string;mainid:integer);
var
  i,j : Integer;
  tempnode : ttreenode;
  PID : ^integer;
begin
  new(pid);
  pid^ := mainid;
  i := FindTextInTree(ZZTree,bm,1);
  if i < 0 then
    begin
      tempnode := zztree.Items.AddChild(zztree.Items.GetFirstNode,bm);
      TempNode.ImageIndex := 2;
      TempNode.SelectedIndex := 3;
      TempNode.StateIndex := 3;
      TempNode := zztree.Items.AddChild(TempNode,dw);
      TempNode.ImageIndex := 2;
      TempNode.SelectedIndex := 3;
      TempNode.StateIndex := 3;
      TempNode := zztree.Items.AddChildObject(TempNode,dname,pid);
      if trim(sex) = '男' then
        begin
          TempNode.ImageIndex := 0;
          TempNode.SelectedIndex := 0;
          TempNode.StateIndex := 0;
        end
      else
        begin
          TempNode.ImageIndex :=1;
          TempNode.SelectedIndex := 1;
          TempNode.StateIndex := 1;
        end;
    end
  else
    begin
      j := FindTextInTree(zztree,dw,2);
      if j < 0 then
        begin
          TempNode := zztree.Items.AddChild(zztree.Items[i],dw);
          TempNode.ImageIndex := 2;
          TempNode.SelectedIndex := 3;
          TempNode.StateIndex := 3;
          TempNode := zztree.Items.AddChildObject(TempNode,dname,pid);
          if trim(sex) = '男' then
            begin
              TempNode.ImageIndex := 0;
              TempNode.SelectedIndex := 0;
              TempNode.StateIndex := 0;
            end
          else
            begin
              TempNode.ImageIndex :=1;
              TempNode.SelectedIndex := 1;
             TempNode.StateIndex := 1;
           end;
        end
      else
        begin
          TempNode := zztree.Items.AddChildObject(zztree.Items[j],dname,pid);
          if trim(sex) = '男' then
            begin
              TempNode.ImageIndex := 0;
              TempNode.SelectedIndex := 0;
              TempNode.StateIndex := 0;
            end
          else
            begin
              TempNode.ImageIndex :=1;
              TempNode.SelectedIndex := 1;
             TempNode.StateIndex := 1;
           end;
        end;
    end;
    
end;

//在其它树中添加一个新节点
procedure tbarform.AddNode(tree:TTreeView;bm,Dname,sex:string;mainid:integer);
var
  i : Integer;
  tempnode : ttreenode;
  PID : ^integer;
begin
  new(pid);
  pid^ := mainid;
  i := FindTextInTree(tree,bm,1);
  if i < 0 then
    begin
      tempnode := tree.Items.AddChild(tree.Items.GetFirstNode,bm);
      TempNode.ImageIndex := 2;
      TempNode.SelectedIndex := 3;
      TempNode.StateIndex := 3;
      tempnode := tree.Items.AddChildObject(TempNode,dname,pid);
      if trim(sex) = '男' then
        begin
          TempNode.ImageIndex := 0;
          TempNode.SelectedIndex := 0;
          TempNode.StateIndex := 0;
        end
      else
        begin
          TempNode.ImageIndex :=1;
          TempNode.SelectedIndex := 1;
          TempNode.StateIndex := 1;
        end;
    end
  else
    begin
      tempnode := tree.Items.AddChildObject(tree.Items[i],dname,pid);
      if trim(sex) = '男' then
        begin
          TempNode.ImageIndex := 0;
          TempNode.SelectedIndex := 0;
          TempNode.StateIndex := 0;
        end
      else
        begin
          TempNode.ImageIndex :=1;
          TempNode.SelectedIndex := 1;
          TempNode.StateIndex := 1;
        end;
    end;
end;

procedure tbarform.DelNode(Tree:ttreeview;main_id:integer);
var
  i:integer;
  bmNode,dwnode,tempnode:ttreenode;
begin
  for I := 0 to tree.Items.Count - 1 do    // Iterate
  begin
    tempnode := tree.Items[i];
    if (tempnode.Data <> nil) and (integer(tempnode.Data^) = main_id) then
      begin
        dwnode := TempNode.Parent;
        bmnode := dwnode.Parent;
        dispose(TempNode.Data);
        tree.Items.Delete(TempNode);
        if dwnode.Count = 0 then tree.Items.Delete(dwnode);
        if bmnode.Count = 0 then tree.Items.Delete(bmnode);
        break;
      end;
  end;    // for

end;

Function tbarform.FindIDIntree(tree:TTreeView;main_id:integer):integer;
var
  i : integer;
  tempnode :ttreenode;
begin
  result := -1;
  for I := 0 to tree.Items.Count - 1 do    // Iterate
  begin
    tempnode := tree.Items[i];
    if (tempnode.Data <> nil) and (integer(tempnode.data^) = main_id) then
    begin
      result := i;
      break;
    end;
  end;    // for
end;


procedure tbarform.InitTree(LB:string;tree:TTreeView);  //Init other tree
var
  Dname,bm,sex : string;
  id : integer;
  TempNode : ttreenode;
begin
  FreeTree(tree);
  tree.Items.Clear;
  if lb = 'NT' then
    begin
      tempnode := tree.Items.Add(tree.Items.GetFirstNode,'在职职工');
      TempNode.ImageIndex := 4;
      TempNode.SelectedIndex := 4;
      TempNode.StateIndex := 4;
    end;

  if lb = 'TY' then
    begin
      tempnode := tree.Items.Add(tree.Items.GetFirstNode,'退养职工');
      TempNode.ImageIndex := 4;
      TempNode.SelectedIndex := 4;
      TempNode.StateIndex := 4;
    end;

  if lb = 'TX' then
    begin
      tempnode := tree.Items.Add(tree.Items.GetFirstNode,'退休职工');
      TempNode.ImageIndex := 4;
      TempNode.SelectedIndex := 4;
      TempNode.StateIndex := 4;
    end;

  if lb = 'JS' then
    begin
      tempnode := tree.Items.Add(tree.Items.GetFirstNode,'减少职工');
      TempNode.ImageIndex := 4;
      TempNode.SelectedIndex := 4;
      TempNode.StateIndex := 4;
    end;

  dataform.selquy.SQL.Clear;
  dataform.selquy.sql.Add('select main.main_id,main.name,main.sex,dw.bm,dw.dw');
  dataform.selquy.sql.add('from main,dw');
  dataform.selquy.sql.Add('where main.dw_id=dw.dw_id and zt='+''''+LB+'''');

⌨️ 快捷键说明

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