📄 loganalyseunit.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "LogAnalyseUnit.h"
#include "DMDataAccess.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BaseLogUnit"
#pragma resource "*.dfm"
TLogAnalyseFrm *LogAnalyseFrm;
//---------------------------------------------------------------------------
__fastcall TLogAnalyseFrm::TLogAnalyseFrm(TComponent* Owner)
: TBaseLogFrm(Owner)
{
MyColorList[0]= clFuchsia;
MyColorList[1]= clMaroon;
MyColorList[2]= clGreen;
MyColorList[3]= clOlive;
MyColorList[4]= clNavy;
MyColorList[5]= clPurple;
MyColorList[6]= clTeal;
MyColorList[7]= clSilver;
MyColorList[8]= clRed;
MyColorList[9]= clLime;
MyColorList[10]= clYellow;
MyColorList[11]= clBlue;
MyColorList[12]= clWhite;
MyColorList[13]= clDkGray;
MyColorList[14]= clSkyBlue;
MyColorList[15] = clAqua;
}
//---------------------------------------------------------------------------
int __fastcall TLogAnalyseFrm::QueryLogData()
{
int lDeviceID;
AnsiString lSQL = "select TypeName,COUNT(*) from EventLog e,LogType t where e.EventType=t.TypeID ";
bool lOK;
lOK = GetSelectedDeviceID(lDeviceID);
if (lOK & lDeviceID != 0)
{
lSQL = lSQL + " and e.DeviceID =" + AnsiString(lDeviceID);
}
TDateTime lBeginTime,lEndTime;
lOK = GetSelectedTime(lBeginTime,lEndTime);
if (lOK)
{
lSQL = lSQL + " and EventTime between :BeginTime and :EndTime";
}
lSQL = lSQL + " group by TypeName ";
Series1->Clear();
TADOQuery* pQuery = dmDatabase->adoAnalyse;
pQuery->Close();
pQuery->SQL->Text = lSQL;
try
{
if (lOK)
{
pQuery->Parameters->ParamByName("BeginTime")->Value = lBeginTime;
pQuery->Parameters->ParamByName("EndTime")->Value = lEndTime;
}
pQuery->Open();
}
catch(...)
{
return DBAccess_E;
}
if (pQuery->IsEmpty())
{
return DBAccess_E;
}
AnsiString lStringValue,lTemp;
int lEventCount;
int lColorIndex = 0;
for(pQuery->First();!pQuery->Eof;pQuery->Next())
{
lStringValue = pQuery->Fields->Fields[0]->AsString.Trim();
lEventCount = pQuery->Fields->Fields[1]->AsInteger;
Series1->Add(lEventCount,lStringValue,MyColorList[lColorIndex++]);
}
sbInfo->Panels->Items[0]->Text = " 共查询到记录总数:" + lEventCount;
return OK;
}
//---------------------------------------------------------------------------
int __fastcall TLogAnalyseFrm::ClearLogData()
{
bool lOK;
int lDeviceID;
int lRV;
lOK = GetSelectedDeviceID(lDeviceID);
if (lOK)
{
AnsiString lMsg;
if (lDeviceID == 0)
{
if (Application->MessageBoxA("您确认要清除电脑里所有的日志吗?","提示信息",MB_YESNO + MB_ICONWARNING)==ID_NO)
return lRV;
lRV = aDBAccess.ClearOperateLog();
lRV = aDBAccess.ClearEventLog();
}
else
{
lMsg = "您确认要删除所有 " + edtCurDeviceName->Text + " 设备的日志吗?";
if (Application->MessageBoxA(lMsg.c_str(),"提示信息",MB_OK + MB_ICONWARNING) == ID_NO)
return lRV;
lRV = aDBAccess.ClearEventLog(lDeviceID);
lRV = aDBAccess.ClearOperateLog(lDeviceID);
}
if (lRV == OK)
{
Application->MessageBoxA("清除电脑日志成功!","提示信息",MB_OK + MB_ICONINFORMATION);
}
else
{
Application->MessageBoxA("清除电脑日志失败!","提示信息",MB_OK + MB_ICONERROR);
}
}
return lRV;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -