CorpSms/FMmsTask.cpp

711 lines
17 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// FMmsTask.cpp : implementation file
//
#include "stdafx.h"
#include "corpsms.h"
#include "FMmsTask.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFMmsTask dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
//#include "DLG_MmsDSSee.h"
CFMmsTask::CFMmsTask(CWnd* pParent /*=NULL*/)
: CDialog(CFMmsTask::IDD, pParent)
{
//{{AFX_DATA_INIT(CFMmsTask)
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_bShowToday = true;
m_bShowProcess = false;
}
void CFMmsTask::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFMmsTask)
DDX_Control(pDX, IDC_MMSTASK_LIST, m_wndList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFMmsTask, CDialog)
//{{AFX_MSG_MAP(CFMmsTask)
ON_WM_SIZE()
ON_NOTIFY(NM_DBLCLK, IDC_MMSTASK_LIST, OnDblclkSmsdsList)
ON_NOTIFY(NM_RCLICK, IDC_MMSTASK_LIST, OnRclickSmsdsList)
ON_NOTIFY(LVN_KEYDOWN, IDC_MMSTASK_LIST, OnKeydownSmsdsList)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
ON_COMMAND(MENU_MMSTASK_SEE , On_DS_See )
ON_COMMAND(MENU_MMSTASK_STOP , On_DS_Stop )
ON_COMMAND(MENU_MMSTASK_RESEND , On_DS_ReSend )
ON_COMMAND(MENU_MMSTASK_REFRESH , On_DS_Refresh )
ON_COMMAND(MENU_MMSTASK_PASS , On_DS_Pass )
ON_COMMAND(MENU_MMSTASK_NOPASS , On_DS_NoPass )
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFMmsTask message handlers
BOOL CFMmsTask::OnInitDialog()
{
CDialog::OnInitDialog();
//È¡µÃ¹²ÓòÎÊý
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
m_AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection );
//³õʼ»¯List
m_Image.Create(16,16,ILC_COLOR32|ILC_MASK,5,5);
// m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SMSDF) );
// m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_MMSDF) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_MMSYF) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_MMSSB) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_MMS_SEND) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("ÐòºÅ,50;״̬,80;Ìá½»Óû§,90; ºÅÂëÊý,70;ÒÑ·¢ºÅÂë,70;Ìύʱ¼ä,150;¶¨Ê±Ê±¼ä,130; ²ÊÐűêÌâ,150;²ÊÐÅ´óС,80;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
//m_wndList.SetBkColor( RGB(237,191,175) );
//m_wndList.SetTextBkColor( RGB(237,191,175) );
m_bInit = true;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CFMmsTask::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
m_wndList.MoveWindow( 0 , 0 , cx,cy);
}
}
BOOL CFMmsTask::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CFMmsTask::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CFMmsTask::RefreshInfo()
{
m_wndList.ShowWindow( SW_HIDE ); //ΪÁ˼ӿìÏÔʾËÙ¶È
m_wndList.DeleteAllItems();
m_wndList.ShowWindow( SW_SHOW ); //ΪÁ˼ӿìÏÔʾËÙ¶È
REQ_PLTaskMms_See * pSee = new REQ_PLTaskMms_See;
memset(pSee , 0 , sizeof(REQ_PLTaskMms_See));
pSee->lCorpID = m_pMainFrame->m_lCorpID;
//pSee->lUserID = m_pMainFrame->m_lUserID;
pSee->lStatus = -1;
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_SEE , (BYTE*)pSee , sizeof( REQ_PLTaskMms_See ) ); //·¢ËÍÈ¡×ÊÁϵÄÇëÇó
/*
m_bShowProcess = true;
if ( m_DlgProcess.DoModal() != IDOK ) //ÏÔʾ½ø¶ÈÀ¸
{
//È¡×ÊÁϲ»³É¹¦
return false;
}
m_bShowProcess = false;
*/
return true;
}
long CFMmsTask::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
BOOL CFMmsTask::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
{
m_bRefresh = true; //ÒÑˢйý
CString str;
if ( pHead->lFuncType == SMSFUNC_PLTASKMMS_SEE) //ÕýÔÚÈ¡Óû§ÐÅÏ¢
{
ANS_PLTaskMms_See * pSee = (ANS_PLTaskMms_See *)pFrame;
ANS_PLTaskMms_SeeData * pSeeData = (ANS_PLTaskMms_SeeData *)(pFrame+sizeof(ANS_PLTaskMms_See));
TCHAR szBuf[32]={0};
CString strTemp;
m_wndList.DeleteAllItems();
for ( int i = 0 ; i< pSee->lCount ; i++ )
{
//m_wndList.SetHeadings(_T("ÐòºÅ,50;״̬,60;Ìá½»Óû§,80; ºÅÂëÊý,60;ÒÑ·¢ºÅÂë,60;Ìύʱ¼ä,150;¶¨Ê±Ê±¼ä,130;¶ÌÐÅÄÚÈÝ,200;"));
long lCount = m_wndList.GetItemCount();
long lIcon=-1;
switch(pSeeData->lStatus)
{
case 0:
strTemp = _T("ÕýÔÚÉÏ´«");
break;
case 1:
strTemp = _T("´ý·¢ËÍ");
lIcon = 0;
break;
case 2:
strTemp = _T("¹ÜÀíÔ±ÉóºË");
lIcon = 0;
break;
case 3:
strTemp = _T("ÉóºËʧ°Ü");
lIcon = 2;
break;
case 4:
strTemp = _T("ÕýÔÚ·¢ËÍ");
lIcon = 1;
break;
case 5:
strTemp = _T("Óà¶î²»×ã");
lIcon = 2;
break;
case 6:
strTemp = _T("Ç¿ÖÆÍ£Ö¹");
lIcon = 2;
break;
case 7:
strTemp = _T("·¢ËÍÍê³É");
lIcon = 3;
break;
case 8:
strTemp = _T("ÄÚ²¿ÉóºË");
lIcon = 0;
break;
case 9:
strTemp = _T("ÄÚ²¿ÉóºË"); //´ËģʽÏ£¬Óû§ÉóºËºó£¬»¹ÐèÒª¹ÜÀíÔ±Éó
lIcon = 0;
break;
case 10:
strTemp = _T("ÄÚ²¿ÉóºËʧ°Ü");
lIcon = 2;
break;
default:
strTemp = _T("δ֪״̬");
lIcon = -1;
break;
}
m_wndList.InsertItem(lCount,_itot(lCount+1,szBuf,10),lIcon);
long lTemp=1;
////0-ÕýÔÚÉÏ´«£¬1-´ý·¢ËÍ£¬2-ÉóºË£¬3-ÉóºËʧ°Ü,4-ÕýÔÚ·¢ËÍ£¬5-Óà¶î²»×㣬6-Ç¿ÖÆÍ£Ö¹,7-·¢ËÍÍê³É
m_wndList.SetItemText(lCount,lTemp++,strTemp);
m_wndList.SetItemText(lCount,lTemp++,pSeeData->szCreateUser);
strTemp.Format(_T("%d") , pSeeData->lMobileCount);
m_wndList.SetItemText(lCount,lTemp++,strTemp);
strTemp.Format(_T("%d") , pSeeData->lYFMobileCount);
m_wndList.SetItemText(lCount,lTemp++,strTemp);
strTemp.Format(_T("%04d.%02d.%02d %02d:%02d") , pSeeData->tCreateTime.wYear,pSeeData->tCreateTime.wMonth,pSeeData->tCreateTime.wDay,pSeeData->tCreateTime.wHour,pSeeData->tCreateTime.wMinute);
m_wndList.SetItemText(lCount,lTemp++,strTemp);
COleDateTime t(pSeeData->tTimer);
if ( t.GetStatus() == COleDateTime::valid )
{
strTemp.Format(_T("%04d.%02d.%02d %02d:%02d") , pSeeData->tTimer.wYear,pSeeData->tTimer.wMonth,pSeeData->tTimer.wDay,pSeeData->tTimer.wHour,pSeeData->tTimer.wMinute);
}
else
{
strTemp =_T(" ");
}
m_wndList.SetItemText(lCount,lTemp++,strTemp);
m_wndList.SetItemText(lCount,lTemp++,pSeeData->szTitle);
strTemp.Format(_T("%.1fk") , (double)pSeeData->lmmSize/1024.0f);
m_wndList.SetItemText(lCount,lTemp++,strTemp);
ANS_PLTaskMms_SeeData * pNewData = new ANS_PLTaskMms_SeeData;
*pNewData = *pSeeData;
POSITION pos = m_PLTask.AddTail(pNewData);
m_wndList.SetItemData(lCount,(DWORD_PTR)pos);
pSeeData++;
}
return true;
}
if ( pHead->lFuncType == SMSFUNC_PLTASKMMS_MODIFY) //ÐÞ¸ÄÓû§
{
ANS_PLTaskMms_Modify * pSee = (ANS_PLTaskMms_Modify *)pFrame;
if ( pSee->bOK )
{
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(pSee->lItem) >0 )
{
pSeeData = m_PLTask.GetAt((POSITION)m_wndList.GetItemData(pSee->lItem));
}
if ( pSeeData && pSeeData->lPLTaskMmsID == pSee->lPLTaskMmsID )
{
CString strTemp;
long lIcon=-1;
switch(pSee->lStatus)
{
case 0:
strTemp = _T("ÕýÔÚÉÏ´«");
break;
case 1:
strTemp = _T("´ý·¢ËÍ");
lIcon = 0;
break;
case 2:
strTemp = _T("¹ÜÀíÔ±ÉóºË");
lIcon = 0;
break;
case 3:
strTemp = _T("ÉóºËʧ°Ü");
lIcon = 2;
break;
case 4:
strTemp = _T("ÕýÔÚ·¢ËÍ");
lIcon = 1;
break;
case 5:
strTemp = _T("Óà¶î²»×ã");
lIcon = 2;
break;
case 6:
strTemp = _T("Ç¿ÖÆÍ£Ö¹");
lIcon = 2;
break;
case 7:
strTemp = _T("·¢ËÍÍê³É");
lIcon = 3;
break;
case 8:
strTemp = _T("ÄÚ²¿ÉóºË");
lIcon = 0;
break;
case 9:
strTemp = _T("ÄÚ²¿ÉóºË"); //´ËģʽÏ£¬Óû§ÉóºËºó£¬»¹ÐèÒª¹ÜÀíÔ±Éó
lIcon = 0;
break;
case 10:
strTemp = _T("ÄÚ²¿ÉóºËʧ°Ü");
lIcon = 2;
break;
default:
strTemp = _T("δ֪״̬");
lIcon = -1;
break;
}
m_wndList.SetItemText(pSee->lItem , 1 , strTemp );
}
}
else
{
str.Format( _T("ÐÞ¸ÄÈÎÎñ״̬ʧ°Ü£º%s") , pSee->szErrMsg );
MessageBox(str , _T("´íÎó") , MB_ICONWARNING );
}
return true;
}
//ɾ³ýÓû§
if (pHead->lFuncType == SMSFUNC_PLFILE_DEL)
{
/*
ANS_PLFile_Del * pDel = (ANS_PLFile_Del *)pFrame;
ANS_PLFile_DelData * pDelData = (ANS_PLFile_DelData *)(pFrame+sizeof(ANS_PLFile_Del));
POSITION pos,pos2;
ANS_PLTaskMms_SeeData * pPLFileData;
for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
{
if ( pDelData[i].lPLFileID ) //ɾ³ý³É¹¦
{
pos = (POSITION)m_wndList.GetItemData( pDelData[i].lItem );
pos2 = pos;
pPLFileData = m_PLFile.GetNext( pos );
if ( pPLFileData->lPLFileID == pDelData[i].lPLFileID ) //IDÏàͬµÄ²Å¿Éɾ³ý
{
delete pPLFileData; //ÏÈɾ³ýÊý¾Ý
m_PLFile.RemoveAt(pos2); //´ÓÁбíÖÐɾ³ý
m_wndList.DeleteItem(pDelData[i].lItem); //´ÓListCtrlÖÐɾ³ý
}
}
}
*/
return true;
}
return false;
}
void CFMmsTask::SetToday(BOOL bToday)
{
if ( m_bShowToday != bToday )
{
m_bShowToday = bToday;
m_bRefresh = false;
}
}
void CFMmsTask::OnDblclkSmsdsList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_DS_See();
}
void CFMmsTask::OnRclickSmsdsList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CFMmsTask::OnKeydownSmsdsList(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
*pResult = 0;
if ( pLVKeyDow->wVKey == VK_DELETE )
{
On_DS_Del();
}
if ( pLVKeyDow->wVKey == VK_SPACE)
{
On_DS_See();
}
if ( pLVKeyDow->wVKey == 'R' || pLVKeyDow->wVKey == 'r')
{
On_DS_Refresh();
}
if ( pLVKeyDow->wVKey == 'A' || pLVKeyDow->wVKey == 'a')
{
m_wndList.SelectAllItems();
}
}
void CFMmsTask::OnOK()
{
//CDialog::OnOK();
}
void CFMmsTask::OnCancel()
{
//CDialog::OnCancel();
}
void CFMmsTask::ShowRMenu()
{
CMenu menu;
menu.CreatePopupMenu();
long lItem = this->GetCurrentSelected();
if ( lItem >= 0 )
{
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_PLTask.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( pSeeData )
{
//0-ÕýÔÚÉÏ´«£¬1-´ý·¢ËÍ£¬2-ÉóºË£¬3-ÉóºËʧ°Ü,4-ÕýÔÚ·¢ËÍ£¬5-Óà¶î²»×㣬6-Ç¿ÖÆÍ£Ö¹,7-·¢ËÍÍê³É
switch(pSeeData->lStatus)
{
case 1: //´ý·¢ËÍ
case 2: //ÉóºË
case 4: //ÕýÔÚ·¢ËÍ
case 5: //Óà¶î²»×ã
menu.AppendMenu(MF_STRING , MENU_MMSTASK_STOP , _T(" Ç¿ÖÆÍ£Ö¹ÈÎÎñ ") );
break;
}
if (m_pMainFrame->GetUserPurview(PURVIEW_PL_VERIFY,false))
{
switch(pSeeData->lStatus)
{
case 8: //Óû§ÉóºË1
case 9: //Óû§ÉóºË2
menu.AppendMenu(MF_STRING , MENU_MMSTASK_PASS , _T(" ÉóºËͨ¹ý ") );
menu.AppendMenu(MF_STRING , MENU_MMSTASK_NOPASS , _T(" ÉóºËʧ°Ü ") );
break;
}
}
switch(pSeeData->lStatus)
{
case 5: //Óà¶î²»×ã
case 6: //Ç¿ÖÆÍ£Ö¹
case 7: //ÒÑ·¢ËÍÍê³É
{
BOOL bReSend=true;
if ( pSeeData->lStatus==7 /*|| pSeeData->lStatus==6*/ ) //·¢ËÍÍê³ÉµÄ£¬Èç¹ûÒÑ·¢ÊýÁ¿Ð¡ÓÚÈÎÎñÊýÁ¿£¬ÔÊÐíÖØÆôÈÎÎñ
{
if ( pSeeData->lYFMobileCount >= pSeeData->lMobileCount )
{
bReSend = false;
}
}
if ( bReSend )
{
menu.AppendMenu(MF_STRING , MENU_MMSTASK_RESEND , _T(" ÖØÆôÈÎÎñ ") );
}
}
break;
}
}
}
else
{
//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_DS_SEE , _T(" ²é ¿´ ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_MMSTASK_STOP, _T(" ¸ü¸Ä״̬ ") );
}
menu.AppendMenu(MF_SEPARATOR );
//Ë¢ÐÂ
menu.AppendMenu(MF_STRING , MENU_MMSTASK_REFRESH, _T(" ˢ Р") );
//ÏÔʾ²Ëµ¥
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
void CFMmsTask::On_DS_See()
{
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
CString strRecver = m_wndList.GetItemText(lItem,1);
CString strSubTime = m_wndList.GetItemText(lItem,2);
CString strTimer = m_wndList.GetItemText(lItem,3);
CString strMsg = m_wndList.GetItemText(lItem,4);
/*
DLG_MmsDSSee dlg(this);
dlg.m_strRecver = strRecver;
dlg.m_strSubTime= strSubTime;
dlg.m_strTimer = strTimer;
dlg.m_strMsg = strMsg;
dlg.DoModal();
*/
}
void CFMmsTask::On_DS_Del()
{
long lRet = MessageBox( _T("ȷʵҪɾ³ýÑ¡ÖеļǼÂð£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lCount = m_wndList.GetSelectedCount();
if ( lCount<=0 )
return ;
/*
long lSize = sizeof(REQ_MMSTASK_Del)+sizeof(ANS_MMSTASK_DelData)*lCount;
BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize);
REQ_MMSTASK_Del * pDel = (REQ_MMSTASK_Del *)pDelSend; //Í·
ANS_MMSTASK_DelData * pDelData = (ANS_MMSTASK_DelData *)(pDelSend+sizeof(REQ_MMSTASK_Del));
pDel->lCorpID = m_pMainFrame->m_lCorpID;
pDel->lUserID = m_pMainFrame->m_lUserID;
pDel->lCount = lCount;
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
while(pos)
{
long lItem = m_wndList.GetNextSelectedItem(pos);
long lSendID = m_wndList.GetItemData(lItem);
pDelData->lItem = lItem;
pDelData->lSendID = lSendID;
pDelData ++;
}
m_pMainFrame->SendFrame( SMSFUNC_MMSTASK_DEL , pDelSend , lSize );
*/
}
void CFMmsTask::On_DS_Stop()
{
long lRet = MessageBox( _T("È·ÊµÒªÇ¿ÖÆÍ£Ö¹´ËÈÎÎñÂð£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_PLTask.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskMms_Modify * pModify = new REQ_PLTaskMms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskMms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskMmsID = pSeeData->lPLTaskMmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 6; //Ç¿ÖÆÍ£Ö¹
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskMms_Modify) );
}
void CFMmsTask::On_DS_ReSend()
{
long lRet = MessageBox( _T("È·ÊµÒªÖØÐÂÆô¶¯´ËÈÎÎñÂð£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_PLTask.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskMms_Modify * pModify = new REQ_PLTaskMms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskMms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskMmsID = pSeeData->lPLTaskMmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 1; //ÖØÐÂÆô¶¯
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskMms_Modify) );
}
void CFMmsTask::On_DS_Refresh()
{
RefreshInfo();
}
void CFMmsTask::Close_Data()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_PLTask.IsEmpty())
{
ANS_PLTaskMms_SeeData * pData = m_PLTask.GetHead();
m_PLTask.RemoveHead();
delete pData;
}
}
void CFMmsTask::OnDestroy()
{
Close_Data();
CDialog::OnDestroy();
}
void CFMmsTask::On_DS_Pass()
{
long lRet = MessageBox( _T("´ËÈÎÎñ½«ÉóºËͨ¹ý£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_PLTask.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskMms_Modify * pModify = new REQ_PLTaskMms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskMms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskMmsID = pSeeData->lPLTaskMmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 1; //ÉóºËͨ¹ý£¬ÔÚ·¢ËÍ
if ( pModify->lOldStatus == 9 ) //»¹ÐèÒª¹ÜÀíÔ±ÉóºË
pModify->lStatus = 2; //ÐèÒª¹ÜÀíÔ±ÉóºË
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskMms_Modify) );
}
void CFMmsTask::On_DS_NoPass()
{
long lRet = MessageBox( _T("´ËÈÎÎñ½«ÉóºËʧ°Ü£¿"),_T("ÌáÎÊ"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
if ( lRet != IDYES )
return ;
long lItem = this->GetCurrentSelected();
if ( lItem<0 )
return ;
ANS_PLTaskMms_SeeData * pSeeData = NULL;
if ( m_wndList.GetItemData(lItem) >0 )
{
pSeeData = m_PLTask.GetAt((POSITION)m_wndList.GetItemData(lItem));
}
if ( !pSeeData )
return ;
REQ_PLTaskMms_Modify * pModify = new REQ_PLTaskMms_Modify;
memset(pModify , 0 , sizeof(REQ_PLTaskMms_Modify) );
pModify->lCorpID = pSeeData->lCorpID;
pModify->lUserID = pSeeData->lUserID;
pModify->lPLTaskMmsID = pSeeData->lPLTaskMmsID;
pModify->lItem = lItem;
pModify->lOldStatus = pSeeData->lStatus;
pModify->lStatus = 10; //Óû§ÉóºËʧ°Ü
m_pMainFrame->SendFrame( SMSFUNC_PLTASKMMS_MODIFY , (BYTE*)pModify , sizeof(REQ_PLTaskMms_Modify) );
}