Componentes.Terceros.UserCo.../internal/2.20/2/Source/UCHist_Form.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

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.