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

📄 entergoods.cpp

📁 一个简易的医药销售管理系统源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// EnterGoods.cpp : 实现文件
//

#include "stdafx.h"
#include "MedicineSaleManages.h"
#include "EnterGoods.h"
#include ".\entergoods.h"
#include "comdef.h"
#include "excel9.h"


// CEnterGoods 对话框

IMPLEMENT_DYNAMIC(CEnterGoods, CDialog)
CEnterGoods::CEnterGoods(CWnd* pParent /*=NULL*/)
	: CDialog(CEnterGoods::IDD, pParent)
{
}

CEnterGoods::~CEnterGoods()
{
}

void CEnterGoods::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST1, m_list1);
	DDX_Control(pDX, IDC_NUMBER, m_number);
	DDX_Control(pDX, IDC_UNIT, m_unit);
	DDX_Control(pDX, IDC_NAME, m_name);
	DDX_Control(pDX, IDC_READEM, m_readem);
	DDX_Control(pDX, IDC_GETNAME, m_getname);
	DDX_Control(pDX, IDC_GETSEPC, m_getsepc);
	DDX_Control(pDX, IDC_GETFACTORY, m_getfactory);
	DDX_Control(pDX, IDC_READEM2, m_readem2);
	DDX_Control(pDX, IDC_READEM3, m_readem3);
	DDX_Control(pDX, IDC_ACCE, m_acce);
}


BEGIN_MESSAGE_MAP(CEnterGoods, CDialog)
	ON_BN_CLICKED(IDOK, OnBnClickedOk)
	ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnNMClickList1)
	ON_BN_CLICKED(IDC_INPUTOUTEXCEL, OnBnClickedInputoutexcel)
	ON_CBN_SELCHANGE(IDC_GETNAME, OnCbnSelchangeGetname)
	ON_CBN_SELCHANGE(IDC_GETSEPC, OnCbnSelchangeGetsepc)
	ON_CBN_SELCHANGE(IDC_GETFACTORY, OnCbnSelchangeGetfactory)
	ON_EN_CHANGE(IDC_NAME, OnEnChangeName)
	ON_EN_KILLFOCUS(IDC_READEM, OnEnKillfocusReadem)
	ON_EN_SETFOCUS(IDC_NAME, OnEnSetfocusName)
	ON_CBN_SETFOCUS(IDC_GETNAME, OnCbnSetfocusGetname)
	ON_CBN_SETFOCUS(IDC_GETSEPC, OnCbnSetfocusGetsepc)
	ON_CBN_SETFOCUS(IDC_GETFACTORY, OnCbnSetfocusGetfactory)
	ON_EN_SETFOCUS(IDC_READEM, OnEnSetfocusReadem)
	ON_BN_CLICKED(IDC_ALLSELECT, OnBnClickedAllselect)
	ON_BN_CLICKED(IDC_NOSELECT, OnBnClickedNoselect)
	ON_BN_CLICKED(IDC_ALLORNO, OnBnClickedAllorno)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnNMDblclkList1)
	ON_NOTIFY(NM_RDBLCLK, IDC_LIST1, OnNMRdblclkList1)
	ON_EN_SETFOCUS(IDC_READEM2, OnEnSetfocusReadem2)
	ON_EN_SETFOCUS(IDC_READEM3, OnEnSetfocusReadem3)
	ON_NOTIFY(NM_SETFOCUS, IDC_ACCE, OnNMSetfocusAcce)
	ON_CBN_SETFOCUS(IDC_UNIT, OnCbnSetfocusUnit)
	ON_CBN_SETFOCUS(IDC_NUMBER, OnCbnSetfocusNumber)
END_MESSAGE_MAP()

void CEnterGoods::OnBnClickedCancel()//退出
{
	OnCancel();
}

