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

📄 zfrm_customermanageru.pas

📁 一个很不错的评标系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{
'┌───────────────────────────────────┐
'│**********************************************************************│
'│*** 文件名称:zfrm_customermanagerU.pas 《用户管理模块》             *│
'│*** 功能描述:此摸块是- 新建、添加用户和所属部门,并对其进行维护     *│
'│*             《用户信息表"ef_customerinfo"》                        *│
'│*             《部门类型表"ef_department"  》                        *│
'│*             《用户部门交叉表"de_customerdepartment"》              *│
'│*              执行相应的处理 — (增、删、改、查)                  *│
'│*** 编写人员:朱华                                *│
'│*** 编写日期:2001-04-24                             *│
'│*** 修改人员:                                    *│
'│*** 修改日期:                                                       *│
'│**********************************************************************│
'└───────────────────────────────────┘
}

unit zfrm_customermanagerU;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ToolWin, ExtCtrls, Menus, StdCtrls, ImgList, Db, DBTables;

type
  Tzfrm_customerM = class(TForm)
    MainMenu1: TMainMenu;
    F1: TMenuItem;
    H1: TMenuItem;
    StatusBar1: TStatusBar;
    TreeView1: TTreeView;
    ListView1: TListView;
    Image1: TImage;
    Panel1: TPanel;
    ImageList1: TImageList;
    PopupMenu1: TPopupMenu;
    PopupMenu2: TPopupMenu;
    Query1: TQuery;
    N2: TMenuItem;
    N3: TMenuItem;
    M1: TMenuItem;
    N4: TMenuItem;
    D1: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    U1: TMenuItem;
    N7: TMenuItem;
    D2: TMenuItem;
    Query2: TQuery;
    Query3: TQuery;
    Timer1: TTimer;
    Query4: TQuery;
    N8: TMenuItem;
    N10: TMenuItem;
    A1: TMenuItem;
    N11: TMenuItem;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton5: TToolButton;
    ToolButton3: TToolButton;
    ImageList2: TImageList;
    ImageList3: TImageList;
    N9: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    X1: TMenuItem;
    N13: TMenuItem;
    D3: TMenuItem;
    N1: TMenuItem;
    N12: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    D4: TMenuItem;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton4: TToolButton;
    ToolButton12: TToolButton;
    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormResize(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure M1Click(Sender: TObject);
    procedure TreeView1Edited(Sender: TObject; Node: TTreeNode;
      var S: String);
    procedure FormCreate(Sender: TObject);
    procedure D1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure U1Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure D2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure H1Click(Sender: TObject);
  private
    { Private declarations }
    procedure z_resetDepartmentName(); // 恢复部门名
  public
    { Public declarations }
     procedure z_flashFormP();        // 刷新ListView1
     procedure z_flashTreeView1P();   // 刷新TreeView1
     function z_deleteTreeView1P(z_g_de_idI: integer):boolean;  // 删除TreeView1部门
     procedure z_deleteTreeView1AllP(z_g_de_idI: integer);  // 递归删除TreeView1
  end;


type
  PMyRec = ^TMyRec;
  TMyRec = record
    z_de_id    :integer;    // 声明-(部门ID  )-变量
    z_de_level :integer;    // 声明-(部门级别)-变量
    z_de_name  :string ;    // 声明-(部门名称)-变量
    z_de_preid :integer;    // 声明-(上级ID  )-变量
end;


var
  zfrm_customerM: Tzfrm_customerM;

  // 自定义变量
  z_nodesA   :array[0..10000] of TtreeNode;  // 声明-(部门节点)-数组
  z_tempnode :TtreeNode;                   // 声明-(选中节点)-变量

  z_de_id    :integer=1;  // 声明-(部门ID  )-变量
  z_de_level :integer;    // 声明-(部门级别)-变量
  z_de_name  :string ;    // 声明-(部门名称)-变量
  z_de_nameS :string ;    // 声明-(部门名称)-变量
  z_de_preid :integer;    // 声明-(上级ID  )-变量

  z_TreeViewDate_STU: PMyRec;

implementation

uses zmod_commonDateU, zfrm_addcustomerU, zfrm_newcustomerU, zfrm_inputboxU;

{$R *.DFM}

procedure Tzfrm_customerM.z_deleteTreeView1AllP(z_g_de_idI: integer);
begin
  //
  // 删除部门
  try  {try <1> S}
    // 选出删除部门子部门
    Query2.SQL.Clear ;
    Query2.SQL.Add('Select g_de_id from ef_department where (de_preid=:de_preid) order by g_de_id') ;
      Query2.ParamByName('de_preid').AsInteger := z_g_de_idI ;
    Query2.Prepare ;
    Query2.Open ;
    Query2.First ;

    zh_Delete_SQL := 'insert into temp1 values(:g_de_id)'  ;
    Query1.SQL.Clear ;
    Query1.SQL.Add(zh_Delete_SQL);
      Query1.ParamByName('g_de_id').AsInteger := z_g_de_idI ;
    Query1.Prepare ;
    Query1.ExecSQL ;

    While not Query2.Eof do
    begin
       z_deleteTreeView1AllP(Query2.FieldByName('g_de_id').AsInteger);
    Query1.SQL.Clear ;
    Query1.SQL.Add(zh_Delete_SQL);
      Query1.ParamByName('g_de_id').AsInteger := Query2.FieldByName('g_de_id').AsInteger ;
    Query1.Prepare ;
    Query1.ExecSQL ;

      Query2.Next ;
    end;


    {
    zh_Delete_SQL := 'delete from ef_department where g_de_id=:g_de_id';
    //showmessage(zh_Insert_SQL);
    Query1.SQL.Clear ;
    Query1.SQL.Add(zh_Delete_SQL);
      Query1.ParamByName('g_de_id').AsInteger := z_g_de_idI ;
    Query1.Prepare ;
    Query1.ExecSQL ;
     }
  except
      // 数据库错
      Application.MessageBox(
      '数据库删除错误,请您检查',
      '数据库错',
      MB_OK+MB_ICONError);
  end; {try <1> E}
  //
end;

procedure Tzfrm_customerM.z_resetDepartmentName();
begin
  // 恢复部门名称
  Query1.Close ;
  Query1.SQL.Clear ;
  Query1.SQL.Add('Select de_name from ef_department  where g_de_id=' + IntToStr(z_de_id)) ;
  Query1.Prepare ;
  Query1.Open ;
  Query1.First ;
  z_tempnode.Text := Query1.FieldByName('de_name').AsString ; ;
  Query1.Close ;
  Timer1.Enabled := False ;
  Application.MessageBox(
     '部门名称输入应小于25个汉字或不能为空,请您重新输入',
     '输入错误',
    MB_OK+MB_ICONError) ;
  //
end;

function Tzfrm_customerM.z_deleteTreeView1P(z_g_de_idI: integer):boolean;
begin
  // 删除部门
  try  {try <1> S}
    // 选出删除部门子部门
    Query2.Close ;
    Query2.SQL.Clear ;
    Query2.SQL.Add('Select g_de_id from ef_department where (de_preid=:de_preid) order by g_de_id') ;
      Query2.ParamByName('de_preid').AsInteger := z_g_de_idI ;
    Query2.Prepare ;
    Query2.Open ;
    //Query2.First ;
    //While not Query2.Eof do
    //begin
    //  z_deleteTreeView1P(Query2.FieldByName('g_de_id').AsInteger);
    //  Query2.Next ;
    //end;

    if Query2.RecordCount > 0 then
    begin
      // 数据库错
      Application.MessageBox(
      '不能删除含有子部门的部门,请您检查',
      '数据库错',
      MB_OK+MB_ICONError);
      z_deleteTreeView1P := False ;
      Exit ;
    end;

    // 删除操作
    zh_returnV :=Application.MessageBox(
    '您是否要删除该部门?',
    '删除部门',
     MB_YesNo++MB_ICONWARNING);
    if zh_returnV=IDNO then
    begin
      z_deleteTreeView1P := False ;
      Exit;
    end;

    zh_Delete_SQL := 'delete from ef_department where g_de_id=:g_de_id';
    //showmessage(zh_Insert_SQL);
    Query1.Close;
    Query1.SQL.Clear ;
    Query1.SQL.Add(zh_Delete_SQL);
      Query1.ParamByName('g_de_id').AsInteger := z_g_de_idI ;
    Query1.Prepare ;
    Query1.ExecSQL ;

    z_deleteTreeView1P := True ;
  except
      // 数据库错
      Application.MessageBox(
      '数据库删除错误,请您检查',
      '数据库错',
      MB_OK+MB_ICONError);
      z_deleteTreeView1P := False ;
  end; {try <1> E}
  //
end;

procedure Tzfrm_customerM.z_flashTreeView1P();
var
  I :integer;
  de_id    :integer;    // 声明-(部门ID  )-变量
  de_name  :string ;    // 声明-(部门名称)-变量
  de_preid :integer;    // 声明-(上级ID  )-变量
begin
  // TreeView1 — 部门结构,初始化
  TreeView1.Items.Clear ;

  try
  Query1.Close ;
  Query1.SQL.Clear ;
  Query1.SQL.Add('Select * from ef_department order by de_level,g_de_id') ;
  Query1.Prepare ;
  Query1.Open ;
  Query1.First ;
  While not Query1.Eof do
  begin
    de_id := Query1.FieldByName('g_de_id').AsInteger ;
    de_name := Query1.FieldByName('de_name').AsString ;
    de_preid := Query1.FieldByName('de_preid').AsInteger ;
    I:= de_id ;

    // 为结构赋值
    New(z_TreeViewDate_STU);
    z_TreeViewDate_STU.z_de_id := I ;
    z_TreeViewDate_STU.z_de_name := de_name ;
    z_TreeViewDate_STU.z_de_preid := de_preid ;

    if (de_preid=0) then
    begin
      z_nodesA[I] := TreeView1.Items.AddObject(TreeView1.Items.GetFirstNode, de_name, z_TreeViewDate_STU) ;
      z_nodesA[I].ImageIndex := 0 ;
      z_nodesA[I].SelectedIndex := 0 ;
      z_de_id    := I ;
      z_de_level := 0 ;
      z_de_nameS := de_name ;
      z_de_preid := de_preid ;

      Query1.Next ;
      continue ;
    end;
      z_nodesA[I] := TreeView1.Items.AddChildObject(z_nodesA[de_preid], de_name, z_TreeViewDate_STU) ;
      z_nodesA[I].ImageIndex := 1 ;
      z_nodesA[I].SelectedIndex := 2 ;
    Query1.Next ;
  end;

  // 展开所有树结构
  Query1.First ;
  While not Query1.Eof do
  begin
    de_id  := Query1.FieldByName('g_de_id').AsInteger ;
    z_nodesA[de_id].Expanded := True ;
    Query1.Next ;
  end;

  except
  end;
  //
end;

procedure Tzfrm_customerM.z_flashFormP();
var
  NewItem: TListItem;
begin
  //
  ListView1.Items.Clear;

  if z_de_id=1 then
  begin
    zh_Select_SQL := 'select * from ef_customerinfo order by g_cu_id' ;
  end
  else
  begin
    zh_Select_SQL := 'select * from ef_customerinfo where cu_loginname in (select cu_loginname from ef_customerdepartment where g_de_id=' + IntToStr(z_de_id) + ') order by g_cu_id' ;
  end; {if <1> E}

  try  {try <1> S}
    //zh_Select_SQL := 'select * from ef_customerinfo order by g_cu_id' ;
    Query4.Close ;
    Query4.SQL.Clear ;
    Query4.SQL.Add(zh_Select_SQL) ;
    Query4.Prepare ;
    Query4.Open ;
    Query4.First ;
  except
      // 数据库错
      Application.MessageBox(
      '数据库连接错误,请您检查或系统管理员联系',
      '数据库错',
      MB_OK+MB_ICONError) ;
      Exit ;
  end; {try <1> E}

  while not Query4.Eof do
  begin {while <1> S}
    NewItem:=ListView1.Items.add ;
    NewItem.Caption :=Query4.Fields[3].AsString ;
    NewItem.SubItems.Add(Query4.Fields[1].AsString) ;
    NewItem.SubItems.Add(Query4.Fields[4].AsString) ;
    NewItem.SubItems.Add(Query4.Fields[5].AsString) ;
    NewItem.SubItems.Add(Query4.Fields[6].AsString) ;
    NewItem.SubItems.Add(Query4.Fields[7].AsString) ;
    NewItem.SubItems.Add(Query4.Fields[8].AsString) ;
    NewItem.ImageIndex := 3 ;
    Query4.Next ;
  end; {while <1> E}
  //
end;

procedure Tzfrm_customerM.Image1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
var
  temp1 :integer;
begin
  //
  if  (ssLeft in Shift)then
  begin
    temp1 := X + TreeView1.Width ;
    if (temp1 < 30) then Exit ;
    if (temp1 > 600) then Exit ;
    Panel1.Left := temp1 ;
    Panel1.Height := image1.Height ;
  end;
  //
end;

⌨️ 快捷键说明

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