uni_user.~pas

来自「一个非常不错的经费报销管理软件」· ~PAS 代码 · 共 216 行

~PAS
216
字号
unit Uni_User;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, Menus, Grids, DBGridEh, DB, StdCtrls, Mask,
  DBCtrls, ExtCtrls, XPMenu, CheckLst, ADODB;

type
  TFrm_User = class(TForm)
    TB_Main: TToolBar;
    TB_Insert: TToolButton;
    TB_Update: TToolButton;
    TB_Delete: TToolButton;
    TB_Post: TToolButton;
    TB_Cancel: TToolButton;
    TB_Refresh: TToolButton;
    TB_Help: TToolButton;
    TB_Close: TToolButton;
    Tree: TTreeView;
    PopupMenu1: TPopupMenu;
    N_State: TMenuItem;
    DSbsUser: TDataSource;
    N_TreeRead: TMenuItem;
    Panel1: TPanel;
    P_Edit: TPanel;
    Label1: TLabel;
    DB_cName: TDBEdit;
    Label2: TLabel;
    DB_cPassword: TDBEdit;
    Label3: TLabel;
    DB_cBranchName: TDBEdit;
    DBGbsUser: TDBGridEh;
    XPMenu1: TXPMenu;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    CoolBar1: TCoolBar;
    StatusBar1: TStatusBar;
    TB_PurviewSetup: TToolButton;
    procedure TB_RefreshClick(Sender: TObject);
    procedure TreeClick(Sender: TObject);
    procedure N_StateClick(Sender: TObject);
    procedure TB_InsertClick(Sender: TObject);
    procedure TB_DeleteClick(Sender: TObject);
    procedure TB_PostClick(Sender: TObject);
    procedure N_TreeReadClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TB_CancelClick(Sender: TObject);
    procedure TB_CloseClick(Sender: TObject);
    procedure TB_UpdateClick(Sender: TObject);
    procedure TB_PurviewSetupClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_User: TFrm_User;

implementation

{$R *.dfm}

uses Uni_dm,Uni_Main,Uni_Branchs,Uni_Function, StrUtils,Uni_PurviewSetup;

procedure TFrm_User.TB_RefreshClick(Sender: TObject);
begin
  if DM.bsUser.IsEmpty then Exit;
  DM.bsUser.Close;
  DM.bsUser.Open;
end;

procedure TFrm_User.TreeClick(Sender: TObject);
var
  L,R:Integer;
  str:String;
begin
  //Frm_Branchs.TreeClick(Sender);
  try
    L:=Pos('[',(Sender as TTreeView).Selected.Text);
    R:=Pos(']',(Sender as TTreeView).Selected.Text);
    
    str:=MidBStr((Sender as TTreeView).Selected.Text,L+1,R-L-1);
  except
  end;

  //
  with DM do
  begin
    bsBranchs.Close;
    bsBranchs.Open;
    if not bsBranchs.Locate('cNum',str,[])
    then
    begin
      MessageBoxError('获取部门信息数据错误!');
    end;
  end;

  DM.bsUser.Close;
  DM.bsUser.SQL.Text:='select *From bsUser where iState>0 and cBranchsID='+QuotedStr(DM.bsBranchs.FieldByName('ID').AsString);
  DM.bsUser.Open;
end;

procedure TFrm_User.N_StateClick(Sender: TObject);
var
  i:Integer;
begin
  for i :=0  to TB_Main.ButtonCount-1  do
    TB_Main.Buttons[i].Enabled:=not TB_Main.Buttons[i].Enabled;
  //   
  P_Edit.Visible:=TB_Post.Enabled;
  Tree.Enabled:=TB_Insert.Enabled;
  DBGbsUser.Enabled:=TB_Insert.Enabled;
end;

procedure TFrm_User.TB_InsertClick(Sender: TObject);
begin
  IF DM.bsBranchs.Active=False THEN Exit;
  N_StateClick(Sender);
  with DM do
  begin
    bsUser.Close;
    bsUser.Open;
    bsUser.Insert;
    bsUser.FieldByName('id').AsString:=GetGUID;
    bsUser.FieldByName('istate').AsInteger:=0;
    bsUser.FieldByName('cBranchsID').AsString:=bsBranchs.FieldByName('ID').AsString;
    bsUser.Post;
  end;
end;

procedure TFrm_User.TB_DeleteClick(Sender: TObject);
begin
  if not DM.bsUser.IsEmpty then
  begin
    DM.bsUser.Edit;
    DM.bsUser.FieldByName('iState').AsInteger:=-1;
    DM.bsUser.Post;
  end;
  TB_RefreshClick(Sender);
end;

procedure TFrm_User.TB_PostClick(Sender: TObject);
begin
  N_StateClick(Sender);
  //
  DM.bsUser.Edit;
  DM.bsUser.FieldByName('iState').AsInteger:=1;
  DM.bsUser.Post;

  //
  DM.bsPurviewList.Close;
  DM.bsPurviewList.Open;
  while not DM.bsPurviewList.Eof do
  begin
    if not DM.bsPurview.Locate('ListID',DM.bsPurviewList.FieldByName('id').AsString,[])
    then begin
      DM.bsPurview.Insert;
      DM.bsPurview.FieldByName('ListId').AsInteger:=DM.bsPurviewList.FieldByName('id').AsInteger;
      DM.bsPurview.FieldByName('cName').AsString:=DM.bsPurviewList.FieldByName('cName').AsString;
      DM.bsPurview.FieldByName('cUserID').AsString:=DM.bsUser.FieldByName('id').AsString;
      DM.bsPurview.FieldByName('BVisible').AsBoolean:=DM.bsPurviewList.FieldByName('BVisible').AsBoolean;
      DM.bsPurview.Post;
    end;
    DM.bsPurviewList.Next;
  end;
  
  TB_RefreshClick(Sender);
end;

procedure TFrm_User.N_TreeReadClick(Sender: TObject);
begin
  TreeRead('bsBranchs');
  Tree.Items.Clear;
  Tree.LoadFromFile('SPTREE.TXT');
  Tree.TopItem.Expanded:=True;  
  TB_RefreshClick(Sender);
end;

procedure TFrm_User.FormShow(Sender: TObject);
begin
  N_TreeReadClick(Sender);
  DM.bsUser.Close;
end;

procedure TFrm_User.TB_CancelClick(Sender: TObject);
begin
  N_StateClick(Sender);
  DM.bsUser.Cancel;
  if DM.bsUser.FieldByName('iState').AsInteger=0 then
    DM.bsUser.Delete;
end;

procedure TFrm_User.TB_CloseClick(Sender: TObject);
begin
  Close;
end;

procedure TFrm_User.TB_UpdateClick(Sender: TObject);
begin
  if DM.bsUser.IsEmpty then Exit;
  N_StateClick(Sender);
end;

procedure TFrm_User.TB_PurviewSetupClick(Sender: TObject);
begin
  Application.CreateForm(TFrm_PurviewSetup,Frm_PurviewSetup);
  Frm_PurviewSetup.ShowModal;
end;

end.

⌨️ 快捷键说明

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