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

📄 eq_manager_sysdlg.cpp

📁 自己编的设备管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
				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();
		OnButton_born();
		//更新数据
		if(!UpdateData())
			return;
		RefreshComboNameData();
		
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox("问题出在初试化表格xx");
		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::RefreshClass_Dep_Data()
{
	if(!m_db.IsOpen())
	{
		MessageBox("数据库没打开");
			return;
	}
	m_list_eq_class.DeleteAllItems();
	m_list_dep.DeleteAllItems();
	TRY
	{
		CRecordset rs(&m_db);
		CRecordset rs1(&m_db);
		rs1.Open(CRecordset::dynaset,"select * from dep_info");

		while(!rs1.IsEOF())
		{
			CString id,name,manager;
			int n,val;
			CDBVariant var;
			//获得字段直
			rs1.GetFieldValue((short)0,id);
			rs1.GetFieldValue((short)1,name);
			rs1.GetFieldValue((short)2,manager);
			rs1.GetFieldValue((short)3,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				n=var.m_lVal;
			var.Clear();
			rs1.GetFieldValue((short)4,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				val=var.m_lVal;
			var.Clear();
			//向控件加入一条
			InsertDep(id,name,manager,n,val);
			rs1.MoveNext();
		}
		rs1.Close();
		rs.Open(CRecordset::dynaset,"select * from eq_class");
		while(!rs.IsEOF())
		{
			CString id,name;
			int n,val;
			CDBVariant var;
			//获得字段直
			rs.GetFieldValue((short)0,id);
			rs.GetFieldValue((short)1,name);
			rs.GetFieldValue((short)2,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				n=var.m_lVal;
			var.Clear();
			rs.GetFieldValue((short)3,var,SQL_C_SLONG);
			if(var.m_dwType!=DBVT_NULL)
				val=var.m_lVal;
			var.Clear();
			//向控件加入一条
			InsertEqclass(id,name,n,val);
			rs.MoveNext();
		}	
		rs.Close();

		if(!UpdateData())
			return;
		RefreshComboNameData();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox("问题出在更新class,dep");
		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::InsertEqclass(CString id,CString name,int n,int val)
{
	//获得记录条数
	int index=m_list_eq_class.GetItemCount();
	CString temp,temp1,temp2;
	temp.Format("%d",n);
	temp1.Format("%d元",val);
	LV_ITEM lvItem;
	lvItem.mask=LVIF_TEXT;
	lvItem.iItem=index;// 行数
	lvItem.iSubItem=0;
	lvItem.pszText=(char*)(LPCTSTR)id;//第一列
	//在最后一行插入记录直
	m_list_eq_class.InsertItem(&lvItem);
	//设置该行的其他列的直
	m_list_eq_class.SetItemText(index,1,name);
	m_list_eq_class.SetItemText(index,2,temp);
	m_list_eq_class.SetItemText(index,3,temp1);
}
void CEq_manager_sysDlg::RefreshComboNameData()
{
	m_class_id.ResetContent();
	TRY
	{
		CRecordset rs(&m_db);
		//打开所有类别编号记录
		rs.Open(CRecordset::dynaset,"select * from eq_class");
		
		while(!rs.IsEOF())
		{
			CString strClass;
			rs.GetFieldValue((short)0,strClass);
			//向列表框中添加所有设备类别 
			m_class_id.AddString(strClass);
			rs.MoveNext();
		}
		rs.Close();
		m_class_id.SetCurSel(0);
		//更新部门编号列表框的数据
		m_dep_id.ResetContent();
		rs.Open(CRecordset::dynaset,"select dep_id from dep_info");
		while(!rs.IsEOF())
		{
			CString strDep;
			rs.GetFieldValue((short)0,strDep);
			//向列表框中添加所有设备类别 
			m_dep_id.AddString(strDep);
			rs.MoveNext();
		}
		rs.Close();
		m_dep_id.SetCurSel(0);
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox("列表更新数据错误");
		AfxMessageBox(ex->m_strError);
		AfxMessageBox(ex->m_strStateNativeOrigin);
	}
	AND_CATCH(CMemoryException,pEx)
	{
		AfxMessageBox("xx");
		pEx->ReportError();
		AfxMessageBox("memory exception");
	}
	AND_CATCH(CException,e)
	{
		AfxMessageBox("xxx");
		TCHAR szError[100];
		e->GetErrorMessage(szError,100);
		AfxMessageBox(szError);
	}
	END_CATCH
}
void CEq_manager_sysDlg::InsertDep(CString id,CString name,CString manager,int n,int val)
{	
	int index=m_list_dep.GetItemCount();
	CString temp,temp1;
	temp.Format("%d",n);
	temp1.Format("%d元",val);
	LV_ITEM lvItem1;
	lvItem1.mask=LVIF_TEXT;
	lvItem1.iItem=index;// 行数
	lvItem1.iSubItem=0;
	lvItem1.pszText=(char*)(LPCTSTR)id;//第一列
	//在最后一行插入记录直
	m_list_dep.InsertItem(&lvItem1);
	//设置该行的其他列的直
	m_list_dep.SetItemText(index,1,name);
	m_list_dep.SetItemText(index,2,manager);
	m_list_dep.SetItemText(index,3,temp);
	m_list_dep.SetItemText(index,4,temp1);	
}
void CEq_manager_sysDlg::InsertEq(CString id,CString name,CString eq_class_id,CString eq_type,int eq_amount,int eq_state,CString pur_date,CString install_date,CString dep_id,int eq_val,CString fix_place,CString manfac,CString use_date,int fix_year,int rem_val,int mon_val,CString remark)
{
	int index=m_list_eq.GetItemCount();
	CString temp,temp1,temp2,temp3,temp4,temp5,temp6;
	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("报废");}
	LV_ITEM lvItem;
	lvItem.mask=LVIF_TEXT;
	lvItem.iItem=index;// 行数
	lvItem.iSubItem=0;
	lvItem.pszText=(char*)(LPCTSTR)id;//第一列
	//在最后一行插入记录直
	m_list_eq.InsertItem(&lvItem);
	//设置该行的其他列的直
	m_list_eq.SetItemText(index,1,name);
	m_list_eq.SetItemText(index,2,eq_class_id);
	m_list_eq.SetItemText(index,3,eq_type);
	m_list_eq.SetItemText(index,4,temp);
	m_list_eq.SetItemText(index,5,temp5);
	m_list_eq.SetItemText(index,6,pur_date);
	m_list_eq.SetItemText(index,7,install_date);
	m_list_eq.SetItemText(index,8,dep_id);
	m_list_eq.SetItemText(index,9,temp1);
	m_list_eq.SetItemText(index,10,fix_place);
	m_list_eq.SetItemText(index,11,manfac);
	m_list_eq.SetItemText(index,12,use_date);
	m_list_eq.SetItemText(index,13,temp2);
	m_list_eq.SetItemText(index,14,temp3);
	m_list_eq.SetItemText(index,15,temp4);
	m_list_eq.SetItemText(index,16,remark);
}
void CEq_manager_sysDlg::OnButton2()//新设备入库 
{
	// TODO: Add your control notification handler code here	
//从界面控件中获取信息更新到控件变量中
	if(!UpdateData())
		return;
	m_re.GetWindowText(m_remark);
	m_name_c.GetWindowText(m_name);
	m_class_id.GetWindowText(m_classid);
	m_dep_id.GetWindowText(m_depid);
	m_type_c.GetWindowText(m_type);
	m_amount_c.GetWindowText(m_amount);
	m_val_c.GetWindowText(m_val);
	m_location_c.GetWindowText(m_location);
	m_manufa_c.GetWindowText(m_manufa);
	m_fix_year_c.GetWindowText(m_fix_year);
	m_month_c.GetWindowText(m_month);
	//构造入库时间
	CString strDate=m_pur_date.Format("%Y-%m-%d");
	CString strDate1=m_install_date.Format("%Y-%m-%d");
	CString strDate2=m_use_date.Format("%Y-%m-%d");
	TRY
	{
		CRecordset rs(&m_db);
		CString sql;
		//判断状态
		int m_state=1;
		int m_per_val=0;
//		if(m_amount<0)
//		{m_amount.Format("0");}
		//插入新的设备记录
		sql.Format("Insert into eq_info values("
			"'%s','%s','%s','%s','%s',1,to_date('%s','yyyy-mm-dd'),to_date('%s','yyyy-mm-dd'),'%s','%s','%s','%s',"
			"to_date('%s','yyyy-mm-dd'),'%s','%d','%s','%s')",m_id,m_name,m_classid,m_type,m_amount,strDate,strDate1,m_depid,m_val,m_location,m_manufa,strDate2,m_fix_year,m_per_val,m_month,m_remark);
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		//向界面中插入新的设备信息
		CDBVariant var;
		int eq_amount,eq_state,eq_fix_year,rem_val,mon_val,eq_val;
		sql.Format("Select * from eq_info where eq_id='%s'",m_id);
		rs.Open(CRecordset::snapshot,sql);
		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)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)13,var,SQL_C_SLONG);
		if(var.m_dwType!=DBVT_NULL)
			eq_fix_year=var.m_lVal;
		else
			eq_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();		
		InsertEq(m_id,m_name,m_classid,m_type,eq_amount,eq_state,strDate,strDate1,m_depid,eq_val,m_location,m_manufa,strDate2,eq_fix_year,rem_val,mon_val,m_remark);
		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::OnBUTTONclose() 
{
	// TODO: Add your control notification handler code here
	CString sql,sql1;
//	sql.Format("update eq_class set eq_class_amount=0,eq_class_orig_val=0");
	sql1.Format("update dep_info set dep_eq_amount=0,dep_eq_orig_val=0");
	TRACE(sql);
//		m_db.ExecuteSQL(sql);
	m_db.ExecuteSQL(sql1);
	RefreshClass_Dep_Data();
}

void CEq_manager_sysDlg::OnButton_update() 
{
	if(!UpdateData())
		return;
	m_re.GetWindowText(m_remark);
//	m_id_c.GetWindowText(m_id);
	m_name_c.GetWindowText(m_name);
	m_class_id.GetWindowText(m_classid);
	m_dep_id.GetWindowText(m_depid);
	m_type_c.GetWindowText(m_type);
	m_amount_c.GetWindowText(m_amount);
	m_val_c.GetWindowText(m_val);
	m_location_c.GetWindowText(m_location);
	m_manufa_c.GetWindowText(m_manufa);
	m_fix_year_c.GetWindowText(m_fix_year);
	m_month_c.GetWindowText(m_month);
	// 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);
	if(!UpdateData())
		return;
	//构造入库时间
	CString strDate=m_pur_date.Format("%Y-%m-%d");
	CString strDate1=m_install_date.Format("%Y-%m-%d");
	CString strDate2=m_use_date.Format("%Y-%m-%d");
	TRY
	{
		CString sql;
		//更新
		sql.Format("update eq_info set eq_name='%s',"
			"eq_class_id='%s',"
			"eq_type='%s',"
			"eq_amount='%s',"
			"pur_date=to_date('%s','yyyy-mm-dd'),"
			"install_date=to_date('%s','yyyy-mm-dd'),"
			"dep_id='%s',"
			"eq_orig_val='%s',"
			"fix_place='%s',"
			"manfactory='%s',"
			"use_date=to_date('%s','yyyy-mm-dd'),"
			"fix_year='%s',"
			"mon_fray_val='%s',"
			"remark='%s'"
			"where eq_id='%s'",m_name,m_classid,m_type,m_amount,strDate,strDate1,m_depid,m_val,m_location,m_manufa,strDate2,m_fix_year,m_month,m_remark,strId);
	
		TRACE(sql);
		m_db.ExecuteSQL(sql);
		//更新控件表
		CString val,year,month,per;
		val.Format("%s元",m_val);
		year.Format("%s年",m_fix_year);
		month.Format("%s元",m_month);
		m_list_eq.SetItemText(nItem,1,m_name);
		m_list_eq.SetItemText(nItem,2,m_classid);
		m_list_eq.SetItemText(nItem,3,m_type);
		m_list_eq.SetItemText(nItem,4,m_amount);
		m_list_eq.SetItemText(nItem,6,strDate);
		m_list_eq.SetItemText(nItem,7,strDate1);
		m_list_eq.SetItemText(nItem,8,m_depid);
		m_list_eq.SetItemText(nItem,9,val);
		m_list_eq.SetItemText(nItem,10,m_location);
		m_list_eq.SetItemText(nItem,11,m_manufa);
		m_list_eq.SetItemText(nItem,12,strDate2);
		m_list_eq.SetItemText(nItem,13,year);
		m_list_eq.SetItemText(nItem,15,month);
		m_list_eq.SetItemText(nItem,16,m_remark);
	
		RefreshClass_Dep_Data();
	}
	CATCH(CDBException,ex)
	{
		AfxMessageBox("问题出在更新");

⌨️ 快捷键说明

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