⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 historydlg.cpp

📁 RFID温度签的源码
💻 CPP
字号:
// HistoryDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "Temperature.h"
#include "HistoryDlg.h"
#include "DeviceClient.h"
#include "ExportFile.h"


// CHistoryDlg 对话框

IMPLEMENT_DYNAMIC(CHistoryDlg, CDialog)

CHistoryDlg::CHistoryDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CHistoryDlg::IDD, pParent)
	, m_static1(_T(""))
	, m_static2(_T(""))
	, m_static3(_T(""))
	, m_static4(_T(""))
	, m_static5(_T(""))
	, m_TemperatureCount(0)
	, m_CheckTimeInterval(1)
	, m_WarnTemp1( 25.0 )
	, m_WarnTemp2( -60.0 )
	, m_IsCheck(FALSE)
{

}

CHistoryDlg::~CHistoryDlg()
{
}

void CHistoryDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_STATIC1, m_static1);
	DDX_Text(pDX, IDC_STATIC2, m_static2);
	DDX_Text(pDX, IDC_STATIC3, m_static3);
	DDX_Text(pDX, IDC_STATIC4, m_static4);
	DDX_Text(pDX, IDC_STATIC5, m_static5);
	DDX_Control(pDX, IDC_LIST1, m_list);
	DDX_Check(pDX, IDC_CHECK_OUT, m_IsCheck);
}


BEGIN_MESSAGE_MAP(CHistoryDlg, CDialog)
	ON_STN_CLICKED(IDC_STATIC2, &CHistoryDlg::OnStnClickedStatic2)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, &CHistoryDlg::OnLvnItemchangedList1)
	ON_BN_CLICKED(IDC_CHECK_OUT, &CHistoryDlg::OnBnClickedCheckOut)
	ON_BN_CLICKED(IDC_BTN_EXPORT, &CHistoryDlg::OnBnClickedBtnExport)
END_MESSAGE_MAP()


// CHistoryDlg 消息处理程序

void CHistoryDlg::OnStnClickedStatic2()
{
	// TODO: 在此添加控件通知处理程序代码
}


BOOL CHistoryDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	if( theApp.m_Lang == 0 )
	{
		SetWindowText( _T("历史") );
	}

	SetLang( theApp.m_Lang );
	UINT nIndex = IDS_STR_HISTORY_INDEX;
	UINT nValue = IDS_STR_HISTORY_VALUE;
	if( theApp.m_Lang == 0 )
	{
		nIndex = IDS_STR_HISTORY_INDEX_CH;
		nValue = IDS_STR_HISTORY_VALUE_CH;
	}

	m_list.SetExtendedStyle( LVS_EX_FULLROWSELECT );
	CString str;


	str.LoadString( nIndex );
	m_list.InsertColumn( 0, str, LVCFMT_LEFT, 120 );

	str.LoadString( nValue );
	m_list.InsertColumn( 1, str, LVCFMT_LEFT, 100 );
	

	m_static3.Format( _T("%.2f"), m_HighTemperature );
	m_static4.Format( _T("%.2f"), m_LowTemperature );
	m_static5.Format( _T("%.2f"), m_SumTemperature / m_TemperatureCount );
	InitList();

	UpdateData( FALSE );
	return TRUE; 
}

void CHistoryDlg::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
	*pResult = 0;
}

void CHistoryDlg::InitList()
{
	m_list.DeleteAllItems();

	CTime StartTime( m_StartTime[0] + 2000, m_StartTime[1], m_StartTime[2], m_StartTime[3], m_StartTime[4], m_StartTime[5] );
	CTimeSpan timeSpan( m_CheckTimeInterval );

	int nItem = 0;
	int nCurTemperature = m_StartTemperature;
	_TCHAR ch[64];
	_stprintf( ch, _T("%d/%02d/%02d %02d:%02d:%02d"), StartTime.GetYear(), StartTime.GetMonth(), 
		StartTime.GetDay(), StartTime.GetHour(), StartTime.GetMinute(),StartTime.GetSecond() );

	if( ( m_IsCheck == 0 ) || ( m_pTemperatureArray[0] >= m_WarnTemp1 ) )
	{
		nItem = m_list.InsertItem( 0, ch );
		m_static1 = ch;
		_stprintf( ch, _T("%.2f"),m_pTemperatureArray[0] ); 
		m_list.SetItemText( nItem, 1, ch );
	}

	for( unsigned int i=1; i<m_TemperatureCount - 1; i++ )
	{
		StartTime += timeSpan;

		if( ( m_IsCheck == 0 ) || ( m_pTemperatureArray[i] >= m_WarnTemp1 ) )
		{
			_stprintf( ch, _T("%d/%02d/%02d %02d:%02d:%02d"), StartTime.GetYear(), StartTime.GetMonth(), 
				StartTime.GetDay(), StartTime.GetHour(), StartTime.GetMinute(),StartTime.GetSecond() );

			nItem = m_list.InsertItem( i, ch );
			_stprintf( ch, _T("%.2f"), m_pTemperatureArray[i] );
			m_list.SetItemText( nItem, 1, ch );
		}
	}

	_stprintf( ch, _T("%d/%02d/%02d %02d:%02d:%02d"), StartTime.GetYear(), StartTime.GetMonth(), 
		StartTime.GetDay(), StartTime.GetHour(), StartTime.GetMinute(),StartTime.GetSecond() );
	m_static2 = ch;
}

void CHistoryDlg::OnBnClickedCheckOut()
{
	m_IsCheck = !m_IsCheck;
	UpdateData( TRUE );
	InitList();
}

void CHistoryDlg::OnBnClickedBtnExport()
{
	char ch[256];
	CFileDialog dlg( FALSE, _T("csv") );
	int nRet = dlg.DoModal();
	if( nRet == 1 )
	{
		CString str = dlg.GetPathName();

		TCHAR* lpStr = str.GetBuffer();
		//WideCharToMultiByte(CP_ACP,0,lpStr,-1,ch,256,NULL,NULL); 
		strcpy( ch, lpStr );

		CTime StartTime( m_StartTime[0] + 2000, m_StartTime[1], m_StartTime[2], m_StartTime[3], m_StartTime[4], m_StartTime[5] );
		if( m_CheckTimeInterval > 0 )
		{
			CExportFile file;
			file.OpenCreateFile( ch );
			CTimeSpan timeSpan( m_CheckTimeInterval );

			sprintf( ch, "%d-%d-%d %d:%d:%d", StartTime.GetYear(), StartTime.GetMonth(), 
				StartTime.GetDay(), StartTime.GetHour(), StartTime.GetMinute(),StartTime.GetSecond()  );
			file.AddItem( ch );
			sprintf( ch, "%.2f",m_pTemperatureArray[0] ); 
			file.AddItem( ch );
			file.EnterLine();
			for( unsigned int i=1; i<m_TemperatureCount - 1; i++ )
			{
				StartTime += timeSpan;
				sprintf( ch, "%d-%d-%d %d:%d:%d", StartTime.GetYear(), StartTime.GetMonth(), 
					StartTime.GetDay(), StartTime.GetHour(), StartTime.GetMinute() ,StartTime.GetSecond() );

				file.AddItem( ch );
				sprintf( ch, "%.2f", m_pTemperatureArray[i] );
				file.AddItem( ch );

				file.EnterLine();
			}

			file.CloseFile();
		}
	}
}

void CHistoryDlg::SetLang(char ch)
{
	if( ch == 0 )
	{
		CString str;

		str.LoadString( IDS_STR_DIALOG_HISTORY_ST );
		GetDlgItem( IDC_STATIC_STIME )->SetWindowText( str );

		str.LoadString( IDS_STR_DIALOG_HISTORY_ET );
		GetDlgItem( IDC_STATIC_ETIME )->SetWindowText( str );

		str.LoadString( IDS_STR_DIALOG_HISTORY_HT );
		GetDlgItem( IDC_STATIC_HT )->SetWindowText( str );

		str.LoadString( IDS_STR_DIALOG_HISTORY_LT );
		GetDlgItem( IDC_STATIC_LT )->SetWindowText( str );

		str.LoadString( IDS_STR_DIALOG_HISTORY_AT );
		GetDlgItem( IDC_STATIC_AT )->SetWindowText( str );

		str.LoadString( IDS_STR_DIALOG_HISTORY_CHECK_OUT );
		GetDlgItem( IDC_CHECK_OUT )->SetWindowText( str );

		str.LoadString( IDS_STR_DIALOG_HISTORY_EXPORT );
		GetDlgItem( IDC_BTN_EXPORT )->SetWindowText( str );
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -