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

📄 frmusermngimpl.pas

📁 多媒体播放后台管理系统适用于各种字幕播放软件的后台管理,包括播放内容、时间、等级等的管理。
💻 PAS
📖 第 1 页 / 共 2 页
字号:

procedure TFrmUserMng.cdsMainAfterOpen(DataSet: TDataSet);
begin
  FStatus := STATUS_BROWSE;
  FModified := False;
  dtsMain.AutoEdit := True;
  ShowActionStatus();
end;

procedure TFrmUserMng.cdsMainAfterClose(DataSet: TDataSet);
begin
  FStatus := STATUS_INACTIVE;
  FModified := False;
  ShowActionStatus();
end;

procedure TFrmUserMng.cdsMainAfterInsert(DataSet: TDataSet);
var
  strTemp: string;
begin
  if (GetNextNo(qryMain, 'T_SYS_USER', 'USER_ID', strTemp, 4)) then
    DataSet.FieldByName('USER_ID').AsString := strTemp
  else begin
    ShowMessage('取用户ID时出错!');
    Abort;
  end;

  DataSet.FieldByName('USER_PSWD').AsString := '';
  DataSet.FieldByName('IF_ADMIN').AsString := 'F';
  DataSet.FieldByName('IF_BCN').AsString := 'T';
  DataSet.FieldByName('IF_MDN').AsString := 'T';
  DataSet.FieldByName('IF_QRN').AsString := 'T';

  FStatus := STATUS_EDIT;
  FModified := True;
  ShowActionStatus();
end;

procedure TFrmUserMng.cdsMainAfterScroll(DataSet: TDataSet);
begin
  ShowActionStatus();
end;

procedure TFrmUserMng.cdsMainAfterDelete(DataSet: TDataSet);
begin
  FStatus := STATUS_BROWSE;
  FModified := False;
  ShowActionStatus();
end;

procedure TFrmUserMng.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if (FModified) then
  begin
    case (Application.MessageBox(PChar('是否保存对当前记录的修改?'),
      PChar(Caption), MB_YESNOCANCEL + MB_ICONQUESTION + MB_DEFBUTTON1)) of
      ID_YES:
      begin
        actSave.Execute();
        CanClose := True;
      end;
      ID_NO:
      begin
        CanClose := True
      end;
      else
      begin
        CanClose := False
      end;
    end;
  end
  else begin
    CanClose := True;
  end;
end;

procedure TFrmUserMng.FormShow(Sender: TObject);
begin
  conMain.Open;

  grdMain.Columns[1].KeyList.Clear;
  grdMain.Columns[1].PickList.Clear;
  cmbUnitID.Items.Clear;
  cmbUnitID.KeyItems.Clear;
  qryPublic.Close;
  qryPublic.SQL.Clear;
  qryPublic.SQL.Add('select distinct unit_id,name from t_sys_unit order by unit_id');
  qryPublic.Open;
  while not qryPublic.Eof do
  begin
    cmbUnitID.KeyItems.Add(qryPublic.FieldByName('unit_id').AsString);
    cmbUnitID.Items.Add(qryPublic.FieldByName('name').AsString);

    grdMain.Columns[1].KeyList.Add(qryPublic.FieldByName('unit_id').AsString);
    grdMain.Columns[1].PickList.Add(qryPublic.FieldByName('name').AsString);

    qryPublic.Next;
  end;
  qryPublic.Close;

  cdsMain.Open;
  ShowActionStatus();
end;

procedure TFrmUserMng.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  try
    conMain.Close;
  except
  end;

  Action := caFree;
end;

procedure TFrmUserMng.cdsMainBeforePost(DataSet: TDataSet);
var
  objField, objField2: TField;
begin
  objField := DataSet.FieldByName('USER_NAME');
  objField.AsString := Trim(objField.AsString);
  if (objField.AsString = '') then
  begin
    ShowMessage('请输入“姓名”!');
    edtUserName.SetFocus;
    Abort;
  end;

  objField := DataSet.FieldByName('UNIT_ID');
  objField.AsString := Trim(objField.AsString);
  if (objField.AsString = '') then
  begin
    ShowMessage('请选择“部门”!');
    cmbUnitID.SetFocus;
    Abort;
  end;

  objField := DataSet.FieldByName('USER_PSWD');
  if (objField.AsString = '') then
  begin
    ShowMessage('请输入“密码”!');
    edtUserPswd.SetFocus;
    Abort;
  end;
  objField2 := DataSet.FieldByName('ENSURE_PSWD');
  if (objField.AsString <> objField2.AsString) then
  begin
    ShowMessage('“密码”与“确认密码”不符!');
    edtUserPswd.SetFocus;
    Abort;
  end;
end;

procedure TFrmUserMng.FormDestroy(Sender: TObject);
begin
  if (self = FrmUserMng) then
    FrmUserMng := Nil;
end;

function TFrmUserMng.GetDocCanCancel: Boolean;
begin
  Result := True;

  if ((dtsMain.DataSet = nil) or (dtsMain.DataSet.State = dsInactive) or
    (dtsMain.DataSet.RecordCount = 0)) then
    Result := False;
end;

function TFrmUserMng.GetDocCanDelete: Boolean;
begin
  Result := True;

  if ((dtsMain.DataSet = nil) or (dtsMain.DataSet.State = dsInactive) or
    (dtsMain.DataSet.RecordCount = 0)) then
    Result := False;
end;

function TFrmUserMng.GetDocCanModify: Boolean;
begin
  Result := True;

  if ((dtsMain.DataSet = nil) or (dtsMain.DataSet.State = dsInactive) or
    (dtsMain.DataSet.RecordCount = 0)) then
    Result := False;
end;

