Componentes.Terceros.UserCo.../internal/2.20/1/Source/IncPerfil_U.pas
2007-07-11 13:47:42 +00:00

114 lines
2.7 KiB
ObjectPascal

unit IncPerfil_U;
interface
{$I 'UserControl.inc'}
uses
{$IFDEF DELPHI5_UP}
Variants,
{$ENDIF}
Buttons,
Classes,
Controls,
DB,
Dialogs,
ExtCtrls,
Forms,
Graphics,
Messages,
StdCtrls,
SysUtils,
UCBase,
Windows;
type
TfrmIncluirPerfil = class(TForm)
Panel1: TPanel;
LbDescricao: TLabel;
Image1: TImage;
Panel3: TPanel;
btGravar: TBitBtn;
btCancela: TBitBtn;
Panel2: TPanel;
lbNome: TLabel;
EditDescricao: TEdit;
procedure btCancelaClick(Sender: TObject);
procedure btGravarClick(Sender: TObject);
private
function GetNewIdUser: Integer;
{ Private declarations }
public
FAltera: Boolean;
FUserControl: TUserControl;
end;
implementation
{$R *.dfm}
uses
CadPerfil_U;
procedure TfrmIncluirPerfil.btCancelaClick(Sender: TObject);
begin
Close;
end;
procedure TfrmIncluirPerfil.btGravarClick(Sender: TObject);
var
FNewIdUser: Integer;
FProfile: String;
begin
btGravar.Enabled := False;
with FUserControl do
if not FAltera then
begin // inclui perfil
FNewIdUser := GetNewIdUser;
FProfile := EditDescricao.Text;
if Assigned(onAddProfile) then
onAddProfile(TObject(Self.Owner.Owner), FProfile);
DataConnector.UCExecSQL(Format('INSERT INTO %s(%s, %s, %s) Values(%d,%s,%s)',
[TableUsers.TableName,
TableUsers.FieldUserID,
TableUsers.FieldUserName,
TableUsers.FieldTypeRec,
FNewIdUser,
QuotedStr(FProfile),
QuotedStr('P')]));
end
else
begin // alterar perfil
FNewIdUser := TfrmCadastrarPerfil(Self.Owner).FDataSetPerfilUsuario.FieldByName('IdUser').AsInteger;
FProfile := EditDescricao.Text;
DataConnector.UCExecSQL(Format('UPDATE %s SET %s = %s WHERE %s = %d',
[TableUsers.TableName,
TableUsers.FieldUserName,
QuotedStr(FProfile),
TableUsers.FieldUserID,
FNewIdUser]));
end;
TfrmCadastrarPerfil(Owner).FDataSetPerfilUsuario.Close;
TfrmCadastrarPerfil(Owner).FDataSetPerfilUsuario.Open;
TfrmCadastrarPerfil(Owner).FDataSetPerfilUsuario.Locate('IDUser', FNewIdUser, []);
Close;
end;
function TfrmIncluirPerfil.GetNewIdUser: Integer;
var
TempDs: TDataset;
begin
with FUserControl do
TempDS := DataConnector.UCGetSQLDataSet('SELECT ' + TableUsers.FieldUserID + ' as MaxUserID from ' + TableUsers.TableName +
' ORDER BY ' + TableUsers.FieldUserID + ' DESC');
Result := TempDs.FieldByName('MaxUserID').AsInteger + 1;
TempDS.Close;
FreeAndNil(TempDS);
end;
end.