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

📄 sy110.~pas

📁 一套融入了系统营销管理思想的管理软件产品
💻 ~PAS
字号:
unit SY110;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Single, Menus, Db, DBTables, Grids, DBGrids, Buttons, ExtCtrls, StdCtrls,
  DBCtrls, Mask;

type
  TfmSY110 = class(TfmSingle)
    qyMasterCompanyID: TStringField;
    qyMasterUserID: TStringField;
    qyMasterUserName: TStringField;
    qyMasterUserOrGroup: TStringField;
    qyMasterGroupID: TStringField;
    qyMasterPasswordCode: TStringField;
    qyMasterCreateMan: TStringField;
    qyMasterCreateDate: TStringField;
    qyMasterCreateTime: TStringField;
    qyMasterModifyMan: TStringField;
    qyMasterModifyDate: TStringField;
    qyMasterModifyTime: TStringField;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    DBEdit2: TDBEdit;
    ED7: TEdit;
    ED2: TDBEdit;
    ED6: TDBEdit;
    ED5: TDBEdit;
    DBRadioGroup1: TDBRadioGroup;
    sbGroupID: TSpeedButton;
    qyUsers: TQuery;
    qyUsersUserID: TStringField;
    qyUsersUserName: TStringField;
    qyMasterGroupName: TStringField;
    procedure qyMasterNewRecord(DataSet: TDataSet);
    procedure qyMasterBeforePost(DataSet: TDataSet);
    procedure qyMasterBeforeEdit(DataSet: TDataSet);
    procedure dsMasterStateChange(Sender: TObject);
    procedure qyMasterUserIDValidate(Sender: TField);
    procedure qyMasterUpdateRecord(DataSet: TDataSet;
      UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
    procedure sbGroupIDClick(Sender: TObject);
    procedure qyMasterGroupIDValidate(Sender: TField);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure OpenDB; override;
  end;

var
  fmSY110: TfmSY110;

implementation

uses Main, DataModule, PublicFunction, CheckData, BaseSearch, GetData;

{$R *.DFM}

{ TfmSY110 }

procedure TfmSY110.OpenDB;
begin
  qyMaster.Close;
  OrderBySQL := 'M.UserID';
  qyMaster.SQL.Text := SQLText;
  qyMaster.Open;
end;

procedure TfmSY110.qyMasterNewRecord(DataSet: TDataSet);
begin
  inherited;
  with qyMaster do
  begin
    FieldByName('UserID').AsString := Space(10);
    FieldByName('UserName').AsString := Space(8);
    FieldByName('UserOrGroup').AsString := 'U';
    FieldByName('GroupID').AsString := Space(10);
    FieldByName('PasswordCode').AsString := Space(10);
  end;
  ED7.Text := '';
end;

procedure TfmSY110.qyMasterBeforePost(DataSet: TDataSet);
begin
  inherited;
  if qyMaster.FieldByName('UserOrGroup').AsString = 'G' then
    qyMaster.FieldByName('GroupID').AsString := qyMaster.FieldByName('UserID').AsString;
  if qyMaster.State = dsInsert then
  begin
    if Trim(qyMaster.FieldByName('UserID').AsString) = '' then
    begin
      NullWarning('使用者代号');
      ED1.SetFocus;
      Abort;
    end;
    with qyTemp do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT UserID ');
      SQL.Add('FROM Users ');
      SQL.Add('WHERE CompanyID = :CompanyID AND UserID = :UserID ');
      ParamByName('CompanyID').AsString := sCompanyID;
      ParamByName('UserID').AsString := qyMaster.FieldByName('UserID').AsString;
      Open;
    end;
    if qyTemp.FieldByName('UserID').AsString <> '' then
    begin
      RepeatWarning('使用者代号');
      ED1.SetFocus;
      Abort;
    end;
  end;
  if Trim(qyMaster.FieldByName('UserName').AsString) = '' then
  begin
    NullWarning('使用者名称');
    ED2.SetFocus;
    Abort;
  end;
  if (qyMaster.FieldByName('UserOrGroup').AsString = 'U') and
     (qyMaster.FieldByName('UserID').AsString <> qyMaster.FieldByName('GroupID').AsString) then
  begin
    if not CheckUserID(qyMaster.FieldByName('GroupID').AsString) then
    begin
      ED5.SetFocus;
      Abort;
    end;
  end;
  if Trim(qyMaster.FieldByName('PasswordCode').AsString) = '' then
  begin
    NullWarning('通行密码');
    ED6.SetFocus;
    Abort;
  end;
  if UpperCase(ED6.Text) <> UpperCase(ED7.Text) then
  begin
    MyWarning('通行密码与确认密码必须一致!');
    ED6.SetFocus;
    Abort;
  end;
  qyMaster.FieldByName('PasswordCode').AsString := UpperCase(ED6.Text);
end;

procedure TfmSY110.qyMasterBeforeEdit(DataSet: TDataSet);
begin
  inherited;
  ED7.Text := qyMaster.FieldByName('PasswordCode').AsString;
end;

procedure TfmSY110.dsMasterStateChange(Sender: TObject);
begin
  inherited;
  sbGroupID.Enabled := (qyMaster.State in [dsInsert, dsEdit]);
  ED7.ReadOnly := (not (qyMaster.State in [dsInsert, dsEdit]));
end;

procedure TfmSY110.qyMasterUserIDValidate(Sender: TField);
begin
  inherited;
  if Trim(qyMaster.FieldByName('GroupID').AsString) = '' then
    qyMaster.FieldByName('GroupID').AsString := qyMaster.FieldByName('UserID').AsString;
end;

procedure TfmSY110.qyMasterUpdateRecord(DataSet: TDataSet;
  UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
begin
  if UpdateKind = ukDelete then
  begin
    with qyTemp do
    begin
      Close;
      SQL.Clear;
      SQL.Add('DELETE FROM UserAuthority ');
      SQL.Add('WHERE CompanyID = :CompanyID AND UserID = :UserID ');
      ParamByName('CompanyID').AsString := sCompanyID;
      ParamByName('UserID').AsString := DataSet.FieldByName('UserID').OldValue;
      ExecSQL;
    end;
  end;
  inherited;
end;

procedure TfmSY110.sbGroupIDClick(Sender: TObject);
begin
  inherited;
  SearchData(ED5, qyUsers);
end;

procedure TfmSY110.qyMasterGroupIDValidate(Sender: TField);
begin
  inherited;
  qyMaster.FieldByName('GroupName').AsString :=
           GetUsersName(qyMaster.FieldByName('GroupID').AsString);
end;

end.

⌨️ 快捷键说明

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