?? reportdlg.cpp
字號:
// ReportDlg.cpp : implementation file
//
#include "stdafx.h"
#include "sjsys.h"
#include "ReportDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CReportDlg dialog
CReportDlg::CReportDlg(CWnd* pParent /*=NULL*/)
: CDialog(CReportDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CReportDlg)
m_Deviceid = _T("");
m_TimeBegan = COleDateTime::GetCurrentTime();
m_TimeEnd = COleDateTime::GetCurrentTime();
listcount=0;
//}}AFX_DATA_INIT
}
void CReportDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CReportDlg)
DDX_Control(pDX, IDB_INQUIRE, m_inquire);
DDX_Control(pDX, IDC_COMBO1, m_DeviceidCombo);
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_CBString(pDX, IDC_COMBO1, m_Deviceid);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_TimeBegan);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_TimeEnd);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReportDlg, CDialog)
//{{AFX_MSG_MAP(CReportDlg)
ON_BN_CLICKED(IDB_INQUIRE, OnInquire)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReportDlg message handlers
BOOL CReportDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_inquire.SetShade(CShadeButtonST::SHS_VSHADE);
RECT rect;
m_list.GetWindowRect(&rect);
width=rect.right-rect.left;
m_list.SetExtendedStyle(WS_CHILD|WS_CLIPSIBLINGS|WS_EX_TOOLWINDOW|WS_BORDER|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_list.InsertColumn(0,"設備",LVCFMT_LEFT,width/6);
m_list.InsertColumn(1,"上網",LVCFMT_LEFT,width/6);
m_list.InsertColumn(2,"下載",LVCFMT_LEFT,width/6);
m_list.InsertColumn(3,"郵件",LVCFMT_LEFT,width/6);
m_list.InsertColumn(4,"游戲",LVCFMT_LEFT,width/6);
m_list.InsertColumn(5,"聊天",LVCFMT_LEFT,width/6);
CString strSQL;
HRESULT hTRes;
_RecordsetPtr m_pRecordset;
strSQL="select distinct Deviceid from Netconnectdetail";
try
{
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
//----------------------------------------------------
hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打開查詢結果記錄集
if(SUCCEEDED(hTRes))
{
while(!(m_pRecordset->adoEOF))
{
CString s;
s=(char*)(_bstr_t)(_variant_t)m_pRecordset->GetCollect("Deviceid");
m_DeviceidCombo.AddString(s);
m_pRecordset->MoveNext();
}
}
}
}
catch(_com_error e)///捕捉異常
{
CString errormessage;
MessageBox("創建記錄集失敗!","錯誤");
}
m_pRecordset->Close();
m_DeviceidCombo.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
CString CReportDlg::TimeToString(COleDateTime ct)
{
CString str;
str.Format("%d-%d-%d ",ct.GetYear(),ct.GetMonth(),ct.GetDay());
return str;
}
void CReportDlg::OnInquire()
{
// TODO: Add your control notification handler code here
UpdateData(true);//將對話框數據更新到變量
HRESULT hTRes;
CString strSQL,sql;
int flag=0;
// m_list.DeleteAllItems();//清空列表框
m_list.SetRedraw(FALSE);
strSQL="select count(Name) as Name from Netconnectdetail";//構造查詢語句
if(m_Deviceid=="")
{
MessageBox("設備不能為空!");
return;
}
if(TimeToString(m_TimeBegan)!="")//開始日期
{
strSQL=strSQL+" where Datetime>='"+TimeToString(m_TimeBegan)+"'";
flag=1;
}
else
{
MessageBox("查詢起始時間不能為空","提示",MB_OK);
return;
}
if(TimeToString(m_TimeEnd)!="")//結束日期
{
strSQL=strSQL+" and Datetime<'"+TimeToString(m_TimeEnd)+"'";
}
if(m_Deviceid!=""&&flag==1)//
{
strSQL=strSQL+" and Deviceid='"+m_Deviceid+"'";
}
else if(m_Deviceid!=""&&flag==0)
{
strSQL=strSQL+" where Deviceid='"+m_Deviceid+"'";
}
_RecordsetPtr m_pRecordset;
/* try
{
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打開查詢結果記錄集
if(SUCCEEDED(hTRes))
{
int i=0;
m_list.DeleteAllItems();//清空列表框
m_list.SetRedraw(FALSE);
//將查詢結果插入列表框控件中
while(!(m_pRecordset->adoEOF))
{
m_list.InsertItem(i,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("ID")));//
m_list.SetItemText(i,1,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Name")));//
m_list.SetItemText(i,2,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Status")));//
m_list.SetItemText(i,3,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Deviceid")));//
m_list.SetItemText(i,4,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Datetime")));//
m_list.SetItemText(i,5,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Descr")));//
// m_list.SetItemText(i,6,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("transportCompany")));//
// m_list.SetItemText(i,7,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("transportType")));//
// m_list.SetItemText(i,8,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("houseInType")));//
// m_list.SetItemText(i,9,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("remark")));//
m_pRecordset->MoveNext();//記錄集指針向后移動
i++;
}
}
}
}
catch(_com_error e)///捕捉異常
{
CString errormessage;
MessageBox("創建記錄集失敗!","錯誤");
}
m_pRecordset->Close();//關閉記錄集*/
try
{
int nItem=0;
sql=strSQL+" and Name='瀏覽網頁'";
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)sql.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打開查詢結果記錄集
if(SUCCEEDED(hTRes))
{
//將查詢結果插入列表框控件中
if(!(m_pRecordset->adoEOF))
{
// sum=m_pRecordset->GetRecordCount();//MoveNext();//記錄集指針向后移動
nItem=m_list.InsertItem(listcount,m_Deviceid);//
m_list.SetItemText(nItem,1,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Name")));
}//
}
}
sql=strSQL+" and Name='下載'";
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)sql.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打開查詢結果記錄集
if(SUCCEEDED(hTRes))
{
//int i=0;
//將查詢結果插入列表框控件中
if(!(m_pRecordset->adoEOF))
{
// sum=m_pRecordset->GetRecordCount();//MoveNext();//記錄集指針向后移動
// m_list.InsertItem(0,m_Deviceid);//
// str.Format("%d",sum);
m_list.SetItemText(nItem,2,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Name")));
}//
}
}
sql=strSQL+" and Name='收發郵件'";
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)sql.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打開查詢結果記錄集
if(SUCCEEDED(hTRes))
{
//int i=0;
//將查詢結果插入列表框控件中
if(!(m_pRecordset->adoEOF))
{
// sum=m_pRecordset->GetRecordCount();//MoveNext();//記錄集指針向后移動
// m_list.InsertItem(0,m_Deviceid);//
// str.Format("%d",sum);
m_list.SetItemText(nItem,3,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Name")));
}//
}
}
sql=strSQL+" and Name='MSN聊天'";
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)sql.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打開查詢結果記錄集
if(SUCCEEDED(hTRes))
{
//int i=0;
//將查詢結果插入列表框控件中
if(!(m_pRecordset->adoEOF))
{
// sum=m_pRecordset->GetRecordCount();//MoveNext();//記錄集指針向后移動
// m_list.InsertItem(0,m_Deviceid);//
// str.Format("%d",sum);
m_list.SetItemText(nItem,4,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Name")));
}//
}
}
sql=strSQL+" and Name='QQ游戲'";
hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
hTRes = m_pRecordset->Open((LPTSTR)sql.GetBuffer(130),
((CSjsysApp*)AfxGetApp())->pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText);//打開查詢結果記錄集
if(SUCCEEDED(hTRes))
{
//int i=0;
//將查詢結果插入列表框控件中
if(!(m_pRecordset->adoEOF))
{
// sum=m_pRecordset->GetRecordCount();//MoveNext();//記錄集指針向后移動
// m_list.InsertItem(0,m_Deviceid);//
// str.Format("%d",sum);
m_list.SetItemText(nItem,5,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("Name")));
}//
}
}
/* */
}
catch(_com_error e)///捕捉異常
{
CString errormessage;
MessageBox("創建記錄集失敗!","錯誤");
}
listcount++;
m_pRecordset->Close();
m_list.SetRedraw(TRUE);
UpdateData(false);//更新對話框數據
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -