📄 eq_manager_sysdlg.cpp
字号:
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 + -