📄 mdfinfo.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 + -