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

📄 mdfinfo.cpp

📁 MDF监控源码2
💻 CPP
字号:
// MDFInfo.cpp : 实现文件
//

#include "stdafx.h"
#include "MDF.h"
#include "MDFInfo.h"
#include ".\mdfinfo.h"


// CMDFInfo 对话框

IMPLEMENT_DYNAMIC(CMDFInfo, CDialog)
extern CMDFApp theApp;
//##ModelId=465286A0038A
CMDFInfo::CMDFInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CMDFInfo::IDD, pParent)
{
	p_adodb = theApp.m_pAdoDB;

}

//##ModelId=465286A0039A
CMDFInfo::~CMDFInfo()
{
}

//##ModelId=465286A0039C
void CMDFInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LISTLEVEL, m_listAlarmLevel);
	DDX_Control(pDX, IDC_COMBOLEVEL, m_cmbAlarm);
}


BEGIN_MESSAGE_MAP(CMDFInfo, CDialog)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LISTLEVEL, OnLvnItemchangedListlevel)
	ON_BN_CLICKED(IDC_BTNADD, OnBnClickedBtnadd)
	ON_BN_CLICKED(IDC_BTNSAVE, OnBnClickedBtnsave)
	ON_BN_CLICKED(IDC_BTNDELETE, OnBnClickedBtndelete)
	ON_CBN_SELCHANGE(IDC_COMBOLEVEL, OnCbnSelchangeCombolevel)
	ON_WM_CREATE()
	ON_NOTIFY(LVN_ITEMCHANGING, IDC_LISTLEVEL, OnLvnItemchangingListlevel)
	ON_NOTIFY(NM_CLICK, IDC_LISTLEVEL, OnNMClickListlevel)
END_MESSAGE_MAP()


// CMDFInfo 消息处理程序

//##ModelId=465286A003BE
int CMDFInfo::IniControl(void)
{
	int i = 0;
	int iItem = 0;
	int iIndex = 1;
	m_listAlarmLevel.ModifyStyle(NULL,LVS_REPORT | WS_VSCROLL | WS_HSCROLL );
	m_listAlarmLevel.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_FLATSB|LVS_EX_GRIDLINES|LVS_EX_ONECLICKACTIVATE|LVS_EX_SIMPLESELECT);
	m_listAlarmLevel.InsertColumn(i,"编号",LVCFMT_CENTER,60,0);
	m_listAlarmLevel.InsertColumn(++i,"级别",LVCFMT_CENTER,100,0);
	m_listAlarmLevel.InsertColumn(++i,"电流",LVCFMT_CENTER,80,0);
	m_listAlarmLevel.InsertColumn(++i,"时间",LVCFMT_CENTER,80,0);
	m_listAlarmLevel.InsertColumn(++i,"电压",LVCFMT_CENTER,80,0);
	m_listAlarmLevel.InsertColumn(++i,"说明",LVCFMT_CENTER,100,0);
	
	iItem = m_cmbAlarm.AddString("警告信息");
	m_cmbAlarm.SetItemData(iItem,(DWORD_PTR)&iIndex);
	iIndex = 2;
	iItem = m_cmbAlarm.AddString("一般告警");
	m_cmbAlarm.SetItemData(iItem,(DWORD_PTR)&iIndex);
	iIndex = 3;
	iItem = m_cmbAlarm.AddString("重要告警");
	m_cmbAlarm.SetItemData(iItem,(DWORD_PTR)&iIndex);
	iIndex = 4;
	iItem = m_cmbAlarm.AddString("紧急告警");
	m_cmbAlarm.SetItemData(iItem,(DWORD_PTR)&iIndex);
	

	return 0;
}

//##ModelId=465286A003C8
int CMDFInfo::LoadRecord(void)
{
	_variant_t var;
	_RecordsetPtr pRsPtr ;
	CString strValue,strTip,strItem,strSql;
	int iIndex,iSubItem,iResult,iValue;
	double dValue,dValue2;
	dValue2 = dValue = 0;
	if (strSql.GetLength() <= 0)
		strSql = "Select  * From CMTAlarmLevel ";
	
	iSubItem =1 ;
	pRsPtr.CreateInstance(__uuidof(Recordset)); 


	//strSQL.Format("Select SVDID,SVSpotSort From CMTSVModulePort Where SVMID = %d and SVMPSort = %d",port->SVMID,port->SVMPSort);
	iResult = p_adodb->ReadDB(strSql,pRsPtr,strTip);
	if (iResult == 0)
	{
		m_listAlarmLevel.DeleteAllItems();
		iSubItem = iIndex = 1;
		while (!pRsPtr->adoEOF)
		{
			iSubItem =1 ;
			
			p_adodb->GetFieldValue("FID",pRsPtr,iValue);
			strItem.Format("%d",iValue);
			iIndex = m_listAlarmLevel.InsertItem(m_listAlarmLevel.GetItemCount() + 1,strItem.GetBuffer());

			p_adodb->GetFieldValue("fAlarmLevel",pRsPtr,iValue);
			strValue = GetAlarmString(iValue);
			m_listAlarmLevel.SetItemText(iIndex,iSubItem++,strValue);


			p_adodb->GetFieldValue("fCarrent1",pRsPtr,dValue);
			p_adodb->GetFieldValue("fCarrent2",pRsPtr,dValue2);
			if (dValue2 == 0)
				strValue.Format(">%.1f",dValue,dValue2);
			else
				strValue.Format("%.1f-%.1f",dValue,dValue2);
			m_listAlarmLevel.SetItemText(iIndex,iSubItem++,strValue);


			p_adodb->GetFieldValue("fVoltage1",pRsPtr,dValue);
			p_adodb->GetFieldValue("fVoltage2",pRsPtr,dValue2);
			if (dValue2 == 0)
				strValue.Format(">%.1f",dValue,dValue2);
			else
				strValue.Format("%.1f-%.1f",dValue,dValue2);
			m_listAlarmLevel.SetItemText(iIndex,iSubItem++,strValue);


			p_adodb->GetFieldValue("fSecond1",pRsPtr,dValue);
			p_adodb->GetFieldValue("fSecond2",pRsPtr,dValue2);
			if (dValue2 == 0)
				strValue.Format(">%.1f",dValue,dValue2);
			else
				strValue.Format("%.1f-%.1f",dValue,dValue2);
			m_listAlarmLevel.SetItemText(iIndex,iSubItem++,strValue);



			p_adodb->GetFieldValue("fMemo",pRsPtr,strValue);
			m_listAlarmLevel.SetItemText(iIndex,iSubItem++,strValue);

			pRsPtr->MoveNext();
		}
		pRsPtr->Close();
	}




	return 0;
}

//##ModelId=465286A003D8
CString CMDFInfo::GetAlarmString(int iLevel)
{
	CString strAlarm;
	switch (iLevel)
	{
	case 1:
		strAlarm = "警告信息";
		break;
	case 2:
		strAlarm = "一般告警";
		break;
	case 3:
		strAlarm = "重要告警";
		break;
	case 4:
		strAlarm = "紧急告警";
		break;
	default:
		strAlarm = "警告信息";
	}

	return strAlarm;
}

