AgentManager/DLG_Corp_LXR.cpp
2025-01-22 15:45:17 +08:00

261 lines
6.4 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.

// DLG_Corp_LXR.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_Corp_LXR.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_LXR dialog
#include "DLG_Corp_LXR_Modify.h"
DLG_Corp_LXR::DLG_Corp_LXR(CWnd* pParent /*=NULL*/)
: CDialog(DLG_Corp_LXR::IDD, pParent)
{
//{{AFX_DATA_INIT(DLG_Corp_LXR)
m_strCorpName = _T("");
m_strSMSNum = _T("");
//}}AFX_DATA_INIT
m_lModifyCount = 0;
m_lLXRCount = 0;
memset( &m_LXRReq , 0 , sizeof(m_LXRReq) );
m_pLXRData = NULL;
m_bModify = true;
m_lCorpType = 0;
}
void DLG_Corp_LXR::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_Corp_LXR)
DDX_Control(pDX, IDC_CORP_LXR_LIST, m_wndList);
DDX_Text(pDX, IDC_CORP_LXR_CORPNAME, m_strCorpName);
DDX_Text(pDX, IDC_CORP_LXR_SMSNUM, m_strSMSNum);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DLG_Corp_LXR, CDialog)
//{{AFX_MSG_MAP(DLG_Corp_LXR)
ON_NOTIFY(NM_DBLCLK, IDC_CORP_LXR_LIST, OnDblclkCorpLxrList)
ON_BN_CLICKED(IDC_CORP_LXR_MODIFY, OnCorpLxrModify)
ON_BN_CLICKED(IDC_CORP_LXR_ADD, OnCorpLxrAdd)
ON_BN_CLICKED(IDC_CORP_LXR_DEL, OnCorpLxrDel)
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDOK, &DLG_Corp_LXR::OnBnClickedOk)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_LXR message handlers
void DLG_Corp_LXR::SetParam(ANS_Corp_LXR LXR , ANS_Corp_LXRData *pLXRData,BOOL bModify, long lCorpType)
{
m_lLXRCount = LXR.lCount;
m_LXRReq = LXR;
m_pLXRData = pLXRData;
m_bModify = bModify;
m_lCorpType = lCorpType;
}
BOOL DLG_Corp_LXR::OnInitDialog()
{
CDialog::OnInitDialog();
m_strCorpName = m_LXRReq.szCorpName;
m_strSMSNum = m_LXRReq.szSMSNum;
this->UpdateData(false);
//³õʼ»¯List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CORP) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("ÐòºÅ,50; ÐÕÃû,80; êdzÆ,80; ²¿ÃÅ,80; µç»°,80; ÊÖ»ú,80;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
POSITION pos;
TCHAR Buf[32];
for ( int i = 0 ; i< m_lLXRCount ; i++ )
{
ANS_Corp_LXRData * pData = new ANS_Corp_LXRData;
*pData = m_pLXRData[i];
pos = m_LXR.AddTail( pData );
_stprintf( Buf , _T("%d") , i+1 );
m_wndList.InsertItem( i , Buf , 0 );
m_wndList.SetItemData( i , (DWORD)pos);
m_wndList.SetItemText( i , 1 , pData->szName );
m_wndList.SetItemText( i , 2 , pData->szNickName );
m_wndList.SetItemText( i , 3 , pData->szBranch );
m_wndList.SetItemText( i , 4 , pData->szTel );
m_wndList.SetItemText( i , 5 , pData->szMobile );
}
if ( !m_bModify )
{
GetDlgItem(IDC_CORP_LXR_ADD)->EnableWindow(false);
GetDlgItem(IDC_CORP_LXR_MODIFY)->EnableWindow(false);
GetDlgItem(IDC_CORP_LXR_DEL)->EnableWindow(false);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DLG_Corp_LXR::OnDblclkCorpLxrList(NMHDR* pNMHDR, LRESULT* pResult)
{
OnCorpLxrModify();
*pResult = 0;
}
void DLG_Corp_LXR::OnCorpLxrModify()
{
if ( !m_bModify )
return ;
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_Corp_LXRData * pData = m_LXR.GetNext( pos );
if (pData)
{
DLG_Corp_LXR_Modify dlg(this);
dlg.SetParam( *pData,pos2);
if ( dlg.DoModal() == IDOK )
{
*pData = dlg.GetParam(); //È¡µÃÐ޸ĹýºóµÄÖµ
m_wndList.SetItemText( lItem , 1 , pData->szName );
m_wndList.SetItemText( lItem , 2 , pData->szNickName );
m_wndList.SetItemText( lItem , 3 , pData->szBranch );
m_wndList.SetItemText( lItem , 4 , pData->szTel );
m_wndList.SetItemText( lItem , 5 , pData->szMobile );
if ( pData->ucStatus == 0 )
{
pData->ucStatus = CORP_LXR_MODIFY; //ÐèÒªÐÞ¸Ä
m_lModifyCount ++; //ÐèÒªÐ޸ĵļǼÔö¼Ó
}
}
}
}
long DLG_Corp_LXR::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
BOOL DLG_Corp_LXR::FindLXRName(const TCHAR *pLXRName, POSITION exPos)
{
POSITION pos = m_LXR.GetHeadPosition();
POSITION pos2;
while (pos)
{
pos2 = pos;
ANS_Corp_LXRData * pData = m_LXR.GetNext( pos );
if ( pos2 != exPos )
{
if ( !_tcscmp( pData->szName , pLXRName ) )
return true;
}
}
return false;
}
void DLG_Corp_LXR::OnCorpLxrAdd()
{
if ( !m_bModify )
return ;
ANS_Corp_LXRData LXRData={0};
DLG_Corp_LXR_Modify dlg(this);
dlg.SetParam( LXRData,0);
if ( dlg.DoModal() == IDOK )
{
ANS_Corp_LXRData * pData = new ANS_Corp_LXRData;
*pData = dlg.GetParam();
pData->ucStatus = CORP_LXR_ADD;
pData->lCorpType = m_lCorpType;
m_lModifyCount ++; //ÐèÒªÐ޸ĵļǼÔö¼Ó
POSITION pos = m_LXR.AddTail( pData );
long lCount = m_wndList.GetItemCount();
TCHAR Buf[32];
_stprintf( Buf, _T("%d") , lCount +1 );
//ÉèÖÃеÄÊý¾Ý
m_wndList.InsertItem( lCount , Buf , 0);
m_wndList.SetItemData( lCount, (DWORD)pos );
m_wndList.SetItemText( lCount , 1 , pData->szName );
m_wndList.SetItemText( lCount , 2 , pData->szNickName );
m_wndList.SetItemText( lCount , 3 , pData->szBranch );
m_wndList.SetItemText( lCount , 4 , pData->szTel );
m_wndList.SetItemText( lCount , 5 , pData->szMobile );
}
}
void DLG_Corp_LXR::OnCorpLxrDel()
{
if ( !m_bModify )
return ;
long lCount = m_wndList.GetSelectedCount();
if ( lCount <= 0 )
return ;
long lRet = MessageBox( _T("´Ë²Ù×÷½«»áɾ³ýÁªÏµÈË£¬ÊÇ·ñ¼ÌÐø£¿") , _T("ÌáÎÊ") , MB_ICONQUESTION|MB_YESNOCANCEL|MB_DEFBUTTON2);
if ( lRet != IDYES )
return;
long * lDel = new long[lCount];
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
long i=0;
while ( pos )
{
lDel[i] = m_wndList.GetNextSelectedItem(pos);
i++;
}
for ( i = lCount-1 ; i>=0 ; i-- ) //µ¹×ªÉ¾³ý
{
long lItem = lDel[i];
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
m_wndList.DeleteItem( lItem ); //ɾ³ý
POSITION pos2 = pos;
ANS_Corp_LXRData * pData = m_LXR.GetNext( pos );
if (pData)
{
if (pData->ucStatus == 0)
{
pData->ucStatus = CORP_LXR_DEL;
m_lModifyCount ++; //ÐèÒªÐ޸ĵļǼÔö¼Ó
}
else
{
pData->ucStatus = 0;
m_lModifyCount --; //ÒòΪÐÞ¸ÄÔö¼Óʱ»á¼Ó1
}
}
}
delete lDel;
}
void DLG_Corp_LXR::OnBnClickedOk()
{
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
CDialog::OnOK();
}