304 lines
12 KiB
ObjectPascal
304 lines
12 KiB
ObjectPascal
unit UCHist_Form;
|
|
|
|
interface
|
|
|
|
{$I 'UserControl.inc'}
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, StdCtrls, Buttons, Grids, DBGrids, ExtCtrls, DBCtrls, DB, UcBase;
|
|
|
|
Type TAuxObj = class(TObject)
|
|
Private
|
|
IdUser : Integer;
|
|
end;
|
|
|
|
type
|
|
TFrmHistorico = class(TForm)
|
|
Panel1: TPanel;
|
|
Image1: TImage;
|
|
LabelDescricao: TLabel;
|
|
Panel2: TPanel;
|
|
DataSource1: TDataSource;
|
|
Panel3: TPanel;
|
|
DBMemo1: TDBMemo;
|
|
Splitter1: TSplitter;
|
|
DBGrid1: TDBGrid;
|
|
LabelUser: TLabel;
|
|
ComboUser: TComboBox;
|
|
LabelForm: TLabel;
|
|
ComboForm: TComboBox;
|
|
BitBtn1: TBitBtn;
|
|
BitBtn2: TBitBtn;
|
|
BitBtn3: TBitBtn;
|
|
LabelEvento: TLabel;
|
|
ComboEvento: TComboBox;
|
|
LabelTabela: TLabel;
|
|
ComboTabela: TComboBox;
|
|
StringGrid1: TStringGrid;
|
|
procedure BitBtn1Click(Sender: TObject);
|
|
procedure BitBtn2Click(Sender: TObject);
|
|
procedure BitBtn3Click(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure ComboUserChange(Sender: TObject);
|
|
procedure DataSource1DataChange(Sender: TObject; Field: TField);
|
|
private
|
|
DataSetHist : TDataSet;
|
|
procedure SetComBoValues;
|
|
{ Private declarations }
|
|
public
|
|
fUserControl : TUserControl;
|
|
{ Public declarations }
|
|
end;
|
|
|
|
implementation
|
|
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TFrmHistorico.BitBtn1Click(Sender: TObject);
|
|
Var cSql : String;
|
|
begin
|
|
cSql := Format('Select UH.%s as UserId, Uh.%s as Form , ' +
|
|
'Uh.%s as Evento , Uh.%s as Obs, Uh.%s as FormCaption, Uh.%s as EventDate, Uh.%s as EventTime, uh.%s as TableName, '+
|
|
'US.%s As UserName from %s UH, %s US where UH.%s = US.%s and Uh.%s = %s ',
|
|
[ fUserControl.TableHistory.FieldUserID ,
|
|
fUserControl.TableHistory.FieldForm ,
|
|
fUserControl.TableHistory.FieldEvent ,
|
|
fUserControl.TableHistory.FieldObs ,
|
|
fUserControl.TableHistory.FieldCaptionForm ,
|
|
fUserControl.TableHistory.FieldEventDate ,
|
|
fUserControl.TableHistory.FieldEventTime ,
|
|
fUserControl.TableHistory.FieldTableName ,
|
|
fUserControl.TableUsers.FieldLogin ,
|
|
fUserControl.TableHistory.TableName ,
|
|
fUserControl.TableUsers.TableName ,
|
|
fUserControl.TableHistory.FieldUserId ,
|
|
fUserControl.TableUsers.FieldUserID ,
|
|
fUserControl.TableHistory.FieldApplicationID ,
|
|
QuotedStr(fUserControl.ApplicationID) ]);
|
|
|
|
if ComboUser.ItemIndex <> 0 then
|
|
cSql := cSql + Format(' and US.%s = %s ',[fUserControl.TableUsers.FieldLogin,QuotedStr(ComboUser.Text)]);
|
|
|
|
if ComboForm.ItemIndex <> 0 then
|
|
cSql := cSql + Format(' and UH.%s = %s ',[fUserControl.TableHistory.FieldCaptionForm,QuotedStr(ComboForm.Text)]);
|
|
|
|
if ComboEvento.ItemIndex <> 0 then
|
|
cSql := cSql + Format(' and UH.%s = %s ',[fUserControl.TableHistory.FieldEvent,QuotedStr(ComboEvento.Text)]);
|
|
|
|
if ComboTabela.ItemIndex <> 0 then
|
|
cSql := cSql + Format(' and UH.%s = %s ',[fUserControl.TableHistory.FieldTableName,QuotedStr(ComboTabela.Text)]);
|
|
|
|
cSql := cSql + Format(' order by Uh.%s, Uh.%s',[fUserControl.TableHistory.FieldTableName,fUserControl.TableHistory.FieldEventDate ]) ;
|
|
|
|
DataSetHist.Close;
|
|
DataSetHist := nil;
|
|
DataSetHist := fUserControl.DataConnector.UCGetSQLDataset( cSql );
|
|
DataSetHist.Open;
|
|
DataSource1.DataSet := DataSetHist;
|
|
BitBtn1.Enabled := False;
|
|
end;
|
|
|
|
procedure TFrmHistorico.BitBtn2Click(Sender: TObject);
|
|
var cSql : String;
|
|
begin
|
|
if MessageBox(Handle, pChar( fUserControl.UserSettings.History.Msg_LimpHistorico ) , pChar(fUserControl.UserSettings.History.Msg_MensConfirma),mb_YesNo) = ID_YES then
|
|
begin
|
|
cSql := '';
|
|
|
|
if ComboUser.ItemIndex <> 0 then
|
|
cSql := cSql + Format(' %s = %d ',[fUserControl.TableHistory.FieldUserID , TAuxObj(ComboUser.Items.Objects[ComboUser.ItemIndex]).IdUser ]);
|
|
|
|
if ComboForm.ItemIndex <> 0 then
|
|
cSql := cSql + Format(' and %s = %s ',[fUserControl.TableHistory.FieldCaptionForm,QuotedStr(ComboForm.Text)]);
|
|
|
|
if ComboEvento.ItemIndex <> 0 then
|
|
cSql := cSql + Format(' and %s = %s ',[fUserControl.TableHistory.FieldEvent,QuotedStr(ComboEvento.Text)]);
|
|
|
|
if ComboTabela.ItemIndex <> 0 then
|
|
cSql := cSql + Format(' and %s = %s ',[fUserControl.TableHistory.FieldTableName,QuotedStr(ComboTabela.Text)]);
|
|
|
|
If Length( trim( cSql ) ) <> 0 then
|
|
Begin
|
|
If UpperCase(trim(Copy( cSql , 1 , 4 ))) = 'AND' then
|
|
Delete(cSql,1,4);
|
|
cSql := Format('delete from %s where ',[fUserControl.TableHistory.TableName]) + cSql;
|
|
End
|
|
else
|
|
cSql := Format('delete from %s ',[fUserControl.TableHistory.TableName]) + cSql;
|
|
fUserControl.DataConnector.UCExecSQL( cSql );
|
|
DataSetHist := Nil;
|
|
SetComBoValues;
|
|
|
|
If fUserControl.LogControl.Active then
|
|
fUserControl.Log( Format( fUserControl.UserSettings.History.Msg_LogEmptyHistory,[ fUserControl.CurrentUser.UserName, QuotedStr(FormatDateTime('YYYYMMDDhhmmss', now)) ]),3);
|
|
end;
|
|
end;
|
|
|
|
procedure TFrmHistorico.BitBtn3Click(Sender: TObject);
|
|
begin
|
|
close;
|
|
end;
|
|
|
|
procedure TFrmHistorico.FormClose(Sender: TObject;
|
|
var Action: TCloseAction);
|
|
begin
|
|
Action := caFree;
|
|
end;
|
|
|
|
procedure TFrmHistorico.SetComBoValues;
|
|
Var Aux : TAuxObj;
|
|
Begin
|
|
Aux := TAuxObj.Create;
|
|
Aux.IdUser := -1;
|
|
|
|
ComboUser.Items.Clear;
|
|
ComboForm.Items.Clear;
|
|
ComboEvento.Items.Clear;
|
|
ComboTabela.Items.Clear;
|
|
|
|
ComboUser.Items.AddObject( fUserControl.UserSettings.History.Hist_All , Aux );
|
|
|
|
ComboForm.Items.Add ( fUserControl.UserSettings.History.Hist_All );
|
|
|
|
ComboEvento.Items.Add( fUserControl.UserSettings.History.Hist_All );
|
|
ComboEvento.Items.Add( fUserControl.UserSettings.History.Evento_Insert );
|
|
ComboEvento.Items.Add( fUserControl.UserSettings.History.Evento_Delete );
|
|
ComboEvento.Items.Add( fUserControl.UserSettings.History.Evento_Edit );
|
|
ComboEvento.Items.Add( fUserControl.UserSettings.History.Evento_NewRecord );
|
|
|
|
ComboTabela.Items.Add( fUserControl.UserSettings.History.Hist_All );
|
|
|
|
DataSetHist := fUserControl.DataConnector.UCGetSQLDataset(
|
|
Format('Select distinct %s from %s',[
|
|
fUserControl.TableHistory.FieldTableName,
|
|
fUserControl.TableHistory.TableName]));
|
|
while DataSetHist.Eof = False do
|
|
Begin
|
|
ComboTabela.Items.Add( DataSetHist.Fields[ 0 ].AsString );
|
|
DataSetHist.Next;
|
|
End;
|
|
|
|
DataSetHist := nil;
|
|
DataSetHist := fUserControl.DataConnector.UCGetSQLDataset(
|
|
Format('Select distinct %s from %s',[
|
|
fUserControl.TableHistory.FieldCaptionForm,
|
|
fUserControl.TableHistory.TableName ]));
|
|
while DataSetHist.Eof = False do
|
|
Begin
|
|
ComboForm.Items.Add( DataSetHist.Fields[ 0 ].AsString );
|
|
DataSetHist.Next;
|
|
End;
|
|
|
|
DataSetHist := nil;
|
|
DataSetHist := fUserControl.DataConnector.UCGetSQLDataset(
|
|
Format('Select %s, %s as Usuario from %s where %s = %s order by %s',
|
|
[ fUserControl.TableUsers.FieldUserID,
|
|
fUserControl.TableUsers.FieldLogin ,
|
|
fUserControl.TableUsers.TableName ,
|
|
fUserControl.TableUsers.FieldTypeRec,
|
|
QuotedStr('U') ,
|
|
fUserControl.TableUsers.FieldLogin ]));
|
|
while DataSetHist.Eof = False do
|
|
Begin
|
|
Aux := TAuxObj.Create;
|
|
Aux.IdUser := DataSetHist.Fields[ 0 ].AsInteger;
|
|
ComboUser.Items.AddObject( DataSetHist.Fields[ 1 ].AsString, Aux );
|
|
DataSetHist.Next;
|
|
End;
|
|
ComboUser.ItemIndex := 0;
|
|
ComboForm.ItemIndex := 0;
|
|
ComboEvento.ItemIndex := 0;
|
|
ComboTabela.ItemIndex := 0;
|
|
|
|
|
|
DataSetHist := nil;
|
|
DataSetHist := fUserControl.DataConnector.UCGetSQLDataset(
|
|
Format('Select UH.%s as UserId, Uh.%s as Form , ' +
|
|
'Uh.%s as Evento , Uh.%s as Obs, Uh.%s as FormCaption, Uh.%s as EventDate, Uh.%s as EventTime, uh.%s as TableName, '+
|
|
'US.%s As UserName from %s UH, %s US where UH.%s = US.%s and Uh.%s = %s order by Uh.%s, uh.%s',
|
|
[ fUserControl.TableHistory.FieldUserId ,
|
|
fUserControl.TableHistory.FieldForm ,
|
|
fUserControl.TableHistory.FieldEvent ,
|
|
fUserControl.TableHistory.FieldObs ,
|
|
fUserControl.TableHistory.FieldCaptionForm ,
|
|
fUserControl.TableHistory.FieldEventDate ,
|
|
fUserControl.TableHistory.FieldEventTime ,
|
|
fUserControl.TableHistory.FieldTableName ,
|
|
fUserControl.TableUsers.FieldLogin ,
|
|
fUserControl.TableHistory.TableName ,
|
|
fUserControl.TableUsers.TableName ,
|
|
fUserControl.TableHistory.FieldUserId ,
|
|
fUserControl.TableUsers.FieldUserID ,
|
|
fUserControl.TableHistory.FieldApplicationID ,
|
|
QuotedStr(fUserControl.ApplicationID) ,
|
|
fUserControl.TableHistory.FieldTableName ,
|
|
fUserControl.TableHistory.FieldEventDate ]));
|
|
|
|
DataSource1.DataSet := DataSetHist;
|
|
end;
|
|
|
|
procedure TFrmHistorico.FormShow(Sender: TObject);
|
|
begin
|
|
SetComBoValues;
|
|
|
|
Self.Caption := fUserControl.UserSettings.History.LabelDescricao;
|
|
BitBtn1.Caption := fUserControl.UserSettings.History.Hist_BtnFiltro;
|
|
BitBtn2.Caption := fUserControl.UserSettings.History.Hist_BtnExcluir;
|
|
BitBtn3.Caption := fUserControl.UserSettings.History.Hist_BtnFechar;
|
|
|
|
LabelDescricao.Caption := fUserControl.UserSettings.History.LabelDescricao;
|
|
LabelUser.Caption := fUserControl.UserSettings.History.LabelUser;
|
|
LabelForm.Caption := fUserControl.UserSettings.History.LabelForm;
|
|
LabelEvento.Caption := fUserControl.UserSettings.History.LabelEvento;
|
|
LabelTabela.Caption := fUserControl.UserSettings.History.LabelTabela;
|
|
|
|
DBGrid1.Columns[ 0 ].Title.Caption := fUserControl.UserSettings.History.LabelUser;
|
|
DBGrid1.Columns[ 1 ].Title.Caption := fUserControl.UserSettings.History.LabelForm;
|
|
DBGrid1.Columns[ 2 ].Title.Caption := fUserControl.UserSettings.History.LabelEvento;
|
|
DBGrid1.Columns[ 3 ].Title.Caption := fUserControl.UserSettings.History.LabelDataEvento;
|
|
DBGrid1.Columns[ 4 ].Title.Caption := fUserControl.UserSettings.History.LabelHoraEvento;
|
|
DBGrid1.Columns[ 5 ].Title.Caption := fUserControl.UserSettings.History.LabelTabela;
|
|
|
|
StringGrid1.Cells[0,0] := 'Campo';
|
|
StringGrid1.Cells[1,0] := 'Original';
|
|
StringGrid1.Cells[2,0] := 'Modificado para';
|
|
end;
|
|
|
|
procedure TFrmHistorico.ComboUserChange(Sender: TObject);
|
|
begin
|
|
BitBtn1.Enabled := True;
|
|
end;
|
|
|
|
procedure TFrmHistorico.DataSource1DataChange(Sender: TObject;
|
|
Field: TField);
|
|
Var List : TStringList; Aux : Integer; S : String;
|
|
begin
|
|
DBMemo1.Visible := DataSource1.DataSet.FieldValues['Evento'] <> fUserControl.UserSettings.History.Evento_Edit;
|
|
StringGrid1.Visible := DataSource1.DataSet.FieldValues['Evento'] = fUserControl.UserSettings.History.Evento_Edit;
|
|
If StringGrid1.Visible Then
|
|
Begin
|
|
try
|
|
List := TStringList.Create;
|
|
List.Text := DataSource1.DataSet.FieldValues['Obs'];
|
|
StringGrid1.RowCount := List.Count + 1;
|
|
For Aux := 0 to List.Count - 1 do
|
|
Begin
|
|
S := List[ Aux ];
|
|
StringGrid1.Cells[ 0 , Aux + 1 ] := Copy(S,1,Pos('||',S)-1 );
|
|
Delete(S,1,Pos('||',s)+1);
|
|
StringGrid1.Cells[ 1 , Aux + 1 ] := Copy(S,1,Pos('||',S)-1 );
|
|
Delete(S,1,Pos('||',s)+1);
|
|
StringGrid1.Cells[ 2 , Aux + 1 ] := S;
|
|
End;
|
|
|
|
finally
|
|
FreeAndNil( List );
|
|
end;
|
|
End;
|
|
end;
|
|
|
|
end.
|