?? finddeprciation.cpp
字號(hào):
monthNum=m_CurTime.GetMonth()-m_InTime.GetMonth()+12*yearNum;
}
//對(duì)應(yīng)新購(gòu)入的資產(chǎn),本月不折舊
if(monthNum==0)
{
monthDeprc=0;
sum=0;
LeftValue=OrigValue;
return 1;
}
//對(duì)應(yīng)過(guò)期的資產(chǎn),不進(jìn)行折舊計(jì)算
if(monthNum>=MaxYearNum*12) //如果已經(jīng)過(guò)期,不用繼續(xù)進(jìn)行折舊計(jì)算
{
sum=OrigValue;monthDeprc=0;LeftValue=OrigValue*LRatio;return 1;
}
if(DPType=="平均年限法")
{
double perMonthValue;
perMonthValue=OrigValue*(1-LRatio)/MaxYearNum/12;
sum=perMonthValue*monthNum;
LeftValue=OrigValue-sum;
if(LeftValue<0)
{
sum=OrigValue;monthDeprc=0;LeftValue=OrigValue*LRatio;return 1;
}
monthDeprc=perMonthValue;
return 1;
}
//工作量法只給了接口,用戶(hù)可以自行編寫(xiě)
if(DPType=="工作量法")
{
sum=0;monthDeprc=0;LeftValue=OrigValue;
return 1;
}
if(DPType=="雙倍余額遞減法")
{
double Ratio=2/(double)MaxYearNum;
sum=0;
LeftValue=OrigValue;
for(int i=0;i<monthNum/12;i++)
{
sum+=LeftValue*Ratio;
monthDeprc=LeftValue*Ratio/12;
LeftValue=OrigValue-sum;
}
if(monthNum-monthNum/12*12!=0) //如果不是整年
{
monthDeprc=(OrigValue-sum)*Ratio/12;
sum=sum+monthDeprc*(monthNum-monthNum/12*12);
LeftValue=OrigValue-sum;
}
if(LeftValue<=0)
{
monthDeprc=0;sum=OrigValue;LeftValue=OrigValue*LRatio;
}
return 1;
}
if(DPType=="年數(shù)總和法")
{
int i,yearSum=0,pastYearNum=monthNum/12;
for(i=1;i<=MaxYearNum;i++)
yearSum+=i;
yearSum/=2;
for(i=1;i<=pastYearNum;i++)
{
sum+=((double)MaxYearNum-1-i)/yearSum*OrigValue*(1-LRatio);
monthDeprc=((double)MaxYearNum-1-i)/yearSum*OrigValue*(1-LRatio)/12;
LeftValue=OrigValue-sum;
}
if(monthNum-monthNum/12*12!=0) //如果不是整年
{
monthDeprc=(MaxYearNum-1-i)/yearSum*OrigValue*(1-LRatio)/12;
sum+=monthDeprc*(monthNum-monthNum/12*12);
LeftValue=OrigValue-sum;
}
if(LeftValue<=0)
{
monthDeprc=0;sum=OrigValue;LeftValue=OrigValue*LRatio;
}
return 1;
}
return 1;
}
void CFindDeprciation::OnFddpCkdate()
{
UpdateData(1);
if(!m_CKDate)
{
m_Date=CTime::GetCurrentTime();
UpdateData(0);
(CComboBox*)GetDlgItem(IDC_FDDP_DATE)->EnableWindow(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_DATE)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCkdptype()
{
UpdateData(1);
if(!m_CKDPType)
{
m_CtrlCBDPType.SetCurSel(-1);
UpdateData(0);
(CComboBox*)GetDlgItem(IDC_FDDP_DPTYPE)->EnableWindow(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_DPTYPE)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCkorigvalue()
{
UpdateData(1);
if(!m_CKOrigValue)
{
(CComboBox*)GetDlgItem(IDC_FDDP_ORIGVALUE1)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_FDDP_ORIGVALUE2)->EnableWindow(0);
m_dOrigValue1=0;
m_dOrigValue2=0;
UpdateData(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_ORIGVALUE1)->EnableWindow(1);
(CComboBox*)GetDlgItem(IDC_FDDP_ORIGVALUE2)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCksum()
{
UpdateData(1);
if(!m_CKSum)
{
(CComboBox*)GetDlgItem(IDC_FDDP_SUM1)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_FDDP_SUM2)->EnableWindow(0);
m_dSum1=0;
m_dSum2=0;
UpdateData(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_SUM1)->EnableWindow(1);
(CComboBox*)GetDlgItem(IDC_FDDP_SUM2)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCkname()
{
// TODO: Add your control notification handler code here
UpdateData(1);
if(!m_CKName)
{
m_strName.Empty();
UpdateData(0);
(CComboBox*)GetDlgItem(IDC_FDDP_NAME)->EnableWindow(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_NAME)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCksort()
{
// TODO: Add your control notification handler code here
UpdateData(1);
if(!m_CKSort)
{
m_CtrlCBSort.SetCurSel(-1);
UpdateData(0);
(CComboBox*)GetDlgItem(IDC_FDDP_SORT)->EnableWindow(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_SORT)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCkassetid()
{
UpdateData(1);
if(!m_CKAssetID)
{
m_strAssetID.Empty();
UpdateData(0);
(CComboBox*)GetDlgItem(IDC_FDDP_ASSETID)->EnableWindow(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_ASSETID)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCktype()
{
UpdateData(1);
if(!m_CKType)
{
m_strType.Empty();
UpdateData(0);
(CComboBox*)GetDlgItem(IDC_FDDP_TYPE)->EnableWindow(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_TYPE)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCklratio()
{
UpdateData(1);
if(!m_CKRatio)
{
(CComboBox*)GetDlgItem(IDC_FDDP_LRATIO1)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_FDDP_LRATIO2)->EnableWindow(0);
m_dLRatio1=0;
m_dLRatio2=0;
UpdateData(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_LRATIO1)->EnableWindow(1);
(CComboBox*)GetDlgItem(IDC_FDDP_LRATIO2)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCkleftvalue()
{
UpdateData(1);
if(!m_CKLeftValue)
{
(CComboBox*)GetDlgItem(IDC_FDDP_LEFTVALUE1)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_FDDP_LEFTVALUE2)->EnableWindow(0);
m_dLeftValue1=0;
m_dLeftValue2=0;
UpdateData(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_LEFTVALUE1)->EnableWindow(1);
(CComboBox*)GetDlgItem(IDC_FDDP_LEFTVALUE2)->EnableWindow(1);
}
}
void CFindDeprciation::OnFddpCkmonth()
{
UpdateData(1);
if(!m_CKMonth)
{
(CComboBox*)GetDlgItem(IDC_FDDP_MONTH1)->EnableWindow(0);
(CComboBox*)GetDlgItem(IDC_FDDP_MONTH2)->EnableWindow(0);
m_dMonth1=0;
m_dMonth2=0;
UpdateData(0);
}
else
{
(CComboBox*)GetDlgItem(IDC_FDDP_MONTH1)->EnableWindow(1);
(CComboBox*)GetDlgItem(IDC_FDDP_MONTH2)->EnableWindow(1);
}
}
void CFindDeprciation::OnChangeFddpOrigvalue1()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpOrigvalue2()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpSum1()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpSum2()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpLratio1()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpLratio2()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpLeftvalue1()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpLeftvalue2()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpMonth1()
{
UpdateData(1);
}
void CFindDeprciation::OnChangeFddpMonth2()
{
UpdateData(1);
}
void CFindDeprciation::OnFddpFind()
{
UpdateData(1);
if(!m_pDatabase->IsOpen()) return;
if(!m_pRecordset) return;
if(m_pRecordset->IsOpen()) m_pRecordset->Close();
CString sql,strSql="select * from 資產(chǎn)信息";
if(m_CKName)
{
if(m_strName.IsEmpty()==0)
{
sql.Format( " where 資產(chǎn)名稱(chēng)= '%s'",m_strName );
flag=1;
strSql+=sql;
}
}
if(m_CKAssetID)
{
if(m_strAssetID.IsEmpty()==0)
{
if(flag)
sql.Format( " and 資產(chǎn)編號(hào) ='%s'",m_strAssetID );
else
sql.Format( " where 資產(chǎn)編號(hào)= '%s'",m_strAssetID );
flag=1;
strSql+=sql;
}
}
if(m_CKType)
{
if(m_strType.IsEmpty()==0)
{
if(flag)
sql.Format( " and 型號(hào) = '%s'",m_strType );
else
sql.Format( " where 型號(hào)= '%s'",m_strType );
flag=1;
strSql+=sql;
}
}
if(m_CKSort)
{
if(m_CtrlCBSort.GetCurSel()!=-1)
{
if(flag)
sql.Format( " and 資產(chǎn)類(lèi)別ID=%d",m_CtrlCBSort.GetItemData(m_CtrlCBSort.GetCurSel()) );
else
sql.Format( " where 資產(chǎn)類(lèi)別ID=%d",m_CtrlCBSort.GetItemData(m_CtrlCBSort.GetCurSel()) );
flag=1;
strSql+=sql;
}
}
if(m_CKDPType)
{
if(m_CtrlCBDPType.GetCurSel()!=-1)
{
CString str;
m_CtrlCBDPType.GetLBText(m_CtrlCBDPType.GetCurSel(),str);
if(flag)
sql.Format( " and 折舊方式='%s'",str);
else
sql.Format( " where 折舊方式='%s'",str);
flag=1;
strSql+=sql;
}
}
if(m_CKOrigValue)//資產(chǎn)原值
{
if(m_dOrigValue1>m_dOrigValue2)
{
double temp;
temp=m_dOrigValue1;m_dOrigValue1=m_dOrigValue2;m_dOrigValue2=temp;
}
if(flag)
sql.Format(" and 原值 between %f and %f",m_dOrigValue1,m_dOrigValue2);
else
sql.Format(" where 原值 between %f and %f",m_dOrigValue1,m_dOrigValue2);
strSql+=sql;
flag=1;
}
if(m_CKRatio)//資產(chǎn)原值
{
if(m_dLRatio1>m_dLRatio2)
{
double temp;
temp=m_dLRatio1;m_dLRatio1=m_dLRatio2;m_dLRatio2=temp;
}
if(flag)
sql.Format(" and 凈殘值率 between %f and %f",m_dLRatio1,m_dLRatio2);
else
sql.Format(" where 凈殘值率 between %f and %f",m_dLRatio1,m_dLRatio2);
strSql+=sql;
flag=1;
}
flag=0;
Refresh(strSql);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -