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

📄 clearassets.cpp

📁 一个用vc++做的数据库系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			int nWidth = m_CtrlList.GetStringWidth(fieldInfo.m_strName) + 15;
			m_CtrlList.InsertColumn(j,fieldInfo.m_strName, LVCFMT_LEFT, nWidth);
		}
	}
	catch (CDaoException* e)
	{
		e->ReportError(); 
		e->Delete();
		return;
	}
	td.Close();

	int nItem = 0,i;
	try
	{
		CString strSelect(_T("Select * From ["));
		strSelect += m_strTableName;
		strSelect += _T("]");
		m_pRecordset->Open(dbOpenDynaset,strSelect);
		while (!m_pRecordset->IsEOF())
		{
			COleVariant var;
			var = m_pRecordset->GetFieldValue(14);
			if(CCrack::strVARIANT(var)=="清理"||CCrack::strVARIANT(var)=="借出"||CCrack::strVARIANT(var)=="维修") 
			{   
				m_pRecordset->MoveNext();
				continue;
			}
			var = m_pRecordset->GetFieldValue(0);
			m_CtrlList.InsertItem(nItem,CCrack::strVARIANT(var));
			for (i=0; i < nFields; i++)
			{
				var = m_pRecordset->GetFieldValue(i);
				if(i==3||i==15||i==16||i==17||i==18)  
				{
				    CString item;
					item=IdToString(atoi(CCrack::strVARIANT(var)),i);
	                m_CtrlList.SetItemText( nItem,i,item);
					continue;
				}
				
				m_CtrlList.SetItemText( nItem,i,CCrack::strVARIANT(var));
			}
			nItem++;
			m_pRecordset->MoveNext();
		}
	}
	catch (CDaoException* e)
	{
		e->ReportError(); 
		e->Delete();
		return;
	}
} 
void CClearAssets::Empty()
{
   	m_ID=_T("");
	m_strInterID = _T("");
	m_LeftValue =0;
	m_strName = _T("");
	m_strAssetID = _T("");
	m_OrigValue =0;
	m_LRatio=0;
	m_strRemark = _T("");
	m_strType = _T("");
	m_YearNum = 0;
	m_strFactory=_T("");
	m_strReason=_T("");
	m_strPerson=_T("");
	m_CtrlCBKeeper.SetCurSel(-1);
	m_CtrlCBDepartment.SetCurSel(-1);
	m_CtrlCBDepositary.SetCurSel(-1);
	m_CtrlCBClearType.SetCurSel(-1);
	m_strUseInfo=_T("");
	m_CtrlCBAddType.SetCurSel(-1);
	m_CtrlCBSort.SetCurSel(-1);
	m_CtrlCBDepreciation.SetCurSel(-1);
	m_LFDate=CTime::GetCurrentTime();
	m_InDate=CTime::GetCurrentTime();
	m_ClearDate=CTime::GetCurrentTime();
	UpdateData(0);
}
CString CClearAssets::IdToString(int ID,int Index)  //将索引ID转换为字符
{
   CStringArray sa;   //资产类别
   CUIntArray ua;
   bool flag=0; 
   switch(Index)
   {
     case 3:sa.Copy(m_saSort);ua.Copy(m_uaSort);break;//资产类别
	 case 15:sa.Copy(m_saDepartment);ua.Copy(m_uaDepartment);break;//使用部门
	 case 16:sa.Copy(m_saDepositary);ua.Copy(m_uaDepositary);break;//存放地点
	 case 17:sa.Copy(m_saAddType);ua.Copy(m_uaAddType);break;//增加方式
	 case 18:sa.Copy(m_saKeeper);ua.Copy(m_uaKeeper);break;//保管人员
	 
   }
   int j;
   for(j=0;j<ua.GetSize();j++)
   {
      if(ua[j]==unsigned(ID))
	  {   
		  flag=1;
		  break;
	  }
   }
   if(flag)
     return sa[j];
   else
	 return "!!删除!!";
}

