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

131 lines
3.2 KiB
ObjectPascal

unit pUcFrame_UserLogged;
interface
{$I 'UserControl.inc'}
uses
{$IFDEF DELPHI5}
{$ELSE}
Variants,
{$ENDIF}
Buttons,
Classes,
Controls,
DB,
DBGrids,
Dialogs,
ExtCtrls,
Forms,
Graphics,
Grids,
IncUser_U,
Menus,
Messages,
StdCtrls,
SysUtils,
UCBase,
Windows;
type
TUCFrame_UsersLogged = class(TFrame)
dsDados: TDataSource;
DBGrid: TDBGrid;
Panel3: TPanel;
BtExit: TBitBtn;
BitMsg: TBitBtn;
BitRefresh: TBitBtn;
procedure BitRefreshClick(Sender: TObject);
procedure BitMsgClick(Sender: TObject);
private
DSUserLogados: TDataset;
UCMes: TUCApplicationMessage;
public
FUserControl: TUserControl;
procedure SetWindow;
destructor Destroy; override;
end;
implementation
uses
UCMessages;
{$R *.dfm}
procedure TUCFrame_UsersLogged.SetWindow;
var
SQLStmt: String;
I: Integer;
Form: TForm;
begin
UCMes := nil;
Form := Application.MainForm;
for I := 0 to Form.ComponentCount - 1 do
if (Form.Components[I] is TUCApplicationMessage) then
UCMes := TUCApplicationMessage(Form.Components[I]);
BitMsg.Visible := UCMES <> nil;
with FUserControl do
begin
SQLStmt :=
'SELECT U.' + TableUsers.FieldUserName + ' AS UserName,' +
' U.' + TableUsers.FieldUserId + ' AS id, ' +
' U.' + TableUsers.FieldLogin + ' AS Login,' +
' L.' + TableUsersLogged.FieldMachineName + ' AS MachineName,' +
' L.' + TableUsersLogged.FieldData + ' AS DATA ' +
'FROM ' + TableUsersLogged.TableName + ' L ' +
' INNER JOIN ' + TableUsers.TableName + ' U ON U.' + TableUsers.FieldUserID + ' = L.' + TableUsersLogged.FieldUserID +
' LEFT JOIN ' + TableUsers.TableName + ' P ON P.' + TableUsers.FieldUserID + ' = U.' + TableUsers.FieldProfile + ' ' +
'WHERE L.' + TableUsersLogged.FieldApplicationID + ' = ' + QuotedStr(ApplicationID);
DSUserLogados := DataConnector.UCGetSQLDataset(SQLStmt);
with UserSettings.UsersLogged do
begin
Caption := LabelCaption;
BitMsg.Caption := BtnMessage;
BitRefresh.Caption := BtnRefresh;
BtExit.Caption := BtnClose;
DBGrid.Columns[0].Title.Caption := ColName;
DBGrid.Columns[1].Title.Caption := ColLogin;
DBGrid.Columns[2].Title.Caption := ColComputer;
DBGrid.Columns[3].Title.Caption := ColData;
end;
end;
dsDados.Dataset := DSUserLogados;
end;
procedure TUCFrame_UsersLogged.BitRefreshClick(Sender: TObject);
begin
try
Screen.Cursor := crHourGlass;
dsDados.DataSet.Close;
dsDados.DataSet.Open;
finally
Screen.Cursor := crDefault;
end;
end;
destructor TUCFrame_UsersLogged.Destroy;
begin
FreeAndNil(DSUserLogados);
FreeAndNil(UCMes);
inherited;
end;
procedure TUCFrame_UsersLogged.BitMsgClick(Sender: TObject);
var
Msg: String;
begin
if Assigned(UcMes) then
if InputQuery(fUserControl.UserSettings.UsersLogged.InputText, fUserControl.UserSettings.UsersLogged.InputCaption, Msg) = True then
UcMes.SendAppMessage(dsDados.DataSet.FieldValues['id'], fUserControl.UserSettings.UsersLogged.MsgSystem, Msg);
end;
end.