BOOL CEnterGoods::OnInitDialog()
{
	CDialog::OnInitDialog();
	m_readem.SubclassDlgItem( IDC_READEM, this );
	m_readem.bkColor( RGB(255, 255, 255) );
	m_readem.textColor( RGB(0,0,255) );
	m_readem.setFont( -14 );
	m_acce.SetFormat("yyyy-MM-dd");
	DWORD style;
	style=m_list1.GetExStyle();  //获取样式
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES) ; //设置样式
	m_list1.SetExtendedStyle(style); //应用样式
	m_list1.SetTextColor(RGB(128,0,0));
	m_list1.InsertColumn(0,"填写日期",LVCFMT_LEFT,200);
	m_list1.InsertColumn(1,"药品名称",LVCFMT_LEFT,160);
	m_list1.InsertColumn(2,"规格",LVCFMT_LEFT,80);
	m_list1.InsertColumn(3,"生产厂家",LVCFMT_LEFT,160);
	m_list1.InsertColumn(4,"单位",LVCFMT_LEFT,60);
	m_list1.InsertColumn(5,"数量",LVCFMT_LEFT,40);
	m_list1.InsertColumn(6,"质量管理人",LVCFMT_LEFT,80);
	m_list1.InsertColumn(7,"负责人",LVCFMT_LEFT,80);
	m_list1.InsertColumn(8,"备注",LVCFMT_LEFT,60);
	CString str;
	for(int number=1;number<=2000;number++)
	{
		str.Format("%d",number);
		m_number.AddString(str);
	}
	CString strSQL;
	strSQL="select * from unit";
	m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()+1),
			((CMedicineSaleManagesApp*)AfxGetApp())->m_pConn1.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText);
	while(!(m_pRecordset->adoEOF))
	{
		str=(LPCSTR)_bstr_t(m_pRecordset->GetCollect("name"));
		if(!str.IsEmpty())
			m_unit.AddString(str);
		if(!(m_pRecordset->adoEOF))
			m_pRecordset->MoveNext();
	}
	m_pRecordset->Close();
	strSQL="select * from entergoods";
	m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()+1),
			((CMedicineSaleManagesApp*)AfxGetApp())->m_pConn1.GetInterfacePtr(),
			adOpenDynamic,adLockPessimistic,adCmdText);
	int row=0;
	while(!(m_pRecordset->adoEOF))
	{
		m_list1.InsertItem(row,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("g_id")));
		m_list1.SetItemText(row,1,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("name")));
		m_list1.SetItemText(row,2,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("sepc")));
		m_list1.SetItemText(row,3,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("factory")));
		m_list1.SetItemText(row,4,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("unit")));
		m_list1.SetItemText(row,5,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("number")));
		m_list1.SetItemText(row,6,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("qp")));
		m_list1.SetItemText(row,7,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("rp")));
		m_list1.SetItemText(row,8,(LPCSTR)_bstr_t(m_pRecordset->GetCollect("readem")));
		if(!(m_pRecordset->adoEOF))
			m_pRecordset->MoveNext();
		row++;
	}
	m_pRecordset->Close();
	m_pRecordset=NULL;
	m_tooltip.Create(this,TTS_ALWAYSTIP);
	m_tooltip.Activate(TRUE);
	m_tooltip.AddTool(GetDlgItem(IDC_NAME),IDS_FINDNAME);
	m_tooltip.AddTool(GetDlgItem(IDC_GETNAME),IDS_GETNAME);
	m_tooltip.AddTool(GetDlgItem(IDC_GETSEPC),IDS_GETSEPC);
	m_tooltip.AddTool(GetDlgItem(IDC_GETFACTORY),IDS_GETFACTORY);
	m_tooltip.AddTool(GetDlgItem(IDC_UNIT),IDS_UNIT);
	m_tooltip.AddTool(GetDlgItem(IDC_NUMBER),IDS_NUMBER);
	m_tooltip.AddTool(GetDlgItem(IDC_READEM),IDS_GETREADEM);
	m_tooltip.AddTool(GetDlgItem(IDOK),IDS_RECORDSAVE);
	m_tooltip.AddTool(GetDlgItem(IDC_LIST1),IDS_GETLIST1);
	m_tooltip.AddTool(GetDlgItem(IDC_INPUTOUTEXCEL),IDS_GETINPUTOUTEXCEL);
	m_tooltip.AddTool(GetDlgItem(IDC_ALLSELECT),IDS_ALLSELECT);
	m_tooltip.AddTool(GetDlgItem(IDC_NOSELECT),IDS_NOSELECT);
	m_tooltip.AddTool(GetDlgItem(IDC_ALLORNO),IDS_ALLORNO);
	m_tooltip.AddTool(GetDlgItem(IDC_READEM2),IDS_READEM2);
	m_tooltip.AddTool(GetDlgItem(IDC_READEM3),IDS_READEM3);
	m_tooltip.AddTool(GetDlgItem(IDC_ACCE),IDS_ACCE);
	return TRUE;
}

void CEnterGoods::OnBnClickedOk()//保存数据
{
	CString str0,str1,str2,str3,str4,str5,str6,str7,str8;
	str0=str1=str2=str3=str4=str5=str6=_T("");
	if(m_getname.GetCurSel()<0)
		GetDlgItemText(IDC_GETNAME,str1);
	else
		m_getname.GetLBText(m_getname.GetCurSel(),str1);
	CTime t;
	m_acce.GetTime(t);
	str0=t.Format("%Y年%m月%d日");
	if(str1.IsEmpty())
	{
		AfxMessageBox("必须录入药品名称!");
		GotoDlgCtrl(GetDlgItem(IDC_GETNAME));
		return;
	}
	if(m_getsepc.GetCurSel()<0)
		GetDlgItemText(IDC_GETSEPC,str2);
	else
		m_getsepc.GetLBText(m_getsepc.GetCurSel(),str2);
	if(str2.IsEmpty())
	{
		AfxMessageBox("必须录入药品规格!");
		GotoDlgCtrl(GetDlgItem(IDC_GETSEPC));
		return;
	}
	if(m_getfactory.GetCurSel()<0)
		GetDlgItemText(IDC_GETFACTORY,str3);
	else
		m_getfactory.GetLBText(m_getfactory.GetCurSel(),str3);
	if(str3.IsEmpty())
	{
		AfxMessageBox("必须录入药品生产厂家!");
		GotoDlgCtrl(GetDlgItem(IDC_GETFACTORY));
		return;
	}
	if(m_unit.GetCurSel()>=0)
		m_unit.GetLBText(m_unit.GetCurSel(),str4);
	else
	{
		AfxMessageBox("必须录入药品单位!");
		GotoDlgCtrl(GetDlgItem(IDC_UNIT));
		return;
	}
	if(m_number.GetCurSel()>=0)
		m_number.GetLBText(m_number.GetCurSel(),str5);
	else
	{
		AfxMessageBox("必须录入药品数量!");
		GotoDlgCtrl(GetDlgItem(IDC_NUMBER));
		return;
	}
	GetDlgItemText(IDC_READEM,str6);
	GetDlgItemText(IDC_READEM2,str7);
	GetDlgItemText(IDC_READEM3,str8);
	if(str7.IsEmpty())
	{
		AfxMessageBox("质量管理人必须签字!");
		GotoDlgCtrl(GetDlgItem(IDC_READEM2));
		return;
	}
	if(str8.IsEmpty())
	{
		AfxMessageBox("负责人必须签字!");
		GotoDlgCtrl(GetDlgItem(IDC_READEM3));
		return;
	}
	CString strSQL="select * from entergoods";
	m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()+1),((CMedicineSaleManagesApp*)AfxGetApp())->m_pConn1.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);
	m_pRecordset->AddNew();
	m_pRecordset->PutCollect("g_id",_variant_t(str0));
	m_pRecordset->PutCollect("name",_variant_t(str1));
	m_pRecordset->PutCollect("sepc",_variant_t(str2));
	m_pRecordset->PutCollect("factory",_variant_t(str3));
	m_pRecordset->PutCollect("unit",_variant_t(str4));
	m_pRecordset->PutCollect("number",_variant_t(str5));
	m_pRecordset->PutCollect("readem",_variant_t(str6));
	m_pRecordset->PutCollect("qp",_variant_t(str7));
	m_pRecordset->PutCollect("rp",_variant_t(str8));
	m_pRecordset->Update();
	m_pRecordset->Close();
	m_pRecordset=NULL;
	int row=m_list1.GetItemCount();
	m_list1.InsertItem(row,str0);
	m_list1.SetItemText(row,1,str1);
	m_list1.SetItemText(row,2,str2);
	m_list1.SetItemText(row,3,str3);
	m_list1.SetItemText(row,4,str4);
	m_list1.SetItemText(row,5,str5);
	m_list1.SetItemText(row,6,str7);
	m_list1.SetItemText(row,7,str8);
	m_list1.SetItemText(row,8,str6);
	m_list1.SetCheck(row,1);
	SetDlgItemText(IDC_NAME,_T(""));
	if(m_getname.GetCurSel()<0)
		SetDlgItemText(IDC_GETNAME,_T(""));
	else
		m_getname.SetCurSel(-1);
	if(m_getsepc.GetCurSel()<0)
		SetDlgItemText(IDC_GETSEPC,_T(""));
	else
		m_getsepc.SetCurSel(-1);
	if(m_getfactory.GetCurSel()<0)
		SetDlgItemText(IDC_GETFACTORY,_T(""));
	else
		m_getfactory.SetCurSel(-1);
	m_unit.SetCurSel(-1);
	m_number.SetCurSel(-1);
	SetDlgItemText(IDC_READEM,_T(""));
	CRect rect;
	m_list1.GetClientRect(rect);
	m_list1.Scroll(CSize(0,rect.Height()*row));
	GotoDlgCtrl(GetDlgItem(IDC_NAME));
}

void CEnterGoods::OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult)//支持SHIFT键选择,选中则取消,取消则选中
{
	POSITION pos=m_list1.GetFirstSelectedItemPosition();
	int r=m_list1.GetItemCount();
	if(pos && r>=1)
	{
		int row=m_list1.GetNextSelectedItem(pos);
		if(m_list1.GetCheck(row))
			m_list1.SetCheck(row,0);
		else
			m_list1.SetCheck(row,1);
	}
	*pResult = 0;
}

void CEnterGoods::OnBnClickedInputoutexcel()
{
	int rowcount=0,count=0;
	rowcount=m_list1.GetItemCount();
	for(int i=0;i<rowcount;i++)
		if(m_list1.GetCheck(i))
			count++;
	if(rowcount<1 || count<1)
	{
		AfxMessageBox("当前没有记录,无数据可导出!");
		return;
	}
	else
	{
		CString Directory="";
		LPMALLOC lpMalloc;
		CHAR szDisplayName[MAX_PATH];
		CHAR szBuffer[MAX_PATH];
		if ( ::SHGetMalloc( &lpMalloc ) != NOERROR )
		{
			AfxMessageBox( "执行路径错误,请退出后重试!" );
			return;
		}
		BROWSEINFO BrowseInfo;
		ZeroMemory(&BrowseInfo,sizeof(BROWSEINFO));
		BrowseInfo.hwndOwner      = GetSafeHwnd();
		BrowseInfo.pidlRoot       = NULL;
		BrowseInfo.pszDisplayName = szDisplayName;
		BrowseInfo.lpszTitle      = "==== 选择存放导出文件的位置后单击[确定]按钮 ====";
		BrowseInfo.ulFlags        = BIF_USENEWUI;
		BrowseInfo.lpfn           = NULL;
		BrowseInfo.lParam         = 0;
		LPITEMIDLIST lpItemIDList;
		if ( ( lpItemIDList = ::SHBrowseForFolder( &BrowseInfo ) ) != NULL )
		{
			if ( ::SHGetPathFromIDList( lpItemIDList, szBuffer ) )
			{
				if ( szBuffer[0] == '\0' )
					AfxMessageBox( "无效路径,重新选择!");
				Directory = szBuffer;
			}
			else
				AfxMessageBox( "无效路径,请重新选择!");
			lpMalloc->Free( lpItemIDList );
			lpMalloc->Release();
			if(Directory.GetLength()>=1)
			{
				if(Directory.GetLength()>3)
					Directory+="\\";
				CTime t=CTime::GetCurrentTime();
				CString filename=t.Format("%Y年%m月%d日");
				filename+=_T("采购计划表.xls");
				CString strPath=Directory+filename;
				filename+=_T("\r\n\t工作表标签名:\r\n\t\t");
				filename+=_T("采购计划表");
				CString message=_T("请在确认以下信息后单击[是]按钮开始导出数据!!!\r\n");
				message+="\r\n\t导出Excel文件至:\r\n\t\t";
				message+=Directory;
				message+="\r\n\t导出Excel文件名:\r\n\t\t";
				message+=filename;
				if(AfxMessageBox(message,MB_YESNO|MB_ICONQUESTION)==IDYES)
				{
					if(theApp.MyGetDiskFreeSpace(Directory.Left(3))<3145728)
					{
						AfxMessageBox("目标磁盘空间太小,不能完成导出!");
						return;
					}
					theApp.BeginWaitCursor();
					CFileFind find,find1;
					BOOL bFound = find.FindFile(strPath.Left(strPath.GetLength()-1)+_T("t"));
					if(bFound)
						::remove(strPath.Left(strPath.GetLength()-1)+_T("t"));
					find.Close();
					BOOL bFound1=find1.FindFile(strPath.Left(strPath.GetLength()-1)+_T("s"));
					if(bFound1)
						::remove(strPath.Left(strPath.GetLength()-1)+_T("s"));
					find1.Close();
					theApp.DbToFile(_T("采购计划表.xlt"),strPath.Left(strPath.GetLength()-1)+_T("t1"));
					LZARI Lzari;
					Lzari.UnCompress(strPath.Left(strPath.GetLength()-1)+_T("t1"),strPath.Left(strPath.GetLength()-1)+_T("t"));
					::remove(strPath.Left(strPath.GetLength()-1)+_T("t1"));
					///
					_Application ExcelApp; 
					Workbooks wbsMyBooks; 
					_Workbook wbMyBook; 
					Worksheets wssMysheets; 

⌨️ 快捷键说明

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