www.pudn.com > GSMTest1.rar > TransGL.cpp


// TransGL.cpp : implementation file 
//变压器管理界面 
 
#include "stdafx.h" 
#include "GSMTest.h" 
#include "TransGL.h" 
#include "TransEditDlg.h" 
 
 
#include "winsock.h" 
#include  
#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_TRANSLIST, m_ctrTrans); 
	//}}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) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
//CDatabase 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-100,true); 
	 
    m_ctrTrans.InsertColumn(0,"ID",LVCFMT_CENTER,40,0); 
	m_ctrTrans.InsertColumn(1,"变压器TEL",LVCFMT_CENTER,120,1);	 
	m_ctrTrans.InsertColumn(2,"电流(A相)",LVCFMT_LEFT,80,2); 
	m_ctrTrans.InsertColumn(3,"电流(B相)",LVCFMT_LEFT,80,3); 
	m_ctrTrans.InsertColumn(4,"电流(C相)",LVCFMT_LEFT,80,4); 
	m_ctrTrans.InsertColumn(5,"电压(A相)",LVCFMT_LEFT,80,5); 
	m_ctrTrans.InsertColumn(6,"电压(B相)",LVCFMT_LEFT,80,6); 
	m_ctrTrans.InsertColumn(7,"电压(C相)",LVCFMT_LEFT,80,7); 
	m_ctrTrans.InsertColumn(8,"功率因数",LVCFMT_LEFT,80,8); 
	m_ctrTrans.InsertColumn(9,"温度",LVCFMT_LEFT,50,9); 
	m_ctrTrans.InsertColumn(10,"备注",LVCFMT_LEFT,240,10); 
 
 
	m_ctrTrans.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); 
	ShowTrans(); 
	 
 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
CDatabase database; 
void CTransGL::ShowTrans() 
{ 
	m_ctrTrans.DeleteAllItems(); 
 
	try 
	{	 
		database.ConnectDB(); 
		//AfxMessageBox("连接服务器成功!");			 
		 
		CString charset="set charset gb2312;";//使之正常显示中文,或用set character_set_results=gb2312; 
		database.ExecuteSQL(charset,charset.GetLength());//执行语句. 
		 
		Data_Param result;		 
		 
		result.tab_name="trans_info"; 
		result.select_exp="TRANS_ID,TRANS_TEL,Ia,Ib,Ic,Ua,Ub,Uc,F,Temp,Remark"; 
		 
		if(database.SelectAll(&result)) 
		{ 
			int count=(int)database.GetRowNum();			 
			 
			for(int i=0;iiItem; 
	POSITION pos = m_ctrTrans.GetFirstSelectedItemPosition(); 
	 
	if (pos == NULL) 
	{ 
		AfxMessageBox("请选择要编辑的变压器!"); 
		return; 
	} 
	int nItem =m_ctrTrans.GetNextSelectedItem(pos); 
	 
	CTransEditDlg dlg; 
	dlg.m_strID=m_ctrTrans.GetItemText(nItem,0); 
	dlg.m_strTel=m_ctrTrans.GetItemText(nItem,1); 
	dlg.m_sIa=m_ctrTrans.GetItemText(nItem,2); 
	dlg.m_sIb=m_ctrTrans.GetItemText(nItem,3); 
	dlg.m_sIc=m_ctrTrans.GetItemText(nItem,4); 
	dlg.m_sUa=m_ctrTrans.GetItemText(nItem,5); 
	dlg.m_sUb=m_ctrTrans.GetItemText(nItem,6); 
	dlg.m_sUc=m_ctrTrans.GetItemText(nItem,7); 
	dlg.m_sFactor=m_ctrTrans.GetItemText(nItem,8); 
	dlg.m_sTemp=m_ctrTrans.GetItemText(nItem,9); 
	dlg.m_sRemark=m_ctrTrans.GetItemText(nItem,10); 
	 
	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; 
	} 
 
	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_id='%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();	 
}