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

📄 goodsimport_imdlg.cpp

📁 库存管理系统
💻 CPP
字号:
// GoodsImport_ImDlg.cpp : implementation file
//

#include "stdafx.h"
#include "库存管理系统.h"
#include "GoodsImport_ImDlg.h"
#include "EditList.h"
#include "ADD_SUP.h"
#include "ADD_IM_HEAD.h"
#include "ADD_GOOD.h"
#include "GoodsImport_2.h"

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

/////////////////////////////////////////////////////////////////////////////
// CGoodsImport_ImDlg dialog


CGoodsImport_ImDlg::CGoodsImport_ImDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CGoodsImport_ImDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CGoodsImport_ImDlg)
	m_IM_NO = _T("");
	m_IM_SUP = _T("");
	_Conn = ((CMyApp *)AfxGetApp())->m_nConnection;
	m_goodsno = _T("");
	//}}AFX_DATA_INIT
}


void CGoodsImport_ImDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CGoodsImport_ImDlg)
	DDX_Control(pDX, IDC_LIST2, m_list2);
	DDX_Control(pDX, IDC_LIST1, m_list1);
	DDX_Text(pDX, IDC_IM_NO, m_IM_NO);
	DDX_Text(pDX, IDC_IM_SUP, m_IM_SUP);
	DDX_Text(pDX, IDC_GOODSNO, m_goodsno);
	//}}AFX_DATA_MAP
}						


BEGIN_MESSAGE_MAP(CGoodsImport_ImDlg, CDialog)
	//{{AFX_MSG_MAP(CGoodsImport_ImDlg)
	ON_BN_CLICKED(IDC_BUTTON_IM_NO, OnButtonImNo)
	ON_BN_CLICKED(IDC_BUTTON1_IM_SUP, OnButton1ImSup)
	ON_BN_CLICKED(IDC_IM_SAVE, OnImSave)
	ON_BN_CLICKED(IDC_IM_DELETE, OnImDelete)
	ON_BN_CLICKED(IDC_INSERTGOOD, OnInsertgood)
	ON_BN_CLICKED(IDC_IM_DELETE2, OnImDelete2)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_BUTTON_GOODSNO, OnButtonGoodsno)
	ON_BN_CLICKED(IDC_SAVE2, OnSave2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CGoodsImport_ImDlg message handlers


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

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}
	
	///////设置LIST1 CONTROL属性
		BuildList1(m_list1);
		BuildList2(m_list2);
	////////////

	return TRUE;
}


void CGoodsImport_ImDlg::OnButtonImNo() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(m_IM_NO!=_T(""))
	{QueryList1(m_list1,m_IM_NO,"进单号");
	}
}

void CGoodsImport_ImDlg::BuildList1(CListCtrl &m_list)
{
	DWORD   dwStyle=::GetWindowLong(m_list.m_hWnd,GWL_STYLE);
		SetWindowLong(m_list.m_hWnd,GWL_STYLE,dwStyle   |   LVS_REPORT);   
		DWORD   ExStyle=m_list.GetExtendedStyle();  //设置为整栏选择和网格线   
		m_list.SetExtendedStyle(ExStyle   |   LVS_EX_FULLROWSELECT   |   LVS_EX_GRIDLINES);

		 m_list.InsertColumn(0,"进单号");         //插入列
		 m_list.InsertColumn(1,"进货日期");
		 m_list.InsertColumn(2,"供应商号");
		 m_list.InsertColumn(3,"采购工号");
		 m_list.InsertColumn(4,"供应商名");
		 m_list.InsertColumn(5,"地址");
		 m_list.InsertColumn(6,"信誉度");
		 m_list.InsertColumn(7,"联系人");
		 m_list.InsertColumn(8,"邮编");
		 m_list.InsertColumn(9,"电话");
		 m_list.InsertColumn(10,"新客户");
		 m_list.InsertColumn(11,"合计金额");
		 CRect rect4;
		 m_list.GetClientRect(rect4);    //获得当前客户区信息
		 int count=0;
		 for(;count<12;count++)
		 m_list.SetColumnWidth(count,80);       //设置列的宽度。
		InsertEmpty(m_list1);
}

void CGoodsImport_ImDlg::BuildList2(CEditList &m_list2)
{
		DWORD   dwStyle=::GetWindowLong(m_list2.m_hWnd,GWL_STYLE);
		SetWindowLong(m_list2.m_hWnd,GWL_STYLE,dwStyle   |   LVS_REPORT);   
		DWORD   ExStyle=m_list2.GetExtendedStyle();  //设置为整栏选择和网格线   
		m_list2.SetExtendedStyle(ExStyle   |   LVS_EX_FULLROWSELECT   |   LVS_EX_GRIDLINES);

		 m_list2.InsertColumn(0,"货号");         //插入列
		 m_list2.InsertColumn(1,"货名");
		 m_list2.InsertColumn(2,"型号");
		 m_list2.InsertColumn(3,"规格");
		 m_list2.InsertColumn(4,"计量单位");
		 m_list2.InsertColumn(5,"进价");
		 m_list2.InsertColumn(6,"进货量");
		 m_list2.InsertColumn(7,"金额");
		 CRect rect4;
		 m_list2.GetClientRect(rect4);    //获得当前客户区信息
		 int re=rect4.right - rect4.left ;
		 int count=0;
		 for(;count<8;count++)
		 m_list2.SetColumnWidth(count,re/8);       //设置列的宽度。
		 
		InsertEmpty(m_list2);
}

void CGoodsImport_ImDlg::InsertEmpty(CListCtrl &m_list)
{
	int num = m_list.GetItemCount();
	m_list.InsertItem( num ,"");
}

void CGoodsImport_ImDlg::QueryList1(CListCtrl &m_list,CString cs,CString re)
{
	CString sql;
	sql.Format("select * from 进单头 where %s = '%s",re,cs);
	sql+="'";
	m_list.DeleteAllItems();
try
		 {
		 _RecordsetPtr p_Re;
		 int i=0;
		 p_Re.CreateInstance("ADODB.Recordset");
		 p_Re->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
		 adOpenStatic,adLockPessimistic,adCmdText);
		 if(p_Re->GetRecordCount()==0)
		 {
			if(MessageBox("没有该记录\n是否添加?","warning",MB_YESNO|MB_ICONWARNING) == 6)
			{
				CADD_IM_HEAD dlg;
				dlg.m_headno=m_IM_NO;
				dlg.DoModal();

				return;
			}
		 }
		 while(!p_Re->adoEOF)
			{
				m_list.InsertItem(i,(LPCTSTR)(_bstr_t)p_Re->GetCollect("进单号"));
				m_list.SetItemText(i,1,(LPCTSTR)(_bstr_t)p_Re->GetCollect("进货日期"));
				m_list.SetItemText(i,3,(LPCTSTR)(_bstr_t)p_Re->GetCollect("采购工号"));
				CString riqi;
				riqi.Format("%s",(char *)(_bstr_t)p_Re->GetCollect("供应商号"));
				INSERTSUP(m_list1,riqi);
				i++;
				p_Re->MoveNext();
			}
		 }
		catch(_com_error &e)//捕捉异常
		{
		AfxMessageBox(e.ErrorMessage());
		}
}

void CGoodsImport_ImDlg::QueryList2(CListCtrl &m_list,CString cs,CString re)
{

}

void CGoodsImport_ImDlg::INSERTSUP(CListCtrl &m_list,CString cs)
{
		CString sql;
		CString cc="否";
	sql.Format("select * from 客户 where 客户号 = '%s",cs);
	sql+="'";
	
try
		 {
		 _RecordsetPtr p_Re;
		 int i=0;
		 p_Re.CreateInstance("ADODB.Recordset");
		 p_Re->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
		 adOpenStatic,adLockPessimistic,adCmdText);
		 if(p_Re->GetRecordCount()==0)
		 {
			cc="新";
			if(MessageBox("没有该供应商记录\n是否添加?","warning",MB_YESNO|MB_ICONWARNING) == 6)
			{
				CADD_SUP dlg;
				dlg.m_no=m_IM_SUP;
				dlg.DoModal();
				p_Re->Close();
		 p_Re->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
		 adOpenStatic,adLockPessimistic,adCmdText);
			}
		 }
		 while(!p_Re->adoEOF)
			{
				
				m_list.SetItemText(i,2,(LPCTSTR)(_bstr_t)p_Re->GetCollect("客户号"));
				m_list.SetItemText(i,4,(LPCTSTR)(_bstr_t)p_Re->GetCollect("客户名"));
				m_list.SetItemText(i,5,(LPCTSTR)(_bstr_t)p_Re->GetCollect("地址"));
				m_list.SetItemText(i,6,(LPCTSTR)(_bstr_t)p_Re->GetCollect("信誉度"));
				m_list.SetItemText(i,7,(LPCTSTR)(_bstr_t)p_Re->GetCollect("联系人"));
				m_list.SetItemText(i,8,(LPCTSTR)(_bstr_t)p_Re->GetCollect("邮编"));
				m_list.SetItemText(i,9,(LPCTSTR)(_bstr_t)p_Re->GetCollect("电话"));
				m_list.SetItemText(i,10,cc);
				i++;
				p_Re->MoveNext();
			}
		 }
		catch(_com_error &e)//捕捉异常
		{
		AfxMessageBox(e.ErrorMessage());
		}
}

void CGoodsImport_ImDlg::OnButton1ImSup() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	if(m_IM_SUP!=_T(""))
	{INSERTSUP(m_list1,m_IM_SUP);
	}
}

void CGoodsImport_ImDlg::OnImSave() 
{
	// TODO: Add your control notification handler code here
	
	CString m0,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11;
	m0=m_list1.GetItemText(0,0);
	m1=m_list1.GetItemText(0,1);
	m2=m_list1.GetItemText(0,2);
	m3=m_list1.GetItemText(0,3);
	m4=m_list1.GetItemText(0,4);
	m5=m_list1.GetItemText(0,5);
	m6=m_list1.GetItemText(0,6);
	m7=m_list1.GetItemText(0,7);
	m8=m_list1.GetItemText(0,8);
	m9=m_list1.GetItemText(0,9);
	m10=m_list1.GetItemText(0,10);
	m11=m_list1.GetItemText(0,11);
	if(m0 == ""||m1==""||m2==""||m3==""||m4==""||m5==""||m6==""||m7==""||m8==""||m9==""||m10==""||m11=="")
	{MessageBox("信息不完整,请填妥后再保存");
	return;
	}
	CString sql;
	sql.Format("select * from 进单头临时表 where 进单号 = '%s",m0);
	sql+="'";
	try
	 {
		 _RecordsetPtr p_p;
		 p_p.CreateInstance("ADODB.Recordset");
		 p_p->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
		 adOpenStatic,adLockPessimistic,adCmdText);
		 if(p_p->GetRecordCount()!=0)
			{	MessageBox("该进单已存在于临表中!无需再次保存!");
				return;
			}
		 else
		 {
		 _CommandPtr _Comm;
		 _Comm.CreateInstance("ADODB.Command");
		 _Comm->ActiveConnection = _Conn;
		 CString la;
		 la="insert into 进单头临时表(进单号,进货日期,供应商号,采购工号,供应商名,地址,信誉度,联系人,邮编,电话,新客户,合计金额) values ('"+m0+"','"+m1+"','"+m2+"','"+m3+"','"+m4+"','"+m5+"','"+m6+"','"+m7+"','"+m8+"','"+m9+"','"+m10+"','"+m11+"');";
		 _Comm->CommandText=_bstr_t(la);
		 _Comm->Execute(NULL,NULL,adCmdText);
		MessageBox("保存成功");	 
		 }
	 }
	catch(_com_error &e)//捕捉异常
	{
	AfxMessageBox(e.Description());
	}
}

void CGoodsImport_ImDlg::OnImDelete() 
{
	// TODO: Add your control notification handler code here
	int i=m_list1.GetSelectionMark();
	if(i==-1)
	{
		MessageBox("请选择一行要删除的行");
		return;
	}
	m_list1.DeleteItem(i);
	InsertEmpty(m_list1);
}

void CGoodsImport_ImDlg::OnInsertgood() 
{
	// TODO: Add your control notification handler code here
	InsertEmpty(m_list2);
}

void CGoodsImport_ImDlg::OnImDelete2() 
{
	// TODO: Add your control notification handler code here
		int i=m_list2.GetSelectionMark();
	if(i==-1)
	{
		MessageBox("请选择一行要删除的行");
		return;
	}
	m_list2.DeleteItem(i);
	InsertEmpty(m_list2);
}


void CGoodsImport_ImDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
		int il;
	il=m_list1.GetSelectionMark();
	if(il!=-1)
	{
	CString lhead=m_list1.GetItemText(il,0);
		if(lhead!="")
		{
			try
			{
				_RecordsetPtr p1,p2;
				p1.CreateInstance("ADODB.Recordset");
				p2.CreateInstance("ADODB.Recordset");
				CString sql1,sql2;
				sql1.Format("select * from 进单明细 where 进单号 = '%s",lhead);
				sql1+="'";
				 p1->Open(_variant_t(sql1),_variant_t((IDispatch *)_Conn,true),
				 adOpenStatic,adLockPessimistic,adCmdText);
				 if(p1->GetRecordCount()!=0)
				 {int i=0;
					double ftol=0;
					while(!p1->adoEOF)
						{
						CString lgood;
						lgood=(char *)(_bstr_t)p1->GetCollect("所进货号");
						sql2.Format("select * from 货物 where 货号 = '%s",lgood);
						sql2+="'";
						p2->Open(_variant_t(sql2),_variant_t((IDispatch *)_Conn,true),
						 adOpenStatic,adLockPessimistic,adCmdText);
							m_list2.SetItemText(i,0,(LPCTSTR)(_bstr_t)p1->GetCollect("所进货号"));
							m_list2.SetItemText(i,1,(LPCTSTR)(_bstr_t)p2->GetCollect("货名"));
							m_list2.SetItemText(i,2,(LPCTSTR)(_bstr_t)p2->GetCollect("型号"));
							m_list2.SetItemText(i,3,(LPCTSTR)(_bstr_t)p2->GetCollect("规格"));
							m_list2.SetItemText(i,4,(LPCTSTR)(_bstr_t)p2->GetCollect("计量单位"));
							m_list2.SetItemText(i,5,(LPCTSTR)(_bstr_t)p1->GetCollect("进价"));
							m_list2.SetItemText(i,6,(LPCTSTR)(_bstr_t)p1->GetCollect("进货量"));
							CString s1,s2;
							s1=m_list2.GetItemText(i,5);
							s2=m_list2.GetItemText(i,6);
							double f1,f2;
							f1=atof(s1.GetBuffer(8));
							s1.ReleaseBuffer();
							f2=atof(s2.GetBuffer(8));
							s2.ReleaseBuffer();
							f1=f1 * f2;
							ftol+=f1;
							s1.Format("%.2f",f1);
							m_list2.SetItemText(i,7,s1);
							i++;
							p2->Close();
							InsertEmpty(m_list2);
							p1->MoveNext();
						}
					CString stol;
					stol.Format("%.2f",ftol);
					m_list1.SetItemText(il,11,stol);
				 }
			}
			catch(_com_error &e)//捕捉异常
			{
			AfxMessageBox(e.Description());
			}
		}
	}
	*pResult = 0;
}

void CGoodsImport_ImDlg::OnButtonGoodsno() 
{
	// TODO: Add your control notification handler code here
	if(m_list1.GetSelectionMark() == -1)
	{
	MessageBox("请先选择一个进单头!");
	return;
	}
	UpdateData(TRUE);
	if(m_goodsno != "")
	{
		try
		{
		_RecordsetPtr pg;
		pg.CreateInstance("ADODB.Recordset");
		CString sql;
		sql.Format("select * from 货物 where 货号 = '%s",m_goodsno);
		sql+="'";
		pg->Open(_variant_t(sql),_variant_t((IDispatch *)_Conn,true),
		adOpenStatic,adLockPessimistic,adCmdText);
		if(pg->GetRecordCount()==0)
		{if(MessageBox("没有该货物信息,添加吗?","WARNING",MB_ICONQUESTION|MB_YESNO)==6)
			{
			ADD_GOOD dlg;
			dlg.m_goodno=m_goodsno;
			dlg.DoModal();			
			}
		}
		else
		{
			int i= m_list2.GetItemCount();
			i--;
			m_list2.SetItemText(i,0,(LPCTSTR)(_bstr_t)pg->GetCollect("货号"));
			m_list2.SetItemText(i,1,(LPCTSTR)(_bstr_t)pg->GetCollect("货名"));
			m_list2.SetItemText(i,2,(LPCTSTR)(_bstr_t)pg->GetCollect("型号"));
			m_list2.SetItemText(i,3,(LPCTSTR)(_bstr_t)pg->GetCollect("规格"));
			m_list2.SetItemText(i,4,(LPCTSTR)(_bstr_t)pg->GetCollect("计量单位"));
			
		}
		pg->Close();
		}
		catch(_com_error &e)//捕捉异常
		{
		AfxMessageBox(e.Description());
		}
	}
}

void CGoodsImport_ImDlg::OnSave2() 
{
	// TODO: Add your control notification handler code here
	MessageBox("保存成功");
}


⌨️ 快捷键说明

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