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;i iItem; 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(); }