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

📄 adminpage.cpp

📁 完整的汽配查询软件
💻 CPP
字号:
// AdminPage.cpp : implementation file
//

#include "stdafx.h"
#include "TProd.h"
#include "AdminPage.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CTProdApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CAdminPage dialog


CAdminPage::CAdminPage(CWnd* pParent /*=NULL*/)
	: CDialog(CAdminPage::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAdminPage)
	m_adappname = _T("");
	m_adtpno = _T("");
	m_adkgs = _T("");
	m_adoeno = _T("");
	m_adprodname = _T("");
	m_adqty = _T("");
	m_adsize = _T("");
	m_adoe = _T("");
	m_adpicname = _T("");
	//}}AFX_DATA_INIT
	m_nCurrentSel=-1;
	m_bSuccess = FALSE;
	m_bAutoSave = TRUE;
	picpath="1.jpg";

}


void CAdminPage::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAdminPage)
	DDX_Control(pDX, IDC_COUNT, m_count);
	DDX_Control(pDX, IDC_SELPIC, m_selpic);
	DDX_Control(pDX, IDC_ADOE, m_99);
	DDX_Control(pDX, IDOK, m_okbt);
	DDX_Control(pDX, IDC_DELETE, m_deletebt);
	DDX_Control(pDX, IDC_MODIFY, m_modifybt);
	DDX_Control(pDX, IDC_ADDNEW, m_addbt);
	DDX_Control(pDX, IDC_ADMINLIST, m_adminlist);
	DDX_Control(pDX, IDC_ADTPNO, m_88);
	DDX_Control(pDX, IDC_ADSIZE, m_77);
	DDX_Control(pDX, IDC_ADQTY, m_66);
	DDX_Control(pDX, IDC_ADPRODNAME, m_55);
	DDX_Control(pDX, IDC_ADPICPATH, m_44);
	DDX_Control(pDX, IDC_ADOENO, m_33);
	DDX_Control(pDX, IDC_ADKGS, m_22);
	DDX_Control(pDX, IDC_ADAPPNAME, m_11);
	DDX_Text(pDX, IDC_ADAPPNAME, m_adappname);
	DDX_Text(pDX, IDC_ADTPNO, m_adtpno);
	DDX_Text(pDX, IDC_ADKGS, m_adkgs);
	DDX_Text(pDX, IDC_ADOENO, m_adoeno);
	DDX_Text(pDX, IDC_ADPRODNAME, m_adprodname);
	DDX_Text(pDX, IDC_ADQTY, m_adqty);
	DDX_Text(pDX, IDC_ADSIZE, m_adsize);
	DDX_Control(pDX, IDC_ADMINPIC, m_adPicture);
	DDX_Text(pDX, IDC_ADOE, m_adoe);
	DDX_Text(pDX, IDC_ADPICPATH, m_adpicname);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAdminPage, CDialog)
	//{{AFX_MSG_MAP(CAdminPage)
	ON_BN_CLICKED(IDC_MODIFY, OnModify)
	ON_BN_CLICKED(IDC_ADDNEW, OnAddnew)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_SELPIC, OnSelpic)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_ADMINLIST, OnItemchangedUserlist)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdminPage message handlers

void CAdminPage::ListInit()
{
	//设置颜色
	const COLORREF BGColor = RGB(250, 250,250);
	const COLORREF BGTColor = RGB(255, 0, 0);
	const COLORREF BGTBColor = RGB(250,250, 250);
	m_adminlist.SetBkColor(BGColor);
	m_adminlist.SetTextColor(BGTColor);
	m_adminlist.SetTextBkColor(BGTBColor);
	//设表格表题
	m_adminlist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_adminlist.InsertColumn(0,_T("TP NO."),LVCFMT_IMAGE|LVCFMT_LEFT);
	m_adminlist.InsertColumn(1,_T("ARTICLE"));
	m_adminlist.InsertColumn(2,_T("O.E.NO."));
	m_adminlist.InsertColumn(3,_T("MAKER"));
	m_adminlist.InsertColumn(4,_T("APPLICATION"));
	m_adminlist.InsertColumn(5,_T("SIZE"));
	m_adminlist.InsertColumn(6,_T("QTY"));
	m_adminlist.InsertColumn(7,_T("KGS"));
	//列的宽度
	m_adminlist.SetColumnWidth(0 ,48);
	m_adminlist.SetColumnWidth(1 ,150);
	m_adminlist.SetColumnWidth(2 ,105);
	m_adminlist.SetColumnWidth(3 ,80);
	m_adminlist.SetColumnWidth(4 ,130);
	m_adminlist.SetColumnWidth(5,50);
	m_adminlist.SetColumnWidth(6,35);
	m_adminlist.SetColumnWidth(7,50);
}

BOOL CAdminPage::OnInitDialog() 
{
	CDialog::OnInitDialog();

	ListInit();
	LoadData();

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}



void CAdminPage::OnModify() 
{
	if(m_nCurrentSel==-1)
		MessageBox("You must select one item at first.\n Then you can modify information.");
	else
	{
		UpdateData(); // 更新对话框数据
		CheckVar();
		// 修改当前记录的字段值
		try
		{
		m_pRecordsetAdmin->PutCollect("tpno", _variant_t(m_adtpno));
		m_pRecordsetAdmin->PutCollect("prodname", _variant_t(m_adprodname));
		m_pRecordsetAdmin->PutCollect("oeno", _variant_t(m_adoeno));
		m_pRecordsetAdmin->PutCollect("appname", _variant_t(m_adappname));
		m_pRecordsetAdmin->PutCollect("size", _variant_t(m_adsize));
		m_pRecordsetAdmin->PutCollect("kgs", _variant_t(m_adkgs));
		m_pRecordsetAdmin->PutCollect("qty", _variant_t(m_adqty));
		m_pRecordsetAdmin->PutCollect("oename", _variant_t(m_adoe));
		m_pRecordsetAdmin->PutCollect("picname", _variant_t(m_adpicname));

		m_pRecordsetAdmin->Update();
		LoadData();//列表重新加载数据
		m_pRecordsetAdmin->Move(m_nCurrentSel,_variant_t((long)adBookmarkFirst));//再次移动指针到修改位置
		MessageBox("  Success!");
		UpdateData(false); 
		}
		catch(_com_error *e)
		{
			AfxMessageBox(e->ErrorMessage());
		}
	}
}

void CAdminPage::OnAddnew() 
{
	if(m_nCurrentSel==-1)
		MessageBox("  You must select one item at first.\n Then you can input new information.");
	else
	{
		if(UpdateData())
		{
			CheckVar();
			m_pRecordsetAdmin->AddNew();
			m_nCurrentSel = m_adminlist.InsertItem(0xffff,"");
			SaveData();///保存数据
			m_adminlist.SetItemState(m_nCurrentSel,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
			m_adminlist.SetHotItem(m_nCurrentSel);
			m_adminlist.SetFocus();
			
			LoadData();//列表重新加载数据
			m_pRecordsetAdmin->Move(m_nCurrentSel,_variant_t((long)adBookmarkFirst));//再次移动指针到修改位置
			MessageBox("  Success!");
			UpdateData(false); 
		}
	}
}
void CAdminPage::OnDelete() 
{
		m_bAutoSave = FALSE;
	if(m_nCurrentSel >= 0)
	{
		m_adminlist.DeleteItem(m_nCurrentSel);
		int count = m_adminlist.GetItemCount();
		if(count <= m_nCurrentSel)
			m_nCurrentSel = count-1;
		m_pRecordsetAdmin->Delete(adAffectCurrent);
		m_pRecordsetAdmin->MoveNext();
		LoadData();
		m_adminlist.SetItemState(m_nCurrentSel,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
		m_adminlist.SetFocus();
		MessageBox("  Success!");
	}
	m_bAutoSave = TRUE;
}

void CAdminPage::OnSelpic() 
{
	CString sourcepic,Fliename,image="image\\",picpathtemp,picpathsel;
	char *path;
	CFileDialog	Dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Picture(*.jpg)|*.jpg|",NULL);
	if(Dlg.DoModal()!=IDOK)
		return;

	m_adpicname=Dlg.GetFileTitle();//取得图片主文件名赋值给编辑控件,以便输入数据库

	sourcepic=Dlg.GetPathName();//取得图片文件整个路径

	Fliename=Dlg.GetFileName();//取得图片文件全名

	TCHAR exeFullPath[MAX_PATH];// MAX_PATH在API中定义了吧,好象是 128 
	//程序完全路径
	GetModuleFileName(NULL,exeFullPath,MAX_PATH);

	//分离路径
	path = exeFullPath;
	while(strchr(path,'\\')) 
	{
		path = strchr(path,'\\');
		path++;
	}
	*path ='\0';
	picpathtemp=exeFullPath+image;//图片文件夹

	picpathsel=picpathtemp+Fliename;//图片全路径

	CopyFile(sourcepic, picpathsel, FALSE); //复制文件

	m_adPicture.SetImage(picpathsel);
	m_adPicture.Display();//加载图片

	UpdateData(false); 	//更新文件名编辑控件
}
//将数据库信息读到列表
void CAdminPage::LoadData()
{
	m_adminlist.DeleteAllItems();
	int nItem,i=0;//i为计数器
	_variant_t var;
	CString SQLstr,sLabel;
	SQLstr="SELECT * FROM prodinfo order by oeno";
	try
	{
		m_pRecordsetAdmin.CreateInstance("ADODB.Recordset");
		m_pRecordsetAdmin->Open(_bstr_t(SQLstr),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
		m_bSuccess = TRUE;
		while(!m_pRecordsetAdmin->adoEOF)
		{

			var = m_pRecordsetAdmin->GetCollect("tpno");
			if(var.vt != VT_NULL)
				vTpno = (LPCSTR)_bstr_t(var);
			else vTpno=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetAdmin->GetCollect("prodname");
			if(var.vt != VT_NULL)
				vProdname = (LPCSTR)_bstr_t(var);
			else vProdname=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetAdmin->GetCollect("oename");
			if(var.vt != VT_NULL)
				vOename = (LPCSTR)_bstr_t(var);
			else vOename=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetAdmin->GetCollect("oeno");
			if(var.vt != VT_NULL)
				vOeno = (LPCSTR)_bstr_t(var);
			else vOeno=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetAdmin->GetCollect("appname");
			if(var.vt != VT_NULL)
				vAppname = (LPCSTR)_bstr_t(var);
			else vAppname=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetAdmin->GetCollect("size");
			if(var.vt != VT_NULL)
				vSize = (LPCSTR)_bstr_t(var);
			else vSize=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetAdmin->GetCollect("qty");
			if(var.vt != VT_NULL)
				vQty = (LPCSTR)_bstr_t(var);
			else vQty=(LPCSTR)_bstr_t("NULL");

			var = m_pRecordsetAdmin->GetCollect("kgs");
			if(var.vt != VT_NULL)
				vKgs = (LPCSTR)_bstr_t(var);
			else vKgs=(LPCSTR)_bstr_t("NULL");

			nItem=m_adminlist.InsertItem(0xffff,(_bstr_t)vTpno);
			m_adminlist.SetItem(nItem,1,1,(_bstr_t)vProdname,NULL,0,0,0);
			m_adminlist.SetItem(nItem,2,1,(_bstr_t)vOeno,NULL,0,0,0);
			m_adminlist.SetItem(nItem,3,1,(_bstr_t)vOename,NULL,0,0,0);
			m_adminlist.SetItem(nItem,4,1,(_bstr_t)vAppname,NULL,0,0,0);
			m_adminlist.SetItem(nItem,5,1,(_bstr_t)vSize,NULL,0,0,0);
			m_adminlist.SetItem(nItem,6,1,(_bstr_t)vQty,NULL,0,0,0);
			m_adminlist.SetItem(nItem,7,1,(_bstr_t)vKgs,NULL,0,0,0);
			i++;
			m_pRecordsetAdmin->MoveNext();
		}
	}
	catch(_com_error e)///捕捉异常
	{
		AfxMessageBox("Read Database Fail!");///显示错误信息
	}

	sLabel.Format(  _T( "There are %d records in " )
				_T( "database." ), i );	
	m_count.SetWindowText( sLabel );

}
//////////在选择列表框的时候调用///////////////////
void CAdminPage::OnItemchangedUserlist(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	if(pNMListView->uNewState&LVIS_SELECTED)
	{
	UpdateData();
//	SaveData();///保存旧数据
	m_nCurrentSel = pNMListView->iItem;
	LoadProdInfo();///加载数据
	LoadPic();//加载图片
//	m_cDelItem.EnableWindow();
	}
	*pResult = 0;
}

//将产品信息加载到编辑控件
void CAdminPage::LoadProdInfo()
{
	m_pRecordsetAdmin->Move(m_nCurrentSel,_variant_t((long)adBookmarkFirst));

	_variant_t var;
	try
	{
		var = m_pRecordsetAdmin->GetCollect("tpno");
			if(var.vt != VT_NULL)
			{
				m_adtpno=(LPCSTR)_bstr_t(var);
			}
			else m_adtpno=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetAdmin->GetCollect("prodname");
			if(var.vt != VT_NULL)
			{
				m_adprodname=(LPCSTR)_bstr_t(var);
			}
			else m_adprodname=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetAdmin->GetCollect("oeno");
			if(var.vt != VT_NULL)
			{
				m_adoeno=(LPCSTR)_bstr_t(var);
			}
			else m_adoeno=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetAdmin->GetCollect("appname");
			if(var.vt != VT_NULL)
			{
				m_adappname=(LPCSTR)_bstr_t(var);
			}
			else m_adappname=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetAdmin->GetCollect("size");
			if(var.vt != VT_NULL)
			{
				m_adsize=(LPCSTR)_bstr_t(var);
			}
			else m_adsize=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetAdmin->GetCollect("kgs");
			if(var.vt != VT_NULL)
			{
				m_adkgs=(LPCSTR)_bstr_t(var);
			}
			else m_adkgs=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetAdmin->GetCollect("qty");
			if(var.vt != VT_NULL)
			{
				m_adqty=(LPCSTR)_bstr_t(var);
			}
			else m_adqty=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetAdmin->GetCollect("picname");
			if(var.vt != VT_NULL)
			{
				m_adpicname=(LPCSTR)_bstr_t(var);
			}
			else m_adpicname=(CString)(LPCSTR)_bstr_t("NULL");

		var = m_pRecordsetAdmin->GetCollect("oename");
			if(var.vt != VT_NULL)
			{
				m_adoe=(LPCSTR)_bstr_t(var);
			}
			else m_adoe=(CString)(LPCSTR)_bstr_t("NULL");
	}
	catch(_com_error e)///捕捉异常
	{
		AfxMessageBox("Read Database Fail!");///显示错误信息
	}
	UpdateData(FALSE);
}
//加载产品图片
void CAdminPage::LoadPic()
{
	GetProgramPath();
	picpath="image\\"+m_adpicname+".jpg";
	picpathjd=exeFullPath+picpath;
	m_adPicture.SetImage(picpathjd);
	m_adPicture.Display();

}
//检查输入变量,防止空字串
void CAdminPage::CheckVar()
{
		if(m_adtpno=="") 
			m_adtpno="NULL";
		if(m_adprodname=="")
			m_adprodname="NULL";
		if(m_adoeno=="")
			m_adoeno="NULL";
		if(m_adappname=="")
			m_adappname="NULL";
		if(m_adsize=="")
			m_adsize="NULL";
		if(m_adqty=="")
			m_adqty="NULL";
		if(m_adkgs=="")
			m_adkgs="NULL";
		if(m_adoe=="")
			m_adoe="NULL";
		if(m_adpicname=="")
			m_adpicname="NULL";
}

void CAdminPage::SaveData()
{
	try
	{
		if(!m_pRecordsetAdmin->adoEOF && m_nCurrentSel >= 0 && m_bAutoSave)
		{
			m_pRecordsetAdmin->PutCollect("tpno", _variant_t(m_adtpno));
			m_pRecordsetAdmin->PutCollect("prodname", _variant_t(m_adprodname));
			m_pRecordsetAdmin->PutCollect("oeno", _variant_t(m_adoeno));
			m_pRecordsetAdmin->PutCollect("appname", _variant_t(m_adappname));
			m_pRecordsetAdmin->PutCollect("size", _variant_t(m_adsize));
			m_pRecordsetAdmin->PutCollect("kgs", _variant_t(m_adkgs));
			m_pRecordsetAdmin->PutCollect("qty", _variant_t(m_adqty));
			m_pRecordsetAdmin->PutCollect("oename", _variant_t(m_adoe));
			m_pRecordsetAdmin->PutCollect("picname", _variant_t(m_adpicname));
		}
	}
		catch(_com_error *e)
	{
		AfxMessageBox(e->ErrorMessage());
	}
}

void CAdminPage::GetProgramPath()
{
	//程序完全路径
	char *path;
	GetModuleFileName(NULL,exeFullPath,MAX_PATH);

	//分离路径
	path = exeFullPath;
	while(strchr(path,'\\')) 
	{
		path = strchr(path,'\\');
		path++;
	}
	*path ='\0';
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -