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

📄 eq_manager_sysdlg.cpp

📁 自己编的设备管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException,pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
}

void CEq_manager_sysDlg::OnButton_storage() 
{
	// TODO: Add your control notification handler code here
	int nItem=m_list_eq.GetNextItem(-1,LVNI_SELECTED);
		if(nItem==-1)
	{
		AfxMessageBox("没有选者要修改的设备信息");
			return;
	}
	CString strId=m_list_eq.GetItemText(nItem,0);
	TRY
	{
		CString sql;
		sql.Format("delete eq_info where eq_id='%s'",strId);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		m_list_eq.DeleteItem(nItem);
		RefreshClass_Dep_Data();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox("问题出在删除");
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException,pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	
}

void CEq_manager_sysDlg::OnClickListEq(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	//获得已选的记录项
	int nItem=m_list_eq.GetNextItem(-1,LVNI_SELECTED);
	if(nItem!=-1)
	{
		//从列表框控件的第nItem+1行获取数据,以将这些数据显示在设备空间中
		m_id=m_list_eq.GetItemText(nItem,0);
		m_name=m_list_eq.GetItemText(nItem,1);
		m_classid=m_list_eq.GetItemText(nItem,2);
		m_type=m_list_eq.GetItemText(nItem,3);
		m_amount=m_list_eq.GetItemText(nItem,4);
		CString pur=m_list_eq.GetItemText(nItem,6);
		CString install=m_list_eq.GetItemText(nItem,7);
		m_depid=m_list_eq.GetItemText(nItem,8);
		m_val=m_list_eq.GetItemText(nItem,9);
		m_location=m_list_eq.GetItemText(nItem,10);
		m_manufa=m_list_eq.GetItemText(nItem,11);
		CString use=m_list_eq.GetItemText(nItem,12);
		m_fix_year=m_list_eq.GetItemText(nItem,13);
		m_month=m_list_eq.GetItemText(nItem,15);
		m_remark=m_list_eq.GetItemText(nItem,16);

		m_val=m_val.Mid(0,m_val.GetLength()-2);
		m_fix_year=m_fix_year.Mid(0,m_fix_year.GetLength()-2);
		m_month=m_month.Mid(0,m_month.GetLength()-2);

		m_pur_date.ParseDateTime(pur);
		m_install_date.ParseDateTime(install);
		m_use_date.ParseDateTime(use);
		
		//把设备列表空间中当前已选者的行更新到空间中
		UpdateData(FALSE);
	}
	*pResult = 0;
}

void CEq_manager_sysDlg::OnButton7() 
{
	// TODO: Add your control notification handler code here
	CEq_SEARCHDlg dlg;
	dlg.DoModal ();
	
}

void CEq_manager_sysDlg::OnButton6() 
{
	// TODO: Add your control notification handler code here
	CEq_STATEDlg dlg;
	dlg.DoModal ();
}

void CEq_manager_sysDlg::OnButton8() 
{
	// TODO: Add your control notification handler code here
	CEq_STATISTIC dlg;
	dlg.DoModal ();

}

void CEq_manager_sysDlg::OnColumnclickListEq(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code he
	int nColumn=pNMListView->iSubItem;
	CString ColumnName;
	switch(nColumn)
	{
	case 0:
		ColumnName="eq_id";
		break;
	case 1:
		ColumnName="eq_name";
		break;
	case 2:
		ColumnName="eq_class_id";
		break;
	case 3:
		ColumnName="eq_type";
		break;
	case 4:
		ColumnName="eq_amount";
		break;
	case 5:
		ColumnName="eq_state";
		break;
	case 6:
		ColumnName="pur_date";
		break;
	case 7:
		ColumnName="install_date";
		break;
	case 8:
		ColumnName="dep_id";
		break;
	case 9:
		ColumnName="eq_orig_val";
		break;
	case 10:
		ColumnName="fix_place";
		break;
	case 11:
		ColumnName="manfactory";
		break;
	case 12:
		ColumnName="use_date";
		break;
	case 13:
		ColumnName="fix_year";
		break;
	case 14:
		ColumnName="rem_val";
		break;
	case 15:
		ColumnName="mon_fray_val";
		break;
	case 16:
		ColumnName="remark";
		break;
	}
	m_list_eq.DeleteAllItems();	
	TRY
	{	
		CRecordset rs2(&m_db);
		CString sql;
		sql.Format("select * from eq_info order by %s",ColumnName);
		rs2.Open(CRecordset::dynaset,sql);
		while(!rs2.IsEOF())
		{
			CString id,name,eq_class_id,eq_type,pur_date,install_date,dep_id,fix_place,manfac,use_date,remark;
			int eq_amount,eq_state,fix_year,rem_val,mon_val,eq_val;
			CDBVariant var;
			//获得字段直
			rs2.GetFieldValue((short)0,id);
			rs2.GetFieldValue((short)1,name);
			rs2.GetFieldValue((short)2,eq_class_id);
			rs2.GetFieldValue((short)3,eq_type);
			rs2.GetFieldValue((short)4,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				eq_amount=var.m_lVal;
			else
				eq_amount=0;
			var.Clear();
			rs2.GetFieldValue((short)5,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				eq_state=var.m_lVal;
			else
				eq_state=0;
			var.Clear();
			rs2.GetFieldValue((short)6,pur_date);
			pur_date=pur_date.Mid(0,10);//节取字符串
			rs2.GetFieldValue((short)7,install_date);
			install_date=pur_date.Mid(0,10);
			rs2.GetFieldValue((short)8,dep_id);
			rs2.GetFieldValue((short)9,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				eq_val=var.m_lVal;
			else
				eq_val=0;
			var.Clear();
			rs2.GetFieldValue((short)10,fix_place);
			rs2.GetFieldValue((short)11,manfac);
			rs2.GetFieldValue((short)12,use_date);
			use_date=pur_date.Mid(0,10);
			rs2.GetFieldValue((short)13,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				fix_year=var.m_lVal;
			else
				fix_year=0;
			var.Clear();
			rs2.GetFieldValue((short)14,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				rem_val=var.m_lVal;
			else
				rem_val=0;
			var.Clear();
			rs2.GetFieldValue((short)15,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				mon_val=var.m_lVal;
			else
				mon_val=0;
			var.Clear();
			rs2.GetFieldValue((short)16,remark);
			//向控件加入一条
			InsertEq(id,name,eq_class_id,eq_type,eq_amount,eq_state,pur_date,install_date,dep_id,eq_val,fix_place,manfac,use_date,fix_year,rem_val,mon_val,remark);
			rs2.MoveNext();
		}
		rs2.Close();
		//更新数据
		if(!UpdateData())
			return;
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox("问题出在初试化表格");
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException,pEx)
	{
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException,e)
	{
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
	*pResult = 0;
}

void CEq_manager_sysDlg::OnCheck2() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(m_check2.GetCheck ())
	{
		m_edit1.ShowWindow (1);
		m_button5.ShowWindow (1);
		m_edit_1="D:\\xzc.xls";
		m_button6.ShowWindow (0);
		m_button7.ShowWindow (0);
		m_button8.ShowWindow (0);
	}
	else if(!m_check2.GetCheck ())
	{
		m_edit1.ShowWindow (0);
		m_button5.ShowWindow (0);
		m_button6.ShowWindow (1);
		m_button7.ShowWindow (1);
		m_button8.ShowWindow (1);
	}
	UpdateData(FALSE);
}

void CEq_manager_sysDlg::OnButton5() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	CDatabase database;
    CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; 
    CString sExcelFile;           
    CString sSql;
	CRecordset rs(&m_db);
	CString id,name,eq_class_id,eq_type,pur_date,install_date,dep_id,fix_place,manfac,use_date,remark;
	int eq_amount,eq_state,fix_year,rem_val,mon_val,eq_val;
	CString temp,temp1,temp2,temp3,temp4,temp5,temp6;
	CDBVariant var;
	rs.Open(CRecordset::dynaset,"select * from eq_info");
    for(int i=0;i<=m_edit_1.GetLength ();i++)
	{
		if(m_edit_1.Mid (i,1)=="\\")
		{
			sExcelFile=sExcelFile+m_edit_1.Mid (i,1)+"\\";
		}
		else
			sExcelFile=sExcelFile+m_edit_1.Mid (i,1);
	}
	TRY
	{
		sSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);
        if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
		{
			sSql = "CREATE TABLE statistic (\"部门编号\" TEXT,\"设备编号\" TEXT,\"设备名称\" TEXT,\"类别编号\" TEXT,\"规格型号\" TEXT,\"设备数量\" TEXT,\"设备状态号\" TEXT,\"购入日期\" TEXT,\"安装日期\" TEXT,\"原值\" TEXT,\"安装地点\" TEXT,\"生产厂家\" TEXT,\"使用日期\" TEXT,\"使用年限\" TEXT,\"残值\" TEXT,\"月折旧金额\" TEXT,\"备注\" TEXT)";
            database.ExecuteSQL(sSql);
		}
	}
	CATCH_ALL(e)
	{
		TRACE1("Excel驱动没有安装: %s",sDriver);
	}
    END_CATCH_ALL;
	while(!rs.IsEOF())
	{
		rs.GetFieldValue((short)0,id);
		rs.GetFieldValue((short)1,name);
		rs.GetFieldValue((short)2,eq_class_id);
		rs.GetFieldValue((short)3,eq_type);
		rs.GetFieldValue((short)4,var,SQL_C_SLONG);
		if(var.m_dwType!=DBVT_NULL)
			eq_amount=var.m_lVal;
		else
			eq_amount=0;
		var.Clear();
		rs.GetFieldValue((short)5,var,SQL_C_SLONG);
		if(var.m_dwType!=DBVT_NULL)
			eq_state=var.m_lVal;
		else
			eq_state=0;
		var.Clear();
		rs.GetFieldValue((short)6,pur_date);
		pur_date=pur_date.Mid(0,10);//节取字符串
		rs.GetFieldValue((short)7,install_date);
		install_date=pur_date.Mid(0,10);
		rs.GetFieldValue((short)8,dep_id);
		rs.GetFieldValue((short)9,var,SQL_C_SLONG);
		if(var.m_dwType!=DBVT_NULL)
			eq_val=var.m_lVal;
		else
			eq_val=0;
		var.Clear();
		rs.GetFieldValue((short)10,fix_place);
		rs.GetFieldValue((short)11,manfac);
		rs.GetFieldValue((short)12,use_date);
		use_date=pur_date.Mid(0,10);
		rs.GetFieldValue((short)13,var,SQL_C_SLONG);
		if(var.m_dwType!=DBVT_NULL)
			fix_year=var.m_lVal;
		else
			fix_year=0;
		var.Clear();
		rs.GetFieldValue((short)14,var,SQL_C_SLONG);
		if(var.m_dwType!=DBVT_NULL)
			rem_val=var.m_lVal;
		else
			rem_val=0;
		var.Clear();
		rs.GetFieldValue((short)15,var,SQL_C_SLONG);
		if(var.m_dwType!=DBVT_NULL)
			mon_val=var.m_lVal;
		else
			mon_val=0;
		var.Clear();
		rs.GetFieldValue((short)16,remark);
	    temp.Format("%d",eq_amount);
	    temp1.Format("%d元",eq_val);
	    temp2.Format("%d年",fix_year);
	    temp3.Format("%d元",rem_val);
	    temp4.Format("%d元",mon_val);
	    if(eq_state==1)
		{temp5.Format("安装");}
	    else if(eq_state==2)
		{temp5.Format("使用");}
	    else if(eq_state==3)
		{temp5.Format("维修");}
	    else if(eq_state==4)
		{temp5.Format("报废");}
		sSql.Format ( "INSERT INTO statistic (部门编号,设备编号,设备名称,类别编号,规格型号,设备数量,设备状态号,购入日期,安装日期,原值,安装地点,生产厂家,使用日期,使用年限,残值,月折旧金额,备注) VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",dep_id,id,name,eq_class_id,eq_type,temp,temp5,pur_date,install_date,temp1,fix_place,manfac,use_date,temp2,temp3,temp4,remark);
        database.ExecuteSQL(sSql);
		rs.MoveNext();
	}
	database.Close();
	rs.Close();
}

void CEq_manager_sysDlg::OnButton_born() 
{
	// TODO: Add your control notification handler code here
		//更新数据
		UpdateData(FALSE);
		//设置static变量
		CRecordset rs3(&m_db);
		CString id,temp;
		rs3.Open(CRecordset::dynaset,"select * from eq_info");
		int max=0,tmp,i=0;
		while(!rs3.IsEOF())
		{
			rs3.GetFieldValue((short)0,id);			
			id=id.Mid(1,id.GetLength());
			tmp=atoi(id);
			if(tmp>max)
			{max=tmp;}
			rs3.MoveNext();
			i++;
		}
		rs3.Close();
		if(i==0)
		{
			m_id="S0001";
		}
		else
		{
			max++;
			if(max<10)
				temp.Format("S000%d",max);
			else if(max>=10&&max<100)
				temp.Format("S00%d",max);
			else if(max>=100&&max<1000)
				temp.Format("S0%d",max);
			else if(max>=1000&&max<10000)
				temp.Format("S%d",max);
			m_id=temp;
		}
		m_id_c.SetWindowText(m_id);
		UpdateData(FALSE);
}

void CEq_manager_sysDlg::OnButtonDba() 
{
	// TODO: Add your control notification handler code here
	CDBA dlg;
	dlg.DoModal();
}

⌨️ 快捷键说明

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