📄 bmmlgl.pas
字号:
unit bmmlgl;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ToolWin, ComCtrls, ImgList, StdCtrls, Buttons, ExtCtrls, DB, DBTables,
CustomizeDlg, Grids, DBGrids;
type
Tbmmlform = class(TForm)
ImageList: TImageList;
CoolBar1: TCoolBar;
oToolBar: TToolBar;
bmtjaddButton: TToolButton;
bmxjaddButton: TToolButton;
DeleteBmButton: TToolButton;
PrintButton: TToolButton;
PrintviewButton: TToolButton;
ToolButton7: TToolButton;
ExitButton: TToolButton;
Panel1: TPanel;
BmmlView: TTreeView;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
bmbhEdit: TEdit;
bmmcEdit: TEdit;
fzrEdit: TEdit;
dhEdit: TEdit;
emailEdit: TEdit;
BzEdit: TEdit;
Bitbtnsave: TBitBtn;
BitBtnexit: TBitBtn;
Splitter1: TSplitter;
bmmlQuery: TQuery;
procedure ExitButtonClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtnexitClick(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure BmmlViewClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure bmmcEditChange(Sender: TObject);
procedure bmmcEditExit(Sender: TObject);
procedure bmmcEditEnter(Sender: TObject);
procedure bmtjaddButtonClick(Sender: TObject);
procedure bmxjaddButtonClick(Sender: TObject);
procedure BitbtnsaveClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure DeleteBmButtonClick(Sender: TObject);
procedure PrintviewButtonClick(Sender: TObject);
procedure PrintButtonClick(Sender: TObject);
private
{ Private declarations }
function datasave: Boolean; //数据保存函数
public
{ Public declarations }
end;
var
bmmlform: Tbmmlform;
bmml_bjzt, bmml_bmbh, bmml_dqbmbh: string;
implementation
uses mainform, bmmlprint;
{$R *.DFM}
procedure Tbmmlform.ExitButtonClick(Sender: TObject);
begin
Close;
end;
procedure Tbmmlform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
bmmlform := nil;
end;
procedure Tbmmlform.BitBtnexitClick(Sender: TObject);
begin
Close;
end;
procedure Tbmmlform.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
SelectNext(ActiveControl, True, True);
Key := #0;
end;
end;
procedure Tbmmlform.FormCreate(Sender: TObject);
var
pCode, yCode, pName: string;
MainNode, yNode, zNode: TTreeNode;
begin
MainNode := TTreeNode.Create(BmmlView.Items);
yNode := TTreeNode.Create(BmmlView.Items);
zNode := TTreeNode.Create(BmmlView.Items);
bmmlView.Items.Clear;
with bmmlQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select bm_bh,bm_mc From bmmlk order by bm_bh');
Open;
end;
bmmlQuery.first;
yCode := Trim(bmmlQuery.FieldByName('bm_bh').AsString);
bmmlView.Items.BeginUpdate;
while not bmmlQuery.eof do
begin
pCode := Trim(bmmlQuery.FieldByName('bm_bh').AsString);
pName := Trim(bmmlQuery.FieldByName('bm_mc').AsString);
case length(pCode) of
3:
begin
MainNode := bmmlView.Items.AddChild(nil, pCode + ' ' + pName);
yNode := MainNode;
end;
6:
begin
pCode := Copy(pCode, 4, 3);
MainNode := bmmlView.Items.AddChild(yNode, pCode + ' ' + pName);
zNode := MainNode;
end;
9:
begin
pCode := Copy(pCode, 7, 3);
MainNode := bmmlView.Items.AddChild(zNode, pCode + ' ' + pName)
end;
end;
Mainnode.SelectedIndex := 12;
Mainnode.ImageIndex := 13;
bmmlQuery.Next;
end;
bmmlView.Items.EndUpdate;
bmmlQuery.Close;
if bmmlView.Items.Count <> 0 then
begin
bmmlView.Items[0].Selected := True;
BmmlView.OnClick(sender);
end
else
begin
Bmxjaddbutton.Enabled := False;
DeleteBmButton.Enabled := False;
bmml_bjzt := '';
bmmcEdit.Text := '';
dhEdit.Text := '';
fzrEdit.Text := '';
emailEdit.Text := '';
bzEdit.Text := '';
Bmbhedit.Text := '';
end;
end;
procedure Tbmmlform.BmmlViewClick(Sender: TObject);
var
lsbl_bmbh, lsbl_bmbh2, lsbl_bmmc: string;
lsbl_word: Word;
lsbl_bmjb, lsbl_x: Integer;
lsbl_node: TTreeNode;
lsbl_xjbmsl, lsbl_bmygsl: Boolean; //此两变量是用来判断部门是否能被删除
//任一个为真则部门不能删除
begin
if BmmlView.Selected <> nil then
begin
bmml_bjzt := '';
bmml_bmbh := '';
lsbl_node := BmmlView.Selected;
lsbl_bmjb := BmmlView.Selected.Level;
lsbl_bmbh := Trim(BmmlView.Selected.Text);
lsbl_word := Pos(' ', lsbl_bmbh);
lsbl_bmmc := Copy(lsbl_bmbh, lsbl_word + 1, length(lsbl_bmbh));
lsbl_bmbh := Copy(lsbl_bmbh, 1, lsbl_word - 1);
BmbhEdit.Text := lsbl_bmbh;
BmmcEdit.Text := lsbl_bmmc;
for lsbl_x := 0 to lsbl_bmjb - 1 do
begin
lsbl_bmbh2 := Trim(lsbl_node.Parent.Text);
lsbl_word := Pos(' ', lsbl_bmbh2);
lsbl_bmbh2 := Copy(lsbl_bmbh2, 1, lsbl_word - 1);
bmml_bmbh := lsbl_bmbh2 + bmml_bmbh; //当前选中部门的上级编号
lsbl_bmbh := lsbl_bmbh2 + lsbl_bmbh;
lsbl_node := lsbl_node.Parent;
end;
bmml_dqbmbh := lsbl_bmbh; //当前选中部门的编号
with bmmlQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select bm_bh,bm_mc,bm_fzr,bm_dh,bm_email,bm_bz From bmmlk');
SQL.Add('where Trim(bm_bh)=''' + lsbl_bmbh + '''');
SQl.Add('order by bm_bh');
Open;
end;
bmmlQuery.first;
if not bmmlQuery.eof then
begin
fzrEdit.Text := Trim(bmmlQuery.FieldByName('bm_fzr').AsString);
dhEdit.Text := Trim(bmmlQuery.FieldByName('bm_dh').AsString);
emailEdit.Text := Trim(bmmlQuery.FieldByName('bm_email').AsString);
bzEdit.text := Trim(bmmlQuery.FieldByName('bm_bz').AsString);
end;
bmmlQuery.Close;
bmbhEdit.Color := $00FBF7FF;
bmml_bjzt := 'Edit'; //如果点击了Treeview控件,则将状态设置成编辑状态
bmbhEdit.Enabled := False;
Bitbtnsave.enabled := False;
//以下是判断所选是否能被删除
lsbl_xjbmsl := BmmlView.Selected.HasChildren;
//如果此部门有下级部门则不允需删除
with bmmlQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select count(*) as ygsl From ygdasjk');
SQL.Add('where Trim(yg_bmbh)=''' + lsbl_bmbh + '''');
Open;
end;
bmmlQuery.first;
if bmmlQuery.FieldValues['ygsl'] <> 0 then
lsbl_bmygsl := True //如果此部门还有员工则不允需删除
else
lsbl_bmygsl := False;
bmmlQuery.Close;
if (lsbl_xjbmsl = True) or (lsbl_bmygsl = True) then
DeleteBmButton.Enabled := False
else
DeleteBmButton.Enabled := True;
//以上是判断所选是否能被删除
if BmmlView.Selected.Level = 2 then //编码长度为三级,
bmxjaddbutton.Enabled := False //超过三级则下级增加按钮变为不能用
else
bmxjaddbutton.Enabled := True;
end;
end;
procedure Tbmmlform.FormShow(Sender: TObject);
begin
Self.Width := 533;
Self.Height := 348;
Splitter1.Enabled := False;
end;
procedure Tbmmlform.FormResize(Sender: TObject);
begin
Panel1.Width := Self.Width - Splitter1.Width - Panel2.Width - 9;
end;
procedure Tbmmlform.bmmcEditChange(Sender: TObject);
begin
if bmml_bjzt <> '' then
Bitbtnsave.enabled := True;
end;
procedure Tbmmlform.bmmcEditExit(Sender: TObject);
begin
(Sender as TEdit).color := clWindow;
end;
procedure Tbmmlform.bmmcEditEnter(Sender: TObject);
begin
(Sender as TEdit).color := clGradientActiveCaption;
end;
procedure Tbmmlform.bmtjaddButtonClick(Sender: TObject);
var
lsbl_bmbh, lsbl_bmbhcd, lsbl_level: string;
begin
if BmmlView.Items.Count <> 0 then
begin
lsbl_bmbhcd := inttostr(length(bmml_bmbh));
lsbl_level := inttostr(bmmlview.Selected.Level);
with bmmlQuery do
begin
Close;
SQL.Clear;
SQL.Add('Select max(bm_bh) as bmbh From bmmlk');
SQL.Add('where left(bm_bh,' + lsbl_bmbhcd + ')=''' + bmml_bmbh +
'''');
SQL.Add('and bm_jb=''' + lsbl_level + '''');
Open;
First;
end;
if bmmlquery.FieldByName('bmbh').AsString <> '' then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -