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