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

📄 entergoods.cpp

📁 一个简易的医药销售管理系统源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
					_Worksheet wsMysheet; 
					Range rgMyRge; 	
					if (!ExcelApp.CreateDispatch("Excel.Application",NULL)) 
					{ 
						AfxMessageBox("创建Excel服务失败,要使用导出功能至少要求安装Microsoft Excel 2000!"); 
						exit(1); 
					} 
					ExcelApp.SetVisible(false);
					wbsMyBooks.AttachDispatch(ExcelApp.GetWorkbooks(),true); 
					wbMyBook.AttachDispatch(wbsMyBooks.Add(_variant_t(strPath.Left(strPath.GetLength()-4))));
					//得到Worksheets 
					wssMysheets.AttachDispatch(wbMyBook.GetWorksheets(),true);
					wsMysheet.AttachDispatch(wssMysheets.GetItem(_variant_t(_T("采购计划表"))),true);
					//得到全部Cells,此时,rgMyRge是cells的集合 
					rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); 
					int row=m_list1.GetItemCount();
					//ExcelApp.SetVisible(false);// 
					LPDISPATCH lpDisp;
					lpDisp = wsMysheet.GetRange(_variant_t("A4"),_variant_t("A4"));
					ASSERT(lpDisp);
					rgMyRge.AttachDispatch(lpDisp);
					lpDisp = rgMyRge.GetEntireRow();
					rgMyRge.AttachDispatch(lpDisp);
					for(int r=0;r<row-2;r++)
						rgMyRge.Insert(_variant_t((long)1));//插入有格式的空行
					rgMyRge.AttachDispatch(wsMysheet.GetCells(),true); 
					//设置单元格的值
					int rowcheck=0;
					for(int r=0;r<row;r++)
					{
						for(int c=0;c<9;c++)
							if(m_list1.GetCheck(r))
								rgMyRge.SetItem(_variant_t((long)rowcheck+3),_variant_t((long)c+1),_variant_t(m_list1.GetItemText(r,c))); 
						if(m_list1.GetCheck(r))
							rowcheck++;
					}
					//将表格保存
					wsMysheet.SaveAs(strPath.Left(strPath.GetLength()-4)+_T(".xls"),vtMissing,vtMissing,vtMissing,vtMissing,
						vtMissing,vtMissing,vtMissing,vtMissing);
					ExcelApp.SetVisible(true); 
					//wbMyBook.PrintPreview(_variant_t(false)); 
					//释放对象 
					rgMyRge.ReleaseDispatch(); 
					wsMysheet.ReleaseDispatch(); 
					wssMysheets.ReleaseDispatch(); 
					wbMyBook.ReleaseDispatch(); 
					wbsMyBooks.ReleaseDispatch(); 
					ExcelApp.ReleaseDispatch(); 
					::remove(strPath.Left(strPath.GetLength()-1)+_T("t"));
					///
					theApp.EndWaitCursor();
					AfxMessageBox("数据导出完毕!");
				}
				else
					AfxMessageBox("用户取消了导出!");
			}
		}
		else
			AfxMessageBox("用户取消了选择或导出!");
	}
}

void CEnterGoods::OnCbnSelchangeGetname()//根据药品名称搜索药品规格
{
	SetDlgItemText(IDC_GETSEPC,_T(""));
	m_getsepc.ResetContent();
	SetDlgItemText(IDC_GETFACTORY,_T(""));
	m_getfactory.ResetContent();
	m_number.SetCurSel(-1);
	m_unit.SetCurSel(-1);
	CString vaual,str;
	CString strSQL;
	if(m_getname.GetCurSel()>=0)
		m_getname.GetLBText(m_getname.GetCurSel(),vaual);
	else
		GetDlgItemText(IDC_GETNAME,vaual);
	strSQL="select standard from products WHERE name='"+vaual+"'";
	HRESULT hTRes;
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = 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("standard"));
			if(!str.IsEmpty())
				m_getsepc.AddString(str);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
	}
	m_pRecordset=NULL;
}

void CEnterGoods::OnCbnSelchangeGetsepc()//根据药品名称、规格搜索药品厂家
{
	SetDlgItemText(IDC_GETFACTORY,_T(""));
	m_getfactory.ResetContent();
	m_number.SetCurSel(-1);
	m_unit.SetCurSel(-1);
	CString vaual1,vaual2,str;
	CString strSQL;
	if(m_getname.GetCurSel()>=0)
		m_getname.GetLBText(m_getname.GetCurSel(),vaual1);
	else
		GetDlgItemText(IDC_GETNAME,vaual1);
	if(m_getsepc.GetCurSel()>=0)
		m_getsepc.GetLBText(m_getsepc.GetCurSel(),vaual2);
	else
		GetDlgItemText(IDC_GETSEPC,vaual2);
	strSQL="select makearea from products WHERE name='"+vaual1+"'";
	strSQL+=" and standard='"+vaual2+"'";
	HRESULT hTRes;
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = 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("makearea"));
			if(!str.IsEmpty())
				m_getfactory.AddString(str);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
	}
	m_pRecordset=NULL;
}

void CEnterGoods::OnCbnSelchangeGetfactory()//根据药品名称、规格、厂家搜索药品单位
{
	m_unit.SetCurSel(-1);
	CString vaual0,vaual1,vaual2,str1;
	CString strSQL;
	if(m_getname.GetCurSel()>=0)
		m_getname.GetLBText(m_getname.GetCurSel(),vaual0);
	else
		GetDlgItemText(IDC_GETNAME,vaual0);
	if(m_getsepc.GetCurSel()>=0)
		m_getsepc.GetLBText(m_getsepc.GetCurSel(),vaual1);
	else
		GetDlgItemText(IDC_GETSEPC,vaual1);
	if(m_getfactory.GetCurSel()>=0)
		m_getfactory.GetLBText(m_getfactory.GetCurSel(),vaual2);
	else
		GetDlgItemText(IDC_GETFACTORY,vaual2);
	strSQL="select productdetail.comment from productdetail,products WHERE products.name='"+vaual0+"'";
	strSQL+=" and products.standard='"+vaual1+"'";
	strSQL+=" and products.makearea='"+vaual2+"'";
	strSQL+=" and products.product_id=productdetail.p_id";
	HRESULT hTRes;
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()+1),
				((CMedicineSaleManagesApp*)AfxGetApp())->m_pConn1.GetInterfacePtr(),
				adOpenDynamic,adLockPessimistic,adCmdText);
		if(!(m_pRecordset->adoEOF))
		{
			str1=(LPCSTR)_bstr_t(m_pRecordset->GetCollect("comment"));
			if(!(str1.IsEmpty()))
				m_unit.SetCurSel(m_unit.FindString(0,str1.Right(2)));
		}
		m_pRecordset->Close();
	}
	m_pRecordset=NULL;
}

void CEnterGoods::OnEnChangeName()
{
	SetDlgItemText(IDC_GETNAME,_T(""));
	m_getname.ResetContent();
	SetDlgItemText(IDC_GETSEPC,_T(""));
	m_getsepc.ResetContent();
	SetDlgItemText(IDC_GETFACTORY,_T(""));
	m_getfactory.ResetContent();
	m_number.SetCurSel(-1);
	m_unit.SetCurSel(-1);
	CString vaual,str;
	CString strSQL;
	GetDlgItemText(IDC_NAME,vaual);
	strSQL="select name from products WHERE name LIKE '%["+vaual+"]%'";
	HRESULT hTRes;
	hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
	if (SUCCEEDED(hTRes))
	{
		hTRes = 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_getname.AddString(str);
			if(!(m_pRecordset->adoEOF))
				m_pRecordset->MoveNext();
		}
		m_pRecordset->Close();
	}
	m_pRecordset=NULL;
}

void CEnterGoods::OnEnKillfocusReadem()//如果是单价,则检查合法性并转换
{
	CString stri,strf;
	GetDlgItemText(IDC_READEM,stri);
	char ch[]="0123456789";
	BOOL xy=FALSE;
	for(int y=0;y<strlen(ch);y++)
		if(stri.GetAt(0)==ch[y])
			xy=TRUE;
	if(xy)//如果所输入的第一个字符为数字,则认为是单价,并进行校验、转换
	{
		//校验数据的有效性
		if(!theApp.Examination(stri))
		{
			AfxMessageBox(_T("如果输入单价,请确保正确;如果输入其它信息,第一个字符必须不是数字!"));
			SetDlgItemText(IDC_READEM,_T(""));
			GotoDlgCtrl(GetDlgItem(IDC_READEM));
			return;
		}
		//校验结束
		strf.Format("%f",atof(stri));
		SetDlgItemText(IDC_READEM,strf.Left(strf.Find('.',0)+1)+strf.Mid(strf.Find('.',0)+1,2));
	}
}

void CEnterGoods::OnEnSetfocusName()
{
	theApp.SetInputMethod(TRUE);
}

void CEnterGoods::OnCbnSetfocusGetname()
{
	theApp.SetInputMethod(TRUE);
}

void CEnterGoods::OnCbnSetfocusGetsepc()
{
	theApp.SetInputMethod(TRUE);
}

void CEnterGoods::OnCbnSetfocusGetfactory()
{
	theApp.SetInputMethod(TRUE);
}

void CEnterGoods::OnEnSetfocusReadem()
{
	theApp.SetInputMethod(FALSE);
}

BOOL CEnterGoods::PreTranslateMessage(MSG* pMsg)
{
	m_tooltip.RelayEvent(pMsg);
	return CDialog::PreTranslateMessage(pMsg);
}

void CEnterGoods::WinHelp(DWORD dwData, UINT nCmd)
{
}

void CEnterGoods::OnBnClickedAllselect()//全选
{
	int row=m_list1.GetItemCount();
	for(int x=0;x<row;x++)
			m_list1.SetCheck(x,1);
}

void CEnterGoods::OnBnClickedNoselect()//全否
{
	int row=m_list1.GetItemCount();
	for(int x=0;x<row;x++)
			m_list1.SetCheck(x,0);
}

void CEnterGoods::OnBnClickedAllorno()//反选
{
	int row=m_list1.GetItemCount();
	for(int x=0;x<row;x++)
		if(m_list1.GetCheck(x))
			m_list1.SetCheck(x,0);
		else
			m_list1.SetCheck(x,1);
}

void CEnterGoods::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult)//双击左键修改
{
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;
}

void CEnterGoods::OnNMRdblclkList1(NMHDR *pNMHDR, LRESULT *pResult)//双击右键删除
{
	// TODO: 在此添加控件通知处理程序代码
	*pResult = 0;
}

//void CEnterGoods::OnBnClickedInput()
//{
//	CString strSQL;
//	int row=m_list1.GetItemCount();
//	m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
//	/*try
//	{
//		strSQL="SELECT products.permitcode,products.medtype FROM products,entergoods WHERE products.name=entergoods.name and products.standard=entergoods.sepc and products.makearea=entergoods.factory";
//		m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()+1),
//				((CMedicineSaleManagesApp*)AfxGetApp())->m_pConn1.GetInterfacePtr(),
//				adOpenDynamic,adLockPessimistic,adCmdText);
//	}
//	catch(_com_error *e)
//	{
//		AfxMessageBox(e->ErrorMessage());
//	}*/
//	CString str=_T("");
//	for(int x=0;x<row;x++)
//	{
//		strSQL="SELECT products.permitcode,products.medtype FROM products,entergoods WHERE products.name='";//entergoods.name and products.standard=entergoods.sepc and products.makearea=entergoods.factory";
//		strSQL+=m_list1.GetItemText(x,1);
//		str+="' and products.standard='";
//		strSQL+=m_list1.GetItemText(x,2);
//		str+="' and products.makearea='";
//		strSQL+=m_list1.GetItemText(x,3);
//		strSQL+="'";
//		AfxMessageBox(strSQL);
//		m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(strSQL.GetLength()+1),
//				((CMedicineSaleManagesApp*)AfxGetApp())->m_pConn1.GetInterfacePtr(),
//				adOpenDynamic,adLockPessimistic,adCmdText);
//		_variant_t var;
//		var=m_pRecordset->GetCollect("permitcode");
//		if(var.vt!=NULL)
//			str+=(LPCSTR)_bstr_t(var);
//		str+="\r\n";
//		//m_pRecordset->PutCollect("mypermitcode",m_pRecordset->GetCollect("permitcode"));
//		//m_pRecordset->PutCollect("medtype",m_pRecordset->GetCollect("medtype"));
//		//m_pRecordset->Update();
//		m_pRecordset->Close();
//	}
//	CFile f("c:\\permitcode.txt",CFile::modeCreate | CFile::modeWrite);
//	f.Write(str,str.GetLength());
//	AfxMessageBox("导入完毕");
//	///
//	m_pRecordset->Close();
//}

void CEnterGoods::OnEnSetfocusReadem2()
{
	theApp.SetInputMethod(TRUE);
}

void CEnterGoods::OnEnSetfocusReadem3()
{
	theApp.SetInputMethod(TRUE);
}

void CEnterGoods::OnNMSetfocusAcce(NMHDR *pNMHDR, LRESULT *pResult)
{
	theApp.SetInputMethod(FALSE);
	*pResult = 0;
}

void CEnterGoods::OnCbnSetfocusUnit()
{
	theApp.SetInputMethod(FALSE);
}

void CEnterGoods::OnCbnSetfocusNumber()
{
	theApp.SetInputMethod(FALSE);
}

⌨️ 快捷键说明

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