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

📄 dfm_team.pas

📁 仓库管理系统 仓库管理系统
💻 PAS
字号:
unit dfm_team;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, DB, DBTables, ComCtrls, Grids, DBGrids, ExtCtrls,
  DBCtrls, Mask, ImgList, Menus, Buttons, ActnList, ADODB;


type
  Tdfmteam = class(TForm)
    ImageList1: TImageList;
    dstrole: TDataSource;
    dstmenu: TDataSource;
    Panel2: TPanel;
    DataSource1: TDataSource;
    ImageList2: TImageList;
    dstworker: TDataSource;
    ListView2: TListView;
    Splitter1: TSplitter;
    Panel1: TPanel;
    ListView1: TListView;
    Table1: TADOTable;
    tbltworker: TADOTable;
    tbltrole: TADOTable;
    tbltmenu: TADOTable;
    procedure FormCreate(Sender: TObject);
    procedure tbltroleAfterInsert(DataSet: TDataSet);
    procedure tbltroleAfterDelete(DataSet: TDataSet);
    procedure tbltroleAfterPost(DataSet: TDataSet);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure Table1AfterInsert(DataSet: TDataSet);
    procedure Table1BeforeEdit(DataSet: TDataSet);
    procedure Table1AfterPost(DataSet: TDataSet);
    procedure Table1BeforeDelete(DataSet: TDataSet);
//    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure FormCanResize(Sender: TObject; var NewWidth,
      NewHeight: Integer; var Resize: Boolean);
    procedure BitBtn9Click(Sender: TObject);
    procedure Table1PostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure BitBtn10Click(Sender: TObject);
    procedure tbltrolePostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure tbltroleDeleteError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure ListView2DblClick(Sender: TObject);
    procedure ListView1DblClick(Sender: TObject);
    procedure ListView1Click(Sender: TObject);
    procedure ListView2Click(Sender: TObject);
    procedure Table1AfterDelete(DataSet: TDataSet);
    procedure showlistview1;
    procedure showlistview2;
  private
    { Private-Deklarationen }
       MenuItemList: TStringList;
  public
    { Public-Deklarationen }
  end;

var
  dfmteam: Tdfmteam;
  FieldList: TStringList;
  ListItem: TListItem;
  vgroup:string;

const
  {Declare constants we're interested in}
  eKeyViol = 9729;
  eRequiredFieldMissing = 9732;
  eForeignKey = 9733;
  eDetailsExist = 9734;

implementation
uses TreeFunc, Main, dfm_userinfo, dfm_groupinfo, dbmRainbowMis ;

{$R *.DFM}

procedure Tdfmteam.showlistview1;
begin
     tbltrole.Active :=false;
     If Not tblTrole.Active Then tblTrole.Open;
     tbltrole.first;
     listview1.Items.clear;
     with ListView1 do
     begin
     //@ added by Edward Lane : for faster view
       Items.BeginUpdate;
       while not tbltrole.Eof do
       begin
         ListItem := Items.Add;
         ListItem.Caption := tbltrole.fieldbyname('crolename').asstring+' ('+tbltrole.fieldbyname('croleid').asstring+')';
         ListItem.SubItems.Add(tbltrole.fieldbyname('crolecont').asstring);
         Tbltrole.Next;
       end;
       Items.EndUpdate;
     end;
end;

procedure Tdfmteam.Table1AfterPost(DataSet: TDataSet);
begin
  showlistview2;
end;


procedure Tdfmteam.FormCreate(Sender: TObject); {画组列表}
begin
//  dfmflow.Visible:=false;
  table1.Active :=true;
  tbltmenu.Active :=true;
  tbltrole.Active :=true;
  tbltworker.Active:=true;
  MenuItemList:=TStringList.Create;
  showlistview2;
  showlistview1;
  vgroup:=tbltrole.fieldbyname('croleid').asstring;
end;

procedure Tdfmteam.tbltroleAfterInsert(DataSet: TDataSet);
begin
     FieldList.clear;
end;


procedure Tdfmteam.tbltroleAfterDelete(DataSet: TDataSet);
begin
  showlistview1;
end;

procedure Tdfmteam.tbltroleAfterPost(DataSet: TDataSet);
begin
  showlistview1;
end;

procedure Tdfmteam.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  //@ Added by Edward Lane : for safe
  menuItemList.Free;
  MenuItemList := Nil;
  FieldList.Free;
  table1.Active :=false;
  tbltmenu.Active :=false;
  tbltrole.Active :=false;
  tbltworker.Active:=false;
//  dfmflow.Visible:=true;
  action:=cafree;
end;

procedure Tdfmteam.FormShow(Sender: TObject);
begin
{ TreeView2.Items.BeginUpdate;
     ShowMenuItems(nil,mainform.mmMainMenu.Items);
  TreeView2.Items.EndUpdate;}
end;


procedure Tdfmteam.Table1AfterInsert(DataSet: TDataSet);
begin
//   FieldList.clear;
end;

procedure Tdfmteam.Table1BeforeEdit(DataSet: TDataSet);
begin
//  GetFieldList;
end;

procedure Tdfmteam.Table1BeforeDelete(DataSet: TDataSet);
begin
//  GetFieldList;
end;

procedure Tdfmteam.BitBtn4Click(Sender: TObject);
begin
  tbltrole.cancel;
end;

procedure tdfmteam.showlistview2;  {画用户列表}
begin
     table1.Close;
     table1.Open ;
     table1.first;
     ListView2.Items.Clear ;
     with ListView2 do
     begin
     //@ added by Edward Lane : for faster view
       Items.BeginUpdate;
       while not table1.Eof do
       begin
         ListItem := Items.Add;
         ListItem.Caption := table1.fieldbyname('cworkerid').asstring;
         ListItem.SubItems.Add(table1.fieldbyname('cuser').asstring);
         ListItem.SubItems.Add(table1.fieldbyname('croleid').asstring);
         ListItem.SubItems.Add(table1.fieldbyname('croleid').asstring);
         table1.Next;
       end;
       Items.EndUpdate;
     end;
end;

procedure Tdfmteam.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
//  windowstate:=wsMaximized;
//  resize:=false;
end;

procedure Tdfmteam.BitBtn9Click(Sender: TObject);
begin
  table1.edit;
end;

procedure Tdfmteam.Table1PostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
  if (E is EDBEngineError) then
    if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then
    begin
      MessageDlg('此用户已存在,请重新输入!', mtWarning, [mbOK], 0);
      Abort;
    end;
  if (E is EDBEngineError) then
    if (E as EDBEngineError).Errors[0].Errorcode = eForeignKey then
    begin
      MessageDlg('此用户不在人员名单中,请重新输入!', mtWarning, [mbOK], 0);
      Abort;
    end;


end;

procedure Tdfmteam.BitBtn10Click(Sender: TObject);
begin
  tbltrole.edit;
end;

procedure Tdfmteam.tbltrolePostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
  if (E is EDBEngineError) then
    if (E as EDBEngineError).Errors[0].Errorcode = eKeyViol then
    begin
      MessageDlg('此组编号已存在,请重新输入!', mtWarning, [mbOK], 0);
      Abort;
    end;
end;

procedure Tdfmteam.tbltroleDeleteError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  if (E is EDBEngineError) then
    if (E as EDBEngineError).Errors[0].Errorcode = eDetailsExist then
    {the customer record has dependent details in the Orders table.}
    begin
      MessageDlg('只有先删除组中的所有用户,才能删除这个组!',
        mtWarning, [mbOK], 0);
      Abort;
    end;
end;

//通过双击用户列表进入添加、编辑用户界面
procedure Tdfmteam.ListView2DblClick(Sender: TObject);
begin
  IF Application.FindComponent('dfmuserinfo')=NIL THEN
    dfmuserinfo :=Tdfmuserinfo.Create(Application);
  dfmuserinfo.show;
end;

procedure Tdfmteam.ListView1DblClick(Sender: TObject);
begin
  IF Application.FindComponent('dfmgroupinfo')=NIL THEN
    dfmgroupinfo :=Tdfmgroupinfo.create(application);
  dfmgroupinfo.Show;
end;

procedure Tdfmteam.ListView1Click(Sender: TObject);
var
  vname:string;
  lname:string;
  wname:integer;
  wsname:integer;
begin
  If ( ListView1.Selected <> nil ) Then
  begin
    vname:=listview1.Selected.Caption;
    wname:=Length(vname);
    wsname:=pos('(',vname);
    lname:=copy(vname,wsname+1,wname-wsname-1);
    with tbltrole do
    begin
      indexfieldnames:='Croleid';
      if locate('croleid',lname,[loPartialKey]) then
      begin
        vgroup:=fieldbyname('croleid').asstring;
      end;
    end;
  end;
end;

procedure Tdfmteam.ListView2Click(Sender: TObject);
var
  vname:string;
begin
  If ( ListView2.Selected <> nil ) Then
  begin
    vname:=listview2.Selected.Caption;
    with table1 do
    begin
      indexfieldnames:='Cworkerid';
      if locate('cworkerid',vname,[loPartialKey]) then
    end;
   end;
end;

procedure Tdfmteam.Table1AfterDelete(DataSet: TDataSet);
begin
  showlistview2;  
end;

end.

⌨️ 快捷键说明

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