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

📄 eq_searchdlg.cpp

📁 自己编的设备管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -