330 lines
7.8 KiB
C++
330 lines
7.8 KiB
C++
// DLG_SmsList_Export.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "corpsms.h"
|
|
#include "DLG_SmsList_Export.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_SmsList_Export dialog
|
|
|
|
|
|
DLG_SmsList_Export::DLG_SmsList_Export(CWnd* pParent /*=NULL*/)
|
|
: CDialog(DLG_SmsList_Export::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(DLG_SmsList_Export)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_pAdo = NULL;
|
|
m_pList = NULL;
|
|
m_lExportType = 0;
|
|
}
|
|
|
|
|
|
void DLG_SmsList_Export::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(DLG_SmsList_Export)
|
|
DDX_Control(pDX, IDD_SMSJS_EXPORT_SEL, m_B_OnlySel);
|
|
DDX_Control(pDX, IDD_SMSJS_EXPORT_LIST, m_L_List);
|
|
DDX_Control(pDX, IDD_SMSJS_EXPORT_HEAD, m_B_AddHead);
|
|
DDX_Control(pDX, IDD_SMSJS_EXPORT_FILENAME, m_E_FileName);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(DLG_SmsList_Export, CDialog)
|
|
//{{AFX_MSG_MAP(DLG_SmsList_Export)
|
|
ON_BN_CLICKED(IDD_SMSJS_EXPORT_GETFILE, OnSmsjsExportGetfile)
|
|
ON_BN_CLICKED(IDD_SMSJS_EXPORT_SELALL, OnSmsjsExportSelall)
|
|
ON_BN_CLICKED(IDD_SMSJS_EXPORT_CLEAR, OnSmsjsExportClear)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_SmsList_Export message handlers
|
|
|
|
void DLG_SmsList_Export::OnSmsjsExportGetfile()
|
|
{
|
|
#define FILE_FILTER_TEXT \
|
|
TEXT("txtÎı¾Îļþ (*.txt)\0*.txt\0")\
|
|
TEXT("Excel csv Îļþ (*.csv)\0*.csv\0")\
|
|
TEXT("ËùÓÐÎļþ (*.*)\0*.*;\0\0")
|
|
|
|
TCHAR szFile[ 256 ];
|
|
TCHAR szFileB[ 256 ];
|
|
*szFileB = NULL;
|
|
_stprintf( szFile , _T("SmsList") );
|
|
if ( this->m_lExportType == 1 )
|
|
{
|
|
_stprintf( szFile , _T("MmsList") );
|
|
}
|
|
if ( this->m_lExportType == 2 )
|
|
{
|
|
_stprintf( szFile , _T("FaxList") );
|
|
}
|
|
|
|
|
|
OPENFILENAME sOpen;
|
|
sOpen.lStructSize = sizeof( sOpen );
|
|
sOpen.hwndOwner = this->m_hWnd ;
|
|
sOpen.Flags = OFN_EXPLORER|OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY;
|
|
sOpen.lpstrFilter = FILE_FILTER_TEXT;
|
|
sOpen.lpstrDefExt = _T("txt");
|
|
sOpen.lpstrCustomFilter = NULL;
|
|
sOpen.nMaxCustFilter = 0;
|
|
sOpen.lpstrFile = szFile;
|
|
sOpen.nMaxFile = sizeof( szFile );
|
|
sOpen.lpstrFileTitle = szFileB;
|
|
sOpen.nMaxFileTitle = sizeof( szFileB );
|
|
sOpen.lpstrInitialDir = NULL;
|
|
sOpen.lpstrTitle = _T("Ñ¡Ôñµ¼³öÁбíµÄÎļþ");
|
|
if ( ::GetSaveFileName( &sOpen ) )
|
|
{
|
|
m_E_FileName.SetWindowText(sOpen.lpstrFile);
|
|
}
|
|
}
|
|
|
|
void DLG_SmsList_Export::OnSmsjsExportSelall()
|
|
{
|
|
m_L_List.CheckAll();
|
|
}
|
|
|
|
void DLG_SmsList_Export::OnSmsjsExportClear()
|
|
{
|
|
m_L_List.ClearAll();
|
|
}
|
|
|
|
void DLG_SmsList_Export::OnOK()
|
|
{
|
|
long lItemCount = m_L_List.GetItemCount();
|
|
long lExPortItem[50];memset(&lExPortItem,0,sizeof(lExPortItem));
|
|
for ( int j=0 ; j < 50 ; j++ ) lExPortItem[j] = -1;
|
|
long lCheckCount = 0;
|
|
for ( int i=0 ; i<lItemCount ; i++ )
|
|
{
|
|
if ( m_L_List.GetCheck(i) )
|
|
{
|
|
lExPortItem[lCheckCount] = m_L_List.GetItemData(i) ;
|
|
lCheckCount ++;
|
|
}
|
|
}
|
|
|
|
if ( lCheckCount <=0 )
|
|
{
|
|
MessageBox( _T("Äã±ØÐë´Ó×ó±ßµÄ×Ö¶ÎÁбíÖÐÑ¡ÔñÒ»¸ö»ò¶à¸öµ¼³ö×ֶΡ£") , _T("Ñ¡Ôñ´íÎó") , MB_OK|MB_ICONWARNING );
|
|
return;
|
|
}
|
|
TCHAR szFileName[512];
|
|
m_E_FileName.GetWindowText( szFileName , sizeof(szFileName) );
|
|
if ( _tcslen(AllTrim(szFileName)) <=0 )
|
|
{
|
|
MessageBox( _T("Äã±ØÐëÊäÈëµ¼³öµÄÎļþÃû¡£") , _T("´íÎó") , MB_OK|MB_ICONWARNING );
|
|
m_E_FileName.SetFocus();
|
|
return;
|
|
}
|
|
|
|
CFile fTalk;
|
|
if ( !fTalk.Open( szFileName , CFile::modeReadWrite|CFile::modeCreate ) )
|
|
{
|
|
TCHAR Buf[512];
|
|
_stprintf( Buf , _T("´´½¨Îļþ:%s\n²úÉú´íÎó!") , szFileName );
|
|
MessageBox( Buf , _T("´íÎó") , MB_ICONWARNING|MB_OK );
|
|
return;
|
|
}
|
|
|
|
CString str;
|
|
CString strTemp,strTemp2;
|
|
long lAdrCount = m_pList->GetItemCount();
|
|
TCHAR Buf[1024];
|
|
TCHAR Buf2[1024];
|
|
TCHAR Buf3[1024];
|
|
#ifdef UNICODE
|
|
char szTempA[4096];
|
|
#endif
|
|
long lRecnCount= 0; //×ܼǼÊý
|
|
long lFileSize = 0; //Îļþ×Ü×Ö½ÚÊý
|
|
long lBufLen = 0;
|
|
COleDateTime t;
|
|
|
|
if ( m_B_AddHead.GetCheck() )//Ôö¼Ó×Ö¶ÎÍ·
|
|
{
|
|
_tcscpy(Buf,_T(";"));
|
|
|
|
for ( int j = 0; j<lCheckCount ; j++ )
|
|
{
|
|
if (m_lExportType==2 )
|
|
{
|
|
switch( lExPortItem[j] )
|
|
{
|
|
case 0: //ÊÕÐźÅÂë
|
|
_tcscat(Buf , _T("׫дʱ¼ä"));
|
|
break;
|
|
case 1: //ÊÕÐÅÈË
|
|
_tcscat(Buf , _T("ºÅÂëÊýÁ¿"));
|
|
break;
|
|
case 2: //½ÓÊÕºÅÂë
|
|
_tcscat(Buf , _T("´«Õæ±êÌâ"));
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch( lExPortItem[j] )
|
|
{
|
|
case 0: //ÊÕÐźÅÂë
|
|
_tcscat(Buf , _T("׫дʱ¼ä"));
|
|
break;
|
|
case 1: //ÊÕÐÅÈË
|
|
_tcscat(Buf , _T("ºÅÂëÊýÁ¿"));
|
|
break;
|
|
case 2: //½ÓÊÕºÅÂë
|
|
_tcscat(Buf , _T("¶ÌÐÅÄÚÈÝ"));
|
|
break;
|
|
}
|
|
}
|
|
if ( j < lCheckCount-1 ) //×îºóÒ»Ìõ²»ÓüÓ","ºÅ
|
|
_tcscat(Buf , _T(",") );
|
|
}
|
|
_tcscat(Buf , _T("\r\n") ); //»»ÐÐ
|
|
#ifdef UNICODE
|
|
CAdoRecordSet::Ado_W2A(Buf,szTempA);
|
|
lBufLen = strlen(szTempA);
|
|
fTalk.Write( szTempA , lBufLen );
|
|
#else
|
|
lBufLen = _tcslen(Buf);
|
|
fTalk.Write( Buf , lBufLen );
|
|
#endif
|
|
|
|
lFileSize = lFileSize + lBufLen ; //È¡µÃ×Ü×Ö½ÚÊý
|
|
}
|
|
for ( i = 0; i<lAdrCount ; i++ )
|
|
{
|
|
memset(Buf , 0 , sizeof(Buf) );
|
|
BOOL bExport=true;
|
|
if ( m_B_OnlySel.GetCheck() )
|
|
{
|
|
UINT uStatus= m_pList->GetItemState(i,LVIS_SELECTED);
|
|
if ( uStatus&LVIS_SELECTED )
|
|
bExport = true;
|
|
else
|
|
bExport = false;
|
|
}
|
|
if ( bExport )
|
|
{
|
|
for( int j = 0 ; j< lCheckCount ; j++ ) //°´°´ËùÑ¡ÖеÄ×ֶΣ¬È¡Í¨Ñ¶Â¼ÄÚÈݽøÐб£´æ¡£
|
|
{
|
|
memset(Buf2 , 0 , sizeof(Buf2) );
|
|
memset(Buf3 , 0 , sizeof(Buf3) );
|
|
switch( lExPortItem[j] )
|
|
{
|
|
case 0: //ʱ¼ä
|
|
m_pList->GetItemText(i,1,Buf2,sizeof(Buf2));
|
|
break;
|
|
case 1: //ºÅÂëÊýÁ¿
|
|
m_pList->GetItemText(i,2,Buf2,sizeof(Buf2));
|
|
break;
|
|
case 2: //¶ÌÐÅÄÚÈÝ
|
|
m_pList->GetItemText(i,4,Buf2,sizeof(Buf2));
|
|
ExChar(Buf2 , _T("\r") );
|
|
ExChar(Buf2 , _T("\n") );
|
|
str=Buf2;
|
|
str.Replace( _T(",") , _T("£¬") );
|
|
_tcscpy(Buf2 , str );
|
|
break;
|
|
}
|
|
_tcscat(Buf , Buf2 );
|
|
if ( j < lCheckCount-1 ) //×îºóÒ»Ìõ²»ÓüÓ","ºÅ
|
|
_tcscat(Buf , _T(",") );
|
|
}
|
|
_tcscat(Buf , _T("\r\n") ); //»»ÐÐ
|
|
#ifdef UNICODE
|
|
CAdoRecordSet::Ado_W2A(Buf,szTempA);
|
|
lBufLen = strlen(szTempA);
|
|
fTalk.Write( szTempA , lBufLen );
|
|
#else
|
|
lBufLen = _tcslen(Buf);
|
|
fTalk.Write( Buf , lBufLen );
|
|
#endif
|
|
lRecnCount++; //È¡µÃ×ܼǼÊý
|
|
lFileSize = lFileSize + lBufLen ; //È¡µÃ×Ü×Ö½ÚÊý
|
|
}
|
|
}
|
|
fTalk.Close();
|
|
this->EndWaitCursor();
|
|
_stprintf(Buf , _T("µ¼³ö½ÓÊÕÁбí³É¹¦£¬¾ßÌåÈçÏ£º\nµ¼³öÎļþÀàÐÍ:TXT\nµ¼³ö¼Ç¼Êý:%d\nµ¼³ö×Ö½ÚÊý:%d\nµ¼³öÎļþÃû:%s") , lRecnCount , lFileSize , szFileName);
|
|
MessageBox( Buf , _T("µ¼³ö³É¹¦"),MB_OK|MB_ICONINFORMATION );
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void DLG_SmsList_Export::SetParam(CAdoRecordSet *pAdo, CReportCtrl *pList, long lExportType)
|
|
{
|
|
m_pAdo = pAdo;
|
|
m_pList = pList;
|
|
m_lExportType=lExportType;
|
|
}
|
|
|
|
BOOL DLG_SmsList_Export::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
InitList();
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void DLG_SmsList_Export::InitList()
|
|
{
|
|
m_L_List.Init(true,-1,-1,-1);
|
|
m_L_List.InsertColumn( 0 , _T("˳Ðò") , LVCFMT_LEFT , 40 , 0);
|
|
m_L_List.InsertColumn( 1 , _T(" ×Ö¶ÎÃû") , LVCFMT_LEFT , 120 , 1);
|
|
m_L_List.SetTextColor( RGB(0,0,255) );
|
|
|
|
if ( m_lExportType==2 ) //
|
|
{
|
|
TCHAR * pItem[] =
|
|
{
|
|
_T("׫дʱ¼ä"),
|
|
_T("ºÅÂëÊý"),
|
|
_T("´«Õæ±êÌâ"),
|
|
};
|
|
TCHAR Buf[256];
|
|
int lCount=3;
|
|
for ( int i = 0 ; i<lCount ; i++ )
|
|
{
|
|
m_L_List.InsertItem( i , _itot(i+1,Buf,10) );
|
|
m_L_List.SetItemText(i , 1 , pItem[i] );
|
|
m_L_List.SetItemData(i , i ); //ÉèÖÃÕâ¸öÊÇΪÁË˳Ðò²»ÖÁÓÚ´òÂÒ
|
|
}
|
|
}
|
|
else
|
|
{
|
|
TCHAR * pItem[] =
|
|
{
|
|
_T("׫дʱ¼ä"),
|
|
_T("ºÅÂëÊý"),
|
|
_T("¶ÌÐÅÄÚÈÝ"),
|
|
};
|
|
TCHAR Buf[256];
|
|
int lCount=3;
|
|
for ( int i = 0 ; i<lCount ; i++ )
|
|
{
|
|
m_L_List.InsertItem( i , _itot(i+1,Buf,10) );
|
|
m_L_List.SetItemText(i , 1 , pItem[i] );
|
|
m_L_List.SetItemData(i , i ); //ÉèÖÃÕâ¸öÊÇΪÁË˳Ðò²»ÖÁÓÚ´òÂÒ
|
|
}
|
|
}
|
|
|
|
m_L_List.CheckAll();
|
|
m_L_List.NoverCheck();
|
|
m_L_List.ReShowSort();
|
|
}
|