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

📄 frmoperator.~pas

📁 本文件中还有JSP、php和delphi等源程序
💻 ~PAS
字号:
unit frmOperator;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, DBCtrls, Mask, Grids, DBGrids,StrUtils;

type
  TNowDataStatus=set of (ndsNormal,ndsAppend,ndsModify);

type
  TOperatorForm = class(TForm)
    panChild: TPanel;
    cmdClose: TButton;
    grbOperatorInfo: TGroupBox;
    lblOperatorID: TLabel;
    txtOperatorID: TDBEdit;
    lblOperatorName: TLabel;
    txtOperatorName: TDBEdit;
    lblOperatorPassword: TLabel;
    txtOperatorPassword: TDBEdit;
    grbRights: TGroupBox;
    chkOperator: TCheckBox;
    chkCheckTime: TCheckBox;
    chkSalarySet: TCheckBox;
    chkSearch: TCheckBox;
    chkSystemSet: TCheckBox;
    grbOperatorList: TGroupBox;
    grdOperatorList: TDBGrid;
    cmdDelete: TButton;
    cmdModify: TButton;
    cmdAdd: TButton;
    procedure cmdCloseClick(Sender: TObject);
    procedure cmdAddClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cmdModifyClick(Sender: TObject);
    procedure cmdDeleteClick(Sender: TObject);
    procedure grdOperatorListMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure panChildResize(Sender: TObject);
  private
    { Private declarations }
    NowDataStatus:TNowDataStatus;
    function GetOperatorRights:string;
    procedure ChangeDisplayStatus(const AValue:TNowDataStatus);
  public
    { Public declarations }
    procedure RefreshDisplayCtrlsRights(const strRights:string);
  end;

var
  OperatorForm: TOperatorForm;

implementation

uses mdDataBases, Common;

{$R *.dfm}

procedure TOperatorForm.ChangeDisplayStatus(const AValue: TNowDataStatus);
begin
    if AValue=[ndsNormal] then
    begin
        grbOperatorInfo.Enabled:=False;
        grbRights.Enabled:=False;
        cmdAdd.Caption:='添加(&A)';
        cmdModify.Caption:='修改(&M)';
        cmdClose.Caption:='关闭';

        cmdAdd.Enabled:=True;
        cmdModify.Enabled:=True;
        cmdDelete.Enabled:=True;
        OperatorForm.NowDataStatus:=[ndsNormal];
    end;
    if AValue=[ndsAppend] then
    begin
        grbOperatorInfo.Enabled:=True;
        grbRights.Enabled:=True;
        cmdAdd.Caption:='保存(&S)';
        cmdClose.Caption:='取消';

        cmdModify.Enabled:=False;
        cmdDelete.Enabled:=False;
        OperatorForm.NowDataStatus:=[ndsAppend];
    end;
    if AValue=[ndsModify] then
    begin
        grbOperatorInfo.Enabled:=False;
        grbRights.Enabled:=True;
        cmdModify.Caption:='保存(&S)';
        cmdClose.Caption:='取消';

        cmdAdd.Enabled:=False;
        cmdDelete.Enabled:=False;
        OperatorForm.NowDataStatus:=[ndsModify];
    end;
end;

procedure TOperatorForm.cmdCloseClick(Sender: TObject);
begin
    if OperatorForm.NowDataStatus=[ndsNormal] then
    begin
        panChild.Parent := OperatorForm;
        OperatorForm.Close;
    end
    else
    begin
        OperatorForm.ChangeDisplayStatus([ndsNormal]);
        dmDataSource.tblOperator.Cancel;
        dmDataSource.tblOperator.CancelUpdates;
    end;
end;

procedure TOperatorForm.cmdAddClick(Sender: TObject);
begin
    if OperatorForm.NowDataStatus=[ndsNormal] then
    begin
        dmDataSource.tblOperator.Append;
        OperatorForm.RefreshDisplayCtrlsRights('000000');
        ChangeDisplayStatus([ndsAppend]);
    end
    else
    begin
        txtOperatorPassword.Text:=Base64Encode(txtOperatorPassword.Text);
        dmDataSource.tblOperator['OPERATOR_RIGHTS']:=GetOperatorRights;
        dmDataSource.tblOperator.Post;
        dmDataSource.tblOperator.ApplyUpdates;
        ChangeDisplayStatus([ndsNormal]);
    end;
end;

procedure TOperatorForm.FormCreate(Sender: TObject);
begin
    OperatorForm.ChangeDisplayStatus([ndsNormal]);
end;

procedure TOperatorForm.cmdModifyClick(Sender: TObject);
begin
    if OperatorForm.NowDataStatus=[ndsNormal] then
    begin
        dmDataSource.tblOperator.Edit;
        ChangeDisplayStatus([ndsModify]);
    end
    else
    begin
        dmDataSource.tblOperator['OPERATOR_RIGHTS']:=GetOperatorRights;
        dmDataSource.tblOperator.Post;
        dmDataSource.tblOperator.ApplyUpdates;
        ChangeDisplayStatus([ndsNormal]);
    end;
end;

procedure TOperatorForm.cmdDeleteClick(Sender: TObject);
var
    strDeleteConfimInfo:string;
    intResult:Integer;
begin
    strDeleteConfimInfo:='真的删除操作员"'+
            Trim(dmDataSource.tblOperator['OPERATOR_NAME'])+'"吗?';
    intResult:=MessageBox(Application.Handle,pchar(strDeleteConfimInfo),
                          '确认',32+4);
    if intResult=mrYes then
    begin
        dmDataSource.tblOperator.Delete;
    end;
end;
function TOperatorForm.GetOperatorRights:string;
var
    I:Integer;
begin
    Result:='';
    for I := 0 to grbRights.ControlCount-1 do
    begin
        if (grbRights.Controls[I] as TCheckBox).Checked then
            Result:=Result+'1'
        else
            Result:=Result+'0';
    end;
end;

procedure TOperatorForm.RefreshDisplayCtrlsRights(const strRights: string);
var
    I:Integer;
begin
    if dmDataSource.tblOperator.RecordCount>0 then
    begin
        for I := 0 to grbRights.ControlCount-1 do
        begin
            (grbRights.Controls[I] as TCheckBox).Checked:=(MidStr(strRights,I+1,1)='1');
        end;
    end;
end;

procedure TOperatorForm.grdOperatorListMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    OperatorForm.RefreshDisplayCtrlsRights(
        dmDataSource.tblOperator['OPERATOR_RIGHTS']);
end;

procedure TOperatorForm.panChildResize(Sender: TObject);
begin
    OperatorForm.RefreshDisplayCtrlsRights(
        dmDataSource.tblOperator['OPERATOR_RIGHTS']);
end;

end.

⌨️ 快捷键说明

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