📄 eq_statedlg.cpp
字号:
// Eq_STATEDlg.cpp : implementation file
//
#include "stdafx.h"
#include "eq_manager_sys.h"
#include "Eq_STATEDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEq_STATEDlg dialog
CEq_STATEDlg::CEq_STATEDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEq_STATEDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEq_STATEDlg)
m_com2 = _T("");
//}}AFX_DATA_INIT
}
void CEq_STATEDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEq_STATEDlg)
DDX_Control(pDX, IDC_COMBO1, m_combo1);
DDX_Control(pDX, IDC_COMBO2, m_combo2);
DDX_Control(pDX, IDC_LIST1, m_list1);
DDX_CBString(pDX, IDC_COMBO2, m_com2);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEq_STATEDlg, CDialog)
//{{AFX_MSG_MAP(CEq_STATEDlg)
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEq_STATEDlg message handlers
BOOL CEq_STATEDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitControl();//初始化control列
ConnectDB();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CEq_STATEDlg::InitControl()//添加控件显示列
{
DWORD dwExstyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|
LVS_EX_ONECLICKACTIVATE|LVS_EX_UNDERLINEHOT;
m_list1.SetExtendedStyle(dwExstyle);
//初试化设备信息表列表框控件
m_list1.InsertColumn(0,"设备编号",LVCFMT_CENTER,60);
m_list1.InsertColumn(1,"设备名称",LVCFMT_CENTER,80);
m_list1.InsertColumn(2,"类别编号",LVCFMT_CENTER,80);
m_list1.InsertColumn(3,"规格型号",LVCFMT_CENTER,200);
m_list1.InsertColumn(4,"设备数量",LVCFMT_CENTER,60);
m_list1.InsertColumn(5,"设备状态",LVCFMT_CENTER,60);
m_list1.InsertColumn(6,"购入日期",LVCFMT_CENTER,80);
m_list1.InsertColumn(7,"安装日期",LVCFMT_CENTER,80);
m_list1.InsertColumn(8,"部门编号",LVCFMT_CENTER,80);
m_list1.InsertColumn(9,"原值",LVCFMT_CENTER,70);
m_list1.InsertColumn(10,"安装地点",LVCFMT_CENTER,120);
m_list1.InsertColumn(11,"生产厂家",LVCFMT_CENTER,150);
m_list1.InsertColumn(12,"使用日期",LVCFMT_CENTER,80);
m_list1.InsertColumn(13,"使用年限",LVCFMT_CENTER,60);
m_list1.InsertColumn(14,"残值",LVCFMT_CENTER,80);
m_list1.InsertColumn(15,"月折旧金额",LVCFMT_CENTER,80);
m_list1.InsertColumn(16,"备注",LVCFMT_CENTER,200);
m_list1.SetBkColor(RGB(255,255,200));
m_list1.SetTextBkColor(RGB(255,221,221));
m_combo1.SetCurSel(0);
UpdateData(FALSE);
}
void CEq_STATEDlg::ConnectDB()//连接数据库函数
{
TRY
{
m_db.OpenEx("DSN=ORADB;UID=eq_system;PWD=eq_system",CDatabase::noOdbcDialog);
}
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
InitCtrlData();
}
void CEq_STATEDlg::InitCtrlData()
{
if(!m_db.IsOpen())
{
MessageBox("数据库没打开");
return;
}
m_list1.DeleteAllItems();
TRY
{
/*CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from eq_info");
while(!rs.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;
//获得字段直
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);
//向控件加入一条
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);
rs.MoveNext();
}
rs.Close();
//更新数据
if(!UpdateData())
return;
//RefreshComboNameData();*/
}
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_STATEDlg::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_list1.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_list1.InsertItem(&lvItem);
//设置该行的其他列的直
m_list1.SetItemText(index,1,name);
m_list1.SetItemText(index,2,eq_class_id);
m_list1.SetItemText(index,3,eq_type);
m_list1.SetItemText(index,4,temp);
m_list1.SetItemText(index,5,temp5);
m_list1.SetItemText(index,6,pur_date);
m_list1.SetItemText(index,7,install_date);
m_list1.SetItemText(index,8,dep_id);
m_list1.SetItemText(index,9,temp1);
m_list1.SetItemText(index,10,fix_place);
m_list1.SetItemText(index,11,manfac);
m_list1.SetItemText(index,12,use_date);
m_list1.SetItemText(index,13,temp2);
m_list1.SetItemText(index,14,temp3);
m_list1.SetItemText(index,15,temp4);
m_list1.SetItemText(index,16,remark);
}
void CEq_STATEDlg::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from eq_info");
if(m_combo1.GetCurSel ()==0)//部门编号
{
CString temp[100];
int count=0;
m_combo2.ResetContent ();
while(!rs.IsEOF())
{
CString dep_id;
int j=0,flag=0;
rs.GetFieldValue((short)8,dep_id);
//向列表框中添加所有设备类别
while(j<=count)
{
if(temp[j]==dep_id)
{
flag=1;
break;
}
j++;
}
if(flag==0)
{
temp[count]=dep_id;
count++;
m_combo2.AddString(dep_id);
}
rs.MoveNext();
}
}
else if(m_combo1.GetCurSel ()==1)//类别编号
{
CString temp[100];
int count=0;
m_combo2.ResetContent ();
while(!rs.IsEOF())
{
CString eq_class_id;
int j=0,flag=0;
rs.GetFieldValue((short)2,eq_class_id);
//向列表框中添加所有设备类别
while(j<=count)
{
if(temp[j]==eq_class_id)
{
flag=1;
break;
}
j++;
}
if(flag==0)
{
temp[count]=eq_class_id;
count++;
m_combo2.AddString(eq_class_id);
}
rs.MoveNext();
}
}
else if(m_combo1.GetCurSel ()==2)//设备状态
{
m_combo2.ResetContent ();
m_combo2.AddString ("安装");
m_combo2.AddString ("使用");
m_combo2.AddString ("维护");
m_combo2.AddString ("报废");
}
rs.Close();
//更新数据
m_combo2.SetCurSel(0);
if(!UpdateData())
return;
}
void CEq_STATEDlg::OnSelchangeCombo2()
{
// TODO: Add your control notification handler code here
int com1,com2,query_state,temp_eq_state;
CRecordset rs(&m_db);
CString temp_eq_num;
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;
com1=m_combo1.GetCurSel ();
com2=m_combo2.GetCurSel ();
temp_eq_num=m_com2;//.GetWindowText (temp_eq_num,20);
rs.Open(CRecordset::dynaset,"select * from eq_info");
switch(com1)
{
case 0: //部门编号
query_state=0;
break;
case 1: //类别编号
query_state=1;
break;
case 2: //设备状态
query_state=2;
switch(com2)
{
case 0: //安装
temp_eq_state=0;
break;
case 1: //使用
temp_eq_state=1;
break;
case 2: //维护
temp_eq_state=2;
break;
case 3: //报废
temp_eq_state=3;
break;
default:
break;
}
break;
default:
break;
}
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=install_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=use_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);
//向控件加入一条
if(query_state==2)
{
if(temp_eq_state==(eq_state-1))
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);
}
else if(query_state==1)
{
if(temp_eq_num==eq_class_id)
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);
}
else if(query_state==0)
{
if(temp_eq_num==dep_id)
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);
}
rs.MoveNext();
}
rs.Close();
//更新数据
if(!UpdateData())
return;
}
void CEq_STATEDlg::OnOK()
{
// TODO: Add extra validation here
m_list1.DeleteAllItems();
UpdateData();
//CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -