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, dxSkinsCore, dxSkinsDefaultPainters, dxSkinscxPCPainter, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkRoom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinValentine, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue; 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; 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); private procedure DoQuery(); procedure DoFilter(); public fModel, facction: string; fOtherWhere: string; end; var frmSysLogHelp2: TfrmSysLogHelp2; implementation uses U_DataLink; {$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; sql.add('and Model IN(''坯布桌检'',''成品检验'',''检验信息管理'')'); 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; end.