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

📄 frmperson.pas

📁 被系统名叫生产信息管理系统
💻 PAS
字号:
unit frmPerson;

interface

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

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

type
  TPersonForm = class(TForm)
    panChild: TPanel;
    cmdClose: TButton;
    grbPersonInfo: TGroupBox;
    txtAddress: TDBEdit;
    lblPersonAddress: TLabel;
    lblPersonBaseSalary: TLabel;
    txtBaseSalary: TDBEdit;
    txtTel: TLabel;
    txtTelephone: TDBEdit;
    txtBornDate: TLabel;
    lblWorkDate: TLabel;
    lblPersonJob: TLabel;
    lblPersonDepartment: TLabel;
    lblPersonID: TLabel;
    txtPersonID: TDBEdit;
    txtPersonName: TDBEdit;
    lblPersonName: TLabel;
    lblPersonPassword: TLabel;
    lblPersonSex: TLabel;
    lblOther1: TLabel;
    txtOther1: TDBEdit;
    lblOther2: TLabel;
    txtOther2: TDBEdit;
    cmdAdd: TButton;
    cmdModify: TButton;
    cmdDelete: TButton;
    grbMemo: TGroupBox;
    txtMemo: TDBMemo;
    grbPersonList: TGroupBox;
    grdPersonList: TDBGrid;
    txtWorkDate: TEdit;
    txtBirthday: TEdit;
    txtSex: TDBComboBox;
    cboDepartment: TDBLookupComboBox;
    cboJob: TDBLookupComboBox;
    txtPassword: TEdit;
    procedure cmdCloseClick(Sender: TObject);
    procedure cmdAddClick(Sender: TObject);
    procedure cmdModifyClick(Sender: TObject);
    procedure cmdDeleteClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure grdPersonListMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure panChildResize(Sender: TObject);
  private
    { Private declarations }
    NowDataStatus:TNowDataStatus;
    procedure ChangeDisplayStatus(AValue:TNowDataStatus);
    procedure RefreshControl;
  public
    { Public declarations }
  end;

var
  PersonForm: TPersonForm;

implementation

uses mdDataBases, frmOperator, Common;

{$R *.dfm}

procedure TPersonForm.ChangeDisplayStatus(AValue: TNowDataStatus);
begin
    if AValue=[ndsNormal] then
    begin
        grbPersonInfo.Enabled:=False;
        txtPassword.Enabled:=True;
        grbMemo.Enabled:=False;
        cmdAdd.Caption:='添加(&A)';
        cmdModify.Caption:='修改(&M)';
        cmdClose.Caption:='关闭';

        cmdAdd.Enabled:=True;
        cmdModify.Enabled:=True;
        cmdDelete.Enabled:=True;
        PersonForm.NowDataStatus:=[ndsNormal];
    end;
    if AValue=[ndsAppend] then
    begin
        grbPersonInfo.Enabled:=True;
        grbMemo.Enabled:=True;
        txtPassword.Enabled:=True;
        txtWorkDate.Text:=DateTimeToStr(Date);
        txtBirthday.Text:='';
        cmdAdd.Caption:='保存(&S)';
        cmdClose.Caption:='取消';

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

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

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

procedure TPersonForm.cmdAddClick(Sender: TObject);
begin
    if PersonForm.NowDataStatus=[ndsNormal] then
    begin
        ChangeDisplayStatus([ndsAppend]);
        dmDataSource.tblPerson.Append;
    end
    else
    begin
        ChangeDisplayStatus([ndsNormal]);
        dmDataSource.tblPerson['PERSON_PASSWORD']:=Base64Encode(Trim(txtPassword.Text));
        dmDataSource.tblPerson['PERSON_BIRTHDAY']:=strToDateTime(txtBirthday.Text);
        dmDataSource.tblPerson['PERSON_WORKDATE']:=strToDateTime(txtWorkDate.Text);
        dmDataSource.tblPerson.Post;
        dmDataSource.tblPerson.ApplyUpdates;
    end;
end;

procedure TPersonForm.cmdModifyClick(Sender: TObject);
begin
    if PersonForm.NowDataStatus=[ndsNormal] then
    begin
        dmDataSource.tblPerson.Edit;
        ChangeDisplayStatus([ndsModify]);
    end
    else
    begin
        ChangeDisplayStatus([ndsNormal]);
        dmDataSource.tblPerson['PERSON_BIRTHDAY']:=strToDateTime(txtBirthday.Text);
        dmDataSource.tblPerson['PERSON_WORKDATE']:=strToDateTime(txtWorkDate.Text);
        dmDataSource.tblPerson.Post;
        dmDataSource.tblPerson.ApplyUpdates;
    end;
end;

procedure TPersonForm.cmdDeleteClick(Sender: TObject);
var
    strDeleteConfimInfo:string;
    intResult:Integer;
begin
    strDeleteConfimInfo:='真的删除员工"'+
            Trim(dmDataSource.tblPerson['PERSON_NAME'])+'"吗?';
    intResult:=MessageBox(Application.Handle,pchar(strDeleteConfimInfo),
                          '确认',32+4);
    if intResult=mrYes then
    begin
        dmDataSource.tblPerson.Delete;
    end;
end;

procedure TPersonForm.FormCreate(Sender: TObject);
begin
    PersonForm.ChangeDisplayStatus([ndsNormal]);
end;

procedure TPersonForm.RefreshControl;
begin
    if dmDataSource.tblPerson.RecordCount>0 then
    begin
        txtWorkDate.Text:=DateTimeToStr(dmDataSource.tblPerson['PERSON_WORKDATE']);
        txtBirthday.Text:=DateTimeToStr(dmDataSource.tblPerson['PERSON_BIRTHDAY']);
        txtPassword.Text:=dmDataSource.tblPerson['PERSON_PASSWORD'];
    end;
end;

procedure TPersonForm.grdPersonListMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    RefreshControl;
end;

procedure TPersonForm.panChildResize(Sender: TObject);
begin
    RefreshControl;
end;

end.

⌨️ 快捷键说明

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