chkudlg.cpp

来自「商品进存销管理系统 包含发票」· C++ 代码 · 共 311 行

CPP
311
字号
// chkuDlg.cpp : implementation file
//

#include "stdafx.h"
#include "glxt.h"
#include "chkuDlg.h"
#include "librarygDlg.h"
#include "shp.h"

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

/////////////////////////////////////////////////////////////////////////////
// CchkuDlg dialog


CchkuDlg::CchkuDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CchkuDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CchkuDlg)
	m_outno = _T("");
	m_seller = _T("");
	m_rq = 0;
	//}}AFX_DATA_INIT
}


void CchkuDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CchkuDlg)
	DDX_Control(pDX, IDC_LIST3, m_libraryxx);
	DDX_Control(pDX, IDC_LIST2, m_outck);
	DDX_Control(pDX, IDC_LIST1, m_ckxx);
	DDX_Text(pDX, IDC_EDIT1, m_outno);
	DDX_Text(pDX, IDC_EDIT2, m_seller);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_rq);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CchkuDlg, CDialog)
	//{{AFX_MSG_MAP(CchkuDlg)
	ON_BN_CLICKED(IDC_BUTTON2, Onsgood)
	ON_BN_CLICKED(IDC_BUTTON1, Onoutlbary)
	ON_BN_CLICKED(IDC_BUTTON5, Onxshck)
	ON_WM_CTLCOLOR()
	ON_BN_CLICKED(IDC_BUTTON3, Onshowkuc)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CchkuDlg message handlers


BOOL CchkuDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	m_db.Open(_T("gshDSN"));
	m_chkuxx.m_pDatabase=&m_db;
	m_kucun.m_pDatabase=&m_db;
   

	// TODO: Add extra initialization here
	m_ckxx.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT );
	m_ckxx.InsertColumn(0,"库存编号",LVCFMT_LEFT,100);
	m_ckxx.InsertColumn(1,"商品编号",LVCFMT_LEFT,100);
	m_ckxx.InsertColumn(2,"商品名称",LVCFMT_LEFT,100);
	m_ckxx.InsertColumn(3,"品牌",LVCFMT_LEFT,80);
	m_ckxx.InsertColumn(4,"规格",LVCFMT_LEFT,80);
	m_ckxx.InsertColumn(5,"产地",LVCFMT_LEFT,80);
	m_ckxx.InsertColumn(6,"商品类别",LVCFMT_LEFT,100);
	m_ckxx.InsertColumn(7,"计量单位",LVCFMT_LEFT,80);
    m_ckxx.InsertColumn(8,"供货商",LVCFMT_LEFT,80);
    m_ckxx.InsertColumn(9,"进货价格",LVCFMT_CENTER,80);
    m_ckxx.InsertColumn(10,"销售价格",LVCFMT_CENTER,80);
	m_ckxx.InsertColumn(11,"数量",LVCFMT_CENTER,80);
	m_ckxx.InsertColumn(12,"销售总计",LVCFMT_CENTER,80);

    m_outck.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT );
	m_outck.InsertColumn(0,"出库编号",LVCFMT_LEFT,100);
	m_outck.InsertColumn(1,"商品编号",LVCFMT_LEFT,100);
	m_outck.InsertColumn(2,"商品名称",LVCFMT_LEFT,100);
	m_outck.InsertColumn(3,"商品价格",LVCFMT_LEFT,100);
	m_outck.InsertColumn(4,"数量",LVCFMT_LEFT,80);
	m_outck.InsertColumn(5,"售货员",LVCFMT_LEFT,100);
	m_outck.InsertColumn(6,"出库时间",LVCFMT_LEFT,100);
	m_libraryxx.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
	m_libraryxx.InsertColumn(0,"库存编号",LVCFMT_CENTER,100);
    m_libraryxx.InsertColumn(1,"商品编号",LVCFMT_CENTER,100);
	m_libraryxx.InsertColumn(2,"发票号",LVCFMT_CENTER,80);
	m_libraryxx.InsertColumn(3,"库存量",LVCFMT_CENTER,80);
	m_libraryxx.InsertColumn(4,"销售价格",LVCFMT_CENTER,80);
    m_libraryxx.InsertColumn(5,"供货商",LVCFMT_CENTER,80);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CchkuDlg::Onsgood() 
{
	// TODO: Add your control notification handler code here
	ClibrarygDlg dlg;
	CString s;
    double x;
	//dlg.DoModal();
    if(dlg.DoModal()==IDOK)
     	
	{
	int n=m_ckxx.GetItemCount();
	UpdateData();
	m_ckxx.InsertItem(n,"");
	s.Format("%s",dlg.m_lbno);
	m_ckxx.SetItemText(n,0,s);
	s.Format("%s",dlg.m_gno);
	m_ckxx.SetItemText(n,1,s);
	s.Format("%s",dlg.m_gname);
	m_ckxx.SetItemText(n,2,s);
	s.Format("%s",dlg.m_gpp);
	m_ckxx.SetItemText(n,3,s);
	s.Format("%s",dlg.m_gtype);
	m_ckxx.SetItemText(n,4,s);
	s.Format("%s",dlg.m_addr);
	m_ckxx.SetItemText(n,5,s);
    s.Format("%s",dlg.m_gkind);
	m_ckxx.SetItemText(n,6,s);
	s.Format("%s",dlg.m_dw);
	m_ckxx.SetItemText(n,7,s);
	s.Format("%s",dlg.m_pname);
	m_ckxx.SetItemText(n,8,s);
	s.Format("%.2f",dlg.m_bprice);
	m_ckxx.SetItemText(n,9,s);
	s.Format("%.2f",dlg.m_sprice);
	m_ckxx.SetItemText(n,10,s);
    s.Format("%d",dlg.m_count);
	m_ckxx.SetItemText(n,11,s);
	x=dlg.m_count*dlg.m_sprice;
    s.Format("%.2f",x);
 	m_ckxx.SetItemText(n,12,s);
    UpdateData(FALSE);
	}



}


