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('成品信息修改', cxGrid1); end; end.