📄 eq_searchdlg.cpp
字号:
// Eq_SEARCHDlg.cpp : implementation file
//
#include "stdafx.h"
#include "eq_manager_sys.h"
#include "Eq_SEARCHDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
int cond_num=0,cond_state[100];
CString condition1[100];
/////////////////////////////////////////////////////////////////////////////
// CEq_SEARCHDlg dialog
CEq_SEARCHDlg::CEq_SEARCHDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEq_SEARCHDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEq_SEARCHDlg)
m_com1 = _T("");
m_com2 = _T("");
m_edit1 = _T("");
m_mo = _T("");
//}}AFX_DATA_INIT
}
void CEq_SEARCHDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEq_SEARCHDlg)
DDX_Control(pDX, IDC_EDIT_mo, m_mo_c);
DDX_Control(pDX, IDC_COMBO2, m_combo2);
DDX_Control(pDX, IDC_COMBO1, m_combo1);
DDX_Control(pDX, IDC_LIST1, m_list1);
DDX_CBString(pDX, IDC_COMBO1, m_com1);
DDX_CBString(pDX, IDC_COMBO2, m_com2);
DDX_Text(pDX, IDC_EDIT1, m_edit1);
DDX_Text(pDX, IDC_EDIT_mo, m_mo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEq_SEARCHDlg, CDialog)
//{{AFX_MSG_MAP(CEq_SEARCHDlg)
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_BN_CLICKED(IDC_BUTTON_mo, OnBUTTONmo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEq_SEARCHDlg message handlers
void CEq_SEARCHDlg::OnOK()
{
// TODO: Add extra validation here
//CDialog::OnOK();
CRecordset rs(&m_db);
CString id,name,eq_class_id,eq_type,pur_date,install_date,dep_id,fix_place,manfac,use_date,remark;
CString cs_eq_var,cs_rem_val,cs_mon_val,cs_fix_year;
int eq_amount,eq_state,fix_year,rem_val,mon_val,eq_val;
int flag=0,temp_cond_num=cond_num;
CDBVariant var;
rs.Open(CRecordset::dynaset,"select * from eq_info");
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,cs_eq_var);
eq_val=atoi(cs_eq_var);
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,cs_fix_year);
fix_year=atoi(cs_fix_year);
rs.GetFieldValue((short)14,cs_rem_val);
rem_val=atoi(cs_rem_val);
rs.GetFieldValue((short)15,cs_mon_val);
mon_val=atoi(cs_mon_val);
rs.GetFieldValue((short)16,remark);
//向控件加入一条
for(temp_cond_num=cond_num;temp_cond_num>0;temp_cond_num--)
{
switch(cond_state[temp_cond_num])
{
case 0://设备编号
if(condition1[temp_cond_num]==id)
flag=1;
else
flag=0;
break;
case 1://设备名称
if(condition1[temp_cond_num]==name)
flag=1;
else
flag=0;
break;
case 2://类别编号
if(condition1[temp_cond_num]==eq_class_id)
flag=1;
else
flag=0;
break;
case 3://型号规格
if(condition1[temp_cond_num]==eq_type)
flag=1;
else
flag=0;
break;
case 4://设备状态
switch(eq_state)
{
case 1:
if(condition1[temp_cond_num]=="1安装")
flag=1;
else
flag=0;
break;
case 2:
if(condition1[temp_cond_num]=="2使用")
flag=1;
else
flag=0;
break;
case 3:
if(condition1[temp_cond_num]=="3维修")
flag=1;
else
flag=0;
break;
case 4:
if(condition1[temp_cond_num]=="4报废")
flag=1;
else
flag=0;
break;
}
break;
case 5://购入日期
if(condition1[temp_cond_num]==pur_date.Mid (0,7))
flag=1;
else
flag=0;
break;
case 6://安装日期
if(condition1[temp_cond_num]==install_date.Mid (0,7))
flag=1;
else
flag=0;
break;
case 7://部门编号
if(condition1[temp_cond_num]==dep_id)
flag=1;
else
flag=0;
break;
case 8://原值
if(condition1[temp_cond_num]==cs_eq_var)
flag=1;
else
flag=0;
break;
case 9://安装地点
if(condition1[temp_cond_num]==fix_place)
flag=1;
else
flag=0;
break;
case 10://生产厂
if(condition1[temp_cond_num]==manfac)
flag=1;
else
flag=0;
break;
case 11://使用日期
if(condition1[temp_cond_num]==use_date.Mid (0,7))
flag=1;
else
flag=0;
break;
case 12://使用年限
if(condition1[temp_cond_num]==cs_fix_year)
flag=1;
else
flag=0;
break;
case 13://残值
if(condition1[temp_cond_num]==cs_rem_val)
flag=1;
else
flag=0;
break;
case 14://月折旧金额
if(condition1[temp_cond_num]==cs_mon_val)
flag=1;
else
flag=0;
break;
default:
break;
}
if(flag==0)
break;
}
if(flag==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);
flag=0;
rs.MoveNext();
}
rs.Close();
int index=m_list1.GetItemCount();
if(index==0)
{MessageBox("没有您输入查询条件的结果");}
//更新数据
cond_num=0;
UpdateData();
}
void CEq_SEARCHDlg::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);
}
BOOL CEq_SEARCHDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitControl();//初始化control列
ConnectDB();
m_combo1.SetCurSel (0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CEq_SEARCHDlg::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));
UpdateData(FALSE);
}
void CEq_SEARCHDlg::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
}
void CEq_SEARCHDlg::OnSelchangeCombo1()
{
// TODO: Add your control notification handler code here
CRecordset rs(&m_db);
rs.Open(CRecordset::dynaset,"select * from eq_info");
switch(m_combo1.GetCurSel ())
{
case 0://设备编号
{
CString temp[100];
int count=0;
m_combo2.ResetContent ();
while(!rs.IsEOF())
{
CString id;
int j=0,flag=0;
rs.GetFieldValue((short)0,id);
//向列表框中添加所有设备类别
while(j<=count)
{
if(temp[j]==id)
{
flag=1;
break;
}
j++;
}
if(flag==0)
{
temp[count]=id;
count++;
m_combo2.AddString(id);
}
rs.MoveNext();
}
}
break;
case 1://设备名称
{
CString temp[100];
int count=0;
m_combo2.ResetContent ();
while(!rs.IsEOF())
{
CString name;
int j=0,flag=0;
rs.GetFieldValue((short)1,name);
//向列表框中添加所有设备类别
while(j<=count)
{
if(temp[j]==name)
{
flag=1;
break;
}
j++;
}
if(flag==0)
{
temp[count]=name;
count++;
m_combo2.AddString(name);
}
rs.MoveNext();
}
}
break;
case 2://类别编号
{
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();
}
}
break;
case 3://型号规格
{
CString temp[100];
int count=0;
m_combo2.ResetContent ();
while(!rs.IsEOF())
{
CString eq_type;
int j=0,flag=0;
rs.GetFieldValue((short)3,eq_type);
//向列表框中添加所有设备类别
while(j<=count)
{
if(temp[j]==eq_type)
{
flag=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -