- Cambiado el formato de fechas 'mm/dd/yyyy' a 'dd/mm/yyyy'. git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.UserControl@14 970f2627-a9d2-4748-b3d4-b5283c4fe7db
273 lines
8.9 KiB
ObjectPascal
273 lines
8.9 KiB
ObjectPascal
unit ViewLog_U;
|
||
|
||
interface
|
||
|
||
{$I 'UserControl.inc'}
|
||
|
||
uses
|
||
{$IFDEF DELPHI5_UP}
|
||
{$ELSE}
|
||
Variants,
|
||
{$ENDIF}
|
||
Buttons,
|
||
Classes,
|
||
ComCtrls,
|
||
Controls,
|
||
DB,
|
||
DBGrids,
|
||
Dialogs,
|
||
ExtCtrls,
|
||
Forms,
|
||
Graphics,
|
||
Grids,
|
||
ImgList,
|
||
Messages,
|
||
StdCtrls,
|
||
SysUtils,
|
||
UCBase,
|
||
// UCConsts,
|
||
Windows;
|
||
|
||
type
|
||
TViewLog = class(TForm)
|
||
Panel1: TPanel;
|
||
lbDescricao: TLabel;
|
||
Image1: TImage;
|
||
Panel2: TPanel;
|
||
Splitter1: TSplitter;
|
||
Panel3: TPanel;
|
||
lbUsuario: TLabel;
|
||
ComboUsuario: TComboBox;
|
||
Bevel1: TBevel;
|
||
lbData: TLabel;
|
||
data1: TDateTimePicker;
|
||
data2: TDateTimePicker;
|
||
Bevel2: TBevel;
|
||
lbNivel: TLabel;
|
||
ComboNivel: TComboBox;
|
||
btfiltro: TBitBtn;
|
||
Bevel3: TBevel;
|
||
DataSource1: TDataSource;
|
||
DBGrid1: TDBGrid;
|
||
ImageList1: TImageList;
|
||
btfecha: TBitBtn;
|
||
btexclui: TBitBtn;
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure ComboNivelDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
|
||
procedure ComboUsuarioChange(Sender: TObject);
|
||
procedure btfechaClick(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure btexcluiClick(Sender: TObject);
|
||
procedure data1Change(Sender: TObject);
|
||
procedure btfiltroClick(Sender: TObject);
|
||
private
|
||
procedure AplicaFiltro;
|
||
public
|
||
ListIdUser: TStringList;
|
||
DSLog, DSCmd: TDataset;
|
||
UCComponent: TUserControl;
|
||
end;
|
||
|
||
implementation
|
||
|
||
uses
|
||
UCDataInfo;
|
||
|
||
{$R *.dfm}
|
||
|
||
procedure TViewLog.FormCreate(Sender: TObject);
|
||
begin
|
||
ComboNivel.Items.Clear;
|
||
//Modified by fduenas
|
||
ComboNivel.Items.Append(TUserControl(Owner).UserSettings.Log.OptionLevelLow); //BGM
|
||
ComboNivel.Items.Append(TUserControl(Owner).UserSettings.Log.OptionLevelNormal); //BGM
|
||
ComboNivel.Items.Append(TUserControl(Owner).UserSettings.Log.OptionLevelHigh); //BGM
|
||
ComboNivel.Items.Append(TUserControl(Owner).UserSettings.Log.OptionLevelCritic); //BGM
|
||
ComboNivel.ItemIndex := 0;
|
||
ComboUsuario.Items.Clear;
|
||
ListIdUser := TStringList.Create;
|
||
data1.Date := EncodeDate(StrToInt(FormatDateTime('yyyy', Date)), 1, 1);
|
||
data2.DateTime := Now;
|
||
end;
|
||
|
||
procedure TViewLog.ComboNivelDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
|
||
var
|
||
TempImg: Graphics.TBitmap;
|
||
begin
|
||
TempImg := Graphics.TBitmap.Create;
|
||
Imagelist1.GetBitmap(Index, TempImg);
|
||
ComboNivel.Canvas.Draw(Rect.Left + 5, Rect.Top + 1, TempImg);
|
||
ComboNivel.Canvas.TextRect(Rect, Rect.Left + 30, Rect.Top + 2, ComboNivel.items[Index]);
|
||
ComboNivel.Canvas.Draw(Rect.Left + 5, Rect.Top + 1, TempImg);
|
||
FreeAndNil(TempImg);
|
||
end;
|
||
|
||
procedure TViewLog.FormShow(Sender: TObject);
|
||
var
|
||
TabelaLog: String;
|
||
SQLStmt: String;
|
||
begin
|
||
with TUserControl(Owner) do
|
||
DSCmd := DataConnector.UCGetSQLDataset(
|
||
Format('SELECT %s AS IDUSER, %s AS NOME FROM %s WHERE %s = %s ORDER BY %s',
|
||
[TableUsers.FieldUserID,
|
||
TableUsers.FieldUserName,
|
||
TableUsers.TableName,
|
||
TableUsers.FieldTypeRec,
|
||
QuotedStr('U'),
|
||
TableUsers.FieldUserName]));
|
||
ComboUsuario.Items.Append(TUserControl(Owner).UserSettings.Log.OptionUserAll); //BGM, modified by fduenas
|
||
ListIdUser.Append('0');
|
||
while not DSCmd.EOF do
|
||
begin
|
||
ComboUsuario.Items.Append(DSCmd.FieldByName('Nome').AsString);
|
||
ListIdUser.Append(DSCmd.FieldByName('idUser').AsString);
|
||
DSCmd.Next;
|
||
end;
|
||
DSCmd.Close;
|
||
FreeAndNil(DSCmd);
|
||
|
||
ComboUsuario.ItemIndex := 0;
|
||
|
||
|
||
TabelaLog := TUserControl(Owner).LogControl.TableLog;
|
||
with TUserControl(Owner) do
|
||
begin
|
||
SQLStmt := 'SELECT ' + TableUsers.TableName + '.' + TableUsers.FieldUserName + ' AS NOME, ' + TabelaLog + '.* from ' + TabelaLog +
|
||
' LEFT OUTER JOIN ' + TableUsers.TableName + ' on ' + TabelaLog + '.idUser = ' + TableUsers.TableName + '.' + TableUsers.FieldUserID +
|
||
' WHERE (DATA >=' + QuotedStr(FormatDateTime('yyyyMMddhhmmss', data1.DateTime)) + ') AND (DATA<=' + QuotedStr(FormatDateTime('yyyyMMddhhmmss', data2.DateTime)) + ') ORDER BY DATA DESC';
|
||
DSLog := DataConnector.UCGetSQLDataset(SQLStmt);
|
||
end;
|
||
DataSource1.Dataset := DSLog;
|
||
btexclui.Enabled := not DsLog.IsEmpty; //added by fduenas
|
||
try Position := poScreenCenter; except end;
|
||
end;
|
||
|
||
procedure TViewLog.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
|
||
var
|
||
TempImg: Graphics.TBitmap;
|
||
FData: System.TDateTime;
|
||
TempData: String;
|
||
begin
|
||
if DSLog.IsEmpty then
|
||
Exit;
|
||
|
||
if UpperCase(Column.FieldName) = 'NIVEL' then //Done by Petrus v Breda 28/4/2007
|
||
begin
|
||
If Column.Field.AsInteger >= 0 then // By Vicente Barros Leonel
|
||
{ No meu banco de dados, qdo n<>o tinha log dava pau pq o TempIMG era null}
|
||
Begin
|
||
TempImg := Graphics.TBitmap.Create;
|
||
imagelist1.GetBitmap(Column.Field.AsInteger, TempImg);
|
||
DbGrid1.Canvas.Draw((((Rect.Left + Rect.Right) - TempImg.Width) div 2), rect.Top, Tempimg);
|
||
FreeAndNil(TempImg);
|
||
End
|
||
else
|
||
DbGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Column.Field.AsString);
|
||
end
|
||
else
|
||
if UpperCase(Column.FieldName) = 'DATA' then //Done by Petrus v Breda 28/4/2007
|
||
begin
|
||
TempData := Column.Field.AsString;
|
||
FData := EncodeDate(StrToInt(Copy(Tempdata, 1, 4)), StrToInt(Copy(Tempdata, 5, 2)), StrToInt(Copy(Tempdata, 7, 2))) +
|
||
EncodeTime(StrToInt(Copy(TempData, 9, 2)), StrToInt(Copy(TempData, 11, 2)), StrToInt(Copy(TempData, 13, 2)), 0);
|
||
DbGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, DateTimeToStr(FData));
|
||
end
|
||
else
|
||
DbGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, Column.Field.AsString);
|
||
end;
|
||
|
||
procedure TViewLog.ComboUsuarioChange(Sender: TObject);
|
||
begin
|
||
btFiltro.Enabled := True;
|
||
end;
|
||
|
||
procedure TViewLog.btfechaClick(Sender: TObject);
|
||
begin
|
||
Close;
|
||
end;
|
||
|
||
procedure TViewLog.FormClose(Sender: TObject; var Action: TCloseAction);
|
||
begin
|
||
ListIdUser.Free;
|
||
Action := caFree;
|
||
end;
|
||
|
||
procedure TViewLog.btexcluiClick(Sender: TObject);
|
||
var
|
||
FTabLog, Temp: String;
|
||
begin
|
||
//modified by fduenas
|
||
if MessageBox(Handle, PChar(TUserControl(Owner).UserSettings.Log.PromptDelete),
|
||
PChar(TUserControl(Owner).UserSettings.Log.PromptDelete_WindowCaption), mb_YesNo) <> mrYes then
|
||
exit;
|
||
|
||
btFiltro.Enabled := False;
|
||
FTabLog := TUserControl(Owner).LogControl.TableLog;
|
||
Temp := 'Delete from ' + FTabLog +
|
||
' Where (Data >=' + QuotedStr(FormatDateTime('yyyyMMddhhmmss', data1.DateTime)) + ') ' +
|
||
' and (Data <=' + QuotedStr(FormatDateTime('yyyyMMddhhmmss', data2.DateTime)) + ') ' +
|
||
' and nivel >=' + IntToStr(ComboNivel.ItemIndex);
|
||
|
||
if ComboUsuario.ItemIndex > 0 then
|
||
Temp := Temp + ' and ' + FTabLog + '.idUser = ' + ListIdUser[ComboUsuario.ItemIndex];
|
||
|
||
try
|
||
TUserControl(Owner).DataConnector.UCExecSQL(Temp);
|
||
AplicaFiltro;
|
||
DBGrid1.Repaint;
|
||
except
|
||
end;
|
||
|
||
//modified by fduenas
|
||
try
|
||
TUserControl(Owner).Log(Format(TUserControl(Owner).UserSettings.Log.DeletePerformed, [comboUsuario.Text, DateTimeToStr(Data1.datetime), DateTimeToStr(Data2.datetime), ComboNivel.Text]), 2);
|
||
except;
|
||
end;
|
||
|
||
end;
|
||
|
||
procedure TViewLog.data1Change(Sender: TObject);
|
||
begin
|
||
btFiltro.Enabled := True;
|
||
end;
|
||
|
||
procedure TViewLog.btfiltroClick(Sender: TObject);
|
||
begin
|
||
AplicaFiltro;
|
||
end;
|
||
|
||
procedure TViewLog.AplicaFiltro;
|
||
var
|
||
FTabUser, FTabLog: String;
|
||
Temp: String;
|
||
begin
|
||
btFiltro.Enabled := False;
|
||
DSLog.Close;
|
||
FTabLog := TUserControl(Owner).LogControl.TableLog;
|
||
FTabUser := TUserControl(Owner).TableUsers.TableName;
|
||
|
||
Temp := Format('Select TabUser.' + TUserControl(Owner).TableUsers.FieldUserName + ' as nome, ' + FTabLog + '.* ' +
|
||
'from ' + FTabLog +
|
||
' Left outer join %s TabUser on ' + FTabLog + '.idUser = TabUser.%s ' +
|
||
'Where (data >= ' + QuotedStr(FormatDateTime('yyyyMMddhhmmss', data1.DateTime)) + ') ' +
|
||
'and (Data <= ' + QuotedStr(FormatDateTime('yyyyMMddhhmmss', data2.DateTime)) + ') ' +
|
||
'and nivel >= ' + IntToStr(ComboNivel.ItemIndex),
|
||
[TUserControl(Owner).TableUsers.TableName, TUserControl(Owner).TableUsers.FieldUserID]);
|
||
|
||
if ComboUsuario.ItemIndex > 0 then
|
||
Temp := Temp + ' and ' + FTabLog + '.idUser = ' + ListIdUser[ComboUsuario.ItemIndex];
|
||
|
||
Temp := Temp + ' order by data desc';
|
||
|
||
FreeAndNil(DSLog);
|
||
DataSource1.DataSet := nil;
|
||
DSLog := TUserControl(Owner).DataConnector.UCGetSQLDataset(Temp);
|
||
DataSource1.DataSet := DSLog;
|
||
btexclui.Enabled := not DsLog.IsEmpty;
|
||
end;
|
||
|
||
end.
|