📄 proppage1.cpp
字号:
// PropPage1.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "PropPage1.h"
#include "Database.h"
#include "前置机.h"
IMPLEMENT_DYNCREATE(CPropPage1, CPropertyPage)
CPropPage1::CPropPage1() : CPropertyPage(CPropPage1::IDD){
}
CPropPage1::~CPropPage1(){
}
void CPropPage1::DoDataExchange(CDataExchange* pDX){
CPropertyPage::DoDataExchange(pDX);
DDX_Control(pDX, IDLV_OVERVIEW, m_lcOverview);
}
BEGIN_MESSAGE_MAP(CPropPage1, CPropertyPage)
ON_NOTIFY(LVN_ITEMCHANGED, IDLV_OVERVIEW, OnItemchangedOverview)
ON_BN_CLICKED(IDC_BUTTON1, OnSendComm)
ON_BN_CLICKED(IDC_BUTTON2, OnOpenStation)
ON_BN_CLICKED(IDC_BUTTON3, OnOpenData)
ON_BN_CLICKED(IDC_BUTTON4, OnOpenSend)
ON_BN_CLICKED(IDC_BUTTON5, OnOpenPassWord)
ON_WM_TIMER()
END_MESSAGE_MAP()
BOOL CPropPage1::OnInitDialog() {
CPropertyPage::OnInitDialog();
Socket_Total = 300; //套接口连接计数。五分钟之内不进行套接口连接。
m_uTimerID = (UINT)SetTimer(0x451,1000,NULL);//设定定时器时钟间隔.
//m_uTimerID = SetTimer(1, 1000, 0);
OnInitialComm();//串行口初始化.
CenterWindow(GetDesktopWindow()); //窗口居中.
return TRUE;
}
void CPropPage1::OnTimer(UINT nIDEvent){
CDialog::OnTimer(nIDEvent);
MSG msg;
while(::PeekMessage(&msg, m_hWnd, WM_TIMER, WM_TIMER, PM_REMOVE));
OnRecieveComm();//接收数据.
OnSocketSend();//套接口发送数据按钮程序.
}
void CPropPage1::OnDestroy(){
CDialog::OnDestroy();
KillTimer(m_uTimerID);
CloseHandle(m_hIDComDev);//关闭串行口.
//free(g_pszSQLQueryString);
}
BOOL CPropPage1::OnSetActive() {
g_DB.SeekStationDB(CEDB_SEEK_BEGINNING);
DWORD dwStyle = ListView_GetExtendedListViewStyle(m_lcOverview); //增加栅格线。
dwStyle = LVS_EX_FULLROWSELECT; //增加栅格线。
ListView_SetExtendedListViewStyle (m_lcOverview,dwStyle); //增加栅格线。
for (int Column=m_lcOverview.GetHeaderCtrl()->GetItemCount(); Column >= 0; Column--) m_lcOverview.DeleteColumn(Column);//删除所有的表头。
m_lcOverview.InsertColumn(0, TEXT("序号"), LVCFMT_LEFT, 40);
m_lcOverview.InsertColumn(1, TEXT("站号"), LVCFMT_LEFT, 40);
m_lcOverview.InsertColumn(2, TEXT("测站名称"), LVCFMT_LEFT, 100);
m_lcOverview.InsertColumn(3, TEXT("雨量精度"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(4, TEXT("海拔高程"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(5, TEXT("来数时间"), LVCFMT_LEFT, 130);
m_lcOverview.InsertColumn(6, TEXT("累计雨量"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(7, TEXT("雨量站"), LVCFMT_LEFT, 50);
m_lcOverview.InsertColumn(8, TEXT("水位站"), LVCFMT_LEFT, 50);
m_lcOverview.InsertColumn(9, TEXT("开度站"), LVCFMT_LEFT, 50);
m_lcOverview.InsertColumn(10, TEXT("雨量阀值"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(11, TEXT("水位阀值"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(12, TEXT("水位采集间隔"), LVCFMT_LEFT, 80);
m_lcOverview.InsertColumn(13, TEXT("数据自报间隔"), LVCFMT_LEFT, 80);
m_lcOverview.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_lcOverview.DeleteAllItems();
int nCount = 0;
int nColumnCount = m_lcOverview.GetHeaderCtrl()->GetItemCount();
CRecordStation record;
bool bResult = g_DB.ReadStationRecord(record);
while(bResult){
m_lcOverview.InsertItem(nCount, record.m_strNumber);
m_lcOverview.SetItemText(nCount,1,record.m_strAddress);
m_lcOverview.SetItemText(nCount,2,record.m_strName);
m_lcOverview.SetItemText(nCount,3,record.m_strRainFenbian);
m_lcOverview.SetItemText(nCount,4,record.m_strWaterHeight);
m_lcOverview.SetItemText(nCount,5,record.m_DateTime);
m_lcOverview.SetItemText(nCount,6,record.m_strRainTotal);
m_lcOverview.SetItemText(nCount,7,record.m_strRainStation);
m_lcOverview.SetItemText(nCount,8,record.m_strWaterStation);
m_lcOverview.SetItemText(nCount,9,record.m_strKaiduStation);
m_lcOverview.SetItemText(nCount,10,record.m_strSetup1);
m_lcOverview.SetItemText(nCount,11,record.m_strSetup2);
m_lcOverview.SetItemText(nCount,12,record.m_strSetup3);
m_lcOverview.SetItemText(nCount,13,record.m_strSetup4);
nCount++;
bResult = g_DB.SeekStationDB(CEDB_SEEK_CURRENT, 1);
if(bResult) bResult = g_DB.ReadStationRecord(record);
}
CCeDBApp *pCeDBApp = (CCeDBApp *)AfxGetApp();
if(m_lcOverview.GetItemCount() < 1) pCeDBApp->m_nItem = -1;
else m_lcOverview.SetItemState(pCeDBApp->m_nItem, LVIS_SELECTED, LVIS_SELECTED);
return CPropertyPage::OnSetActive();
}
BOOL CPropPage1::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) {
return CPropertyPage::OnNotify(wParam, lParam, pResult);
}
void CPropPage1::OnItemchangedOverview(NMHDR* pNMHDR, LRESULT* pResult) {
}
BOOL CPropPage1::OnCommand(WPARAM wParam, LPARAM lParam) {
return CPropertyPage::OnCommand(wParam, lParam);
}
void CPropPage1::OnOpenStation(){//打开设置表按钮程序.
DWORD dwStyle = ListView_GetExtendedListViewStyle(m_lcOverview); //增加栅格线。
dwStyle = LVS_EX_FULLROWSELECT; //增加栅格线。
ListView_SetExtendedListViewStyle (m_lcOverview,dwStyle); //增加栅格线。
for (int Column=m_lcOverview.GetHeaderCtrl()->GetItemCount(); Column >= 0; Column--) m_lcOverview.DeleteColumn(Column);//删除所有的表头。
m_lcOverview.InsertColumn(0, TEXT("序号"), LVCFMT_LEFT, 40);
m_lcOverview.InsertColumn(1, TEXT("站号"), LVCFMT_LEFT, 40);
m_lcOverview.InsertColumn(2, TEXT("测站名称"), LVCFMT_LEFT, 120);
m_lcOverview.InsertColumn(3, TEXT("来数时间"), LVCFMT_LEFT, 130);
m_lcOverview.InsertColumn(4, TEXT("雨量站"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(5, TEXT("水位站"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(6, TEXT("开度站"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(7, TEXT("雨量累计"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(8, TEXT("雨量精度"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(9, TEXT("海拔高程"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(10, TEXT("雨量阀值"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(11, TEXT("水位阀值"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(12, TEXT("水位采集间隔"), LVCFMT_LEFT, 60);
m_lcOverview.InsertColumn(13, TEXT("数据自报间隔"), LVCFMT_LEFT, 60);
int nCount = 0; CRecordStation record;
m_lcOverview.DeleteAllItems();//清除所有的项目。
bool bResult = g_DB.SeekStationDB(CEDB_SEEK_BEGINNING, 0);
bResult = g_DB.ReadStationRecord(record);
while(bResult){//记录存在。
m_lcOverview.InsertItem(nCount, record.m_strNumber);
m_lcOverview.SetItemText(nCount,1,record.m_strAddress);
m_lcOverview.SetItemText(nCount,2,record.m_strName);
m_lcOverview.SetItemText(nCount,3,record.m_DateTime);
m_lcOverview.SetItemText(nCount,4,record.m_strRainStation);
m_lcOverview.SetItemText(nCount,5,record.m_strWaterStation);
m_lcOverview.SetItemText(nCount,6,record.m_strKaiduStation);
m_lcOverview.SetItemText(nCount,7,record.m_strRainTotal);
m_lcOverview.SetItemText(nCount,8,record.m_strRainFenbian);
m_lcOverview.SetItemText(nCount,9,record.m_strWaterHeight);
m_lcOverview.SetItemText(nCount,10,record.m_strSetup1);
m_lcOverview.SetItemText(nCount,11,record.m_strSetup2);
m_lcOverview.SetItemText(nCount,12,record.m_strSetup3);
m_lcOverview.SetItemText(nCount,13,record.m_strSetup4);
nCount++;//报表增加一行。
bResult = g_DB.SeekStationDB(CEDB_SEEK_CURRENT, 1);
if(bResult) bResult = g_DB.ReadStationRecord(record);
}
}
void CPropPage1::OnOpenData(){//打开数据表按钮程序.
CRecordData record;
DWORD dwStyle = ListView_GetExtendedListViewStyle(m_lcOverview); //增加栅格线。
dwStyle = LVS_EX_FULLROWSELECT; //增加栅格线。
ListView_SetExtendedListViewStyle (m_lcOverview,dwStyle); //增加栅格线。
for (int Column=m_lcOverview.GetHeaderCtrl()->GetItemCount(); Column >= 0; Column--) m_lcOverview.DeleteColumn(Column);//删除所有的表头。
m_lcOverview.InsertColumn(0, TEXT("站号"), LVCFMT_LEFT, 40);
m_lcOverview.InsertColumn(1, TEXT("站名"), LVCFMT_LEFT, 100);
m_lcOverview.InsertColumn(2, TEXT("时间"), LVCFMT_LEFT, 130);
m_lcOverview.InsertColumn(3, TEXT("类型"), LVCFMT_LEFT, 70);
m_lcOverview.InsertColumn(4, TEXT("数据"), LVCFMT_LEFT, 80);
m_lcOverview.DeleteAllItems();//清除所有的项目。
bool bResult = g_DB.SeekDataDB(CEDB_SEEK_END, 0);
for(int nCount = 0; nCount <= 1000; nCount++){
if(bResult) bResult = g_DB.ReadDataRecord(record);
if(bResult){//记录存在。
m_lcOverview.InsertItem(nCount, record.m_strAddress);
m_lcOverview.SetItemText(nCount,1,record.m_strName);
m_lcOverview.SetItemText(nCount,2,record.m_DateTime);
m_lcOverview.SetItemText(nCount,3,record.m_strType);
m_lcOverview.SetItemText(nCount,4,record.m_strData);}
bResult = g_DB.SeekDataDB(CEDB_SEEK_CURRENT, -1);
}
}
void CPropPage1::OnOpenSend(){//打开数据传送表按钮程序.
CRecordSend record;
DWORD dwStyle = ListView_GetExtendedListViewStyle(m_lcOverview); //增加栅格线。
dwStyle = LVS_EX_FULLROWSELECT; //增加栅格线。
ListView_SetExtendedListViewStyle (m_lcOverview,dwStyle); //增加栅格线。
for (int Column=m_lcOverview.GetHeaderCtrl()->GetItemCount(); Column >= 0; Column--) m_lcOverview.DeleteColumn(Column);//删除所有的表头。
m_lcOverview.InsertColumn(0, TEXT("站号"), LVCFMT_LEFT, 40);
m_lcOverview.InsertColumn(1, TEXT("站名"), LVCFMT_LEFT, 100);
m_lcOverview.InsertColumn(2, TEXT("时间"), LVCFMT_LEFT, 130);
m_lcOverview.InsertColumn(3, TEXT("类型"), LVCFMT_LEFT, 70);
m_lcOverview.InsertColumn(4, TEXT("数据"), LVCFMT_LEFT, 80);
m_lcOverview.DeleteAllItems();//清除所有的项目。
bool bResult = g_DB.SeekSendDB(CEDB_SEEK_END, 0);
for(int nCount = 0; nCount <= 1000; nCount++){
if(bResult) bResult = g_DB.ReadSendRecord(record);
if(bResult){//记录存在。
m_lcOverview.InsertItem(nCount, record.m_strAddress);
m_lcOverview.SetItemText(nCount,1,record.m_strName);
m_lcOverview.SetItemText(nCount,2,record.m_DateTime);
m_lcOverview.SetItemText(nCount,3,record.m_strType);
m_lcOverview.SetItemText(nCount,4,record.m_strData);}
bResult = g_DB.SeekSendDB(CEDB_SEEK_CURRENT, -1);
}
Socket_Total = 0; //立即向服务器发送数据.
}
void CPropPage1::OnOpenPassWord(){//打开密码设置表按钮程序.
CRecordPassWord record;
DWORD dwStyle = ListView_GetExtendedListViewStyle(m_lcOverview); //增加栅格线。
dwStyle = LVS_EX_FULLROWSELECT; //增加栅格线。
ListView_SetExtendedListViewStyle (m_lcOverview,dwStyle); //增加栅格线。
for (int Column=m_lcOverview.GetHeaderCtrl()->GetItemCount(); Column >= 0; Column--) m_lcOverview.DeleteColumn(Column);//删除所有的表头。
m_lcOverview.InsertColumn(0, TEXT("名称"), LVCFMT_LEFT, 100);
m_lcOverview.InsertColumn(1, TEXT("数据"), LVCFMT_LEFT, 200);
m_lcOverview.DeleteAllItems();//清除所有的项目。
bool bResult = g_DB.SeekPassWordDB(CEDB_SEEK_BEGINNING, 0);
for(int nCount = 0; nCount <= 100; nCount++){
if(bResult) bResult = g_DB.ReadPassWordRecord(record);
if(bResult){//记录存在。
m_lcOverview.InsertItem(nCount, record.m_strName);
m_lcOverview.SetItemText(nCount,1,record.m_strData);}
bResult = g_DB.SeekPassWordDB(CEDB_SEEK_CURRENT, 1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -