Componentes.Terceros.UserCo.../official/2.31RC1/Source/pUCFrame_Profile.pas
2009-02-27 17:12:01 +00:00

247 lines
7.6 KiB
ObjectPascal
Raw Permalink Blame History

unit pUCFrame_Profile;
interface
{$I 'UserControl.inc'}
uses
{$IFDEF DELPHI5_UP}
{$ELSE}
Variants,
{$ENDIF}
Buttons,
Classes,
Controls,
Db,
DBGrids,
Dialogs,
ExtCtrls,
Forms,
Graphics,
Grids,
IncPerfil_U,
Messages,
StdCtrls,
SysUtils,
UcBase,
UserPermis_U,
Windows;
type
TFrame_Profile = class(TFrame)
DbGridPerf: TDBGrid;
Panel2: TPanel;
BtnAddPer: TBitBtn;
BtnAltPer: TBitBtn;
BtnExcPer: TBitBtn;
BtnClose: TBitBtn;
BtnAcePer: TBitBtn;
DataPerfil: TDataSource;
procedure BtnAddPerClick(Sender: TObject);
procedure BtnAltPerClick(Sender: TObject);
procedure BtnExcPerClick(Sender: TObject);
procedure BtnAcePerClick(Sender: TObject);
protected
FIncluirPerfil: TfrmIncluirPerfil;
procedure ActionBtPermissProfileDefault;
procedure SetWindowPerfil(Adicionar: Boolean);
procedure SetWindowProfile;
private
{ Private declarations }
public
fUserControl: TUserControl;
FDataSetPerfilUsuario: TDataset;
destructor Destroy; override;
{ Public declarations }
end;
implementation
{$R *.dfm}
procedure TFrame_Profile.SetWindowPerfil(Adicionar: Boolean);
begin
with fUserControl.UserSettings.AddChangeProfile do
begin
FIncluirPerfil.Caption := WindowCaption;
if Adicionar then
FIncluirPerfil.LbDescricao.Caption := LabelAdd
else
FIncluirPerfil.LbDescricao.Caption := LabelChange;
FIncluirPerfil.lbNome.Caption := LabelName;
FIncluirPerfil.btGravar.Caption := BtSave;
FIncluirPerfil.btCancela.Caption := BtCancel;
FIncluirPerfil.Position := FUserControl.UserSettings.WindowsPosition;
FIncluirPerfil.FDataSetPerfilUsuario := FDataSetPerfilUsuario;
end;
end;
procedure TFrame_Profile.ActionBtPermissProfileDefault;
var
TempCampos, TempCamposEX: String;
begin
UserPermis.FTempIdUser := FDataSetPerfilUsuario.FieldByName('IdUser').AsInteger;
with fUserControl do
begin
TempCampos := Format(' %s as IdUser, %s as Modulo, %s as ObjName, %s as UCKey ',
[TableRights.FieldUserID,
TableRights.FieldModule,
TableRights.FieldComponentName,
TableRights.FieldKey]);
TempCamposEX := Format('%s, %s as FormName ', [TempCampos, TableRights.FieldFormName]);
UserPermis.DSPermiss := DataConnector.UCGetSQLDataset(Format('Select %s from %s tab Where tab.%s = %s and tab.%s = %s',
[TempCampos,
TableRights.TableName,
TableRights.FieldUserID,
FDataSetPerfilUsuario.FieldByName('IdUser').AsString,
TableRights.FieldModule,
QuotedStr(ApplicationID)]));
UserPermis.DSPermiss.Open;
UserPermis.DSPermissEX := DataConnector.UCGetSQLDataset(Format('Select %s from %s tab1 Where tab1.%s = %s and tab1.%s = %s',
[TempCamposEX,
TableRights.TableName + 'EX',
TableRights.FieldUserID,
FDataSetPerfilUsuario.FieldByName('IdUser').AsString,
TableRights.FieldModule,
QuotedStr(ApplicationID)]));
UserPermis.DSPermissEX.Open;
UserPermis.DSPerfil := TDataset.Create(UserPermis);
UserPermis.ShowModal;
FDataSetPerfilUsuario.Close;
FDataSetPerfilUsuario.Open;
FDataSetPerfilUsuario.Locate('idUser', UserPermis.FTempIdUser, []);
FreeAndNil(UserPermis);
end;
end;
procedure TFrame_Profile.SetWindowProfile;
begin
with fUserControl.UserSettings.Rights do
begin
UserPermis.Caption := WindowCaption;
UserPermis.LbDescricao.Caption := LabelProfile;
UserPermis.lbUser.Left := UserPermis.LbDescricao.Left + UserPermis.LbDescricao.Width + 5;
UserPermis.PageMenu.Caption := PageMenu;
UserPermis.PageAction.Caption := PageActions;
UserPermis.PageControls.Caption := PageControls; // By Vicente Barros Leonel
UserPermis.BtLibera.Caption := BtUnlock;
UserPermis.BtBloqueia.Caption := BtLock;
UserPermis.BtGrava.Caption := BtSave;
UserPermis.BtCancel.Caption := BtCancel;
UserPermis.Position := fUsercontrol.UserSettings.WindowsPosition;
end;
end;
procedure TFrame_Profile.BtnAcePerClick(Sender: TObject);
begin
if FDataSetPerfilUsuario.IsEmpty then
Exit;
UserPermis := TUserPermis.Create(self);
UserPermis.FUserControl := fUsercontrol;
SetWindowProfile;
UserPermis.lbUser.Caption := FDataSetPerfilUsuario.FieldByName('Nome').AsString;
ActionBtPermissProfileDefault;
end;
procedure TFrame_Profile.BtnAddPerClick(Sender: TObject);
begin
try
FIncluirPerfil := TfrmIncluirPerfil.Create(Self);
FIncluirPerfil.FUserControl := Self.FUserControl;
SetWindowPerfil(True);
FIncluirPerfil.ShowModal;
finally
FreeAndNil(FIncluirPerfil);
end;
end;
procedure TFrame_Profile.BtnAltPerClick(Sender: TObject);
begin
if FDataSetPerfilUsuario.IsEmpty then
Exit;
try
FIncluirPerfil := TfrmIncluirPerfil.Create(self);
FIncluirPerfil.FUserControl := Self.FUserControl;
FIncluirPerfil.FNewIdUser := FDataSetPerfilUsuario.FieldByName('IdUser').AsInteger;
SetWindowPerfil(False);
with FIncluirPerfil do
begin
EditDescricao.Text := FDataSetPerfilUsuario.FieldByName('Nome').AsString;
FAltera := True;
ShowModal;
end;
finally
FreeAndNil(FIncluirPerfil);
end;
end;
procedure TFrame_Profile.BtnExcPerClick(Sender: TObject);
var
TempID: Integer;
CanDelete: Boolean;
ErrorMsg: String;
TempDS: TDataset;
begin
if FDataSetPerfilUsuario.IsEmpty then
Exit;
TempID := FDataSetPerfilUsuario.FieldByName('IDUser').AsInteger;
TempDS := FUserControl.DataConnector.UCGetSQLDataset('Select ' + FUserControl.TableUsers.FieldUserID + ' as IdUser from ' +
FUserControl.TableUsers.TableName +
' Where ' + FUserControl.TableUsers.FieldTypeRec + ' = ' + QuotedStr('U') +
' AND ' + FUserControl.TableUsers.FieldProfile + ' = ' + IntToStr(TempID));
if TempDS.FieldByName('IdUser').AsInteger > 0 then
begin
TempDS.Close;
FreeAndNil(TempDS);
//changed by fduenas: PromptDelete_WindowCaption
if MessageBox(handle, PChar(Format(FUserControl.UserSettings.UsersProfile.PromptDelete, [FDataSetPerfilUsuario.FieldByName('Nome').AsString])),
PChar(FUserControl.UserSettings.UsersProfile.PromptDelete_WindowCaption), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2) <> idYes then
Exit;
end
else
begin
TempDS.Close;
FreeAndNil(TempDS);
end;
CanDelete := True;
if Assigned(FUserControl.onDeleteProfile) then
FUserControl.onDeleteProfile(TObject(Owner), TempID, CanDelete, ErrorMsg);
if not CanDelete then
begin
MessageDlg(ErrorMSG, mtWarning, [mbOK], 0);
Exit;
end;
with FUserControl do
begin
DataConnector.UCExecSQL('Delete from ' + TableUsers.TableName + ' where ' + TableUsers.FieldUserID + ' = ' + IntToStr(TempID));
DataConnector.UCExecSQL('Delete from ' + TableRights.TableName + ' where ' + TableRights.FieldUserID + ' = ' + IntToStr(TempID));
DataConnector.UCExecSQL('Delete from ' + TableRights.TableName + 'EX where ' + TableRights.FieldUserID + ' = ' + IntToStr(TempID));
DataConnector.UCExecSQL('Update ' + TableUsers.TableName +
' Set ' + TableUsers.FieldProfile + ' = null where ' + TableUsers.FieldUserID + ' = ' + IntToStr(TempID));
end;
FDataSetPerfilUsuario.Close;
FDataSetPerfilUsuario.Open;
end;
destructor TFrame_Profile.Destroy;
begin
//nada a destruir
//n<>o destruir o FDataSetPerfilUsuario o USERCONTROL toma conta dele
inherited;
end;
end.