⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewlog_u.pas

📁 delphi 控件有需要的可以下载看看,可以用的,希望对你用 帮助
💻 PAS
字号:
unit ViewLog_U;

interface

uses
{$IFDEF Ver130}
{$ELSE}
  Variants,
{$ENDIF}
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, UCBase,
  Buttons, ComCtrls, ImgList, UCConsts, UCXPMenu;

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;
    UCXPStyle: TUCXPStyle;
    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;

{var
  ViewLog: TViewLog;}

implementation

uses UCDataInfo;
{$R *.dfm}

procedure TViewLog.FormCreate(Sender: TObject);
begin
  ComboNivel.Items.Clear;
  ComboNivel.Items.Append(Const_LogC_Low);        //BGM
  ComboNivel.Items.Append(Const_LogC_Normal);     //BGM
  ComboNivel.Items.Append(Const_LogC_High);       //BGM
  ComboNivel.Items.Append(Const_LogC_Critic);     //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 : TBitmap;
begin
  TempImg := TBitmap.Create;
  Imagelist1.GetBitmap(index,TempImg);
  ComboNivel.Canvas.Draw(Rect.Left+2,Rect.Top+1, TempImg);
  ComboNivel.Canvas.TextRect(Rect,Rect.Left+20,Rect.Top +2, ComboNivel.items[index]);
  ComboNivel.Canvas.Draw(Rect.Left+2,Rect.Top+1, TempImg);
  FreeAndNil(TempImg);
end;

procedure TViewLog.FormShow(Sender: TObject);
var
  FTabLog : 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(Const_LogC_Todos);     //BGM
  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;


  FTabLog := TUserControl(Owner).LogControl.TableLog;
  with TUserControl(Owner) do
    DSLog := DataConnector.UCGetSQLDataset('Select TabUser.'+TableUsers.FieldUserName+ ' as nome, ' + FTabLog+'.* from '+FTabLog +
                          ' Left outer join '+ TableUsers.TableName + ' TabUser on '+ FTabLog+'.idUser = TabUser.'+TableUsers.FieldUserID+
                          ' Where (data >=' + QuotedStr(FormatDateTime('yyyyMMddhhmmss',data1.DateTime)) + ') and (Data<='+ QuotedStr(FormatDateTime('yyyyMMddhhmmss',data2.DateTime)) +') order by data desc');
  DataSource1.Dataset := DSLog;
end;

procedure TViewLog.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var
  TempImg : TBitmap;
  FData : TDateTime;
  TempData : String;
begin
  if DSLog.IsEmpty then Exit;
  if LowerCase(Column.FieldName) = 'nivel' then begin
    TempImg := TBitmap.Create;
    imagelist1.GetBitmap( Column.Field.AsInteger , TempImg);
    DbGrid1.Canvas.Draw(rect.Left+5,rect.Top,Tempimg);
    FreeAndNil(TempImg);
  end else if LowerCase(Column.FieldName) = 'data' then 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
  action := caFree;
end;

procedure TViewLog.btexcluiClick(Sender: TObject);
var
  FTabLog, Temp : String;
begin
  if MessageDlg(Const_LogC_ConfirmaExcluir, mtConfirmation, [mbYes,mbNo], 0) <> 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;

  TUserControl(Owner).Log(Format('Efetuada exclus鉶 de log do sistema : Usu醨io = "%s" | Data = %s a %s | N韛el <= %s',[comboUsuario.text, DateTimeToStr(Data1.datetime), DateTimeToStr(Data2.datetime), ComboNivel.text ]),2);

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.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -