SmsManager/CTDSet.cpp

1010 lines
23 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.

// Back.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "CTDSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTDSet dialog
// CTabDlg dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_TDSet_Add.h"
CTDSet::CTDSet(CWnd* pParent /*=NULL*/)
: CDialog(CTDSet::IDD, pParent)
{
//{{AFX_DATA_INIT(CTDSet)
m_lCorp = -1;
m_strMobile = _T("");
m_tBegin = COleDateTime::GetCurrentTime();
m_tEnd = COleDateTime::GetCurrentTime();
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_lQueryType = 0;
}
void CTDSet::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTDSet)
DDX_Control(pDX, IDC_TDSET_CORPID, m_E_CorpID);
DDX_Control(pDX, IDC_TDSET_S1, m_S_S1);
DDX_Control(pDX, IDC_TDSET_CORP, m_L_Corp);
DDX_Control(pDX, IDC_TDSET_LIST2, m_wndList);
DDX_CBIndex(pDX, IDC_TDSET_CORP, m_lCorp);
DDX_Text(pDX, IDC_TDSET_USERID, m_strMobile);
DDV_MaxChars(pDX, m_strMobile, 15);
DDX_DateTimeCtrl(pDX, IDC_TDSET_TBEGIN, m_tBegin);
DDX_DateTimeCtrl(pDX, IDC_TDSET_TEND, m_tEnd);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTDSet, CDialog)
//{{AFX_MSG_MAP(CTDSet)
ON_WM_SIZE()
ON_BN_CLICKED(IDC_TDSET_QUERY, OnBackQuery)
ON_NOTIFY(NM_DBLCLK, IDC_TDSET_LIST2, OnDblclkBackList)
ON_NOTIFY(LVN_KEYDOWN, IDC_TDSET_LIST2, OnKeydownBackList)
ON_NOTIFY(NM_RCLICK, IDC_TDSET_LIST2, OnRclickBackList)
ON_BN_CLICKED(IDC_TDSET_QUERY2, OnBackQuery2)
ON_BN_CLICKED(IDC_TDSET_QUERY3, OnBackQuery3)
//}}AFX_MSG_MAP
ON_COMMAND( MENU_TDSET_ADD , On_TDSet_Add )
ON_COMMAND( MENU_TDSET_DEL , On_TDSet_Del )
ON_COMMAND( MENU_TDSET_MODIFY, On_TDSet_Modify)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTDSet message handlers
void CTDSet::Close()
{
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_Corp.IsEmpty())
{
ANS_Corp_NameData * pData = m_Corp.GetHead();
m_Corp.RemoveHead();
delete pData;
}
//Çå³ý¶ÓÁÐÖеÄÄÚÈÝ
while (!m_TDData.IsEmpty())
{
ANS_TDSet_Data * pMsg = m_TDData.GetHead();
m_TDData.RemoveHead();
delete pMsg;
}
}
BOOL CTDSet::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;
//³õʼ»¯List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_TDSET) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("ÐòºÅ,50; ״̬,60; ÆóÒµID,100; ÊÖ»úºÅÂë,100;ÔËÓªÉÌÀàÐÍ,150; ÒÆ¶¯Í¨µÀ,100; ÁªÍ¨Í¨µÀ,100; СÁéͨͨµÀ,100; µçÐÅͨµÀ,100;ͨµÀ±êʶ,100;ÊÇ·ñÈ«Íø,100;°ó¶¨Ê±¼ä,160;˵Ã÷,250;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
#ifdef SMSMANAGER_KF
//GetDlgItem(IDC_TDSET_S1)->ShowWindow(SW_HIDE);
//GetDlgItem(IDC_TDSET_CORP)->ShowWindow(SW_HIDE);s
//GetDlgItem(IDC_TDSET_CORPID)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_QUERY3)->ShowWindow(SW_HIDE);
if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB, false))
{
GetDlgItem(IDC_TDSET_S1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_CORP)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_CORPID)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_QUERY2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_S2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_TBEGIN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_TEND)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_S21)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_TDSET_S22)->ShowWindow(SW_HIDE);
}
#endif
SYSTEMTIME t; ::GetLocalTime(&t);
m_tBegin.SetStatus( COleDateTime::null );
m_tEnd.SetStatus( COleDateTime::null );
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CTDSet::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CTDSet::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CTDSet::RefreshInfo()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) )
{
return false;
}
m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0);
return true;
}
BOOL CTDSet::ProcessSocket(Socket_Head_Add *pHead, BYTE* pFrame)
{
CString str;
//È¡Çåµ¥
if (pHead->lFuncType == SMSFUNC_TDSET_SEE)
{
ANS_TDSet_See * pList = (ANS_TDSet_See *)pFrame;
ANS_TDSet_Data * pData = (ANS_TDSet_Data *)(pFrame + sizeof(ANS_TDSet_See));
//Ìí¼Óµ½List
m_wndList.ShowWindow(SW_HIDE);
m_wndList.DeleteAllItems();
m_wndList.DeleteAllColumns();
m_lQueryType = pList->lQueryType;
if (pList->lQueryType == 1)
m_wndList.SetHeadings(_T("ÐòºÅ,50; ÆóÒµID,100; ÊýÁ¿,100;"));
else
m_wndList.SetHeadings(_T("ÐòºÅ,50; ״̬,60; ÆóÒµID,100; ÊÖ»úºÅÂë,150;ÔËÓªÉÌÀàÐÍ,150; ÒÆ¶¯Í¨µÀ,100; ÁªÍ¨Í¨µÀ,100; СÁéͨͨµÀ,100; µçÐÅͨµÀ,100;ͨµÀ±êʶ,100;ÊÇ·ñÈ«Íø,100;°ó¶¨Ê±¼ä,160;˵Ã÷,250;"));
long lCount = m_wndList.GetItemCount();
TCHAR szBuf[64];
for (int i = 0; i< pList->lCount; i++)
{
ANS_TDSet_Data * pNewData = new ANS_TDSet_Data;
*pNewData = *pData;
POSITION pos = m_TDData.AddTail(pNewData);
m_wndList.InsertItem(i, _itot(i + 1, szBuf, 10), 0);
m_wndList.SetItemData(i, (DWORD_PTR)pos);
long lTemp = 1;
if (pList->lQueryType == 1)
{
_stprintf(szBuf, _T("%d"), pData->lCorpID);
m_wndList.SetItemText(i, lTemp++, szBuf);
_stprintf(szBuf, _T("%d"), pData->lUserID);
m_wndList.SetItemText(i, lTemp++, szBuf);
}
else
{
if (pData->lStatus == 1)
m_wndList.SetItemText(i, lTemp++, _T("ÆôÓÃ"));
else
m_wndList.SetItemText(i, lTemp++, _T("½ûÓÃ"));
_stprintf(szBuf, _T("%d"), pData->lCorpID);
m_wndList.SetItemText(i, lTemp++, szBuf);
m_wndList.SetItemText(i, lTemp++, pData->szMobile);
m_wndList.SetItemText(i, lTemp++, GetYYSName(pData->lYYSType));
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[0], 0)); //ÒÆ¶¯
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[1], 1)); //ÁªÍ¨
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[2], 2)); //СÁéͨ
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[3], 3)); //µçÐÅ
m_wndList.SetItemText(i, lTemp++, pData->szTD); //ͨµÀ±êʶ
switch (pData->szOutAll[0] - '0')
{
case 0:
default:
m_wndList.SetItemText(i, lTemp++, _T("ĬÈÏ"));
break;
case 1:
m_wndList.SetItemText(i, lTemp++, _T("·ÇÈ«Íø"));
break;
case 2:
m_wndList.SetItemText(i, lTemp++, _T("È«Íø"));
break;
}
CString strTime;
if (COleDateTime(pData->tAddTime).GetStatus() == COleDateTime::valid)
{
strTime.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tAddTime.wYear, pData->tAddTime.wMonth, pData->tAddTime.wDay, pData->tAddTime.wHour, pData->tAddTime.wMinute);
}
m_wndList.SetItemText(i, lTemp++, strTime);
m_wndList.SetItemText(i, lTemp++, pData->szBZ);
}
pData++;
}
m_wndList.ShowWindow(SW_SHOW);
return true;
}
if (pHead->lFuncType == SMSFUNC_TDSET_INS)
{
ANS_TDSet_Ins * pSee = (ANS_TDSet_Ins *)pFrame;
if (pSee->bOK)
{
//¸üе½ÁбíÖÐ
ANS_TDSet_Data * pData = new ANS_TDSet_Data;
*pData = pSee->ins.data;
POSITION pos = m_TDData.AddTail(pData);
TCHAR Buf[32] = { 0 };
long i = m_wndList.GetItemCount();
_stprintf(Buf, _T("%d"), i + 1);
m_wndList.InsertItem(i, Buf, 0);
m_wndList.SetItemData(i, (DWORD_PTR)pos); //´æPos
long lTemp = 1;
if (pData->lStatus == 1)
m_wndList.SetItemText(i, lTemp++, _T("ÆôÓÃ"));
else
m_wndList.SetItemText(i, lTemp++, _T("½ûÓÃ"));
_stprintf(Buf, _T("%d"), pData->lCorpID);
m_wndList.SetItemText(i, lTemp++, Buf);
m_wndList.SetItemText(i, lTemp++, pData->szMobile);
m_wndList.SetItemText(i, lTemp++, GetYYSName(pData->lYYSType)); //ÒÆ¶¯
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[0], 0)); //ÒÆ¶¯
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[1], 1)); //ÁªÍ¨
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[2], 2)); //СÁéͨ
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[3], 3)); //µçÐÅ
m_wndList.SetItemText(i, lTemp++, pData->szTD); //ͨµÀ±êʶ
switch (pData->szOutAll[0] - '0')
{
case 0:
default:
m_wndList.SetItemText(i, lTemp++, _T("ĬÈÏ"));
break;
case 1:
m_wndList.SetItemText(i, lTemp++, _T("·ÇÈ«Íø"));
break;
case 2:
m_wndList.SetItemText(i, lTemp++, _T("È«Íø"));
break;
}
CString strTime;
if (COleDateTime(pData->tAddTime).GetStatus() == COleDateTime::valid)
{
strTime.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tAddTime.wYear, pData->tAddTime.wMonth, pData->tAddTime.wDay, pData->tAddTime.wHour, pData->tAddTime.wMinute);
}
m_wndList.SetItemText(i, lTemp++, strTime);
m_wndList.SetItemText(i, lTemp++, pData->szBZ);
}
else
{
MessageBox(_T("Ìí¼Ó°ó¶¨Í¨µÀʧ°Ü£¬Çë¼ì²é£¡"), _T("´íÎó"), MB_ICONWARNING);
}
return true;
}
if (pHead->lFuncType == SMSFUNC_TDSET_MODIFY)
{
ANS_TDSet_Modify * pSee = (ANS_TDSet_Modify *)pFrame;
if (pSee->bOK)
{
//¸üе½ÁбíÖÐ
ANS_TDSet_Data * pData = &pSee->modify.data;
ANS_TDSet_Data * pData2 = NULL;
POSITION pos = (POSITION)m_wndList.GetItemData(pData->lItemID);
if (pos)
{
pData2 = m_TDData.GetNext(pos);
if (pData2)
*pData2 = *pData;
}
TCHAR Buf[32] = { 0 };
long i = pData->lItemID;
_stprintf(Buf, _T("%d"), i + 1);
long lTemp = 1;
if (pData->lStatus == 1)
m_wndList.SetItemText(i, lTemp++, _T("ÆôÓÃ"));
else
m_wndList.SetItemText(i, lTemp++, _T("½ûÓÃ"));
_stprintf(Buf, _T("%d"), pData->lCorpID);
m_wndList.SetItemText(i, lTemp++, Buf);
m_wndList.SetItemText(i, lTemp++, pData->szMobile);
m_wndList.SetItemText(i, lTemp++, GetYYSName(pData->lYYSType));
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[0], 0)); //ÒÆ¶¯
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[1], 1)); //ÁªÍ¨
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[2], 2)); //СÁéͨ
m_wndList.SetItemText(i, lTemp++, GetTDName(pData->szTD[3], 3)); //µçÐÅ
m_wndList.SetItemText(i, lTemp++, pData->szTD); //ͨµÀ±êʶ
switch (pData->szOutAll[0] - '0')
{
case 0:
default:
m_wndList.SetItemText(i, lTemp++, _T("ĬÈÏ"));
break;
case 1:
m_wndList.SetItemText(i, lTemp++, _T("·ÇÈ«Íø"));
break;
case 2:
m_wndList.SetItemText(i, lTemp++, _T("È«Íø"));
break;
}
CString strTime;
if (COleDateTime(pData->tAddTime).GetStatus() == COleDateTime::valid)
{
strTime.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tAddTime.wYear, pData->tAddTime.wMonth, pData->tAddTime.wDay, pData->tAddTime.wHour, pData->tAddTime.wMinute);
}
m_wndList.SetItemText(i, lTemp++, strTime);
m_wndList.SetItemText(i, lTemp++, pData->szBZ);
}
else
{
MessageBox(_T("Ð޸İó¶¨Í¨µÀʧ°Ü£¬Çë¼ì²é£¡"), _T("´íÎó"), MB_ICONWARNING);
}
return true;
}
//ɾ³ýÓû§
if (pHead->lFuncType == SMSFUNC_TDSET_DEL)
{
ANS_TDSet_Del * pDel = (ANS_TDSet_Del *)pFrame;
ANS_TDSet_DelData * pDelData = (ANS_TDSet_DelData *)(pFrame + sizeof(ANS_TDSet_Del));
for (int i = pDel->lCount - 1; i >= 0; i--)
{
if (pDelData[i].lItem >= 0)
{
POSITION pos = (POSITION)m_wndList.GetItemData(pDelData[i].lItem);
POSITION pos2 = pos;
ANS_TDSet_Data * pSetData = m_TDData.GetNext(pos);
if (pSetData->lTDSetID == pDelData[i].lTDSetID ) //IDÏàͬ²Å¿Éɾ³ý
{
delete pSetData; //ÏÈɾ³ýÊý¾Ý
m_TDData.RemoveAt(pos2); //´ÓÁбíÖÐɾ³ý
m_wndList.DeleteItem(pDelData[i].lItem); //´ÓListCtrlÖÐɾ³ý
}
}
}
m_wndList.ShowWindow(SW_SHOW); //ΪÁ˼ӿìÏÔʾËÙ¶È
return true;
}
return false;
}
BOOL CTDSet::ProcessSocket(Socket_Head *pHead)
{
CString strTemp;
//È¡¹ýÂËÐÅÏ¢
if (pHead->lFuncType == SMSFUNC_CORP_NAME)
{
m_bRefresh = true; //ÒѾ­Ë¢Ð¹ý
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(); //ɾ³ýÔ­ÒÑÓÐµÄÆóÒµ
m_L_Corp.AddString( _T("ËùÓÐÆóÒµ") );
this->Close(); //¹Ø±ÕÔ­¶ÓÁÐ
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_PTR)pos);
pData ++;
}
m_L_Corp.SetCurSel(0);
return true;
}
return false;
}
void CTDSet::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 CTDSet::OnBackQuery()
{
if ( !UpdateData(true) )
return ;
if ( m_tBegin.GetStatus()==0 &&
m_tEnd.GetStatus()==0 &&
m_tEnd < m_tBegin )
{
MessageBox( _T("²éѯ½áÊøÈÕÆÚ²»ÄÜСÓÚÆðʼÈÕÆÚ£¬Çë¸ÄÕý!") , _T("´íÎó") , MB_ICONWARNING );
return ;
}
REQ_TDSet_See * pSee = new REQ_TDSet_See;memset(pSee,0,sizeof(REQ_TDSet_See));
pSee->lCorpID = -1;
if (m_lCorp >= 0)
{
if (m_lCorp == 0) //Ñ¡ÁËËùÓÐÆóÒµ
{
pSee->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)
{
pSee->lCorpID = pData->lCorpID;
}
else
{
delete pSee;
return;
}
}
}
}
#ifdef SMSMANAGER_KF
if (pSee->lCorpID <=0 && m_strMobile.GetLength()<10 )
{
MessageBox( _T("ÊÖ»úºÅÂëÊäÈëÓÐÎó£¬ÇëÊäÈ룡"), _T("´íÎó"), MB_ICONWARNING );
GetDlgItem(IDC_TDSET_USERID)->SetFocus();
delete pSee;
return ;
}
#endif
_tcscpy(pSee->szMobile , m_strMobile );
m_tBegin.GetAsSystemTime(pSee->tBegin );
m_tEnd.GetAsSystemTime(pSee->tEnd );
pSee->lQueryType = 0; //²éѯÃ÷ϸ
m_pMainFrame->SendFrame(SMSFUNC_TDSET_SEE,(BYTE*)pSee,sizeof(REQ_TDSet_See));
return ;
}
void CTDSet::OnDblclkBackList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
*pResult = 0;
if (m_lQueryType == 1)
return;
On_TDSet_Modify();
}
void CTDSet::OnKeydownBackList(NMHDR* pNMHDR, LRESULT* pResult)
{
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CTDSet::OnRclickBackList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CTDSet::ShowRMenu()
{
/*
if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB,false)) //ûÓв鿴ȨÏÞ
return ;
*/
if (m_lQueryType == 1)
return;
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
if ( lItem >= 0 )
bLock = isLockItem( lItem , false ); //È¡µÃÊÇ·ñÕýÔÚËø¶¨
//Ìí¼Ó
menu.AppendMenu(MF_STRING , MENU_TDSET_ADD, _T(" Ìí ¼Ó ") );
menu.AppendMenu(MF_SEPARATOR);
//ɾ³ý
if (lItem >= 0 && !bLock)
{
menu.AppendMenu(MF_STRING, MENU_TDSET_MODIFY, _T(" ÐÞ ¸Ä "));
}
else
{
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_TDSET_MODIFY, _T(" ÐÞ ¸Ä "));
}
//ɾ³ý
if ( lItem >=0 && !bLock )
{
menu.AppendMenu(MF_STRING , MENU_TDSET_DEL, _T(" ɾ ³ý ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_TDSET_DEL , _T(" ɾ ³ý ") );
}
//ÏÔʾ²Ëµ¥
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
void CTDSet::SetLockItem(long lItem, BOOL bLock)
{
if ( bLock )
m_wndList.SetIconIndex( lItem , 1 );
else
m_wndList.SetIconIndex( lItem , 0 );
}
BOOL CTDSet::isLockItem(long lItem, BOOL bShowWarning)
{
BOOL b = (m_wndList.GetIconIndex(lItem) == 1);
if ( b && bShowWarning )
{
MessageBox( _T("Õý¼±»Ëø¶¨£¬ÇëµÈ´ý·þÎñÆ÷·µ»ØºóÔÙ²Ù×÷!") , _T("Ëø¶¨ÖÐ") , MB_ICONINFORMATION );
}
return b;
}
long CTDSet::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CTDSet::On_TDSet_Add()
{
if (m_lQueryType == 1)
return;
ANS_TDSet_Data data = { 0 };
data.lStatus = 1; //ĬÈÏÆô¶¯
data.lCorpID = -1;
data.lYYSType = 0; //ĬÈÏÊÇ×Ô¶¯
_tcscpy(data.szOutAll, _T("0000"));
_tcscpy(data.szTD, _T("0000"));
DLG_TDSet_Add dlg(this);
dlg.SetParam(data,0, 1);
if ( dlg.DoModal() == IDOK )
{
data = dlg.GetParam();
//·¢ËÍÇëÇó²é¿´
REQ_TDSet_Ins * pModify = new REQ_TDSet_Ins;
memset(pModify, 0, sizeof(REQ_TDSet_Ins));
GetLocalTime(&data.tAddTime);
pModify->data = data;
pModify->lCount = 1;
m_pMainFrame->SendFrame(SMSFUNC_TDSET_INS, (BYTE*)pModify, sizeof(REQ_TDSet_Ins));
}
}
void CTDSet::On_TDSet_Del()
{
if (m_lQueryType == 1)
return;
long lRet = MessageBox( _T("´Ë²Ù×÷½«»áɾ³ý°ó¶¨ºÅÂ룬ÊÇ·ñ¼ÌÐø£¿") , _T("ÌáÎÊ") , MB_ICONQUESTION|MB_YESNOCANCEL|MB_DEFBUTTON2);
if ( lRet != IDYES )
return;
long lCount = m_wndList.GetSelectedCount();
long lSize = sizeof(REQ_TDSet_Del) + sizeof(ANS_TDSet_DelData)*lCount;
BYTE * pDelSend = new BYTE[lSize]; memset(pDelSend, 0, lSize);
REQ_TDSet_Del * pDel = (REQ_TDSet_Del *)pDelSend; //Í·
ANS_TDSet_DelData * pDelData = (ANS_TDSet_DelData *)(pDelSend + sizeof(REQ_TDSet_Del));
pDel->lCount = lCount;
pDel->lCorpID = -1;
POSITION pos2 = m_wndList.GetFirstSelectedItemPosition();
while (pos2)
{
long lItem = m_wndList.GetNextSelectedItem(pos2);
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
ANS_TDSet_Data * pSeeData = NULL;
if (pos>0)
{
pSeeData = m_TDData.GetNext(pos);
}
pDelData->lItem = lItem;
if (pSeeData)
pDelData->lTDSetID = pSeeData->lTDSetID;
pDelData++;
}
m_pMainFrame->SendFrame(SMSFUNC_TDSET_DEL, (BYTE*)pDelSend, lSize);
}
void CTDSet::On_TDSet_Modify()
{
if (m_lQueryType == 1)
return;
long lItem = this->GetCurrentSelected();
if (lItem < 0)
return;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
ANS_TDSet_Data * pSeeData = NULL;
if (pos>0)
{
pSeeData = m_TDData.GetNext(pos);
}
if (!pSeeData)
return;
long lModifyCount = m_wndList.GetSelectedCount();
DLG_TDSet_Add dlg(this);
dlg.SetParam(*pSeeData,0, lModifyCount);
if (dlg.DoModal() == IDOK)
{
ANS_TDSet_Data data = dlg.GetParam();
//·¢ËÍÇëÇó²é¿´
long lSize = sizeof(REQ_TDSet_Modify) + sizeof(ANS_TDSet_ModifyData)*lModifyCount;
BYTE * pData = new BYTE[lSize];
memset(pData, 0, lSize);
REQ_TDSet_Modify * pModify = (REQ_TDSet_Modify *)pData;
ANS_TDSet_ModifyData * pModifyData = (ANS_TDSet_ModifyData *)(pData + sizeof(REQ_TDSet_Modify));
//data.lCorpID = pSeeData->lCorpID;
data.lItemID = lItem;
pModify->data = data;
pModify->lCount = lModifyCount;
POSITION pos2 = m_wndList.GetFirstSelectedItemPosition();
while (pos2)
{
long lItem = m_wndList.GetNextSelectedItem(pos2);
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
ANS_TDSet_Data * pSeeData = NULL;
if (pos>0)
{
pSeeData = m_TDData.GetNext(pos);
}
pModifyData->lItem = lItem;
if (pSeeData)
pModifyData->lTDSetID = pSeeData->lTDSetID;
pModifyData++;
}
m_pMainFrame->SendFrame(SMSFUNC_TDSET_MODIFY, (BYTE*)pData, lSize);
}
}
void CTDSet::OnBackQuery2()
{
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 CTDSet::OnBackQuery3()
{
if ( !UpdateData(true) )
return ;
if ( m_tBegin.GetStatus()==0 &&
m_tEnd.GetStatus()==0 &&
m_tEnd < m_tBegin )
{
MessageBox( _T("²éѯ½áÊøÈÕÆÚ²»ÄÜСÓÚÆðʼÈÕÆÚ£¬Çë¸ÄÕý!") , _T("´íÎó") , MB_ICONWARNING );
return ;
}
REQ_TDSet_See * pSee = new REQ_TDSet_See; memset(pSee, 0, sizeof(REQ_TDSet_See));
#ifdef SMSMANAGER_KF
pSee->lCorpID = -1;
if ( m_strMobile.GetLength()<10 )
{
MessageBox( _T("ÊÖ»úºÅÂëÊäÈëÓÐÎó£¬ÇëÊäÈ룡"), _T("´íÎó"), MB_ICONWARNING );
GetDlgItem(IDC_TDSET_USERID)->SetFocus();
return ;
}
#else
pSee->lCorpID = -1;
if ( m_lCorp >= 0 )
{
if ( m_lCorp == 0 ) //Ñ¡ÁËËùÓÐÆóÒµ
{
pSee->lCorpID = -1;
}
else
{
POSITION pos = (POSITION)m_L_Corp.GetItemData(m_lCorp);
POSITION pos2 = pos;
ANS_Corp_NameData * pData = m_Corp.GetNext( pos );
if (pData)
{
pSee->lCorpID = pData->lCorpID;
}
else
{
return;
}
}
}
#endif
_tcscpy(pSee->szMobile , m_strMobile );
m_tBegin.GetAsSystemTime(pSee->tBegin );
m_tEnd.GetAsSystemTime(pSee->tEnd );
pSee->lQueryType = 1; //²éѯ»ã×Ü
m_pMainFrame->SendFrame(SMSFUNC_TDSET_SEE, (BYTE*)pSee, sizeof(REQ_TDSet_See));
return ;
}
CString CTDSet::GetYYSName(long lType)
{
CString str = _T("×Ô¶¯Ñ¡Ôñ");
switch (lType)
{
case 1:
str = _T("ÖйúÒÆ¶¯");
break;
case 2:
str = _T("ÖйúÁªÍ¨");
break;
case 3:
str = _T("СÁéͨ");
break;
case 4:
str = _T("ÖйúµçÐÅ");
break;
case 5:
str = _T("¹ú¼Ê¶ÌÐÅ");
break;
}
return str;
}
CString CTDSet::GetTDName(TCHAR cTD, long lType)
{
CString str = _T("δ֪ͨµÀ");
switch (cTD - '0')
{
case 0:
str = _T("×Ô¶¯Ñ¡Ôñ");
break;
case 1:
str = _T("µÚһͨµÀ");
break;
case 2:
str = _T("µÚ¶þͨµÀ");
break;
case 3:
str = _T("µÚÈýͨµÀ");
break;
case 4:
str = _T("µÚËÄͨµÀ");
break;
case 5:
str = _T("µÚÎåͨµÀ");
break;
case 6:
str = _T("µÚÁùͨµÀ");
break;
case 7:
str = _T("µÚÆßͨµÀ");
break;
case 8:
str = _T("µÚ°ËͨµÀ");
break;
case 9:
str = _T("µÚ¾ÅͨµÀ");
break;
case 10:
str = _T("Ëæ»úͨµÀ");
break;
case 11:
str = _T("µÚ10ͨµÀ");
break;
case 12:
str = _T("µÚ11ͨµÀ");
break;
case 13:
str = _T("µÚ12ͨµÀ");
break;
case 14:
str = _T("µÚ13ͨµÀ");
break;
case 15:
str = _T("µÚ14ͨµÀ");
break;
case 16:
str = _T("µÚ15ͨµÀ");
break;
case 17:
str = _T("µÚ16ͨµÀ");
break;
case 18:
str = _T("µÚ17ͨµÀ");
break;
case 19:
str = _T("µÚ18ͨµÀ");
break;
case 20:
str = _T("µÚ19ͨµÀ");
break;
case 21:
str = _T("µÚ20ͨµÀ");
break;
case 22:
str = _T("µÚ21ͨµÀ");
break;
case 23:
str = _T("µÚ22ͨµÀ");
break;
case 24:
str = _T("µÚ23ͨµÀ");
break;
case 25:
str = _T("µÚ24ͨµÀ");
break;
case 26:
str = _T("µÚ25ͨµÀ");
break;
case 27:
str = _T("µÚ26ͨµÀ");
break;
case 28:
str = _T("µÚ27ͨµÀ");
break;
case 29:
str = _T("µÚ28ͨµÀ");
break;
case 30:
str = _T("µÚ29ͨµÀ");
break;
case 31:
str = _T("µÚ30ͨµÀ");
break;
case 32:
str = _T("µÚ31ͨµÀ");
break;
case 33:
str = _T("µÚ32ͨµÀ");
break;
case 34:
str = _T("µÚ33ͨµÀ");
break;
case 35:
str = _T("µÚ34ͨµÀ");
break;
case 36:
str = _T("µÚ35ͨµÀ");
break;
case 37:
str = _T("µÚ36ͨµÀ");
break;
case 38:
str = _T("µÚ37ͨµÀ");
break;
case 39:
str = _T("µÚ38ͨµÀ");
break;
case 40:
str = _T("µÚ39ͨµÀ");
break;
}
return str;
}