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

📄 bmmlgl.pas

📁 服务信息管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -