CorpSms/DLG_SmsDY.cpp
2025-02-27 16:58:16 +08:00

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