void CchkuDlg::Onoutlbary() 
{
	// TODO: Add your control notification handler code here
	
	UpdateData();
	if(m_chkuxx.IsOpen())
		m_chkuxx.Close();

	m_chkuxx.Open();
    m_kucun.Open();
	try
	{
	for(int i=0;i<m_ckxx.GetItemCount();i++)
	{
		m_chkuxx.AddNew();
	    UpdateData(TRUE);
	    m_chkuxx.m_Ckuno=m_outno;
	    m_chkuxx.m_Gno=m_ckxx.GetItemText(i,1);
		m_chkuxx.m_Gname=m_ckxx.GetItemText(i,2);
		m_chkuxx.m_Gprice=atof(m_ckxx.GetItemText(i,10));
		m_chkuxx.m_Gcount=atof(m_ckxx.GetItemText(i,11));
		m_chkuxx.m_Datetime=m_rq;
		m_chkuxx.m_Gseller=m_seller;
		m_chkuxx.Update();
        m_chkuxx.Requery();	
		m_kucun.MoveFirst();
		bool end=FALSE;
		while(!m_kucun.IsEOF())
		{
			
			if(m_kucun.m_Lbno!=m_ckxx.GetItemText(i,0))
			{
				m_kucun.MoveNext();
			    end=FALSE;
			}
			else 
			{
				end=TRUE;
				break;
			}
		}
	  if(end==FALSE)
	  {	
		  m_rskuc.Open();
		  m_rskuc.MoveFirst();
		  while(1)
		  {
			  if(m_rskuc.m_Lbno==m_ckxx.GetItemText(i,0))
			  {
				  try
					{
						m_rskuc.Delete();
					}
					catch(CDBException *e)
					{
						AfxMessageBox(e->m_strError,MB_ICONEXCLAMATION);
						e->Delete();
						return;
					}
				break;
			}
			else
			   m_rskuc.MoveNext();
		}
       m_rskuc.Close();
	  }
	}
	}
   catch(CDBException *e)
   {
    AfxMessageBox(e->m_strError,MB_ICONEXCLAMATION);
		e->Delete();
	MessageBox("保存失败!");
	return;
   }
  AfxMessageBox("已成功出库!");
  m_chkuxx.Close();
  m_kucun.Close();
}


void CchkuDlg::Onxshck() 
{
	// TODO: Add your control notification handler code here
	if(m_chkuxx.IsOpen())
		m_chkuxx.Close();
    m_chkuxx.Open();
	m_outck.DeleteAllItems();
    int n = 0 ;
	while(!m_chkuxx.IsEOF())
	{
		double x;
	  	m_outck.InsertItem(n,"");
        CString s;
		s.Format("%s",m_chkuxx.m_Ckuno);
 		m_outck.SetItemText(n,0,s);
		s.Format("%s",m_chkuxx.m_Gno);
		m_outck.SetItemText(n,1,s);
		s.Format("%s",m_chkuxx.m_Gname);
		m_outck.SetItemText(n,2,s);
        s.Format("%d",m_chkuxx.m_Gcount);
       	m_outck.SetItemText(n,4,s);
        s.Format("%.2f",m_chkuxx.m_Gprice);
		m_outck.SetItemText(n,3,s);
        s.Format("%s",m_chkuxx.m_Gseller);
		m_outck.SetItemText(n,5,s);
		s=m_chkuxx.m_Datetime.Format("%y-%m-%d");
        m_outck.SetItemText(n,6,s);
		m_chkuxx.MoveNext();
		n++;

	  }
	m_chkuxx.Close();
}

HBRUSH CchkuDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	
	// TODO: Return a different brush if the default is not desired
	return m_brush;
}

void CchkuDlg::Onshowkuc() 
{
	// TODO: Add your control notification handler code here
	if(m_kucun.IsOpen())
		m_kucun.Close();
    m_kucun.Open();
	m_libraryxx.DeleteAllItems();
    int n = 0 ;
	bool test=FALSE;
	
	while(!m_kucun.IsEOF())
		{
		    test=TRUE;
		    double x;
	  	    m_libraryxx.InsertItem(n,"");
            CString s;
	    	s.Format("%s",m_kucun.m_Lbno);
 		    m_libraryxx.SetItemText(n,0,s);
	    	s.Format("%s",m_kucun.m_Gno);
	        m_libraryxx.SetItemText(n,1,s);
	    	s.Format("%s",m_kucun.m_Tickno);
	    	m_libraryxx.SetItemText(n,2,s);
            s.Format("%d",m_kucun.m_Lbcount);
        	m_libraryxx.SetItemText(n,3,s);
            s.Format("%.2f",m_kucun.m_Gprice);
	    	m_libraryxx.SetItemText(n,4,s);
            s.Format("%s",m_kucun.m_Pname);
	     	m_libraryxx.SetItemText(n,5,s);
	        m_kucun.MoveNext();
	    	n++;
		
	}
   if(test==FALSE)
	   AfxMessageBox("目前无库存");
	m_kucun.Close();
}

⌨️ 快捷键说明

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