261 lines
6.4 KiB
C++
261 lines
6.4 KiB
C++
|
// 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);
|
|||
|
|
|||
|
//<2F><>ʼ<EFBFBD><CABC>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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><><EFBFBD><EFBFBD>,80; <20>dz<EFBFBD>,80; <20><><EFBFBD><EFBFBD>,80; <20>绰,80; <20>ֻ<EFBFBD>,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(); //ȡ<><C8A1><EFBFBD>Ĺ<DEB8><C4B9><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|||
|
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; //<2F><>Ҫ<EFBFBD><EFBFBD>
|
|||
|
m_lModifyCount ++; //<2F><>Ҫ<EFBFBD>ĵļ<C4B5>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
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 ++; //<2F><>Ҫ<EFBFBD>ĵļ<C4B5>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
POSITION pos = m_LXR.AddTail( pData );
|
|||
|
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);
|
|||
|
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("<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_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-- ) //<2F><>תɾ<D7AA><C9BE>
|
|||
|
{
|
|||
|
long lItem = lDel[i];
|
|||
|
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
|
|||
|
m_wndList.DeleteItem( lItem ); //ɾ<><C9BE>
|
|||
|
POSITION pos2 = pos;
|
|||
|
ANS_Corp_LXRData * pData = m_LXR.GetNext( pos );
|
|||
|
if (pData)
|
|||
|
{
|
|||
|
if (pData->ucStatus == 0)
|
|||
|
{
|
|||
|
pData->ucStatus = CORP_LXR_DEL;
|
|||
|
m_lModifyCount ++; //<2F><>Ҫ<EFBFBD>ĵļ<C4B5>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
pData->ucStatus = 0;
|
|||
|
m_lModifyCount --; //<2F><>Ϊ<EFBFBD><EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>1
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
delete lDel;
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void DLG_Corp_LXR::OnBnClickedOk()
|
|||
|
{
|
|||
|
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
CDialog::OnOK();
|
|||
|
}
|