//##ModelId=465286A003DA
int CMDFInfo::AddItem(void)
{
	int iResult = 0 ;
	int iValue = 0;
	_variant_t var;
	_RecordsetPtr pRsPtr ;
	pRsPtr.CreateInstance(__uuidof(Recordset)); 
	CString strSQL,strTable,strTip ;		//SQL语句
	CString strValue,strID;
	strSQL = "Select * From CMTAlarmLevel 1 = 0";
	//sSql.Format("Insert into CMTAlarmLevel(fAlarmLevel, fCarrent1, fCarrent2, fVoltage1, \
	//fVoltage2, fSecond1, fSecond2, fMemo) values(%d,%f,%f,%f)")
	strID.Empty();
	GetDlgItem(IDC_EDTID)->GetWindowText(strID);
	if (strID.GetLength() > 0 )
		strSQL.Format("Select * From CMTAlarmLevel Where FID = %s",strID);
	else
		strSQL = "Select * From  CMTAlarmLevel where 1 = 0";
	
	try
	{
		iResult = p_adodb->ReadDB(strSQL,pRsPtr,strTip);
		if (iResult == 0)
		{
			
			if (pRsPtr->adoEOF)
			{
				pRsPtr->AddNew();
				//pRsPtr->MoveFirst();
			}
			
			iValue  = m_cmbAlarm.GetCurSel();
			if (iValue < 0 || iValue > 4)
				iValue = 1;
			//iValue = m_cmbAlarm.GetItemDataPtr(iValue);
			m_cmbAlarm.GetWindowText(strValue);
			iValue = GetAlarmLevel(strValue);
			strValue.Format("%d",iValue);
			pRsPtr->PutCollect(_variant_t("fAlarmLevel"),_variant_t(strValue));

			GetDlgItem(IDC_EDTCARRENT1)->GetWindowText(strValue);
			if (strValue.GetLength() != 0)
				pRsPtr->PutCollect(_variant_t("fCarrent1"),_variant_t(strValue));

			GetDlgItem(IDC_EDTCARRENT2)->GetWindowText(strValue);
			if (strValue.GetLength() != 0)
				pRsPtr->PutCollect(_variant_t("fCarrent2"),_variant_t(strValue));

			GetDlgItem(IDC_EDTVOLTAGE1)->GetWindowText(strValue);
			if (strValue.GetLength() != 0)
				pRsPtr->PutCollect(_variant_t("fVoltage1"),_variant_t(strValue));
			GetDlgItem(IDC_EDTVOLTAGE2)->GetWindowText(strValue);
			if (strValue.GetLength() != 0)
				pRsPtr->PutCollect(_variant_t("fVoltage2"),_variant_t(strValue));

			GetDlgItem(IDC_EDTSECOND1)->GetWindowText(strValue);
			if (strValue.GetLength() != 0)
				pRsPtr->PutCollect(_variant_t("fSecond1"),_variant_t(strValue));
			GetDlgItem(IDC_EDTSECOND2)->GetWindowText(strValue);
			if (strValue.GetLength() != 0)
				pRsPtr->PutCollect(_variant_t("fSecond2"),_variant_t(strValue));

			pRsPtr->UpdateBatch(adAffectCurrent);
			pRsPtr->Close();
			LoadRecord();
			
		
		}
	}
	catch(_com_error e)
	{
		TRACE0(e.Description);
	}

	return 0;
}

//##ModelId=465286A10005
int CMDFInfo::DeleteRecord(CString  sID)
{
	CString strSQL;
	strSQL.Format("Delete From CMTAlarmLevel Where FID = %s",sID);
	p_adodb->ExecuteSQL(strSQL);
	//m_listAlarmLevel.DeleteItem();
	LoadRecord();

	return 0;
}

//##ModelId=465286A10007
void CMDFInfo::OnLvnItemchangedListlevel(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
	
	*pResult = 0;
}

//##ModelId=465286A10012
void CMDFInfo::OnBnClickedBtnadd()
{
	// TODO: 在此添加控件通知处理程序代码
	m_cmbAlarm.SetWindowText("警告信息");
	GetDlgItem(IDC_EDTID)->SetWindowText(_T(""));
	GetDlgItem(IDC_EDTCARRENT1)->SetWindowText(_T(""));
	GetDlgItem(IDC_EDTCARRENT2)->SetWindowText(_T(""));
	GetDlgItem(IDC_EDTVOLTAGE1)->SetWindowText(_T(""));
	GetDlgItem(IDC_EDTVOLTAGE2)->SetWindowText(_T(""));
	GetDlgItem(IDC_EDTSECOND1)->SetWindowText(_T(""));
	GetDlgItem(IDC_EDTSECOND2)->SetWindowText(_T(""));
	GetDlgItem(IDC_EDTMEMO)->SetWindowText(_T(""));

}

//##ModelId=465286A1001F
void CMDFInfo::OnBnClickedBtnsave()
{
	// TODO: 在此添加控件通知处理程序代码
	AddItem();

}

