📄 transgl.cpp
字号:
// TransGL.cpp : implementation file
//变压器管理界面
#include "stdafx.h"
#include "GSMTest.h"
#include "TransGL.h"
#include "TransEditDlg.h"
#include "JStrans.h"
#include "PDU.h"
#include "JStrans.h"
#include "winsock.h"
#include <mysql.h>
#include "database.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTransGL dialog
CTransGL::CTransGL(CWnd* pParent /*=NULL*/)
: CDialog(CTransGL::IDD, pParent)
{
//{{AFX_DATA_INIT(CTransGL)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTransGL::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTransGL)
DDX_Control(pDX, IDC_LIST1, m_jslist);
DDX_Control(pDX, IDC_TRANSLIST, m_ctrTrans);
DDX_Control(pDX, IDC_MSCOMM1, m_bottoncomumui);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTransGL, CDialog)
//{{AFX_MSG_MAP(CTransGL)
ON_BN_CLICKED(IDC_EDIT, OnEdit)
ON_NOTIFY(NM_DBLCLK, IDC_TRANSLIST, OnDblclkTranslist)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_DEL, OnDel)
ON_BN_CLICKED(IDC_DUTYMAN, OnDutyman)
ON_BN_CLICKED(IDC_ADD_trans, OnADDtrans)
ON_BN_CLICKED(IDC_dele_TRans, OndeleTRans)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//CDatabase1 database;
/////////////////////////////////////////////////////////////////////////////
// CTransGL message handlers
BOOL CTransGL::OnInitDialog()
{
CDialog::OnInitDialog();
// ShowWindow(SW_MAXIMIZE);
//设置控件大小,位置等.
CRect rcClient;
GetWindowRect(&rcClient);
int cx = rcClient.Width();
int cy = rcClient.Height();
// TODO: Add extra initialization here
// GetDlgItem(IDC_TRANSLIST)->MoveWindow(120,20,cx-150,cy-250,true);
m_ctrTrans.InsertColumn(0,"数量",LVCFMT_CENTER,80,0);
m_ctrTrans.InsertColumn(1,"变压器ID",LVCFMT_CENTER,160,1);
m_ctrTrans.InsertColumn(2,"变压器TEL",LVCFMT_CENTER,160,1);
// m_ctrTrans.InsertColumn(3,"电流(A相)",LVCFMT_LEFT,80,2);
// m_ctrTrans.InsertColumn(4,"电流(B相)",LVCFMT_LEFT,80,3);
// m_ctrTrans.InsertColumn(5,"电流(C相)",LVCFMT_LEFT,80,4);
// m_ctrTrans.InsertColumn(6,"电压(A相)",LVCFMT_LEFT,80,5);
// m_ctrTrans.InsertColumn(7,"电压(B相)",LVCFMT_LEFT,80,6);
// m_ctrTrans.InsertColumn(8,"电压(C相)",LVCFMT_LEFT,80,7);
// m_ctrTrans.InsertColumn(9,"功率因数",LVCFMT_LEFT,80,8);
// m_ctrTrans.InsertColumn(10,"温度",LVCFMT_LEFT,50,9);
m_ctrTrans.InsertColumn(3,"位置",LVCFMT_LEFT,280,10);
m_ctrTrans.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_jslist.InsertColumn(0,"数量",LVCFMT_CENTER,80,0);
m_jslist.InsertColumn(1,"变压器ID",LVCFMT_CENTER,160,1);
m_jslist.InsertColumn(2,"变压器TEL",LVCFMT_CENTER,160,1);
m_jslist.InsertColumn(3,"位置",LVCFMT_LEFT,280,10);
m_jslist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
OnStart();
ShowTrans();
binddutytrans();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
CDatabase1 database;
void CTransGL::ShowTrans()
{
m_ctrTrans.DeleteAllItems();
try
{
database.ConnectDB();
//AfxMessageBox("连接服务器成功!");
CString charset="set names 'gb2312'";//使之正常显示中文,或用set character_set_results=gb2312;
database.ExecuteSQL(charset,charset.GetLength());//执行语句.
Data_Param result;
result.tab_name="trans_info";
result.select_exp="TRANS_num,TRANS_ID,TRANS_TEL,Remark";
if(database.SelectAll(&result))
{
int count=(int)database.GetRowNum();
for(int i=0;i<count;i++)
{
database.SeekData(i);
MYSQL_ROW row=database.GetRecord();
m_ctrTrans.InsertItem(i,row[0]);
m_ctrTrans.SetItemText(i,1,row[1]);
m_ctrTrans.SetItemText(i,2,row[2]);
m_ctrTrans.SetItemText(i,3,row[3]);
// m_ctrTrans.SetItemText(i,4,row[4]);
// m_ctrTrans.SetItemText(i,5,row[5]);
// m_ctrTrans.SetItemText(i,6,row[6]);
// m_ctrTrans.SetItemText(i,7,row[7]);
// m_ctrTrans.SetItemText(i,8,row[8]);
// m_ctrTrans.SetItemText(i,9,row[9]);
// m_ctrTrans.SetItemText(i,10,row[10]);
// m_ctrTrans.SetItemText(i,11,row[11]);
}
}
}
catch (...) {
AfxMessageBox("连接服务器失败!");
}
}
void CTransGL::OnEdit()
{
// TODO: Add your control notification handler code here
POSITION pos = m_ctrTrans.GetFirstSelectedItemPosition();
if (pos == NULL)
{
AfxMessageBox("请选择要编辑的变压器!\n");
return;
}
int nItem =m_ctrTrans.GetNextSelectedItem(pos);
CTransEditDlg dlg;
dlg.m_TRANS_ID=m_ctrTrans.GetItemText(nItem,1);
dlg.m_strID=m_ctrTrans.GetItemText(nItem,0);
dlg.m_strTel=m_ctrTrans.GetItemText(nItem,2);
// dlg.m_sIa=m_ctrTrans.GetItemText(nItem,3);
// dlg.m_sIb=m_ctrTrans.GetItemText(nItem,4);
// dlg.m_sIc=m_ctrTrans.GetItemText(nItem,5);
// dlg.m_sUa=m_ctrTrans.GetItemText(nItem,6);
// dlg.m_sUb=m_ctrTrans.GetItemText(nItem,7);
// dlg.m_sUc=m_ctrTrans.GetItemText(nItem,8);
// dlg.m_sFactor=m_ctrTrans.GetItemText(nItem,9);
// dlg.m_sTemp=m_ctrTrans.GetItemText(nItem,10);
dlg.m_sRemark=m_ctrTrans.GetItemText(nItem,3);
if(dlg.DoModal()!=IDCANCEL)
ShowTrans();
}
void CTransGL::OnDblclkTranslist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
LPNMLISTVIEW phdr = (LPNMLISTVIEW)pNMHDR;
int item = phdr->iItem;
POSITION pos = m_ctrTrans.GetFirstSelectedItemPosition();
if (pos == NULL)
{
AfxMessageBox("请选择要编辑的变压器!");
return;
}
int nItem =m_ctrTrans.GetNextSelectedItem(pos);
CTransEditDlg dlg;
dlg.m_TRANS_ID=m_ctrTrans.GetItemText(nItem,1);
dlg.m_strID=m_ctrTrans.GetItemText(nItem,0);
dlg.m_strTel=m_ctrTrans.GetItemText(nItem,2);
/* dlg.m_sIa=m_ctrTrans.GetItemText(nItem,3);
dlg.m_sIb=m_ctrTrans.GetItemText(nItem,4);
dlg.m_sIc=m_ctrTrans.GetItemText(nItem,5);
dlg.m_sUa=m_ctrTrans.GetItemText(nItem,6);
dlg.m_sUb=m_ctrTrans.GetItemText(nItem,7);
dlg.m_sUc=m_ctrTrans.GetItemText(nItem,8);
dlg.m_sFactor=m_ctrTrans.GetItemText(nItem,9);
dlg.m_sTemp=m_ctrTrans.GetItemText(nItem,10);*/
dlg.m_sRemark=m_ctrTrans.GetItemText(nItem,3);
if(dlg.DoModal()!=IDCANCEL)
ShowTrans();
*pResult = 0;
}
void CTransGL::OnAdd()
{
//增加变压器信息
CTransEditDlg dlg;
dlg.m_strID="add";
if(dlg.DoModal()!=IDCANCEL)
ShowTrans();
}
void CTransGL::OnDel()
{
// TODO: Add your control notification handler code here
POSITION pos = m_ctrTrans.GetFirstSelectedItemPosition();
if (pos == NULL)
{
AfxMessageBox("请选择要删除的变压器!");
return;
}
CDatabase1 database;
if(!database.ConnectDB())
{
return;
}
CString charset="set names 'gb2312'";//使之正常显示中文,或用set character_set_results=gb2312;
database.ExecuteSQL(charset,charset.GetLength());//执行语句
if(AfxMessageBox("确实要删除该变压器吗?",MB_OKCANCEL)==IDOK)
{
int n=(int)pos;
CString strSQL;
//strSQL.Format("delete from trans_info where trans_id='%s'",m_ctrTrans.GetItemText(n-1,0));
strSQL.Format("delete from trans_info where trans_NUM='%s'",m_ctrTrans.GetItemText(n-1,0));
if(!database.ExecuteSQL(strSQL,strSQL.GetLength()))
{
AfxMessageBox("删除失败!");
return;
}
m_ctrTrans.DeleteItem(n-1);
}
}
#include "dutymandlg.h"
void CTransGL::OnDutyman()
{
CDutyManDlg dlg;
dlg.DoModal();
}
void CTransGL::OnADDtrans()
{
// TODO: Add your control notification handler code here
CJStrans dlg;
// dlg.m_sID=m_TRANS_ID;
if(dlg.DoModal()!=IDCANCEL)
{
string strNum="";
strNum=dlg.num;
char* strContent="开";
PDU p;
string x=p.smsEncodedsms("8613800230500",strNum,strContent);
CString str;
str.Format("AT+CMGS=%d\r",p.nLength);
m_bottoncomumui.SetOutput(COleVariant(str));
Sleep(1000);
OnOnCommMscomm1();
if(m_sStatus3.Find("> ")>=0)
{
str.Format("%s%c",x.c_str(),0x1a);
str.MakeUpper();
//m_sStatus2="";
m_bottoncomumui.SetOutput(COleVariant(str));
}
m_sStatus3="";
return;///屏蔽后面代码
CDatabase1 database2;
if(!database2.ConnectDB())
{
return;
}
CString charset="set names 'gb2312'";//使之正常显示中文,或用set character_set_results=gb2312;
database2.ExecuteSQL(charset,charset.GetLength());//执行语句.
Data_Param result;
result.tab_name="trans_info";
result.select_exp="TRANS_num,TRANS_ID,TRANS_tel,remark";
CString def,numbertel;
numbertel=strNum.c_str();
def.Format("TRANS_tel='%s'",numbertel);
// def="duty_name like '%"+name+"%'";
result.where_def=def.GetBuffer(100);
if(database2.SelectRecord(&result))
{
int count=(int)database2.GetRowNum();
for(int i=0;i<count;i++)
{
database2.SeekData(i);
MYSQL_ROW row=database2.GetRecord();
///确定变压器是否已经在监控列表中
CDatabase1 database5;
if(!database5.ConnectDB())
{
AfxMessageBox("连接服务器失败!");
return;
}
CString charset5="set names 'gb2312'";//使之正常显示中文,或用set character_set_results=gb2312;
database5.ExecuteSQL(charset5,charset5.GetLength());//执行语句
Data_Param result5;
CString def5;
result5.tab_name="trans_stat";
result5.select_exp="STAT_ID";
def5.Format("TRANS_tel='%s'",strNum.c_str());
result5.where_def=def5.GetBuffer(100);
if(database5.SelectRecord(&result5))
{
int row_num5=(int)database5.GetRowNum();
if(row_num5>0)
{
AfxMessageBox("变压器已经列入监控!");
return;
}
}
///录入变压器的初始直
CDatabase1 database3;
if(!database3.ConnectDB())
{
return;
}
CString charset4="set names 'gb2312'";//使之正常显示中文,或用set character_set_results=gb2312;
database3.ExecuteSQL(charset4,charset4.GetLength());//执行语句.
CString a1,a2,info3;
a1=" ";
a2=" ";
info3.Format("insert into trans_stat (TRANS_ID,TRANS_TEL,place,STATUS,STAT_TIME) values('%s','%s','%s','%s','%s')",
row[1],row[2],row[3],a1,a2);
//strQuery.tab_name="trans_info (TEL,INFO)";
//info.Format("\'%s\',\'%s\'",m_strTel,m_strInfo);
//sprintf(SQL,info);
//strQuery.insert_val=SQL;
//if(!database.InsertRecord(&strQuery))
if(!database3.ExecuteSQL(info3,info3.GetLength()))
{
AfxMessageBox("插入数据失败!");
return;
}
}
}
binddutytrans();
ShowTrans();
}
}
void CTransGL::OndeleTRans()
{
// TODO: Add your control notification handler code here
POSITION pos1 = m_jslist.GetFirstSelectedItemPosition();
CDatabase1 database;
if(!database.ConnectDB())
{
return;
}
CString charset1="set names 'gb2312'";//使之正常显示中文,或用set character_set_results=gb2312;
database.ExecuteSQL(charset1,charset1.GetLength());//执行语句
if (pos1 == NULL)
{
AfxMessageBox("请选择要删除的变压器!");
return;
}
int n=(int)pos1;
if(AfxMessageBox("确实要删除该变压器吗?",MB_OKCANCEL)==IDOK)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -