395 lines
8.9 KiB
C++
395 lines
8.9 KiB
C++
// DLG_SmsDY.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "corpsms.h"
|
|
#include "DLG_SmsDY.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_SmsDY dialog
|
|
|
|
#include "DLG_SmsDY_Add.h"
|
|
#include "DLG_SmsDYType_Add.h"
|
|
|
|
DLG_SmsDY::DLG_SmsDY(CWnd* pParent /*=NULL*/)
|
|
: CDialog(DLG_SmsDY::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(DLG_SmsDY)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_bRefresh2 = false;
|
|
m_bOpenItem = false;
|
|
m_bDblclkSelect = true;
|
|
}
|
|
|
|
|
|
void DLG_SmsDY::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(DLG_SmsDY)
|
|
DDX_Control(pDX, IDC_SMSDY_TYPE, m_wndType);
|
|
DDX_Control(pDX, IDC_SMSDY_LIST, m_wndList);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(DLG_SmsDY, CDialog)
|
|
//{{AFX_MSG_MAP(DLG_SmsDY)
|
|
ON_BN_CLICKED(IDC_SMSDY_ADD, OnSmsdyAdd)
|
|
ON_NOTIFY(NM_DBLCLK, IDC_SMSDY_LIST, OnDblclkSmsdyList)
|
|
ON_BN_CLICKED(IDC_SMSDY_MODIFY, OnSmsdyModify)
|
|
ON_BN_CLICKED(IDC_SMSDY_DELETE, OnSmsdyDelete)
|
|
ON_NOTIFY(NM_DBLCLK, IDC_SMSDY_TYPE, OnDblclkSmsdyType)
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDC_SMSDY_TYPE, OnItemchangedSmsdyType)
|
|
ON_BN_CLICKED(IDC_SMSTYPE_ADD, OnSmstypeAdd)
|
|
ON_BN_CLICKED(IDC_SMSTYPE_MODIFY, OnSmstypeModify)
|
|
ON_BN_CLICKED(IDC_SMSTYPE_DEL, OnSmstypeDel)
|
|
ON_WM_CLOSE()
|
|
ON_WM_DESTROY()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_SmsDY message handlers
|
|
|
|
BOOL DLG_SmsDY::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
//´´½¨Í¼ÏñÁбí
|
|
m_Image.Create( 4 , 18 , ILC_COLOR32|ILC_MASK , 5 , 1);
|
|
CBitmap bmp;
|
|
//bmp.LoadBitmap( IDB_L_DY );
|
|
m_Image.Add( &bmp , RGB(193,193,193) ); //ÉèÖÃ
|
|
bmp.DeleteObject();
|
|
//¼ÓÈëͼÏñÁбí
|
|
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
|
|
//m_wndList.SetBkColor( RGB(237,238,188) );
|
|
//m_wndList.SetTextBkColor( RGB(237,238,188) );
|
|
|
|
m_wndList.SubClassWindow2();
|
|
m_wndList.SetHeadings(_T(" ¶ÌÓïÄÚÈÝ,280;"));
|
|
m_wndList.SetGridLines(true);
|
|
|
|
|
|
//¼ÓÈëͼÏñÁбí
|
|
m_wndType.SetImageList(&m_Image,LVSIL_SMALL);
|
|
//m_wndType.SetBkColor( RGB(237,238,188) );
|
|
//m_wndType.SetTextBkColor( RGB(237,238,188) );
|
|
m_wndType.SubClassWindow2();
|
|
m_wndType.SetHeadings(_T(" ¶ÌÓïÀà±ð,160;"));
|
|
m_wndType.SetGridLines(true);
|
|
|
|
RefreshList();
|
|
|
|
if ( m_wndType.GetItemCount()>0 )
|
|
{
|
|
m_wndType.SelectItem(0);
|
|
RefreshDY();
|
|
}
|
|
|
|
if ( !m_bDblclkSelect )
|
|
{
|
|
GetDlgItem(IDOK)->SetWindowText(_T("È· ¶¨(&O)"));
|
|
}
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void DLG_SmsDY::SetParam(CAdoRecordSet *pAdoRS)
|
|
{
|
|
m_pAdoRS = pAdoRS;
|
|
}
|
|
|
|
void DLG_SmsDY::RefreshList()
|
|
{
|
|
m_bRefresh2 = true;
|
|
CString strSelect;
|
|
strSelect = _T("Select * from smsdytype");
|
|
BOOL b = m_pAdoRS->Open(strSelect);
|
|
if ( b && m_pAdoRS->GetRecordCount() )
|
|
{
|
|
m_pAdoRS->MoveFirst();
|
|
CString strMsg;
|
|
long lCount=0;
|
|
long lDYID;
|
|
while( !m_pAdoRS->IsEOF() )
|
|
{
|
|
m_pAdoRS->GetCollect( _T("DYID") , lDYID );
|
|
m_pAdoRS->GetCollect( _T("Title") , strMsg );
|
|
//m_wndList.InsertItem( lCount , _itot(lCount+1,szBuf,10) , 0 );
|
|
//m_wndList.SetItemText(lCount,1,strMsg);
|
|
m_wndType.InsertItem( lCount , strMsg,0);
|
|
m_wndType.SetItemData(lCount,lDYID);
|
|
lCount++;
|
|
m_pAdoRS->MoveNext();
|
|
}
|
|
}
|
|
m_bRefresh2 = false;
|
|
|
|
}
|
|
|
|
void DLG_SmsDY::OnSmsdyAdd()
|
|
{
|
|
if ( !m_bOpenItem )
|
|
return ;
|
|
|
|
DLG_SmsDY_Add dlg(this);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
m_pAdoRS->Open( _T("smsdy") , adCmdTable );
|
|
m_pAdoRS->AddNew();
|
|
m_pAdoRS->PutCollect( _T("Type") , m_strTitle );
|
|
m_pAdoRS->PutCollect( _T("Msg") , dlg.m_strMsg2 );
|
|
m_pAdoRS->Update();
|
|
long lDYID;
|
|
m_pAdoRS->GetCollect( _T("DYID") , lDYID );
|
|
m_pAdoRS->Close();
|
|
|
|
long lCount = m_wndList.GetItemCount();
|
|
m_wndList.InsertItem( lCount , dlg.m_strMsg2 , 0 );
|
|
m_wndList.SetItemData(lCount,lDYID);
|
|
}
|
|
|
|
}
|
|
|
|
void DLG_SmsDY::OnDblclkSmsdyList(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
*pResult = 0;
|
|
if ( m_bDblclkSelect )
|
|
OnOK();
|
|
else
|
|
OnSmsdyModify();
|
|
|
|
}
|
|
|
|
long DLG_SmsDY::GetCurrentSelected()
|
|
{
|
|
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
|
if ( pos )
|
|
{
|
|
return m_wndList.GetNextSelectedItem(pos);
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
void DLG_SmsDY::OnOK()
|
|
{
|
|
long lItem = GetCurrentSelected();
|
|
if ( lItem < 0 )
|
|
{
|
|
MessageBox( _T("Äã±ØÐëÒª´Ó×ó±ßÁбíÑ¡ÔñÒ»Ìõ¼Ç¼£¡"),_T("´íÎó"),MB_ICONWARNING);
|
|
return;
|
|
}
|
|
m_strDY = m_wndList.GetItemText(lItem,0);
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void DLG_SmsDY::OnSmsdyModify()
|
|
{
|
|
if ( !m_bOpenItem )
|
|
return ;
|
|
|
|
long lItem = GetCurrentSelected();
|
|
if ( lItem < 0 )
|
|
{
|
|
MessageBox( _T("Äã±ØÐëÒª´Ó×ó±ßÁбíÑ¡ÔñÒ»Ìõ¼Ç¼£¡"),_T("´íÎó"),MB_ICONWARNING);
|
|
return;
|
|
}
|
|
CString strMsg = m_wndList.GetItemText( lItem , 0 );
|
|
long lDYID = m_wndList.GetItemData(lItem);
|
|
DLG_SmsDY_Add dlg(this);
|
|
dlg.SetParam(strMsg);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
CString strSelect;
|
|
CString strTemp = dlg.m_strMsg2;
|
|
strTemp.Replace( _T("'") , _T("''") );
|
|
strSelect.Format( _T("update smsdy set Msg='%s' where DYID=%d") , strTemp,lDYID );
|
|
m_pAdoRS->Open( strSelect );
|
|
m_pAdoRS->Close();
|
|
m_wndList.SetItemText(lItem,0,dlg.m_strMsg2);
|
|
}
|
|
}
|
|
|
|
void DLG_SmsDY::OnSmsdyDelete()
|
|
{
|
|
if ( !m_bOpenItem )
|
|
return ;
|
|
|
|
long lItem = GetCurrentSelected();
|
|
if ( lItem < 0 )
|
|
{
|
|
MessageBox( _T("Äã±ØÐëÒª´Ó×ó±ßÁбíÑ¡ÔñÒ»Ìõ¼Ç¼£¡"),_T("´íÎó"),MB_ICONWARNING);
|
|
return;
|
|
}
|
|
long lDYID = m_wndList.GetItemData(lItem);
|
|
CString strSelect;
|
|
strSelect.Format( _T("delete from smsdy where DYID=%d") , lDYID );
|
|
m_pAdoRS->Open(strSelect);
|
|
m_pAdoRS->Close();
|
|
m_wndList.DeleteItem( lItem );
|
|
}
|
|
|
|
void DLG_SmsDY::OnDblclkSmsdyType(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
*pResult = 0;
|
|
}
|
|
|
|
void DLG_SmsDY::OnItemchangedSmsdyType(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
HD_NOTIFY *phdn = (HD_NOTIFY *) pNMHDR;
|
|
*pResult = 0;
|
|
|
|
if ( m_bRefresh2 )
|
|
return ;
|
|
|
|
if ( m_wndType.GetSelectedCount() > 1 ) //Ö»´¦ÀíÒ»Ìõ
|
|
return;
|
|
|
|
RefreshDY();
|
|
}
|
|
|
|
void DLG_SmsDY::RefreshDY()
|
|
{
|
|
m_wndList.ShowWindow( SW_HIDE ); //¼Ó¿ìÏÔʾËÙ¶È
|
|
m_wndList.DeleteAllItems();
|
|
m_bOpenItem= false;
|
|
long lItem = GetCurrentSelectedT();
|
|
if ( lItem < 0 )
|
|
{
|
|
m_wndList.ShowWindow( SW_SHOW ); //¼Ó¿ìÏÔʾËÙ¶È
|
|
return ;
|
|
}
|
|
|
|
long lDYID = m_wndType.GetItemData(lItem);
|
|
m_strTitle.Format( _T("%d") , lDYID );
|
|
|
|
CString strSelect;
|
|
strSelect.Format(_T("Select * from smsdy where Type='%d'"),lDYID);
|
|
BOOL b = m_pAdoRS->Open(strSelect);
|
|
if ( b && m_pAdoRS->GetRecordCount() )
|
|
{
|
|
m_pAdoRS->MoveFirst();
|
|
CString strMsg;
|
|
//char szBuf[32];
|
|
long lCount=0;
|
|
long lDYID;
|
|
while( !m_pAdoRS->IsEOF() )
|
|
{
|
|
m_pAdoRS->GetCollect( _T("DYID") , lDYID );
|
|
m_pAdoRS->GetCollect( _T("Msg") , strMsg );
|
|
//m_wndList.InsertItem( lCount , _itot(lCount+1,szBuf,10) , 0 );
|
|
//m_wndList.SetItemText(lCount,1,strMsg);
|
|
m_wndList.InsertItem( lCount , strMsg,0);
|
|
m_wndList.SetItemData(lCount,lDYID);
|
|
lCount++;
|
|
m_pAdoRS->MoveNext();
|
|
}
|
|
}
|
|
|
|
m_bOpenItem = true;
|
|
|
|
m_wndList.ShowWindow( SW_SHOW ); //¼Ó¿ìÏÔʾËÙ¶È
|
|
}
|
|
|
|
long DLG_SmsDY::GetCurrentSelectedT()
|
|
{
|
|
POSITION pos = m_wndType.GetFirstSelectedItemPosition();
|
|
if ( pos )
|
|
{
|
|
return m_wndType.GetNextSelectedItem(pos);
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
void DLG_SmsDY::OnSmstypeAdd()
|
|
{
|
|
DLG_SmsDYType_Add dlg(this);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
m_pAdoRS->Open( _T("smsdytype") , adCmdTable );
|
|
m_pAdoRS->AddNew();
|
|
m_pAdoRS->PutCollect( _T("Title") , dlg.m_strMsg2 );
|
|
m_pAdoRS->Update();
|
|
long lDYID;
|
|
m_pAdoRS->GetCollect( _T("DYID") , lDYID );
|
|
m_pAdoRS->Close();
|
|
|
|
long lCount = m_wndType.GetItemCount();
|
|
m_wndType.InsertItem( lCount , dlg.m_strMsg2 , 0 );
|
|
m_wndType.SetItemData(lCount,lDYID);
|
|
}
|
|
}
|
|
|
|
void DLG_SmsDY::OnSmstypeModify()
|
|
{
|
|
long lItem = GetCurrentSelectedT();
|
|
if ( lItem < 0 )
|
|
{
|
|
MessageBox( _T("Äã±ØÐëÒª´Ó¶ÌÓïÀà±ðÁбíÑ¡ÔñÒ»Ìõ¼Ç¼£¡"),_T("´íÎó"),MB_ICONWARNING);
|
|
return;
|
|
}
|
|
CString strMsg = m_wndType.GetItemText( lItem , 0 );
|
|
long lDYID = m_wndType.GetItemData(lItem);
|
|
DLG_SmsDYType_Add dlg(this);
|
|
dlg.SetParam(strMsg);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
CString strSelect;
|
|
CString strTemp = dlg.m_strMsg2;
|
|
strTemp.Replace( _T("'") , _T("''") );
|
|
strSelect.Format( _T("update smsdytype set Title='%s' where DYID=%d") , strTemp,lDYID );
|
|
m_pAdoRS->Open( strSelect );
|
|
m_pAdoRS->Close();
|
|
m_wndType.SetItemText(lItem,0,dlg.m_strMsg2);
|
|
}
|
|
}
|
|
|
|
void DLG_SmsDY::OnSmstypeDel()
|
|
{
|
|
long lItem = GetCurrentSelectedT();
|
|
if ( lItem < 0 )
|
|
{
|
|
MessageBox( _T("Äã±ØÐëÒª´Ó¶ÌÓïÀà±ðÁбíÑ¡ÔñÒ»Ìõ¼Ç¼£¡"),_T("´íÎó"),MB_ICONWARNING);
|
|
return;
|
|
}
|
|
long lDYID = m_wndType.GetItemData(lItem);
|
|
CString strSelect;
|
|
strSelect.Format( _T("delete from smsdytype where DYID=%d") , lDYID );
|
|
m_pAdoRS->Open(strSelect);
|
|
m_pAdoRS->Close();
|
|
strSelect.Format( _T("delete from smsdy where Type='%d'") , lDYID );
|
|
m_pAdoRS->Open(strSelect);
|
|
m_pAdoRS->Close();
|
|
|
|
m_wndType.DeleteItem( lItem );
|
|
|
|
|
|
}
|
|
|
|
void DLG_SmsDY::OnClose()
|
|
{
|
|
m_bRefresh2 = true; //ΪÁ˲»Ë¢ÐÂ
|
|
|
|
CDialog::OnClose();
|
|
}
|
|
|
|
void DLG_SmsDY::OnDestroy()
|
|
{
|
|
m_bRefresh2 = true; //ΪÁ˲»Ë¢ÐÂ
|
|
|
|
CDialog::OnDestroy();
|
|
|
|
}
|