Componentes.Terceros.UserCo.../internal/2.20/2/Source/ViewLog_U.pas
david 630e91ec0c - Recompilado para D2007 UPD3
- 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
2008-04-14 16:53:35 +00:00

273 lines
8.9 KiB
ObjectPascal
Raw Permalink Blame History

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.