?? 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);
//設(shè)置控件大小,位置等.
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,"數(shù)量",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,"功率因數(shù)",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,"數(shù)量",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("連接服務(wù)器成功!");
CString charset="set names 'gb2312'";//使之正常顯示中文,或用set character_set_results=gb2312;
database.ExecuteSQL(charset,charset.GetLength());//執(zhí)行語句.
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("連接服務(wù)器失敗!");
}
}
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());//執(zhí)行語句
if(AfxMessageBox("確實(shí)要刪除該變壓器嗎?",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());//執(zhí)行語句.
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();
///確定變壓器是否已經(jīng)在監(jiān)控列表中
CDatabase1 database5;
if(!database5.ConnectDB())
{
AfxMessageBox("連接服務(wù)器失敗!");
return;
}
CString charset5="set names 'gb2312'";//使之正常顯示中文,或用set character_set_results=gb2312;
database5.ExecuteSQL(charset5,charset5.GetLength());//執(zhí)行語句
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("變壓器已經(jīng)列入監(jiān)控!");
return;
}
}
///錄入變壓器的初始直
CDatabase1 database3;
if(!database3.ConnectDB())
{
return;
}
CString charset4="set names 'gb2312'";//使之正常顯示中文,或用set character_set_results=gb2312;
database3.ExecuteSQL(charset4,charset4.GetLength());//執(zhí)行語句.
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("插入數(shù)據(jù)失敗!");
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());//執(zhí)行語句
if (pos1 == NULL)
{
AfxMessageBox("請選擇要刪除的變壓器!");
return;
}
int n=(int)pos1;
if(AfxMessageBox("確實(shí)要刪除該變壓器嗎?",MB_OKCANCEL)==IDOK)
{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -