|
@@ -23,10 +23,18 @@ CPageStatistics::~CPageStatistics()
|
|
|
void CPageStatistics::DoDataExchange(CDataExchange* pDX)
|
|
|
{
|
|
|
CDialogEx::DoDataExchange(pDX);
|
|
|
+ DDX_Control(pDX, IDC_LIST1, m_ctrlList);
|
|
|
+ DDX_Control(pDX, IDC_DATETIMEPICKER1, m_dtStartTime);
|
|
|
+ DDX_Control(pDX, IDC_DATETIMEPICKER2, m_dtEndTime);
|
|
|
+ DDX_Control(pDX, COMBO_ORDER, m_ctrlCombobox);
|
|
|
}
|
|
|
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CPageStatistics, CDialogEx)
|
|
|
+ ON_WM_CTLCOLOR()
|
|
|
+ ON_BN_CLICKED(CHECK_BATCH_NUM, &CPageStatistics::OnBnClickedBatchNum)
|
|
|
+ ON_BN_CLICKED(BTN_QUERY, &CPageStatistics::OnBnClickedQuery)
|
|
|
+ ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST1, &CPageStatistics::OnNMCustomdrawList1)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
@@ -37,7 +45,172 @@ BOOL CPageStatistics::OnInitDialog()
|
|
|
CDialogEx::OnInitDialog();
|
|
|
|
|
|
// TODO: 在此添加额外的初始化
|
|
|
- SetBackgroundColor(RGB(255,255,255));
|
|
|
+ SetBackgroundColor(RGB(200,200,200));
|
|
|
+
|
|
|
+ m_dtStartTime.SetFormat(_T("MM/dd HH:mm"));
|
|
|
+ m_dtEndTime.SetFormat(_T("MM/dd HH:mm"));
|
|
|
+ // 设置开始时间为前一天;
|
|
|
+ CTime tm1 = CTime::GetCurrentTime();
|
|
|
+ CTimeSpan tsp = CTimeSpan(3,0,0,0);
|
|
|
+ tm1 -= tsp;
|
|
|
+ m_dtStartTime.SetTime(&tm1);
|
|
|
+
|
|
|
+ m_ctrlList.SetListFont(_T("新宋体"), 11, TRUE);
|
|
|
+ m_ctrlList.SetHeadings(
|
|
|
+ _T("创建时间,120"),
|
|
|
+ _T("批次号,120"),
|
|
|
+ _T("模式,80"),
|
|
|
+ _T("SN数量,90"),
|
|
|
+ _T("成功数量,90"),
|
|
|
+ _T("成功率,90"),
|
|
|
+ _T("平均耗时,90"),
|
|
|
+ _T("总耗时,90"),
|
|
|
+ _T("标准▲E值,90"),
|
|
|
+ NULL
|
|
|
+ );
|
|
|
+
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
|
// 异常: OCX 属性页应返回 FALSE
|
|
|
}
|
|
|
+
|
|
|
+HBRUSH CPageStatistics::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
|
|
+{
|
|
|
+ HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
|
+
|
|
|
+ // TODO: 在此更改 DC 的任何属性
|
|
|
+ switch ( pWnd->GetDlgCtrlID() )
|
|
|
+ {
|
|
|
+ case CHECK_TEST_TIME:
|
|
|
+ case CHECK_TEST_RESULT:
|
|
|
+ case CHECK_SN:
|
|
|
+ case CHECK_BATCH_NUM:
|
|
|
+ {
|
|
|
+#if 1 // 透明控件处理;
|
|
|
+ pDC->SetBkMode(TRANSPARENT);
|
|
|
+
|
|
|
+ CRect rc;
|
|
|
+ pWnd->GetWindowRect(&rc);
|
|
|
+ ScreenToClient(&rc);
|
|
|
+
|
|
|
+ CDC* dc = GetDC();
|
|
|
+ pDC->BitBlt(0,0,rc.Width(),rc.Height(),dc,rc.left,rc.top,SRCCOPY); //把父窗口背景图片先画到按钮上
|
|
|
+
|
|
|
+ ReleaseDC(dc);
|
|
|
+ hbr = (HBRUSH) ::GetStockObject(NULL_BRUSH);
|
|
|
+#endif
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ // TODO: 如果默认的不是所需画笔,则返回另一个画笔
|
|
|
+ return hbr;
|
|
|
+}
|
|
|
+
|
|
|
+void CPageStatistics::OnBnClickedBatchNum()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+ BOOL bCheck = ((CButton*)GetDlgItem(CHECK_BATCH_NUM))->GetCheck();
|
|
|
+ if ( bCheck )
|
|
|
+ {
|
|
|
+ // 更新下拉框;
|
|
|
+ std::vector<TB_ORDER> vtOrders;
|
|
|
+ GLOBAL::g_db.QueryOrders(vtOrders);
|
|
|
+ m_ctrlCombobox.ResetContent();
|
|
|
+ for (std::vector<TB_ORDER>::iterator it = vtOrders.begin(); it != vtOrders.end(); it++ )
|
|
|
+ {
|
|
|
+ m_ctrlCombobox.AddString(CharEncoding::ASCII2UNICODE(it->strOrder.c_str()));
|
|
|
+ }
|
|
|
+
|
|
|
+ m_ctrlCombobox.SetCurSel(-1);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CPageStatistics::OnBnClickedQuery()
|
|
|
+{
|
|
|
+ // TODO: 在此添加控件通知处理程序代码
|
|
|
+ BOOL bCheckDate = ((CButton*)GetDlgItem(CHECK_TEST_TIME))->GetCheck();
|
|
|
+ BOOL bCheckBatchNum = ((CButton*)GetDlgItem(CHECK_BATCH_NUM))->GetCheck();
|
|
|
+
|
|
|
+ if ( !(bCheckDate || bCheckBatchNum ) )
|
|
|
+ {
|
|
|
+ MessageBox(_T("必须勾选某一项才能查询数据!"), _T("提示"), MB_ICONWARNING);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ std::string strWhere;
|
|
|
+ if ( bCheckDate )
|
|
|
+ {
|
|
|
+ CTime tStart;
|
|
|
+ CTime tEnd;
|
|
|
+ m_dtStartTime.GetTime(tStart);
|
|
|
+ m_dtEndTime.GetTime(tEnd);
|
|
|
+
|
|
|
+ strWhere.append("CreateTime >= '");
|
|
|
+ strWhere.append(CharEncoding::UNICODE2ASCII((LPWCH)tStart.Format(_T("%Y-%m-%d %H:%M:%S")).GetString()));
|
|
|
+ strWhere.append("' and CreateTime <='");
|
|
|
+ strWhere.append(CharEncoding::UNICODE2ASCII((LPWCH)tEnd.Format(_T("%Y-%m-%d %H:%M:%S")).GetString()));
|
|
|
+ strWhere.append("'");
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( bCheckBatchNum )
|
|
|
+ {
|
|
|
+ CString strOrder;
|
|
|
+ GetDlgItemText(EDIT_BATCH_NUM, strOrder);
|
|
|
+ if ( strWhere.size() )
|
|
|
+ strWhere.append(" and DebugSN.OrderID='");
|
|
|
+ else
|
|
|
+ strWhere.append(" DebugSN.OrderID='");
|
|
|
+ strWhere.append(CharEncoding::UNICODE2ASCII((LPWCH)strOrder.GetString()));
|
|
|
+ strWhere.append("'");
|
|
|
+ }
|
|
|
+
|
|
|
+ std::vector<TB_STATIS> vtStatis;
|
|
|
+ if ( GLOBAL::g_db.StatisticalQuery(vtStatis, strWhere) != -1 )
|
|
|
+ {
|
|
|
+ UpdateList(vtStatis);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CPageStatistics::UpdateList(std::vector<TB_STATIS> &vtStatis)
|
|
|
+{
|
|
|
+ int nIndex = 0;
|
|
|
+ CString strValue;
|
|
|
+ m_ctrlList.RemoveAll();
|
|
|
+ m_ctrlList.m_AryList.SetSize(vtStatis.size(), 1);
|
|
|
+ for (std::vector<TB_STATIS>::iterator it = vtStatis.begin(); it != vtStatis.end(); it++)
|
|
|
+ {
|
|
|
+ CStringArray arryString;
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strCreateTime.c_str()));
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strOrderID.c_str()));
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strMode.c_str()));
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strTotalCount.c_str()));
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strPassCount.c_str()));
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strPassRate.c_str()));
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strAvgElapsed.c_str()));
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strTotalElapsed.c_str()));
|
|
|
+ arryString.Add(CharEncoding::ASCII2UNICODE(it->strDeltaEValue.c_str()));
|
|
|
+
|
|
|
+ //arryString.Add(strValue);
|
|
|
+ m_ctrlList.m_AryList.ElementAt(nIndex++).Copy(arryString);
|
|
|
+ }
|
|
|
+ //m_ctrlList.m_AryList.SetSize(vtRGB.size(), 1);
|
|
|
+ m_ctrlList.SetItemCountEx(vtStatis.size());
|
|
|
+}
|
|
|
+void CPageStatistics::OnNMCustomdrawList1(NMHDR *pNMHDR, LRESULT *pResult)
|
|
|
+{
|
|
|
+ NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
|
|
|
+ *pResult = 0;
|
|
|
+ if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
|
|
|
+ {
|
|
|
+ *pResult = CDRF_NOTIFYITEMDRAW;
|
|
|
+ }
|
|
|
+ else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
|
|
|
+ {
|
|
|
+ if ( pLVCD->nmcd.dwItemSpec % 2 )
|
|
|
+ pLVCD->clrTextBk = RGB(204,204,204);
|
|
|
+ else
|
|
|
+ pLVCD->clrTextBk = RGB(190,190,190);
|
|
|
+ *pResult = CDRF_DODEFAULT;
|
|
|
+ }
|
|
|
+}
|