355 lines
8.7 KiB
C++
355 lines
8.7 KiB
C++
// DLG_Corp_FP.cpp : implementation file
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "smsmanager.h"
|
||
#include "DLG_Corp_FP.h"
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// DLG_Corp_FP dialog
|
||
|
||
#include "DLG_Corp_FP_Modify.h"
|
||
|
||
DLG_Corp_FP::DLG_Corp_FP(CWnd* pParent /*=NULL*/)
|
||
: CDialog(DLG_Corp_FP::IDD, pParent)
|
||
, m_strCorpAddress(_T(""))
|
||
, m_strCorpPostCode(_T(""))
|
||
{
|
||
//{{AFX_DATA_INIT(DLG_Corp_FP)
|
||
m_strCorpName = _T("");
|
||
m_strSMSNum = _T("");
|
||
//}}AFX_DATA_INIT
|
||
m_lModifyCount = 0;
|
||
m_lLXRCount = 0;
|
||
memset( &m_FPReq , 0 , sizeof(m_FPReq) );
|
||
m_pLXRData = NULL;
|
||
m_lCorpType = 0;
|
||
|
||
m_bModify = true;
|
||
}
|
||
|
||
|
||
void DLG_Corp_FP::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
//{{AFX_DATA_MAP(DLG_Corp_FP)
|
||
DDX_Control(pDX, IDC_CORP_FP_LIST, m_wndList);
|
||
DDX_Text(pDX, IDC_CORP_FP_CORPNAME, m_strCorpName);
|
||
DDX_Text(pDX, IDC_CORP_FP_SMSNUM, m_strSMSNum);
|
||
//}}AFX_DATA_MAP
|
||
DDX_Text(pDX, IDC_CORP_FP_CORPADDRESS, m_strCorpAddress);
|
||
DDX_Text(pDX, IDC_CORP_FP_CORPPOSTCODE, m_strCorpPostCode);
|
||
}
|
||
|
||
|
||
BEGIN_MESSAGE_MAP(DLG_Corp_FP, CDialog)
|
||
//{{AFX_MSG_MAP(DLG_Corp_FP)
|
||
ON_NOTIFY(NM_DBLCLK, IDC_CORP_FP_LIST, OnDblclkCorpLxrList)
|
||
ON_BN_CLICKED(IDC_CORP_FP_MODIFY, OnCorpLxrModify)
|
||
ON_BN_CLICKED(IDC_CORP_FP_ADD, OnCorpLxrAdd)
|
||
ON_BN_CLICKED(IDC_CORP_FP_DEL, OnCorpLxrDel)
|
||
//}}AFX_MSG_MAP
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// DLG_Corp_FP message handlers
|
||
|
||
void DLG_Corp_FP::SetParam(ANS_Corp_FP LXR , ANS_Corp_FPData *pLXRData , long lCorpType,BOOL bModify)
|
||
{
|
||
m_lLXRCount = LXR.lCount;
|
||
m_FPReq = LXR;
|
||
m_pLXRData = pLXRData;
|
||
m_lCorpType = lCorpType;
|
||
m_bModify = bModify;
|
||
}
|
||
|
||
BOOL DLG_Corp_FP::OnInitDialog()
|
||
{
|
||
CDialog::OnInitDialog();
|
||
|
||
m_strCorpName = m_FPReq.szCorpName;
|
||
m_strSMSNum = m_FPReq.szSMSNum;
|
||
m_strCorpAddress = m_FPReq.szAddress;
|
||
m_strCorpPostCode = m_FPReq.szPostCode;
|
||
|
||
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; Ĭ<><C4AC>,60; <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>,90; <20><>Ʊ̧ͷ,250; <20><>˰<EFBFBD><CBB0>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>,100; <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>,200;¼<><C2BC><EFBFBD>û<EFBFBD>,80; ¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,90;"));
|
||
m_wndList.SetGridLines(true);
|
||
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
|
||
|
||
POSITION pos;
|
||
TCHAR Buf[32];
|
||
CString str;
|
||
for ( int i = 0 ; i< m_lLXRCount ; i++ )
|
||
{
|
||
ANS_Corp_FPData * pData = new ANS_Corp_FPData;
|
||
*pData = m_pLXRData[i];
|
||
pos = m_FP.AddTail( pData );
|
||
_stprintf( Buf , _T("%d") , i+1 );
|
||
m_wndList.InsertItem( i , Buf , 0 );
|
||
m_wndList.SetItemData( i , (DWORD)pos);
|
||
int iTemp=1;
|
||
if ( pData->bDefaultFP )
|
||
m_wndList.SetItemText( i , iTemp++ , _T(" <20><>") );
|
||
else
|
||
iTemp++;
|
||
m_wndList.SetItemText( i , iTemp++ , GetFPType(pData->lFPType) );
|
||
m_wndList.SetItemText( i , iTemp++ , pData->szCorpName );
|
||
m_wndList.SetItemText( i , iTemp++ , pData->szCorpTaxID );
|
||
m_wndList.SetItemText( i , iTemp++ , pData->szPostEmail);
|
||
m_wndList.SetItemText( i , iTemp++ , pData->szCreateUser );
|
||
str.Format( _T("%04d.%02d.%02d") ,pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay );
|
||
m_wndList.SetItemText( i , iTemp++ , str );
|
||
|
||
}
|
||
|
||
if (!m_bModify) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
{
|
||
GetDlgItem(IDC_CORP_FP_ADD)->EnableWindow(false);
|
||
//GetDlgItem(IDC_CORP_FP_MODIFY)->EnableWindow(false);
|
||
GetDlgItem(IDC_CORP_FP_DEL)->EnableWindow(false);
|
||
GetDlgItem(IDC_CORP_FP_MODIFY)->SetWindowText(_T("<EFBFBD>鿴<EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD>Ϣ"));
|
||
}
|
||
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// EXCEPTION: OCX Property Pages should return FALSE
|
||
}
|
||
|
||
void DLG_Corp_FP::OnDblclkCorpLxrList(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
OnCorpLxrModify();
|
||
|
||
*pResult = 0;
|
||
}
|
||
|
||
void DLG_Corp_FP::OnCorpLxrModify()
|
||
{
|
||
//if (!m_bModify)
|
||
// return;
|
||
|
||
long lItem = GetCurrentSelected();
|
||
if ( lItem < 0 )
|
||
return ;
|
||
|
||
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
|
||
POSITION pos2 = pos;
|
||
ANS_Corp_FPData * pData = m_FP.GetNext( pos );
|
||
if (pData)
|
||
{
|
||
DLG_Corp_FP_Modify dlg(this);
|
||
dlg.SetParam( *pData,pos2, m_bModify);
|
||
if ( dlg.DoModal() == IDOK && m_bModify)
|
||
{
|
||
*pData = dlg.GetParam(); //ȡ<><C8A1><EFBFBD>Ĺ<DEB8><C4B9><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; Ĭ<><C4AC>,60; <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>,90; <20><>Ʊ̧ͷ,150; <20><>˰<EFBFBD><CBB0>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>,100;¼<><C2BC><EFBFBD>û<EFBFBD>,80; ¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,90;"));
|
||
|
||
CString str;
|
||
int iTemp=1;
|
||
if ( pData->bDefaultFP )
|
||
m_wndList.SetItemText( lItem , iTemp++ , _T(" <20><>") );
|
||
else
|
||
m_wndList.SetItemText( lItem , iTemp++ , _T("") );
|
||
|
||
m_wndList.SetItemText( lItem , iTemp++ , GetFPType(pData->lFPType) );
|
||
m_wndList.SetItemText( lItem , iTemp++ , pData->szCorpName );
|
||
m_wndList.SetItemText( lItem , iTemp++ , pData->szCorpTaxID );
|
||
m_wndList.SetItemText( lItem , iTemp++ , pData->szPostEmail);
|
||
m_wndList.SetItemText( lItem , iTemp++ , pData->szCreateUser );
|
||
str.Format( _T("%04d.%02d.%02d") ,pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay );
|
||
m_wndList.SetItemText( lItem , iTemp++ , str );
|
||
|
||
if ( pData->ucStatus == 0 )
|
||
{
|
||
pData->ucStatus = CORP_FP_MODIFY; //<2F><>Ҫ<EFBFBD><EFBFBD>
|
||
m_lModifyCount ++; //<2F><>Ҫ<EFBFBD>ĵļ<C4B5>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
long DLG_Corp_FP::GetCurrentSelected()
|
||
{
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
if ( pos )
|
||
{
|
||
return m_wndList.GetNextSelectedItem(pos);
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
|
||
void DLG_Corp_FP::OnCorpLxrAdd()
|
||
{
|
||
if (!m_bModify)
|
||
return;
|
||
|
||
ANS_Corp_FPData LXRData={0};
|
||
LXRData.lCorpType = m_FPReq.lCorpType;
|
||
_tcscpy(LXRData.szCorpName , m_FPReq.szCorpName);
|
||
_tcscpy(LXRData.szCorpAddress,m_FPReq.szAddress);
|
||
|
||
DLG_Corp_FP_Modify dlg(this);
|
||
dlg.SetParam( LXRData,0,m_bModify);
|
||
if ( dlg.DoModal() == IDOK && m_bModify)
|
||
{
|
||
ANS_Corp_FPData * pData = new ANS_Corp_FPData;
|
||
*pData = dlg.GetParam();
|
||
pData->ucStatus = CORP_FP_ADD;
|
||
pData->lCorpType = m_lCorpType;
|
||
m_lModifyCount ++; //<2F><>Ҫ<EFBFBD>ĵļ<C4B5>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
|
||
POSITION pos = m_FP.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 );
|
||
|
||
CString str;
|
||
int iTemp=1;
|
||
if ( pData->bDefaultFP )
|
||
m_wndList.SetItemText( lCount , iTemp++ , _T(" <20><>") );
|
||
else
|
||
iTemp++;
|
||
m_wndList.SetItemText( lCount , iTemp++ , GetFPType(pData->lFPType) );
|
||
m_wndList.SetItemText( lCount , iTemp++ , pData->szCorpName );
|
||
m_wndList.SetItemText( lCount, iTemp++ , pData->szCorpTaxID);
|
||
m_wndList.SetItemText( lCount, iTemp++ , pData->szPostEmail);
|
||
m_wndList.SetItemText( lCount , iTemp++ , pData->szCreateUser );
|
||
m_wndList.SetItemText( lCount , iTemp++ , pData->szCorpTaxID );
|
||
str.Format( _T("%04d.%02d.%02d") ,pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay );
|
||
m_wndList.SetItemText( lCount , iTemp++ , str );
|
||
|
||
}
|
||
}
|
||
|
||
void DLG_Corp_FP::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><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_FPData * pData = m_FP.GetNext( pos );
|
||
if (pData)
|
||
{
|
||
if (pData->ucStatus == 0)
|
||
{
|
||
pData->ucStatus = CORP_FP_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;
|
||
}
|
||
|
||
CString DLG_Corp_FP::GetFPType(long lType)
|
||
{
|
||
CString str = _T("δ֪");
|
||
|
||
switch (lType)
|
||
{
|
||
case 0:
|
||
str = _T(" <20><><EFBFBD><EFBFBD>Ʊ");
|
||
break;
|
||
case 1:
|
||
str = _T(" <20><>˰Ʊ");
|
||
break;
|
||
case 2:
|
||
str = _T("<EFBFBD><EFBFBD>ֵ˰<EFBFBD><EFBFBD>Ʊ");
|
||
break;
|
||
case 3:
|
||
str = _T(" <20>ƶ<EFBFBD>Ʊ");
|
||
break;
|
||
case 4:
|
||
str = _T("<EFBFBD><EFBFBD>ֵ˰רƱ");
|
||
break;
|
||
case 5:
|
||
str = _T("<EFBFBD><EFBFBD><EFBFBD>跢Ʊ<EFBFBD>ѱ<EFBFBD>˰");
|
||
break;
|
||
case 6:
|
||
str = _T("ӯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ");
|
||
break;
|
||
case 7:
|
||
str = _T("ӯ<EFBFBD><EFBFBD>רƱ");
|
||
break;
|
||
default:
|
||
str = _T(" δ֪");
|
||
break;
|
||
}
|
||
|
||
return str;
|
||
}
|
||
|
||
CString DLG_Corp_FP::GetFPType2(long lType)
|
||
{
|
||
CString str = _T("");
|
||
|
||
switch (lType)
|
||
{
|
||
case 0:
|
||
str = _T("");
|
||
break;
|
||
case 1:
|
||
str = _T("<EFBFBD><EFBFBD>˰Ʊ");
|
||
break;
|
||
case 2:
|
||
str = _T("<EFBFBD><EFBFBD>ֵ˰<EFBFBD><EFBFBD>Ʊ");
|
||
break;
|
||
case 3:
|
||
str = _T("<EFBFBD>ƶ<EFBFBD>Ʊ");
|
||
break;
|
||
case 4:
|
||
str = _T("<EFBFBD><EFBFBD>ֵ˰רƱ");
|
||
break;
|
||
case 5:
|
||
str = _T("<EFBFBD><EFBFBD><EFBFBD>跢Ʊ<EFBFBD>ѱ<EFBFBD>˰");
|
||
break;
|
||
case 6:
|
||
str = _T("ӯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ");
|
||
break;
|
||
case 7:
|
||
str = _T("ӯ<EFBFBD><EFBFBD>רƱ");
|
||
break;
|
||
default:
|
||
str = _T("δ֪");
|
||
break;
|
||
}
|
||
|
||
return str;
|
||
} |