?? dlgbkm.cpp
字號:
// DlgBkM.cpp : implementation file
//
#include "stdafx.h"
#include "videocapture.h"
#include "DlgBkM.h"
#include "VideocaptureView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgBkM dialog
#define MAXRECORD 1000
CDlgBkM::CDlgBkM(CWnd* pParent /*=NULL*/)
: CDialog(CDlgBkM::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgBkM)
m_strHPBH = _T("");
m_strHPZL = _T("");
m_strHPYS = _T("");
m_strBKDW = _T("");
m_tmBKSJ = COleDateTime::GetCurrentTime();
m_strBKYY = _T("");
//}}AFX_DATA_INIT
}
void CDlgBkM::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgBkM)
DDX_Control(pDX, IDC_LIST1, m_list);
DDX_Control(pDX, IDC_COMBO_BKYY, m_ctlBKYY);
DDX_Control(pDX, IDC_DP_BKSJ, m_ctlBKSJ);
DDX_Control(pDX, IDC_COMBO_HPYS, m_ctlHPYS);
DDX_Control(pDX, IDC_COMBO_BKDW, m_ctlBKDW);
DDX_Control(pDX, IDC_COMBO_HPZL, m_ctlHPZL);
DDX_Text(pDX, IDC_EDIT_HPBH, m_strHPBH);
DDV_MaxChars(pDX, m_strHPBH, 15);
DDX_CBString(pDX, IDC_COMBO_HPZL, m_strHPZL);
DDX_CBString(pDX, IDC_COMBO_HPYS, m_strHPYS);
DDX_CBString(pDX, IDC_COMBO_BKDW, m_strBKDW);
DDX_DateTimeCtrl(pDX, IDC_DP_BKSJ, m_tmBKSJ);
DDX_CBString(pDX, IDC_COMBO_BKYY, m_strBKYY);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgBkM, CDialog)
//{{AFX_MSG_MAP(CDlgBkM)
ON_BN_CLICKED(IDC_EDIT_BK, OnEditBk)
ON_BN_CLICKED(IDC_DEL_BK, OnDelBk)
ON_BN_CLICKED(IDC_ADD_BK, OnAddBk)
ON_BN_CLICKED(IDC_DEAL_BK, OnDealBk)
ON_NOTIFY(HDN_ITEMCLICK, IDC_LIST1, OnItemclickList1)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, OnItemchangedList1)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_BN_CLICKED(IDC_BTN_OPEN, OnBtnOpen)
ON_BN_CLICKED(IDC_Btn_Next, OnBtnNext)
ON_BN_CLICKED(IDC_BUTTON_FIRST, OnButtonFirst)
ON_BN_CLICKED(IDC_BUTTON_LAST, OnButtonLast)
ON_BN_CLICKED(IDC_BUTTON_OK, OnButtonOk)
ON_BN_CLICKED(IDC_BUTTON_P1, OnButtonP1)
ON_BN_CLICKED(IDC_BUTTON_N1, OnButtonN1)
ON_BN_CLICKED(IDC_BUTTON_F1, OnButtonF1)
ON_BN_CLICKED(IDC_BUTTON_L1, OnButtonL1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgBkM message handlers
BOOL CDlgBkM::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(!pView)
return FALSE;
try{
pRst=new CADODataset();
pRst->SetConnection(pView->pConn);
}catch (...) {
AfxMessageBox("數據庫訪問不成功,請嘗試關閉本窗口,再打開。");
EndDialog(0);
}
m_ctlHPYS.SetCurSel(0);
((CDateTimeCtrl *)GetDlgItem(IDC_DP_BKSJ))->SetFormat("yyyy-MM-dd HH:mm:ss");
CString str;
CString deStr="";
try {
str="select * from HPZL order by HPZL desc";
pRst->Open(str,CADODataset::openQuery);
while(!pRst->IsEof())
{
pRst->GetFieldValue("HPZL",str);
pRst->GetFieldValue("ZLMS",tmp);
m_ctlHPZL.AddString(str+"-"+tmp);
if (deStr=="") {
deStr=str+"-"+tmp;
}
pRst->MoveNext();
}
if (m_ctlHPZL.GetCount()>0) {
m_ctlHPZL.SetCurSel(0);
}
}
catch (...)
{
WriteLog("布控設置--加載號牌種類出錯");
ShowMessage("加載號牌種類出錯",MB_OK | MB_ICONERROR);
}
if (pRst->IsOpen()) {
pRst->Close();
}
try{
long iIndex;
long iBKYY;
m_ctlBKYY.Clear();
str="select bkid,bkms from bkyy order by bkid asc";
pRst->Open(str,CADODataset::openQuery);
while (!pRst->IsEof()) {
pRst->GetFieldValue("bkid",iBKYY);
pRst->GetFieldValue("bkms",str);
iIndex=m_ctlBKYY.AddString(str);
m_ctlBKYY.SetItemData(iIndex,iBKYY);
pRst->MoveNext();
}
if (m_ctlBKYY.GetCount()>0) {
m_ctlBKYY.SetCurSel(0);
}
pRst->Close();
}catch (...) {
}
if (pRst->IsOpen()) {
pRst->Close();
}
try
{
deStr="";
CStdioFile* pTxtFile = new CStdioFile();
if(!pTxtFile->Open(".\\Police.dat",CFile::modeRead | CFile::typeText))
{
ShowMessage("Police.dat文件不存在\n系統將新建該文件!",MB_OK|MB_ICONEXCLAMATION);
pTxtFile->Open(".\\Police.dat",CFile::modeWrite | CFile::modeCreate);
pTxtFile->WriteString("無錫交巡警支隊");
m_ctlBKDW.InsertString(0,"無錫交巡警支隊");
m_ctlBKDW.SelectString(0,"無錫交巡警支隊");
}
while(pTxtFile->GetPosition()<pTxtFile->GetLength())
{
pTxtFile->ReadString(str);
m_ctlBKDW.InsertString(0,str);
if (deStr=="") {
deStr=str;
}
}
pTxtFile->Close();
delete pTxtFile;
m_ctlBKDW.SetCurSel(0);
}
catch (...) {
WriteLog("讀寫文件Police.dat失敗");
ShowMessage("讀寫文件Police.dat失敗",MB_OK|MB_ICONERROR);
return FALSE;
}
if (pRst->IsOpen()) {
pRst->Close();
}
CString sValue1;
sValue1.Format("前%d條",MAXRECORD);
GetDlgItem(IDC_BTN_OPEN)->SetWindowText(sValue1);
sValue1.Format("后%d條",MAXRECORD);
GetDlgItem(IDC_Btn_Next)->SetWindowText(sValue1);
m_list.SetExtendedStyle( LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT );
m_list.InsertColumn(0,"嫌疑號牌",LVCFMT_LEFT,100);
m_list.InsertColumn(1,"號牌顏色",LVCFMT_LEFT,60);
m_list.InsertColumn(2,"號牌種類",LVCFMT_LEFT,60);
m_list.InsertColumn(3,"布控原因",LVCFMT_LEFT,200);
m_list.InsertColumn(4,"布控時間",LVCFMT_LEFT,140);
m_list.InsertColumn(5,"布控單位",LVCFMT_LEFT,100);
m_list.InsertColumn(6,"處理標志",LVCFMT_LEFT,60);
m_list.InsertColumn(7,"處理時間",LVCFMT_LEFT,0);
CString sSQL=CString("SELECT hphm, hpys, hpzl.hpzl+'-'+hpzl.zlms AS hpzl, bkyy, bksj, bkdw, deal, clrq ") +
CString("FROM wzbk LEFT JOIN hpzl ON wzbk.hpzl=hpzl.hpzl ") +
CString("ORDER BY BKSJ DESC");
DWORD i=0;
try{
pRst->Open(sSQL,CADODataset::openQuery);
while (!pRst->IsEof()) {
i++;
if (i>=MAXRECORD) {
break;
}
pRst->GetFieldValue("HPHM",sSQL);
n_item=m_list.InsertItem(0,sSQL);
int HPYS=0;
pRst->GetFieldValue("HPYS",HPYS);
if (HPYS==0) {
sSQL="藍色";
}else if (HPYS==1) {
sSQL="黃色";
}else if(HPYS==2){
sSQL="白色";
}else{
sSQL="黑色";
}
m_list.SetItemText(n_item,1,sSQL);
pRst->GetFieldValue("HPZL",sSQL);
m_list.SetItemText(n_item, 2, sSQL);
pRst->GetFieldValue("BKYY",sSQL);
m_list.SetItemText(n_item, 3, sSQL);
pRst->GetFieldValue("BKSJ",sSQL);
m_list.SetItemText(n_item, 4, sSQL);
pRst->GetFieldValue("BKDW",sSQL);
m_list.SetItemText(n_item, 5, sSQL);
pRst->GetFieldValue("DEAL",sSQL);
if (sSQL=="0") {
m_list.SetItemText(n_item,6,"未處理");
}else
{
m_list.SetItemText(n_item,6,"已處理");
}
pRst->GetFieldValue("CLRQ",sSQL);
m_list.SetItemText(n_item,7,sSQL);
pRst->MoveNext();
}
n_item=m_list.GetItemCount()-1;
if (m_list.GetItemCount()>0) {
SetAddWindow(0);
m_list.EnsureVisible(m_list.GetItemCount()-1,true);
m_list.SetHotItem(m_list.GetItemCount()-1);
}
}catch (...) {
AfxMessageBox("黑名單控制模塊打開失敗,請嘗試關閉本窗口,再打開。");
}
/*
m_nCurrXH=-1;
//從黑名單列表中導入黑名單
try{
BK strBK;
CString bkYY;
BOOL bNext=false;
DWORD nSum=pView->bkArray.GetSize();
for(int i=0;i<500;i++){
if (i<nSum) {
strBK=pView->bkArray.GetAt(i);
int p=m_list.InsertItem(i,strBK.sHPHM);
bkYY=pView->Array_FindInBKYYList(strBK.nBKYY);
m_list.SetItemText(p,3,bkYY);
bNext=true;
}else
{
m_nCurrXH=0;
bNext=false;
break;
}
}
if (bNext) {
m_nCurrXH=0;
GetDlgItem(IDC_Btn_Next)->EnableWindow(true);
}else
{
GetDlgItem(IDC_Btn_Next)->EnableWindow(false);
}
GetDlgItem(IDC_BTN_OPEN)->EnableWindow(false);
}catch (...) {
AfxMessageBox("黑名單控制模塊打開失敗,請嘗試關閉本窗口,再打開。");
}*/
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgBkM::OnCancel()
{
if (pRst->IsOpen()) {
pRst->Close();
delete pRst;
}
CDialog::OnCancel();
}
//修改布控
void CDlgBkM::OnEditBk()
{
SetAddWindow(2);
}
void CDlgBkM::OnDelBk()
{
// TODO: Add your control notification handler code here
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(!pView)
return ;
if (m_list.GetItemCount()<1) {
AfxMessageBox("沒有數據可以刪除。");
return;
}
if(n_item>=m_list.GetItemCount())
return;
try
{
CString sHPHM;
sHPHM=m_list.GetItemText(n_item,0);
CString str;
str.Format("delete from WZBK where HPHM='%s'",sHPHM);
pView->pConn->Execute(str);
m_nPos=m_nCurrXH+n_item;
if (m_nPos<0) {
m_nPos=n_item;
}
pView->Array_DelFromList(sHPHM);
m_list.DeleteItem(n_item);
}
catch (...) {
WriteLog("設置布控管理--刪除數據出錯");
ShowMessage("設置布控管理--刪除數據出錯",MB_OK | MB_ICONERROR);
}
}
void CDlgBkM::OnAddBk()
{
SetAddWindow();
}
void CDlgBkM::OnDealBk()
{
// TODO: Add your control notification handler code here
try{
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(!pView)
return;
CString str;
CString str1=m_list.GetItemText(n_item,0);
if (str1.GetLength()<1)
return;
str.Format("update WZBK SET DEAL='1' where HPHM='%s'",str1);
pView->pConn->Execute(str);
m_list.SetItemText(n_item,6,"已處理");
UpdateData(FALSE);
}
catch (...) {
WriteLog("布控管理--修改處理標志失敗");
ShowMessage("修改處理標志失敗!",MB_OK | MB_ICONERROR);
}
}
void CDlgBkM::OnItemclickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
// TODO: Add your control notification handler code here
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
CListCtrl* pLC=(CListCtrl*)GetDlgItem(IDC_LIST_DATA);
n_item=pNMListView->iItem;
*pResult = 0;
}
void CDlgBkM::OnItemchangedList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
n_item=pNMListView->iItem;
*pResult = 0;
}
void CDlgBkM::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
n_item=pNMListView->iItem;
if (m_list.GetItemCount()>0) {
SetAddWindow(0);
}
*pResult = 0;
}
void CDlgBkM::OnBtnOpen()
{
CVideoCaptureView* pView=CVideoCaptureView::GetView();
if(!pView)
return;
if (!pRst->IsOpen() || pRst->GetRecordCount()<1) {
return;
}
if (pRst->IsBof()) {
AfxMessageBox("沒有紀錄向前翻!");
pRst->MoveFirst();
return;
}
if (pRst->IsEof()) {
pRst->MoveLast();
}
m_list.DeleteAllItems();
CString sSQL ;
DWORD i=0;
try{
while (!pRst->IsEof() && !pRst->IsBof()) {
pRst->MovePrevious();
i++;
if (i>=MAXRECORD) {
break;
}
pRst->GetFieldValue("HPHM",sSQL);
n_item=m_list.InsertItem(0,sSQL);
int HPYS=0;
pRst->GetFieldValue("HPYS",HPYS);
if (HPYS==0) {
sSQL="藍色";
}else if (HPYS==1) {
sSQL="黃色";
}else if(HPYS==2){
sSQL="白色";
}else{
sSQL="黑色";
}
m_list.SetItemText(n_item,1,sSQL);
pRst->GetFieldValue("HPZL",sSQL);
m_list.SetItemText(n_item, 2, sSQL);
pRst->GetFieldValue("BKYY",sSQL);
m_list.SetItemText(n_item, 3, sSQL);
pRst->GetFieldValue("BKSJ",sSQL);
m_list.SetItemText(n_item, 4, sSQL);
pRst->GetFieldValue("BKDW",sSQL);
m_list.SetItemText(n_item, 5, sSQL);
pRst->GetFieldValue("DEAL",sSQL);
if (sSQL=="0") {
m_list.SetItemText(n_item,6,"未處理");
}else
{
m_list.SetItemText(n_item,6,"已處理");
}
pRst->GetFieldValue("CLRQ",sSQL);
m_list.SetItemText(n_item,7,sSQL);
}
n_item=m_list.GetItemCount()-1;
if (m_list.GetItemCount()>0) {
SetAddWindow(0);
m_list.EnsureVisible(m_list.GetItemCount()-1,true);
m_list.SetHotItem(m_list.GetItemCount()-1);
}
}catch (...) {
// AfxMessageBox("黑名單控制模塊打開失敗,請嘗試關閉本窗口,再打開。");
}
/*
//從黑名單列表中導入黑名單
BK strBK;
CString bkYY;
for(int j=0;j<m_list.GetItemCount();j++){
m_list.DeleteItem(j);
}
long iDif=0;
m_nCurrXH-=500;
iDif=m_nCurrXH;
if (m_nCurrXH<0) {
m_nCurrXH=0;
}else
iDif=0;
for(int i=m_nCurrXH,int k=0;i<m_nCurrXH+500-iDif;i++,k++){
try{
strBK=pView->bkArray.GetAt(i);
int p=m_list.InsertItem(k,strBK.sHPHM);
bkYY=pView->Array_FindInBKYYList(strBK.nBKYY);
m_list.SetItemText(p,3,bkYY);
}catch (...) {
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -