SmsManager/C_Commend.cpp
2025-01-14 10:46:18 +08:00

800 lines
19 KiB
C++
Raw 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.

// C_Commend.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "C_Commend.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CC_Commend dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_BBS_Send.h"
//#include "DLG_C_Commend_Modify.h"
CC_Commend::CC_Commend(CWnd* pParent /*=NULL*/)
: CDialog(CC_Commend::IDD, pParent)
{
//{{AFX_DATA_INIT(CC_Commend)
m_tBegin = COleDateTime::GetCurrentTime();
m_tEnd = COleDateTime::GetCurrentTime();
m_lCorp = -1;
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_pCommend_Status = false;
}
void CC_Commend::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CC_Commend)
DDX_Control(pDX, IDC_COMMEND_TYPE, m_L_Type);
DDX_Control(pDX, IDC_COMMEND_CORP, m_L_Corp);
DDX_Control(pDX, IDC_COMMEND_CORPID, m_E_CorpID);
DDX_Control(pDX, IDC_COMMEND_S1, m_S_S1);
DDX_Control(pDX, IDC_COMMEND_LIST, m_wndList);
DDX_DateTimeCtrl(pDX, IDC_COMMEND_TBEGIN, m_tBegin);
DDX_DateTimeCtrl(pDX, IDC_COMMEND_TEND, m_tEnd);
DDX_CBIndex(pDX, IDC_COMMEND_CORP, m_lCorp);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CC_Commend, CDialog)
//{{AFX_MSG_MAP(CC_Commend)
ON_WM_SIZE()
ON_NOTIFY(NM_DBLCLK, IDC_COMMEND_LIST, OnDblclkYwyList)
ON_NOTIFY(NM_RCLICK, IDC_COMMEND_LIST, OnRclickYwyList)
ON_NOTIFY(LVN_KEYDOWN, IDC_COMMEND_LIST, OnKeydownYwyList)
ON_BN_CLICKED(IDC_COMMEND_QUERY, OnCommendQuery)
ON_BN_CLICKED(IDC_COMMEND_QUERY2, OnCommendQuery2)
ON_CBN_SELCHANGE(IDC_COMMEND_TYPE, OnSelchangeCommendType)
//}}AFX_MSG_MAP
//ON_COMMAND( MENU_COMMEND_ADD , On_User_Add)
ON_COMMAND( MENU_COMMEND_SEE , On_User_See)
ON_COMMAND( MENU_COMMEND_STATUS , On_User_Status)
ON_COMMAND( MENU_COMMEND_REMSG , On_User_ReMsg )
ON_COMMAND( MENU_COMMEND_REFRESH , On_User_Refresh)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CC_Commend message handlers
BOOL CC_Commend::RefreshInfo()
{
m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0);
m_pMainFrame->SendFrame(SMSFUNC_YWY_NAME,NULL,0); //ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
return true;
}
void CC_Commend::Close()
{
Close_Commend();
Close_YWY();
Close_Corp();
}
BOOL CC_Commend::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CC_Commend::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
void CC_Commend::SetLockItem(long lItem, BOOL bLock)
{
if ( bLock )
m_wndList.SetIconIndex( lItem , 1 );
else
m_wndList.SetIconIndex( lItem , 0 );
}
long CC_Commend::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
BOOL CC_Commend::isLockItem(long lItem, BOOL bShowWarning)
{
BOOL b = (m_wndList.GetIconIndex(lItem) == 1);
if ( b && bShowWarning )
{
MessageBox( _T("<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD>ٲ<EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONINFORMATION );
}
return b;
}
BOOL CC_Commend::ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame)
{
//ȡ<><C8A1><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>Ϣ
if (pHead->lFuncType == SMSFUNC_GETCOMMEND)
{
m_bRefresh = true; //<2F>Ѿ<EFBFBD>ˢ<EFBFBD>¹<EFBFBD>
ANS_GetCommend * pCommend = (ANS_GetCommend *)pFrame;
ANS_GetCommendData * pData = (ANS_GetCommendData *)(pFrame+sizeof(ANS_GetCommend));
this->Close_Commend(); //<2F>ر<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
for ( int i=0;i<pCommend->lCount;i++ )
{
ANS_GetCommendData * pNewData = new ANS_GetCommendData;
*pNewData = *pData;
POSITION pos = m_Commend.AddTail(pNewData);
pData ++;
}
ReShowUser();
return true;
}
if (pHead->lFuncType == SMSFUNC_COMMEND_STATUS)
{
RefreshInfo(); //<2F><><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>
return true;
}
if ( pHead->lFuncType == SMSFUNC_COMMEND_GETVIPINT )
{
ANS_Commend_GetVipInt * pCommend_GetVipInt = (ANS_Commend_GetVipInt *)pFrame;
if ( m_pCommend_Status )
m_pCommend_Status->SetCommend_VipInt(*pCommend_GetVipInt);
return true;
}
/*
//<2F>޸Ĺ<DEB8><C4B9><EFBFBD>Ա<EFBFBD><D4B1>Ϣ
if (pHead->lFuncType == SMSFUNC_COMMEND_MODIFY)
{
ANS_Commend_Modify * pModify = (ANS_Commend_Modify *)pFrame;
ANS_GetCommendData * pData = (ANS_GetCommendData *)(pFrame+sizeof(ANS_Commend_Modify));
SetLockItem( pModify->lItem , false ); //<2F><><EFBFBD><EFBFBD>
if ( pModify->lCount == 1 ) //<2F><><EFBFBD><EFBFBD><31><CAB1>ʾ<EFBFBD>޸ijɹ<C4B3>
{
POSITION pos = (POSITION)m_wndList.GetItemData(pModify->lItem);
ANS_GetCommendData * pData2 = m_Commend.GetNext( pos );
if ( pData2 )
{
*pData2 = *pData; //ȡ<><C8A1><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
long lTemp11=1;
switch(pData->lCommendType)
{
case 0:
m_wndList.SetItemText(pModify->lItem,lTemp11++,_T("<22>ƶ<EFBFBD><C6B6>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>"));
break;
case 1:
m_wndList.SetItemText(pModify->lItem,lTemp11++,_T("<22><><EFBFBD>ſͻ<C5BF><CDBB><EFBFBD><EFBFBD><EFBFBD>"));
break;
case 2:
m_wndList.SetItemText(pModify->lItem,lTemp11++,_T("<22><>ͨ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>"));
break;
case 3:
m_wndList.SetItemText(pModify->lItem,lTemp11++,_T("<22><EFBFBD><E8B1B8>Ӧ<EFBFBD><D3A6>"));
break;
case 4:
m_wndList.SetItemText(pModify->lItem,lTemp11++,_T("<22><><EFBFBD><EFBFBD><EFBFBD>׿ͻ<D7BF>"));
break;
case 5:
default:
m_wndList.SetItemText(pModify->lItem,lTemp11++,_T("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
break;
}
m_wndList.SetItemText(pModify->lItem,lTemp11++,pData->szName);
m_wndList.SetItemText(pModify->lItem,lTemp11++,pData->szLTD);
m_wndList.SetItemText(pModify->lItem,lTemp11++,pData->szBranch);
m_wndList.SetItemText(pModify->lItem,lTemp11++,pData->szTel);
m_wndList.SetItemText(pModify->lItem,lTemp11++,pData->szMobile);
}
}
return true;
}
//<2F><><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD>Ա
if (pHead->lFuncType == SMSFUNC_COMMEND_ADD)
{
ANS_Commend_Add * pAdd = (ANS_Commend_Add *)pFrame;
ANS_GetCommendData * pData = (ANS_GetCommendData *)(pFrame+sizeof(ANS_Commend_Add));
if ( pAdd->lCount == 1 ) //<2F><><EFBFBD><EFBFBD><31><CAB1>ʾ<EFBFBD>޸ijɹ<C4B3>
{
long lCount = m_wndList.GetItemCount();
TCHAR Buf[32];
_stprintf( Buf, _T("%d") , lCount +1 );
//<2F><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
m_wndList.InsertItem( lCount , Buf , 0 );
long lTemp11=1;
switch(pData->lCommendType)
{
case 0:
m_wndList.SetItemText(lCount,lTemp11++,_T("<22>ƶ<EFBFBD><C6B6>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>"));
break;
case 1:
m_wndList.SetItemText(lCount,lTemp11++,_T("<22><><EFBFBD>ſͻ<C5BF><CDBB><EFBFBD><EFBFBD><EFBFBD>"));
break;
case 2:
m_wndList.SetItemText(lCount,lTemp11++,_T("<22><>ͨ<EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD>"));
break;
case 3:
m_wndList.SetItemText(lCount,lTemp11++,_T("<22><EFBFBD><E8B1B8>Ӧ<EFBFBD><D3A6>"));
break;
case 4:
m_wndList.SetItemText(lCount,lTemp11++,_T("<22><><EFBFBD><EFBFBD><EFBFBD>׿ͻ<D7BF>"));
break;
case 5:
default:
m_wndList.SetItemText(lCount,lTemp11++,_T("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
break;
}
m_wndList.SetItemText(lCount,lTemp11++,pData->szName);
m_wndList.SetItemText(lCount,lTemp11++,pData->szLTD);
m_wndList.SetItemText(lCount,lTemp11++,pData->szBranch);
m_wndList.SetItemText(lCount,lTemp11++,pData->szTel);
m_wndList.SetItemText(lCount,lTemp11++,pData->szMobile);
ANS_GetCommendData * pData2 = new ANS_GetCommendData;
*pData2 = *pData;
POSITION pos = m_Commend.AddTail( pData2 );
m_wndList.SetItemData( lCount, (DWORD)pos );
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5>û<EFBFBD>ID<49><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>
if ( pData->lCommendID <= 0 )
{
RefreshInfo();
}
}
return true;
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա
if (pHead->lFuncType == SMSFUNC_COMMEND_DEL)
{
ANS_Commend_Del * pDel = (ANS_Commend_Del *)pFrame;
ANS_Commend_DelData * pDelData = (ANS_Commend_DelData *)(pFrame+sizeof(ANS_Commend_Del));
POSITION pos,pos2;
ANS_GetCommendData * pCommendData;
for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
{
if ( pDelData[i].lUserID ) //ɾ<><C9BE><EFBFBD>ɹ<EFBFBD>
{
pos = (POSITION)m_wndList.GetItemData( pDelData[i].lItem );
pos2 = pos;
pCommendData = m_Commend.GetNext( pos );
if ( pCommendData->lCommendID == pDelData[i].lUserID ) //ID<49><44>ͬ<EFBFBD>IJſ<C4B2>ɾ<EFBFBD><C9BE>
{
delete pCommendData; //<2F><>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_Commend.RemoveAt(pos2); //<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE>
m_wndList.DeleteItem(pDelData[i].lItem); //<2F><>ListCtrl<72><6C>ɾ<EFBFBD><C9BE>
}
}
}
return true;
}
*/
return false;
}
void CC_Commend::ShowRMenu()
{
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
POSITION pos =0;
ANS_GetCommendData * pData=NULL;
long lItem = this->GetCurrentSelected();
if ( lItem >= 0 )
{
bLock = isLockItem( lItem , false ); //ȡ<><C8A1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pos = (POSITION)m_wndList.GetItemData(lItem);
pData = m_Commend.GetNext( pos );
}
//<2F>
if ( lItem >=0 && !bLock)
{
menu.AppendMenu(MF_STRING , MENU_COMMEND_SEE, _T(" <20><> <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_COMMEND_SEE , _T(" <20><> <20><> ") );
}
#ifdef SMSMANAGER_KF
if ( lItem >=0 && !bLock && pData && pData->lStatus==0 )
#else
if ( lItem >=0 && !bLock && pData && pData->lStatus!=2 && pData->lStatus!=3 )
#endif
{
menu.AppendMenu(MF_STRING , MENU_COMMEND_STATUS, _T(" <20><><EFBFBD><EFBFBD>״̬ ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_COMMEND_STATUS , _T(" <20><><EFBFBD><EFBFBD>״̬ ") );
}
if ( lItem >=0)
{
menu.AppendMenu(MF_STRING , MENU_COMMEND_REMSG, _T(" <20>ظ<EFBFBD><D8B8><EFBFBD>Ϣ ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_COMMEND_REMSG , _T(" <20>ظ<EFBFBD><D8B8><EFBFBD>Ϣ ") );
}
menu.AppendMenu(MF_SEPARATOR );
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING , MENU_COMMEND_REFRESH, _T(" ˢ <20><> ") );
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
BOOL CC_Commend::OnInitDialog()
{
CDialog::OnInitDialog();
//ȡ<>ù<EFBFBD><C3B9>ò<EFBFBD><C3B2><EFBFBD>
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
//<2F><>ʼ<EFBFBD><CABC>List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_MANAGER) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T(" <20><><EFBFBD><EFBFBD>,50;<3B><>ҵID,60; <20><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>,200;<3B>Ƽ<EFBFBD><C6BC><EFBFBD>,70; <20><> <20><>,70; ״̬,70; <20><><EFBFBD><EFBFBD>,50;<3B>ύʱ<E1BDBB><CAB1>,90; <20>¼<EFBFBD>,250;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,70;<3B>ɽ<EFBFBD>ID,70;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
COleDateTime t = COleDateTime::GetCurrentTime();
COleDateTimeSpan tSpan2(30,0,0,0);
t=t-tSpan2;
m_tBegin.SetDate( t.GetYear(),t.GetMonth(),1 ); //<2F><>ʼ
m_tEnd = COleDateTime::GetCurrentTime();//<2F><><EFBFBD><EFBFBD>
UpdateData(false);
m_L_Type.SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CC_Commend::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
CRect rect;
m_S_S1.GetWindowRect(&rect);
m_wndList.MoveWindow( 0 , 0+rect.Height()+5 , cx,cy-rect.Height()-5);
}
}
void CC_Commend::OnDblclkYwyList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_See();
}
void CC_Commend::OnRclickYwyList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CC_Commend::OnKeydownYwyList(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CC_Commend::On_User_See()
{
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_GetCommendData * pData = m_Commend.GetNext( pos );
if (pData)
{
DLG_C_Commend_Modify dlg(this);
dlg.SetParam( *pData);
dlg.DoModal();
}
}
void CC_Commend::On_User_ReMsg()
{
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_GetCommendData * pData = m_Commend.GetNext( pos );
if (pData)
{
long lIcon=0;
ANS_BBS_SeeData See={0};
See.lBBSID = 0;
See.lSCorpID = 0; //<2F><><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>
See.lSUserID = m_pMainFrame->m_lUserID; //<2F><><EFBFBD><EFBFBD>ԱID
_tcscpy(See.szSCorpName,_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա"));
_tcscpy(See.szSLoginName , m_pMainFrame->m_Setup.szUser );
See.lRCorpID = pData->lCorpID;
See.lRUserID = pData->lUserID;
DLG_BBS_Send dlg(this);
dlg.SetParam( See , lIcon+1 );
if ( dlg.DoModal() == IDOK )
{
long lSize = sizeof(REQ_BBS_Send)+sizeof(ANS_BBS_SeeData);
BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
REQ_BBS_Send * pModify = (REQ_BBS_Send *)pModifyData; //ͷ
ANS_BBS_SeeData * pSPData = (ANS_BBS_SeeData *)(pModifyData+sizeof(REQ_BBS_Send));
*pSPData = dlg.GetParam();
pModify->lItem = lItem;
pModify->lCount = 1;
m_pMainFrame->SendFrame( SMSFUNC_BBS_SEND , pModifyData , lSize );
}
}
}
void CC_Commend::On_User_Status()
{
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_GetCommendData * pData = m_Commend.GetNext( pos );
if (pData)
{
DLG_C_COmmend_Status dlg(this);
dlg.SetParam( *pData,&m_YWY);
m_pCommend_Status = &dlg;
if ( dlg.DoModal() == IDOK )
{
ANS_GetCommendData Data = dlg.GetParam();
if ( Data.lStatus> pData->lStatus )
{
REQ_Commend_Status * pCommend = new REQ_Commend_Status;
memset(pCommend , 0 , sizeof(REQ_Commend_Status));
pCommend->lCommendID = pData->lCommendID;
pCommend->lCommendType = pData->lCommendType;
pCommend->lCorpID = pData->lCorpID;
pCommend->lUserID = pData->lUserID;
pCommend->lOldStatus=pData->lStatus;
pCommend->lStatus=Data.lStatus;
pCommend->lVipInt = Data.lVipInt;
pCommend->lTJ_CorpID = Data.lTJ_CorpID;
pCommend->lProcess_YWYID = Data.lProcess_YWYID;
_tcscpy(pCommend->szProcess_YWY , Data.szProcess_YWY);
_tcscpy(pCommend->szProcess_BZ , Data.szMobset_BZ );
m_pMainFrame->SendFrame( SMSFUNC_COMMEND_STATUS , (BYTE*)pCommend , sizeof(REQ_Commend_Status) );
}
}
m_pCommend_Status = NULL;
}
}
void CC_Commend::On_User_Refresh()
{
OnCommendQuery();
}
BOOL CC_Commend::FindCommendName(const TCHAR *pName, POSITION exPos)
{
POSITION pos = m_Commend.GetHeadPosition();
POSITION pos2;
while (pos)
{
pos2 = pos;
ANS_GetCommendData * pData = m_Commend.GetNext( pos );
if ( pos2 != exPos )
{
if ( !_tcscmp( pData->szName , pName ) )
return true;
}
}
return false;
}
void CC_Commend::Close_Commend()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
while (!m_Commend.IsEmpty())
{
ANS_GetCommendData * pCommend = m_Commend.GetHead();
m_Commend.RemoveHead();
delete pCommend;
}
}
void CC_Commend::Close_YWY()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
while (!m_YWY.IsEmpty())
{
ANS_YWY_NameData * pYWY = m_YWY.GetHead();
m_YWY.RemoveHead();
delete pYWY;
}
}
BOOL CC_Commend::ProcessSocket(Socket_Head *pHead)
{
CString strTemp;
//ȡ<><C8A1>ҵ<EFBFBD><D2B5>Ϣ
if (pHead->lFuncType == SMSFUNC_CORP_NAME)
{
m_bRefresh = true; //<2F>Ѿ<EFBFBD>ˢ<EFBFBD>¹<EFBFBD>
ANS_Corp_Name * pCorp = (ANS_Corp_Name *)pHead->pFrame;
ANS_Corp_NameData * pData = (ANS_Corp_NameData *)(pHead->pFrame+sizeof(ANS_Corp_Name));
m_L_Corp.ResetContent(); //ɾ<><C9BE>ԭ<EFBFBD><D4AD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ҵ
m_L_Corp.AddString( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ") );
this->Close_Corp(); //<2F>ر<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
for ( int i=0;i<pCorp->lCount;i++ )
{
ANS_Corp_NameData * pNewData = new ANS_Corp_NameData;
*pNewData = *pData;
POSITION pos = m_Corp.AddTail(pNewData);
strTemp.Format( _T("%d-%s"),pData->lCorpID,pData->szCorpName);
long lItem = m_L_Corp.AddString( strTemp );
m_L_Corp.SetItemData( lItem , (DWORD)pos);
pData ++;
}
m_L_Corp.SetCurSel(0);
return true;
}
//ȡҵ<C8A1><D2B5>Ա<EFBFBD><D4B1>Ϣ
if (pHead->lFuncType == SMSFUNC_YWY_NAME)
{
ANS_YWY_Name * pYWY = (ANS_YWY_Name *)pHead->pFrame;
ANS_YWY_NameData * pData = (ANS_YWY_NameData *)(pHead->pFrame+sizeof(ANS_YWY_Name));
this->Close_YWY();
for ( int i=0;i<pYWY->lCount;i++ )
{
ANS_YWY_NameData * pNewData = new ANS_YWY_NameData;
*pNewData = *pData;
m_YWY.AddTail(pNewData);
pData ++;
}
return true;
}
return false;
}
void CC_Commend::Close_Corp()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
while (!m_Corp.IsEmpty())
{
ANS_Corp_NameData * pData = m_Corp.GetHead();
m_Corp.RemoveHead();
delete pData;
}
}
void CC_Commend::OnCommendQuery()
{
UpdateData(true);
if ( m_tEnd < m_tBegin )
{
MessageBox( _T("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
return ;
}
REQ_GetCommend * pCommend = new REQ_GetCommend;
memset(pCommend,0,sizeof(REQ_GetCommend));
pCommend->lCorpID = -1; //Ĭ<><C4AC>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ
if ( m_lCorp >= 0 )
{
if ( m_lCorp == 0 ) //ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ
{
pCommend->lCorpID = -1;
}
else
{
POSITION pos = (POSITION)m_L_Corp.GetItemData(m_lCorp);
if ( pos>0 && pos!=(POSITION)0xffffffff)
{
POSITION pos2 = pos;
ANS_Corp_NameData * pData = m_Corp.GetNext( pos );
if (pData)
{
pCommend->lCorpID = pData->lCorpID;
}
else
{
return;
}
}
}
}
m_tBegin.GetAsSystemTime( pCommend->tBegin );
m_tEnd.GetAsSystemTime( pCommend->tEnd );
m_pMainFrame->SendFrame( SMSFUNC_GETCOMMEND , (BYTE*)pCommend , sizeof(REQ_GetCommend) );
}
void CC_Commend::OnCommendQuery2()
{
CString strTemp;
CString strFind;
m_E_CorpID.GetWindowText(strFind);
if ( strFind.GetLength()<=0 )
return ;
long lSel = m_L_Corp.GetCurSel();
long lCount = m_L_Corp.GetCount();
for ( int i=lSel+1 ; i<lCount ; i++ )
{
m_L_Corp.GetLBText(i,strTemp);
if ( strTemp.Find(strFind)>=0 )
{
m_L_Corp.SetCurSel(i);
return ;
}
}
for ( i=0 ; i<lSel ; i++ )
{
m_L_Corp.GetLBText(i,strTemp);
if ( strTemp.Find(strFind)>=0 )
{
m_L_Corp.SetCurSel(i);
return ;
}
}
}
void CC_Commend::ReShowUser()
{
long lType = m_L_Type.GetCurSel();
m_wndList.DeleteAllItems(); //ɾ<><C9BE>ԭ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
CString str;
TCHAR Buf[32]={0};
POSITION pos = m_Commend.GetHeadPosition();
POSITION pos2=0;
int i=0;
while ( pos )
{
pos2 = pos;
ANS_GetCommendData * pData = m_Commend.GetNext(pos);
if ( pData )
{
BOOL bShow=true;
if ( lType == 1 ) //<2F>Ƽ<EFBFBD><C6BC>û<EFBFBD>
{
if ( pData->lCommendType != 0 )
bShow = false;
}
if ( lType == 2 ) //<2F>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>
{
if ( pData->lCommendType != 1 )
bShow = false;
}
if ( lType == 3 ) //<2F>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>
{
if ( pData->lCommendType != 0 || pData->lTJ_CorpID<=0 )
bShow = false;
}
if ( lType == 4 ) //δ<><CEB4><EFBFBD><EFBFBD>
{
if ( pData->lStatus!=0 )
bShow = false;
}
if(!bShow)
continue;
//m_wndList.SetHeadings(_T(" <20><><EFBFBD><EFBFBD>,50;<3B><>ҵID,60;<3B>Ƽ<EFBFBD><C6BC><EFBFBD>,70; <20><> <20><>,70; ״̬,70; <20><><EFBFBD><EFBFBD>,50;<3B>ύʱ<E1BDBB><CAB1>,90; <20>¼<EFBFBD>,250;"));
_stprintf(Buf , _T("%d") , i+1 );
m_wndList.InsertItem( i , Buf , 0 );
m_wndList.SetItemData( i , (DWORD)pos2 ); //<2F><>Pos
long lTemp11=1;
str.Format(_T("%d") , pData->lCorpID );
m_wndList.SetItemText(i, lTemp11++ , str);
m_wndList.SetItemText(i, lTemp11++ , pData->szCorpName);
m_wndList.SetItemText(i, lTemp11++ , pData->szLoginName);
switch(pData->lCommendType)
{
case 1:
str =_T("<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>Ʒ");
break;
default:
str =_T("<EFBFBD>Ƽ<EFBFBD><EFBFBD>û<EFBFBD>");
break;
}
m_wndList.SetItemText(i, lTemp11++ , str);
switch(pData->lStatus)
{
case 0:
default:
str =_T("<EFBFBD><EFBFBD>ɹ<EFBFBD>");
break;
case 1:
str =_T("<EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><EFBFBD><EFBFBD>");
break;
case 2:
str =_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>");
break;
case 3:
str =_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>");
break;
}
m_wndList.SetItemText(i, lTemp11++ , str);
str.Format( _T("%d") , pData->lVipInt );
m_wndList.SetItemText(i, lTemp11++ , str);
str.Format( _T("%04d.%02d.%02d") , pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay );
m_wndList.SetItemText(i, lTemp11++ , str);
m_wndList.SetItemText(i, lTemp11++ , pData->szTJ_CorpName);
m_wndList.SetItemText(i, lTemp11++ , pData->szProcessUser);
str.Format( _T("%d") , pData->lTJ_CorpID );
m_wndList.SetItemText(i, lTemp11++ , str);
pData ++;
i++;
}
}
}
void CC_Commend::OnSelchangeCommendType()
{
ReShowUser();
}