//##ModelId=465286A10021
void CMDFInfo::OnBnClickedBtndelete()
{
	CString strID;
	GetDlgItem(IDC_EDTID)->GetWindowText(strID);
	if (strID.GetLength() >0 )
		DeleteRecord(strID);

	// TODO: 在此添加控件通知处理程序代码
}

//##ModelId=465286A1002E
void CMDFInfo::OnCbnSelchangeCombolevel()
{
	// TODO: 在此添加控件通知处理程序代码
}

//##ModelId=465286A10030
int CMDFInfo::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;


	// TODO:  在此添加您专用的创建代码

	return 0;
}

//##ModelId=465286A1003E
BOOL CMDFInfo::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
	IniControl();
	LoadRecord();



	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

//##ModelId=465286A10040
int CMDFInfo::GetAlarmLevel(CString strLevel)
{
	CString strAlarm;
	int iLevel = 0;
	strAlarm = strLevel;
	if (strAlarm.Compare("警告信息") == 0)
		iLevel = 1;
	else if (strAlarm.Compare("一般告警") == 0)
		iLevel = 2;
	else if (strAlarm.Compare("重要告警") == 0)
		iLevel = 3;
	else if (strAlarm.Compare("紧急告警") == 0)
		iLevel = 4;

	return iLevel;
}

//##ModelId=465286A10042
void CMDFInfo::OnLvnItemchangingListlevel(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码


	*pResult = 0;
}

//##ModelId=465286A1004F
void CMDFInfo::OnNMClickListlevel(NMHDR *pNMHDR, LRESULT *pResult)
{
		
	CString strItem,strValue1,strValue2;
	int iPos = 0;
	int iSubIndex = 0;
	int iItem = m_listAlarmLevel.GetSelectionMark();
		
	if (m_listAlarmLevel.GetItemCount() <=0)
		return ;
	if (m_listAlarmLevel.GetSelectedCount() <= 0)
		return;

	strItem.Empty();
	
	strItem = m_listAlarmLevel.GetItemText(iItem,iSubIndex++);
	GetDlgItem(IDC_EDTID)->SetWindowText(strItem);
	strItem = m_listAlarmLevel.GetItemText(iItem,iSubIndex++);
	GetDlgItem(IDC_COMBOLEVEL)->SetWindowText(strItem);

	strItem = m_listAlarmLevel.GetItemText(iItem,iSubIndex++);
	iPos = strItem.Find('-');
	if (iPos > 0)
	{
		strValue1 = strItem.Left(iPos);
		strValue2 = strItem.Mid(iPos + 1);
		GetDlgItem(IDC_EDTCARRENT1)->SetWindowText(strValue1);
		GetDlgItem(IDC_EDTCARRENT2)->SetWindowText(strValue2);
	}else if(strItem.Find('>'))
	{
		iPos = strItem.Find('>');
		strValue1 = strItem.Mid(1);
	}


	strItem = m_listAlarmLevel.GetItemText(iItem,iSubIndex++);
	iPos = strItem.Find('-');
	if (iPos > 0)
	{
		strValue1 = strItem.Left(iPos);
		strValue2 = strItem.Mid(iPos + 1);
		GetDlgItem(IDC_EDTVOLTAGE1)->SetWindowText(strValue1);
		GetDlgItem(IDC_EDTVOLTAGE2)->SetWindowText(strValue2);
	}else if(strItem.Find('>'))
	{
		iPos = strItem.Find('>');
		strValue1 = strItem.Mid(1);
	}

	
	strItem = m_listAlarmLevel.GetItemText(iItem,iSubIndex++);
	iPos = strItem.Find('-');
	if (iPos > 0)
	{
		strValue1 = strItem.Left(iPos);
		strValue2 = strItem.Mid(iPos + 1);
		GetDlgItem(IDC_EDTSECOND1)->SetWindowText(strValue1);
		GetDlgItem(IDC_EDTSECOND2)->SetWindowText(strValue2);
	}else if(strItem.Find('>'))
	{
		iPos = strItem.Find('>');
		strValue1 = strItem.Mid(1);
	}

	*pResult = 0;
}

⌨️ 快捷键说明

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