⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 finddeprciation.cpp

📁 关于固定资产管理系统的源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        monthNum=m_CurTime.GetMonth()-m_InTime.GetMonth()+12*yearNum;
	}
	//对应新购入的资产,本月不折旧
	if(monthNum==0)
	{
		monthDeprc=0;
        sum=0;
		LeftValue=OrigValue;
		return 1;
	}
	//对应过期的资产,不进行折旧计算
	if(monthNum>=MaxYearNum*12)        //如果已经过期,不用继续进行折旧计算
	{
	   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;
	}
	//工作量法只给了接口,用户可以自行编写
	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=="年数总和法")
	{ 
	    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 资产信息";
    if(m_CKName)
	{  
       if(m_strName.IsEmpty()==0)
	   {
	       sql.Format( " where 资产名称= '%s'",m_strName );
	       flag=1;
           strSql+=sql;
	   }
	}
	if(m_CKAssetID)
	{
	   if(m_strAssetID.IsEmpty()==0)
	   {
		   if(flag)
			  sql.Format( " and 资产编号 ='%s'",m_strAssetID );
		   else
              sql.Format( " where 资产编号= '%s'",m_strAssetID );
		   flag=1;
           strSql+=sql;
	   }
	}
	if(m_CKType)
	{
	   if(m_strType.IsEmpty()==0)
	   {
	       if(flag)
	          sql.Format( " and 型号 = '%s'",m_strType );
		   else
                sql.Format( " where 型号= '%s'",m_strType );
		   flag=1;
           strSql+=sql;
	   }
	}
    if(m_CKSort)
	{
	   if(m_CtrlCBSort.GetCurSel()!=-1)
	   {
	      if(flag)
	           sql.Format( " and 资产类别ID=%d",m_CtrlCBSort.GetItemData(m_CtrlCBSort.GetCurSel()) );
		  else
               sql.Format( " where 资产类别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)//资产原值
	{
	   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)//资产原值
	{
	   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);	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -