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

📄 invoice.cpp

📁 基于VC+SQL SERVER环境开发的企业商品销售系统.完整的数据库和原代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			{
				bt_modify->EnableWindow(false);
				SetDlgItemText(IDC_auditing,"弃审");
			}
			else
			{
				bt_modify->EnableWindow(true);
				SetDlgItemText(IDC_auditing,"审核");
			}

			strSQL="select * from invoiceCommidity where invoiceID='";
			strSQL=strSQL+((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pInvoiceRecordset->GetCollect("invoiceID"));
			strSQL+="'";
		}

		hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
		hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
				((CSaleApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
				adOpenDynamic,adLockPessimistic,adCmdText);
		int i=0;
		m_invoiceCommidityList.DeleteAllItems();
		while(!(m_pRecordset->adoEOF))
		{
			m_invoiceCommidityList.InsertItem(i,((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("consignmentFormID")));
			m_invoiceCommidityList.SetItemText(i,1,((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("commidityID")));				
			m_invoiceCommidityList.SetItemText(i,2,((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("commidityName")));
			m_invoiceCommidityList.SetItemText(i,3,((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("standard")));				
			m_invoiceCommidityList.SetItemText(i,4,((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("model")));
			m_invoiceCommidityList.SetItemText(i,5,((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("num")));
			m_invoiceCommidityList.SetItemText(i,6,((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("price")));				
			m_invoiceCommidityList.SetItemText(i,7,((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pRecordset->GetCollect("total")));
			
			if (!(m_pRecordset->adoEOF))
			{
				m_pRecordset->MoveNext();
				i++;
			}
		}
	}
	catch(_com_error e)///捕捉异常
	{
		bt_lastPage->EnableWindow(false);
		bt_nextPage->EnableWindow(false);
		AfxMessageBox("已经到达纪录集的尾部!");
	}

	bt_firstPage->EnableWindow(true);
	bt_prevPage->EnableWindow(true);
	UpdateData(false);
	
}

void CInvoice::OnNew() 
{
	UpdateData(true);

	tx_clientName->EnableWindow(true);
	tx_department->EnableWindow(true);
	tx_formDate->EnableWindow(true);
	tx_saleType->EnableWindow(true);
	tx_seller->EnableWindow(true);
	tx_payCondition->EnableWindow(true);
	tx_taxNO->EnableWindow(true);
	tx_bank->EnableWindow(true);
	tx_account->EnableWindow(true);
	tx_remark->EnableWindow(true);
	tx_invoiceID->EnableWindow(true);

	bt_prevPage->EnableWindow(false);
	bt_firstPage->EnableWindow(false);
	bt_nextPage->EnableWindow(false);
	bt_lastPage->EnableWindow(false);
	bt_modify->EnableWindow(false);
//	bt_addLine->EnableWindow(true);
	bt_deleteLine->EnableWindow(true);
	bt_save->EnableWindow(true);
	bt_cancellation->EnableWindow(true);
	bt_checked->EnableWindow(false);
	bt_delete->EnableWindow(false);

	m_clientName = _T("");
	m_department = _T("");
	m_formDate = COleDateTime::GetCurrentTime();
	m_saleType = _T("");
	m_seller = _T("");
	m_payCondition = _T("");
	m_taxNO = _T("");
	m_bank = _T("");
	m_account = _T("");
	m_remark = _T("");
//	m_invoiceID = _T("");
	int invoiceID=((CSaleApp*)AfxGetApp())->m_pIDRecordset->GetCollect("invoiceID").intVal;
	if(invoiceID<10)
		m_invoiceID.Format("invoice0000%d",invoiceID);
	else if(invoiceID<100&&invoiceID>9)
		m_invoiceID.Format("invoice000%d",invoiceID);
	else if(invoiceID<1000&&invoiceID>99)
		m_invoiceID.Format("invoice00%d",invoiceID);

	CString str;
	str.Format("%d",invoiceID+1);
	((CSaleApp*)AfxGetApp())->m_pIDRecordset->PutCollect("invoiceID",_variant_t(str));
	((CSaleApp*)AfxGetApp())->m_pIDRecordset->Update();
	m_invoiceCommidityList.DeleteAllItems();

	bt_save->EnableWindow(true);
	bt_cancellation->EnableWindow(true);
	bt_checked->EnableWindow(false);
	
	flag=1;
	bt_deleteLine->EnableWindow(true);
	SetDlgItemText(IDC_auditing,"审核");

	UpdateData(false);	
}

void CInvoice::OnModify() 
{
	UpdateData(true);
	CString checked;
	if(m_pInvoiceRecordset->adoEOF)
		m_pInvoiceRecordset->MovePrevious();
	checked=((CSaleApp*)AfxGetApp())->GetStringFromVariant(m_pInvoiceRecordset->GetCollect("checked"));
	if(checked=="T")
	{
		AfxMessageBox("已经审核,不能修改!!!");
		return;
	}
	tx_clientName->EnableWindow(true);
	tx_department->EnableWindow(true);
	tx_formDate->EnableWindow(true);
	tx_saleType->EnableWindow(true);
	tx_seller->EnableWindow(true);
	tx_payCondition->EnableWindow(true);
	tx_taxNO->EnableWindow(true);
	tx_bank->EnableWindow(true);
	tx_account->EnableWindow(true);
	tx_remark->EnableWindow(true);
	tx_invoiceID->EnableWindow(true);

	flag=2;

	bt_checked->EnableWindow(true);
	bt_cancellation->EnableWindow(true);
	bt_save->EnableWindow(true);
	bt_delete->EnableWindow(false);

	bt_deleteLine->EnableWindow(true);

	UpdateData(false);
}

void CInvoice::OnDelete() 
{
	CAffirm dlg;
	if(dlg.DoModal()!=IDOK)
	{
		return;
	}
	_variant_t RecordsAffected;
	CString strSQL;
	strSQL="delete from invoice where invoiceID='";
	strSQL=strSQL+m_invoiceID+"'";
	(((CSaleApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,&RecordsAffected,adCmdText);	
	
	m_invoiceCommidityList.DeleteAllItems();
	UpdateData(false);
	AfxMessageBox("该发票已删除!");
	OnNextPage();	
	
}

void CInvoice::OnAddLine() 
{
	// TODO: Add your control notification handler code here
	
}

void CInvoice::OnDeleteLine() 
{
	CAffirm dlg;
	if(dlg.DoModal()!=IDOK)
	{
		return;
	}
	POSITION pos = m_invoiceCommidityList.GetFirstSelectedItemPosition();
	if(pos)
	{
		int nFirstSelItem = m_invoiceCommidityList.GetNextSelectedItem(pos);		
		m_invoiceCommidityList.DeleteItem(nFirstSelItem);
	}	
}

void CInvoice::OnSave() 
{
	UpdateData(true);
	bt_checked->EnableWindow(true);
	bt_cancellation->EnableWindow(false);
	_RecordsetPtr m_pRecordset;    //用于创建一个查询记录集

	CString strSQL;

	if(flag==1)         //添加
	{
		m_pInvoiceRecordset->AddNew();

		m_pInvoiceRecordset->PutCollect("clientName",(_bstr_t)m_clientName.Left(50));
		m_pInvoiceRecordset->PutCollect("department",(_bstr_t)m_department.Left(50));
		m_pInvoiceRecordset->PutCollect("formDate",(_variant_t)m_formDate);
		m_pInvoiceRecordset->PutCollect("saleType",(_bstr_t)m_saleType.Left(50));
		m_pInvoiceRecordset->PutCollect("seller",(_bstr_t)m_seller.Left(50));
		m_pInvoiceRecordset->PutCollect("payCondition",(_bstr_t)m_payCondition.Left(50));
		m_pInvoiceRecordset->PutCollect("taxNO",(_bstr_t)m_taxNO.Left(50));
		m_pInvoiceRecordset->PutCollect("bank",(_bstr_t)m_bank.Left(50));
		m_pInvoiceRecordset->PutCollect("account",(_bstr_t)m_account.Left(50));
		m_pInvoiceRecordset->PutCollect("remark",(_bstr_t)m_remark.Left(100));
		m_pInvoiceRecordset->PutCollect("invoiceID",(_bstr_t)m_invoiceID.Left(25));	
		m_pInvoiceRecordset->PutCollect("checked",(_bstr_t)"F");	

		m_pInvoiceRecordset->Update();
		strSQL="SELECT * FROM invoiceCommidity" ;	

		try
		{
			HRESULT hTRes;
			AfxMessageBox("Here");
			hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
			if (SUCCEEDED(hTRes))
			{
				hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
					((CSaleApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
					adOpenDynamic,adLockPessimistic,adCmdText);

				if(SUCCEEDED(hTRes))
				{
					TRACE(_T("连接成功!\n"));
					for(int i=0;i<m_invoiceCommidityList.GetItemCount();i++)
					{
						m_pRecordset->AddNew();
						
						m_pRecordset->PutCollect("invoiceID",_variant_t(m_invoiceID.Left(25)));
						m_pRecordset->PutCollect("consignmentFormID",_variant_t(m_invoiceCommidityList.GetItemText(i,0)));
						m_pRecordset->PutCollect("commidityID",_variant_t(m_invoiceCommidityList.GetItemText(i,1)));
						m_pRecordset->PutCollect("commidityName",_variant_t(m_invoiceCommidityList.GetItemText(i,2)));
						m_pRecordset->PutCollect("standard",_variant_t(m_invoiceCommidityList.GetItemText(i,3)));
						m_pRecordset->PutCollect("model",_variant_t(m_invoiceCommidityList.GetItemText(i,4)));
						m_pRecordset->PutCollect("num",_variant_t(m_invoiceCommidityList.GetItemText(i,5)));
						m_pRecordset->PutCollect("price",_variant_t(m_invoiceCommidityList.GetItemText(i,6)));
						m_pRecordset->PutCollect("total",_variant_t(m_invoiceCommidityList.GetItemText(i,7)));
						m_pRecordset->Update();

						strSQL="update consignmentFormCommidity set invoiced='T',invoiceID='";
						strSQL=strSQL+m_invoiceID+"' where consignmentFormID='";
						strSQL=strSQL+m_invoiceCommidityList.GetItemText(i,0)+"'" ;
						strSQL=strSQL+" and commidityID='";
						strSQL=strSQL+m_invoiceCommidityList.GetItemText(i,1)+"'";
						
						AfxMessageBox(strSQL);
						_variant_t affected;
						((CSaleApp*)AfxGetApp())->m_pConn->Execute((_bstr_t)strSQL,&affected,adCmdText);					}
					
					AfxMessageBox("保存成功!");
				}
			}
		}
		catch(_com_error e)///捕捉异常
		{
			CString errormessage;
			MessageBox("创建记录集失败!","错误");
		}	
	}
	else if(flag==2)      //修改
	{
		_variant_t RecordsAffected;
		CString strSQL;
		strSQL="delete from invoiceCommidity where invoiceID='";
		strSQL=strSQL+m_invoiceID+"'";
		(((CSaleApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,&RecordsAffected,adCmdText);

		strSQL="update consignmentFormCommidity set invoiced='F',invoiceID='' where invoiceID='";
		strSQL=strSQL+m_invoiceID+"'";
		AfxMessageBox(strSQL);
		(((CSaleApp*)AfxGetApp())->m_pConn)->Execute((_bstr_t)strSQL,&RecordsAffected,adCmdText);

		m_pInvoiceRecordset->PutCollect("clientName",(_bstr_t)m_clientName);
		m_pInvoiceRecordset->PutCollect("department",(_bstr_t)m_department);
//		m_pInvoiceRecordset->PutCollect("formDate",(_bstr_t)m_formDate);
		m_pInvoiceRecordset->PutCollect("saleType",(_bstr_t)m_saleType);
		m_pInvoiceRecordset->PutCollect("seller",(_bstr_t)m_seller);
		m_pInvoiceRecordset->PutCollect("payCondition",(_bstr_t)m_payCondition);
		m_pInvoiceRecordset->PutCollect("taxNO",(_bstr_t)m_taxNO);
		m_pInvoiceRecordset->PutCollect("bank",(_bstr_t)m_bank);
		m_pInvoiceRecordset->PutCollect("account",(_bstr_t)m_account);
		m_pInvoiceRecordset->PutCollect("remark",(_bstr_t)m_remark);

		m_pInvoiceRecordset->Update();
		strSQL="SELECT * FROM invoiceCommidity" ;	

		try
		{
			HRESULT hTRes;
			hTRes = m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
			if (SUCCEEDED(hTRes))
			{
				hTRes = m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),
					((CSaleApp*)AfxGetApp())->m_pConn.GetInterfacePtr(),
					adOpenDynamic,adLockPessimistic,adCmdText);

				if(SUCCEEDED(hTRes))
				{
					TRACE(_T("连接成功!\n"));
					//------------------------------------------
					for(int i=0;i<m_invoiceCommidityList.GetItemCount();i++)
					{
						m_pRecordset->AddNew();
					
						m_pRecordset->PutCollect("invoiceID",_variant_t(m_invoiceID));
						m_pRecordset->PutCollect("consignmentFormID",_variant_t(m_invoiceCommidityList.GetItemText(i,0)));
						m_pRecordset->PutCollect("commidityID",_variant_t(m_invoiceCommidityList.GetItemText(i,1)));
						m_pRecordset->PutCollect("commidityName",_variant_t(m_invoiceCommidityList.GetItemText(i,2)));
						m_pRecordset->PutCollect("standard",_variant_t(m_invoiceCommidityList.GetItemText(i,3)));
						m_pRecordset->PutCollect("model",_variant_t(m_invoiceCommidityList.GetItemText(i,4)));
						m_pRecordset->PutCollect("num",_variant_t(m_invoiceCommidityList.GetItemText(i,5)));
						m_pRecordset->PutCollect("price",_variant_t(m_invoiceCommidityList.GetItemText(i,6)));
						m_pRecordset->PutCollect("total",_variant_t(m_invoiceCommidityList.GetItemText(i,7)));
						m_pRecordset->Update();
						
						strSQL="update consignmentFormCommidity set invoiced='T',invoiceID='";
						strSQL=strSQL+m_invoiceID+"' where consignmentFormID='";
						strSQL=strSQL+m_invoiceCommidityList.GetItemText(i,0)+"'" ;
						strSQL=strSQL+" and commidityID='";
						strSQL=strSQL+m_invoiceCommidityList.GetItemText(i,1)+"'";
						
						AfxMessageBox(strSQL);
						_variant_t affected;
						((CSaleApp*)AfxGetApp())->m_pConn->Execute((_bstr_t)strSQL,&affected,adCmdText);
					}					
					AfxMessageBox("保存成功!");
				}
			}
		}
		catch(_com_error e)///捕捉异常
		{
			CString errormessage;
			MessageBox("创建记录集失败!","错误");
		}		
	}
	bt_add->EnableWindow(true);
	bt_delete->EnableWindow(true);
	bt_prevPage->EnableWindow(true);
	bt_firstPage->EnableWindow(true);
	bt_nextPage->EnableWindow(true);
	bt_lastPage->EnableWindow(true);
	bt_modify->EnableWindow(true);
	bt_deleteLine->EnableWindow(false);

	bt_checked->EnableWindow(true);
	bt_cancellation->EnableWindow(false);
	
	UpdateData(false);	
	
}
	

⌨️ 快捷键说明

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