procedure TFrmUserMng.dtsMainStateChange(Sender: TObject);
begin
  if ((dtsMain.DataSet.State = dsEdit) and (FStatus <> STATUS_EDIT)) then
  begin
    FStatus := STATUS_EDIT;
    FModified := True;
    ShowActionStatus;
  end;
end;

procedure TFrmUserMng.pvdMainBeforeUpdateRecord(Sender: TObject;
  SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
  UpdateKind: TUpdateKind; var Applied: Boolean);
begin
  if (UpdateKind = ukInsert) then
  begin
    cmdPublic.CommandText := 'INSERT INTO T_SYS_USER (USER_ID,USER_NAME,USER_PSWD,UNIT_ID,IF_ADMIN,IF_BCN,IF_MDN,IF_QRN) VALUES (:USER_ID,:USER_NAME,:USER_PSWD,:UNIT_ID,:IF_ADMIN,:IF_BCN,:IF_MDN,:IF_QRN)';

    cmdPublic.Parameters.ParamByName('USER_ID').Value := DeltaDS.FieldByName('USER_ID').Value;
    cmdPublic.Parameters.ParamByName('USER_NAME').Value := DeltaDS.FieldByName('USER_NAME').Value;
    cmdPublic.Parameters.ParamByName('USER_PSWD').Value := DeltaDS.FieldByName('USER_PSWD').Value;
    cmdPublic.Parameters.ParamByName('UNIT_ID').Value := DeltaDS.FieldByName('UNIT_ID').Value;
    cmdPublic.Parameters.ParamByName('IF_ADMIN').Value := DeltaDS.FieldByName('IF_ADMIN').Value;
    cmdPublic.Parameters.ParamByName('IF_BCN').Value := DeltaDS.FieldByName('IF_BCN').Value;
    cmdPublic.Parameters.ParamByName('IF_MDN').Value := DeltaDS.FieldByName('IF_MDN').Value;
    cmdPublic.Parameters.ParamByName('IF_QRN').Value := DeltaDS.FieldByName('IF_QRN').Value;

    cmdPublic.Execute;
  end
  else if (UpdateKind = ukModify) then
  begin
    cmdPublic.CommandText := 'UPDATE T_SYS_USER SET USER_NAME=:USER_NAME,USER_PSWD=:USER_PSWD,UNIT_ID=:UNIT_ID,' +
      'IF_ADMIN=:IF_ADMIN,IF_BCN=:IF_BCN,IF_MDN=:IF_MDN,IF_QRN=:IF_QRN WHERE USER_ID=:USER_ID';

    if DeltaDS.FieldByName('USER_NAME').NewValue = '' then
      cmdPublic.Parameters.ParamByName('USER_NAME').Value := DeltaDS.FieldByName('USER_NAME').OldValue
    else
      cmdPublic.Parameters.ParamByName('USER_NAME').Value := DeltaDS.FieldByName('USER_NAME').Value;

    if DeltaDS.FieldByName('USER_PSWD').NewValue = '' then
      cmdPublic.Parameters.ParamByName('USER_PSWD').Value := DeltaDS.FieldByName('USER_PSWD').OldValue
    else
      cmdPublic.Parameters.ParamByName('USER_PSWD').Value := DeltaDS.FieldByName('USER_PSWD').Value;

    if DeltaDS.FieldByName('UNIT_ID').NewValue = '' then
      cmdPublic.Parameters.ParamByName('UNIT_ID').Value := DeltaDS.FieldByName('UNIT_ID').OldValue
    else
      cmdPublic.Parameters.ParamByName('UNIT_ID').Value := DeltaDS.FieldByName('UNIT_ID').Value;

    if not VarIsType(DeltaDS.FieldByName('IF_ADMIN').NewValue, varBoolean) then
      cmdPublic.Parameters.ParamByName('IF_ADMIN').Value := DeltaDS.FieldByName('IF_ADMIN').OldValue
    else
      cmdPublic.Parameters.ParamByName('IF_ADMIN').Value := DeltaDS.FieldByName('IF_ADMIN').Value;

    if not VarIsType(DeltaDS.FieldByName('IF_BCN').NewValue, varBoolean) then
      cmdPublic.Parameters.ParamByName('IF_BCN').Value := DeltaDS.FieldByName('IF_BCN').OldValue
    else
      cmdPublic.Parameters.ParamByName('IF_BCN').Value := DeltaDS.FieldByName('IF_BCN').Value;

    if not VarIsType(DeltaDS.FieldByName('IF_MDN').NewValue, varBoolean) then
      cmdPublic.Parameters.ParamByName('IF_MDN').Value := DeltaDS.FieldByName('IF_MDN').OldValue
    else
      cmdPublic.Parameters.ParamByName('IF_MDN').Value := DeltaDS.FieldByName('IF_MDN').Value;

    if not VarIsType(DeltaDS.FieldByName('IF_QRN').NewValue, varBoolean) then
      cmdPublic.Parameters.ParamByName('IF_QRN').Value := DeltaDS.FieldByName('IF_QRN').OldValue
    else
      cmdPublic.Parameters.ParamByName('IF_QRN').Value := DeltaDS.FieldByName('IF_QRN').Value;

    cmdPublic.Parameters.ParamByName('USER_ID').Value := DeltaDS.FieldByName('USER_ID').OldValue;
    cmdPublic.Execute;
  end
  else if (UpdateKind = ukDelete) then
  begin
    cmdPublic.CommandText := 'DELETE FROM T_SYS_USER WHERE USER_ID=:USER_ID';

    cmdPublic.Parameters.ParamByName('USER_ID').Value := DeltaDS.FieldByName('USER_ID').OldValue;
    cmdPublic.Execute;
  end;

  Applied := True;
end;

end.

⌨️ 快捷键说明

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