void CClearAssets::OnItemchangedListAddassert(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
    if(pNMListView->uNewState&LVIS_SELECTED)
	{  
		int iCurrent = pNMListView->iItem;
		Fill(iCurrent);
		(CEdit*)GetDlgItem(IDC_CLE_REMARK)->EnableWindow(1);
		(CEdit*)GetDlgItem(IDC_CLE_REASON)->EnableWindow(1);
		(CComboBox*)GetDlgItem(IDC_CLR_CLEARTYPE)->EnableWindow(1);
		(CComboBox*)GetDlgItem(IDC_LER_PERSON)->EnableWindow(1);
        (CDateTimeCtrl*)GetDlgItem(IDC_CLE_CLEARDATE)->EnableWindow(1);
        (CButton*)GetDlgItem(IDD_CLEAR)->EnableWindow(1);
	}
	else
	{
	    if(m_CtrlList.GetSelectedCount()<=0) 
		{
		   (CEdit*)GetDlgItem(IDC_CLE_REMARK)->EnableWindow(0);
		   (CEdit*)GetDlgItem(IDC_CLE_REASON)->EnableWindow(0);
		   (CComboBox*)GetDlgItem(IDC_CLR_CLEARTYPE)->EnableWindow(0);
		   (CComboBox*)GetDlgItem(IDC_LER_PERSON)->EnableWindow(0);
           (CDateTimeCtrl*)GetDlgItem(IDC_CLE_CLEARDATE)->EnableWindow(0);
		   (CButton*)GetDlgItem(IDD_CLEAR)->EnableWindow(0);
		   Empty();
		}
	}
	*pResult = 0;
}
void CClearAssets::Fill(int iCurrent)
{       UpdateData(1);
        char pContent[50] ;
		CString temp;
        m_CtrlList.GetItemText(iCurrent,0,pContent,50);
		m_ID.Format("%s", pContent);
        m_CtrlList.GetItemText(iCurrent,1,pContent,50);
		m_strAssetID.Format("%s", pContent);
		m_CtrlList.GetItemText(iCurrent,2,pContent,50);
		m_strName.Format("%s", pContent);
		m_CtrlList.GetItemText(iCurrent,4,pContent,50);
		m_strType.Format("%s",pContent);
        m_CtrlList.GetItemText(iCurrent,5,pContent,50);
		m_strFactory.Format("%s",pContent);
		m_CtrlList.GetItemText(iCurrent,7,pContent,50);
		m_strInterID.Format("%s",pContent);
        m_CtrlList.GetItemText(iCurrent,9,pContent,50);
		temp.Format("%s",pContent);
		m_LRatio=atof(temp);
		m_CtrlList.GetItemText(iCurrent,10,pContent,50);
		temp.Format("%s",pContent);
		m_YearNum=atoi(temp);
		m_CtrlList.GetItemText(iCurrent,11,pContent,50);
        temp.Format("%s",pContent);
		m_OrigValue=atof(temp);
		m_CtrlList.GetItemText(iCurrent,12,pContent,50);
        temp.Format("%s",pContent);
		m_LeftValue=atof(temp);;
		m_CtrlList.GetItemText(iCurrent,14,pContent,50);
		m_strUseInfo.Format("%s",pContent);
		m_CtrlList.GetItemText(iCurrent,19,pContent,50);
		m_strRemark.Format("%s",pContent);
		CString str,year,month,day;
		m_CtrlList.GetItemText(iCurrent,3,pContent,50); //资产类别
		str.Format("%s",pContent);
		m_CtrlCBSort.SetCurSel(m_CtrlCBSort.FindString(0,str));
		m_CtrlList.GetItemText(iCurrent,6,pContent,50); // 出厂日期
		str.Format("%s",pContent);
		if(str.GetAt(6)=='0') 
			year.Format("20%c%c",str.GetAt(6),str.GetAt(7));
		else
			year.Format("19%c%c",str.GetAt(6),str.GetAt(7));
		month.Format("%c%c",str.GetAt(0),str.GetAt(1));
		day.Format("%c%c",str.GetAt(3),str.GetAt(4));
		CTime time1(atoi(year),atoi(month),atoi(day),0,0,0);
		m_LFDate=time1;
		m_CtrlList.GetItemText(iCurrent,8,pContent,50); // 购买日期
		str.Format("%s",pContent);
		if(str.GetAt(6)=='0') 
			year.Format("20%c%c",str.GetAt(6),str.GetAt(7));
		else
			year.Format("19%c%c",str.GetAt(6),str.GetAt(7));
		month.Format("%c%c",str.GetAt(0),str.GetAt(1));
		day.Format("%c%c",str.GetAt(3),str.GetAt(4));
		CTime time2(atoi(year),atoi(month),atoi(day),0,0,0);
		m_InDate=time2;
		m_CtrlList.GetItemText(iCurrent,13,pContent,50); //折旧方式
		str.Format("%s",pContent);
		m_CtrlCBDepreciation.SetCurSel(m_CtrlCBDepreciation.FindString(0,str));
        m_CtrlList.GetItemText(iCurrent,15,pContent,50); //使用部门
		str.Format("%s",pContent);
		m_CtrlCBDepartment.SetCurSel(m_CtrlCBDepartment.FindString(0,str));
		m_CtrlList.GetItemText(iCurrent,16,pContent,50); //存放地点
		str.Format("%s",pContent);
		m_CtrlCBDepositary.SetCurSel(m_CtrlCBDepositary.FindString(0,str));
		m_CtrlList.GetItemText(iCurrent,17,pContent,50); //增加方式
		str.Format("%s",pContent);
		m_CtrlCBAddType.SetCurSel(m_CtrlCBAddType.FindString(0,str));
		m_CtrlList.GetItemText(iCurrent,18,pContent,50); //保管人员
		str.Format("%s",pContent);
		m_CtrlCBKeeper.SetCurSel(m_CtrlCBKeeper.FindString(0,str));
		
		UpdateData(0);
}
void CClearAssets::OnClear() //清理
{
    UpdateData(1);
	if(!m_pDatabase->IsOpen()) return;
	if(!m_pRecordset) return;
	if(m_pRecordset->IsOpen()) m_pRecordset->Close();
	CString strSql;
	UINT  uSelectedCount = m_CtrlList.GetSelectedCount();
    if (uSelectedCount <= 0){MessageBox("请选择记录中的一项","清理提示");return;}
	//检查数据是否正确
	if(m_CtrlCBClearType.GetCurSel()==-1) {AfxMessageBox("清理方式不能为空!");m_CtrlCBClearType.SetFocus();return;}
    if(m_strReason.IsEmpty()) {AfxMessageBox("清理原因不能为空!");m_CtrlEditReason.SetFocus();return;}
	if(m_strPerson.IsEmpty()) {AfxMessageBox("清理人不能为空!");m_CtrlCBPerson.SetFocus();return;}
	CPromptDlg dlg;
	dlg.m_Prompt="\n清理这些固定资产?";
	if(dlg.DoModal()==IDCANCEL) return;
	CString ClearDate,useinfo="清理";
	ClearDate.Format("%d %d %d",m_ClearDate.GetYear(),m_ClearDate.GetMonth(),m_ClearDate.GetDay());//清理日期
	int ClearType;
	ClearType=m_CtrlCBClearType.GetItemData(m_CtrlCBClearType.GetCurSel());     //清理方式
	int  nItemIndex = -1,nSelectIndex;
    if (uSelectedCount > 0)
	{
		while((nItemIndex=m_CtrlList.GetNextItem(nItemIndex,LVNI_SELECTED ) ) != -1 )
		{ 
			m_ID=m_CtrlList.GetItemText ( nItemIndex, 0 );
			nSelectIndex=nItemIndex;
	        try{
                  if(m_pDatabase->CanUpdate())
				  {
			   	      strSql.Format("Update 资产信息 set 使用情况='%s' where 资产ID=%d",useinfo,atoi(m_ID));
  			          m_pDatabase->Execute(strSql, dbDenyWrite|dbConsistent);
                      strSql.Format("Insert into 清理资产(资产ID,清理理由,清理方式ID,清理日期,\
					      清理人,备注)values(%d,'%s',%d,'%s','%s','%s') ",atoi(m_ID),m_strReason,ClearType,\
					      ClearDate,m_strPerson,m_strRemark);
				      m_pDatabase->Execute(strSql, dbDenyWrite|dbConsistent);
				  } 
			} 
	       catch(CDaoException* e){
		       e->ReportError();
		      e->Delete();}
		}
	(CEdit*)GetDlgItem(IDC_CLE_REMARK)->EnableWindow(0);
	(CEdit*)GetDlgItem(IDC_CLE_REASON)->EnableWindow(0);
	(CComboBox*)GetDlgItem(IDC_CLR_CLEARTYPE)->EnableWindow(0);
	(CComboBox*)GetDlgItem(IDC_LER_PERSON)->EnableWindow(0);
    (CDateTimeCtrl*)GetDlgItem(IDC_CLE_CLEARDATE)->EnableWindow(0);
	(CButton*)GetDlgItem(IDD_CLEAR)->EnableWindow(0);
	Refresh();
	//使被清理记录的下一条处于选中状态
	m_CtrlList.EnsureVisible(nSelectIndex,nItemIndex+1);
	m_CtrlList.SetItemState(nSelectIndex,LVNI_SELECTED ,LVNI_SELECTED );
	Empty(); 
	}
		
}

BOOL CClearAssets::DestroyWindow() 
{
    m_pDatabase->Close();
	delete m_pDatabase;
	m_pDatabase=NULL;
	return CDialog::DestroyWindow();
}


⌨️ 快捷键说明

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