D7gmYushang/成品仓库(FinishedClothWarehouse.dll)/U_SysLogHelp2.pas

192 lines
4.5 KiB
ObjectPascal
Raw Normal View History

2025-09-24 13:13:14 +08:00
unit U_SysLogHelp2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, strUtils,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, ADODB, StdCtrls, ExtCtrls, ImgList,
cxLookAndFeels, cxLookAndFeelPainters, cxNavigator;
type
TfrmSysLogHelp2 = class(TForm)
ToolBar1: TToolBar;
TQry: TToolButton;
Tclose: TToolButton;
ADOQueryLog: TADOQuery;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
cxGrid1: TcxGrid;
tv1: TcxGridDBTableView;
tv1OperMan: TcxGridDBColumn;
tv1jopertime: TcxGridDBColumn;
tv1Model: TcxGridDBColumn;
tv1acction: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
tv1Opevent: TcxGridDBColumn;
tv1Result: TcxGridDBColumn;
Panel1: TPanel;
Label2: TLabel;
Label1: TLabel;
begDate: TDateTimePicker;
endDate: TDateTimePicker;
Label3: TLabel;
edt_model: TEdit;
CheckBox1: TCheckBox;
Label4: TLabel;
edt_nr: TEdit;
ThreeImgList: TImageList;
ToolButton1: TToolButton;
procedure TcloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure TQryClick(Sender: TObject);
procedure edt_modelChange(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ToolButton1Click(Sender: TObject);
private
procedure DoQuery();
procedure DoFilter();
public
fModel, facction: string;
fOtherWhere: string;
end;
var
frmSysLogHelp2: TfrmSysLogHelp2;
implementation
uses
U_DataLink, U_Fun;
{$R *.dfm}
procedure TfrmSysLogHelp2.TcloseClick(Sender: TObject);
begin
close;
end;
procedure TfrmSysLogHelp2.FormCreate(Sender: TObject);
begin
cxGrid1.Align := alClient;
begDate.DateTime := date - 31;
endDate.DateTime := date;
with ADOConnection1 do
begin
Connected := false;
ConnectionString := DConString;
Connected := true;
end;
end;
/////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////
procedure TfrmSysLogHelp2.DoQuery();
var
mbegdate, menddate: string;
begin
mbegdate := formatDatetime('yyyy-MM-dd', begDate.Date); //
menddate := formatDatetime('yyyy-MM-dd', endDate.Date + 1);
try
with ADOQueryLog do
begin
close;
sql.clear;
filtered := false;
sql.add('select A.* ');
sql.add('from SY_sysLog A');
if CheckBox1.Checked then
begin
sql.Add('where OperTime>=' + quotedStr(mbegdate));
sql.Add('and OperTime<' + quotedStr(menddate));
end
else
begin
sql.Add('where 1=1');
end;
if trim(fModel) <> '' then
sql.add('and Model=' + quotedStr(fModel));
if trim(facction) <> '' then
sql.add('and acction=' + quotedStr(facction));
if trim(fOtherWhere) <> '' then
begin
sql.add(fOtherWhere);
end;
sql.Add('order by operOr,Opertime');
Open;
end;
finally
end;
end;
///////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////
procedure TfrmSysLogHelp2.DoFilter();
var
filterStr: string;
begin
filterStr := '';
//
if trim(edt_model.text) <> '' then
begin
filterStr := ' and model =' + quotedStr(trim(edt_model.text));
end;
if trim(edt_nr.text) <> '' then
begin
filterStr := ' and OpEvent like ' + quotedStr('%' + trim(edt_nr.text) + '%');
end;
try
ADOQueryLog.DisableControls;
if trim(filterStr) = '' then
begin
ADOQueryLog.Filtered := false;
exit;
end;
filterStr := trim(RightBStr(filterStr, length(filterStr) - 4));
with ADOQueryLog do
begin
filtered := false;
filter := filterStr;
filtered := true;
end;
finally
ADOQueryLog.EnableControls;
end;
end;
procedure TfrmSysLogHelp2.FormShow(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmSysLogHelp2.TQryClick(Sender: TObject);
begin
DoQuery();
end;
procedure TfrmSysLogHelp2.edt_modelChange(Sender: TObject);
begin
DoFilter();
end;
procedure TfrmSysLogHelp2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := cafree;
end;
procedure TfrmSysLogHelp2.ToolButton1Click(Sender: TObject);
begin
if ADOQueryLog.IsEmpty then
exit;
TcxGridToExcel('<27><>Ʒ<EFBFBD><C6B7>Ϣ<EFBFBD>޸<EFBFBD>', cxGrid1);
end;
end.