📄 sellman.cpp
字号:
}
BOOL ConstructVar( CString strValue, int type, VARIANT *var )
{
COleDateTime var_date;
CURRENCY cy;
cy.Hi = 0;
switch( type )
{
case adEmpty:// = 0,
var->vt = VT_EMPTY;
break;
case adTinyInt:// = 16,
var->vt = VT_I1;
var->cVal = atoi( strValue );
break;
case adSmallInt:// = 2,
var->vt = VT_I2;
var->iVal = atoi( strValue );
break;
case adInteger:// = 3,
var->vt = VT_I4;
var->lVal = atoi( strValue );
break;
case adBigInt:// = 20,
var->vt = VT_I4;
var->lVal = atoi( strValue );
break;
case adUnsignedTinyInt:// = 17,
var->vt = VT_UI1;
var->bVal = atoi( strValue );
break;
case adUnsignedSmallInt:// = 18,
var->vt = VT_UI2;
var->uiVal = atoi( strValue );
break;
case adUnsignedInt:// = 19,
var->vt = VT_UI4;
var->ulVal = atol( strValue );
break;
case adUnsignedBigInt:// = 21,
var->vt = VT_UI4;
var->ulVal = atol( strValue );
break;
case adSingle:// = 4,
var->vt = VT_R4;
var->fltVal = (float)atof( strValue );
break;
case adDouble:// = 5,
var->vt = VT_R8;
var->dblVal = atof( strValue );
break;
case adCurrency:// = 6,
var->vt = VT_CY;
cy.Lo = atoi( strValue );
cy.int64 = atoi( strValue );
var->cyVal = cy;
break;
case adDecimal:// = 14,
break;
case adNumeric:// = 131,
var->vt = VT_R8;
var->dblVal = atol( strValue );
break;
case adBoolean:// = 11,
break;
case adError:// = 10,
break;
case adUserDefined:// = 132,
break;
case adVariant:// = 12,
break;
case adIDispatch:// = 9,
break;
case adIUnknown:// = 13,
break;
case adGUID:// = 72,
break;
case adDate:// = 7,
break;
case adDBDate:// = 133,
break;
case adDBTime:// = 134,
break;
case adDBTimeStamp:// = 135,
var->vt = VT_DATE;
var->date = var_date;
break;
case adBSTR:// = 8,
var->vt = VT_BSTR;
var->bstrVal = (_bstr_t)strValue;
break;
case adChar:// = 129,
var->vt = VT_BSTR;
var->bstrVal = (_bstr_t)strValue;
break;
case adVarChar:// = 200,
var->vt = VT_BSTR;
var->bstrVal = (_bstr_t)strValue;
break;
case adLongVarChar:// = 201,
var->vt = VT_BSTR;
var->bstrVal = (_bstr_t)strValue;
break;
case adWChar:// = 130,
var->vt = VT_BSTR;
var->bstrVal = (_bstr_t)strValue;
break;
case adVarWChar:// = 202,
var->vt = VT_BSTR;
var->bstrVal = (_bstr_t)strValue;
break;
case adLongVarWChar:// = 203,
var->vt = VT_BSTR;
var->bstrVal = (_bstr_t)strValue;
break;
case adBinary:// = 128,
break;
case adVarBinary:// = 204,
break;
case adLongVarBinary:// = 205,
break;
case adChapter:// = 136,
break;
case adFileTime:// = 64,
break;
case adPropVariant:// = 138,
break;
case adVarNumeric:// = 139,
break;
case adArray:// = 8192;
break;
}
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
// No message handlers
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// App command to run the dialog
void CSellManApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CSellManApp message handlers
int GetMonthDays( int nYear , int nMonth )
{
unsigned int nDays = 0;
switch( nMonth )
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
nDays = 31;
break;
case 4:
case 6:
case 9:
case 11:
nDays = 30;
break;
case 2:
if ( ((nYear%4 == 0) && (nYear%100 != 0)) || (nYear%400 == 0) )
nDays = 29;
else
nDays = 28;
break;
}
return nDays;
}
CString DateAppendToString( CString strDate, int nDays )
{
CString strTmp;
int years = 0;
int months = 0;
int days = 0;
int nAppendYears = 0;
int nMonthDays = 0;
int nAbsCurDays = 0;
if( strDate.GetLength() >= 8 )
{
strTmp = strDate.Left( 4 );
years = atoi( strTmp );
strTmp = strDate.Left( 6 ).Right( 2 );
months = atoi( strTmp );
strTmp = strDate.Left( 8 ).Right( 2 );
days = atoi( strTmp );
for( int i = 1; i < months; i ++ )
{
nMonthDays += GetMonthDays( years, i );
}
nAbsCurDays = nMonthDays + days + nDays;
nAppendYears = nAbsCurDays / GetYearDays( years );
for( i = years; i < years + nAppendYears; i ++ )
nAbsCurDays -= GetYearDays( i );
years += nAppendYears;
months = 1;
while( nAbsCurDays > GetMonthDays( years, months ) )
{
nAbsCurDays -= GetMonthDays( years, months );
months ++;
}
strTmp.Format( "%04d%02d%02d", years, months, nAbsCurDays );
}
return strTmp;
}
int GetYearDays( int nRet )
{
int nYear = 0;
int nDays = 0;
nYear = nRet;
if ( ((nYear%4 == 0) && (nYear%100 != 0)) || (nYear%400 == 0) )
{
nDays = 366;
}
else
{
nDays = 365;
}
return nDays;
}
int DecDays( CString strStartDate, CString strEndDate )
{
char szDate1[ 10 ];
char szDate2[ 10 ];
strcpy( szDate1, strStartDate );
strcpy( szDate2, strEndDate );
return GetDays( szDate1 ) - GetDays( szDate2 );
}
int GetDays( LPCTSTR pszDate )
{
int nFristLen = 0 , nSecondLen = 0;
int nRet = 0,nDays=0;
int nStartYear,nStartMonth , nStartDay;
char szTemp[ 10 ];
//初始化^_^
nStartYear = nStartMonth = nStartDay = 0;
nFristLen = strlen( pszDate );
if ( nFristLen != 8 )
{
nRet = -1;
}
else
{
memset( szTemp, 0, 10 );
strncpy( szTemp, pszDate, 4 );
nStartYear = atol(szTemp);
memset( szTemp, 0, 10 );
strncpy( szTemp, &pszDate[4],2);
nStartMonth = atol(szTemp);
memset( szTemp, 0, 10 );
strncpy( szTemp, &pszDate[6], 2 );
nStartDay = atol(szTemp);
if( nStartYear >= 1970 )
{
for( int i = 1970; i < (int)nStartYear; i ++ )
nDays += GetYearDays( i );
for( i = 1; i < (int)nStartMonth; i ++ )
nDays += GetMonthDays( nStartYear, i );
nRet = nDays + nStartDay;
}
else nRet = 0;
}
return nRet;
}
int CSellManApp::ExitInstance()
{
if( bConnected )
{
connection->Close();
connection.Release();
}
return CWinApp::ExitInstance();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -