📄 barunit.pas
字号:
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 + -