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

📄 dlgzcxs.cpp

📁 面向软件工程的Visual C++网络程序开发
💻 CPP
字号:
// DlgZCXS.cpp : implementation file
//

#include "stdafx.h"
#include "falcon_jxc.h"
#include "DlgZCXS.h"
#include "mainfrm.h"
#include "FALCON_JXCView.h"
#include "message.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgZCXS_SKPJ dialog


CDlgZCXS_SKPJ::CDlgZCXS_SKPJ(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgZCXS_SKPJ::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgZCXS_SKPJ)
	m_sChangming = _T("");
	m_sHeji = _T("");
	m_sRiqi = _T("");
	m_sShouyingyuan = _T("");
	m_nDelXuhao = 0;
	m_fWeifuweikuan = 0.0f;
	m_fYufujine = 0.0f;
	m_sXiaoshoubumen = _T("");
	m_sYingyeyuan = _T("");
	//}}AFX_DATA_INIT
	m_nRowNum = 1;
	m_fHeji = 0;
	m_iSelectRow = 0;
	m_bSave = FALSE;
//Andrew--------------------------------------------------
	m_pView = NULL;
}

CDlgZCXS_SKPJ::CDlgZCXS_SKPJ(CFALCON_JXCView * pView)
{
	m_sChangming = _T("");
	m_sHeji = _T("");
	m_sRiqi = _T("");
	m_sShouyingyuan = _T("");
	m_nDelXuhao = 0;
	m_fWeifuweikuan = 0.0f;
	m_fYufujine = 0.0f;
	m_sXiaoshoubumen = _T("");
	m_sYingyeyuan = _T("");
	m_nRowNum = 1;
	m_fHeji = 0;
	m_iSelectRow = 0;
	m_bSave = FALSE;

	m_pView = pView;
}

BOOL CDlgZCXS_SKPJ::Create()
{
	return CDialog::Create(CDlgZCXS_SKPJ::IDD);
}
//----------------------------------------------------------

void CDlgZCXS_SKPJ::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgZCXS_SKPJ)
	DDX_Control(pDX, IDC_WEIFUWEIKUAN, m_ctrWeifuweikuan);
	DDX_Text(pDX, IDC_CHANGMING, m_sChangming);
	DDX_Text(pDX, IDC_HEJI, m_sHeji);
	DDX_Control(pDX, IDC_MSFLEXGRID1, m_ctrMSFlexGrid);
	DDX_Text(pDX, IDC_RIQI, m_sRiqi);
	DDX_Text(pDX, IDC_SHOUYINYUAN, m_sShouyingyuan);
	DDX_Text(pDX, IDC_DELETE, m_nDelXuhao);
	DDX_Text(pDX, IDC_WEIFUWEIKUAN, m_fWeifuweikuan);
	DDX_Text(pDX, IDC_YUFUJINE, m_fYufujine);
	DDX_Text(pDX, IDC_XIAOSHOUBUMEN, m_sXiaoshoubumen);
	DDX_Text(pDX, IDC_YINGYEYUAN, m_sYingyeyuan);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgZCXS_SKPJ, CDialog)
	//{{AFX_MSG_MAP(CDlgZCXS_SKPJ)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DEL, OnDel)
	ON_BN_CLICKED(IDC_QUEDING, OnQueding)
	ON_EN_CHANGE(IDC_YUFUJINE, OnChangeYufujine)
	ON_BN_CLICKED(IDC_TUICHU, OnTuichu)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgZCXS_SKPJ message handlers
/////////////////////////////////////////////////////////////////////////////
// CDlgZCXS_SPMX dialog


CDlgZCXS_SPMX::CDlgZCXS_SPMX(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgZCXS_SPMX::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgZCXS_SPMX)
	m_sGuige = _T("");
	m_sMingcheng = _T("");
	m_sBianma = _T("");
	m_iShuliang = 1;
	m_fYouhuijia = 0.0f;
	m_sYuanjia = _T("");
	m_sGonghuoshang = _T("");
	m_sShengchanchangshang = _T("");
	m_sDanwei = _T("");
	//}}AFX_DATA_INIT
}


void CDlgZCXS_SPMX::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgZCXS_SPMX)
	DDX_Text(pDX, IDC_GG, m_sGuige);
	DDX_Text(pDX, IDC_NAME, m_sMingcheng);
	DDX_Text(pDX, IDC_BM, m_sBianma);
	DDX_Text(pDX, IDC_SL, m_iShuliang);
	DDX_Text(pDX, IDC_JE, m_fYouhuijia);
	DDX_Text(pDX, IDC_YUANJIA, m_sYuanjia);
	DDX_Text(pDX, IDC_GONGHUOSHANG, m_sGonghuoshang);
	DDX_Text(pDX, IDC_SHENGCHANCHANGSHANG, m_sShengchanchangshang);
	DDX_Text(pDX, IDC_DANWEI, m_sDanwei);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgZCXS_SPMX, CDialog)
	//{{AFX_MSG_MAP(CDlgZCXS_SPMX)
	ON_EN_KILLFOCUS(IDC_BM, OnKillfocusBm)
	ON_BN_CLICKED(ID_TUICHU, OnTuichu)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgZCXS_SPMX message handlers

void CDlgZCXS_SKPJ::OnAdd() 
{
	// TODO: Add your control notification handler code here
	if(m_nRowNum > 4)	return;
	UpdateData();
	CDlgZCXS_SPMX dlg;
	if(dlg.DoModal() == IDOK)
	{
		if (dlg.m_sBianma == "")
		{
			return;
		}
		
		for(int i = 1; i < m_nRowNum; i++)
		{
			if(dlg.m_sBianma == m_ctrMSFlexGrid.GetTextMatrix(i,0))
			{
				AfxMessageBox("该商品已添加!");
				return;
			}
		}
		
		m_nRowNum++;
		CString str;
		str = dlg.m_sBianma;
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,0,str);
		str = dlg.m_sMingcheng;
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,1,str);
		str = dlg.m_sDanwei;
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,2,str);
		str = dlg.m_sGuige;
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,3,str);
		str.Format("%d",dlg.m_iShuliang);
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,4,str);
		str.Format("%.2f",dlg.m_fYouhuijia);
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,5,str);
		str.Format("%.2f",dlg.m_fYouhuijia*dlg.m_iShuliang);
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,6,str);
		str = dlg.m_sGonghuoshang;
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,7,str);
		str = dlg.m_sShengchanchangshang;
		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,8,str);

		m_fHeji += dlg.m_fYouhuijia*dlg.m_iShuliang;
		m_fWeifuweikuan = m_fHeji - m_fYufujine;
		m_sHeji.Format("%.2f",m_fHeji);
		UpdateData(FALSE);
	}
}

BOOL CDlgZCXS_SKPJ::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CFALCON_JXCDoc* pDoc = m_pView->GetDocument();

	m_sXiaoshoubumen = m_pView->m_sShangchangmingcheng;
	m_sShouyingyuan = m_pView->m_sShouyinyuan;   
	m_ctrMSFlexGrid.SetTextArray(0,"商品编码");	
	m_ctrMSFlexGrid.SetTextArray(1,"名称");	
	m_ctrMSFlexGrid.SetTextArray(2,"单位");
	m_ctrMSFlexGrid.SetTextArray(3,"规格");	
	m_ctrMSFlexGrid.SetTextArray(4,"数量");
	m_ctrMSFlexGrid.SetTextArray(5,"销售单价");	
	m_ctrMSFlexGrid.SetTextArray(6,"销售金额");	
	m_ctrMSFlexGrid.SetTextArray(7,"供货商");	
	m_ctrMSFlexGrid.SetTextArray(8,"生产厂商");
	
	CTime time=CTime::GetCurrentTime();
	int yy,mm,dd;
	yy=time.GetYear();
	mm=time.GetMonth();
	dd=time.GetDay();
	CString str;
	str.Format("%d-%d-%d",yy,mm,dd);
	m_sRiqi = str;
	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgZCXS_SKPJ::OnDel() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CString str;

	if (m_iSelectRow >0)
	{	
		str.Format("是否删除第%d条记录?",m_iSelectRow);
		if(AfxMessageBox(str,MB_YESNO) == IDYES)
		{
			m_fHeji -= (float)atof(m_ctrMSFlexGrid.GetTextMatrix(m_iSelectRow,6));
			m_fWeifuweikuan -= (float)atof(m_ctrMSFlexGrid.GetTextMatrix(m_iSelectRow,6));
			m_sHeji.Format("%.2f",m_fHeji);
			UpdateData(FALSE);

			m_ctrMSFlexGrid.RemoveItem(m_iSelectRow);
			m_nRowNum--;
			m_ctrMSFlexGrid.SetRows(5);
			m_ctrMSFlexGrid.Refresh();
		}
	}
	else 
	{
		AfxMessageBox("请选择要删除的记录!");
		return;
	}
	m_iSelectRow=0;
}

void CDlgZCXS_SKPJ::OnQueding() 
{
	// TODO: Add your control notification handler code here
	CFALCON_JXCDoc* pDoc = m_pView->GetDocument();

	UpdateData();		

	if(m_ctrMSFlexGrid.GetTextMatrix(1,0) == "")
	{
		AfxMessageBox("无货品!");
		return;
	}

	if(pDoc->ConnectToServer())
	{

		pDoc->SendMsg("",13221);
	}
	else
		return;
a: 
	if(pDoc->m_b13221)
	{
	   m_strPzbh=pDoc->m_pMsg->ShortMessage;
	   pDoc->m_b13221 = FALSE;
	}
	else
	{
		pDoc->ProcessReadMessage();
		goto a;
	}

	CString strInsert,strtemp,str;
	int iCol = 9;/////////////表中一条记录为9列
	int i,j;
	int iTemp = atoi(m_strPzbh);
	iTemp++;
	m_strPzbh.Format("%d",iTemp);

	///////////////////////////////////转换日期格式
	int len = m_sRiqi.GetLength();
	int Index = m_sRiqi.Find("-");
	strtemp = m_sRiqi.Mid(0,Index);
	str = m_sRiqi.GetAt(Index+2);
	if(str == "-")
	{
		CString sMonth;
		sMonth = m_sRiqi.GetAt(Index+1);
		int month = atoi(sMonth);
		sMonth.Format("0%d",month);
		strtemp += sMonth;
	}
	else
	{
		strtemp += m_sRiqi.Mid(Index+1,2);
	}
	str = m_sRiqi.GetAt(len-2);
	if(str == "-")
	{
		CString sDay;
		sDay = m_sRiqi.GetAt(len-1);
		int day = atoi(sDay);
		sDay.Format("0%d",day);
		strtemp += sDay;
	}
	else
	{
		strtemp += m_sRiqi.Mid(len-2,2);
	}
	m_sRiqi = strtemp;
	/////////////////////////////////////////////

	strtemp.Format("%d",m_nRowNum-1);
	strInsert = strtemp;
	strInsert += CHARFLAG;
	strtemp.Format("%d",23);//数据库中有23列
	strInsert += strtemp;
	strInsert += CHARFLAG;

	for(i = 1; i < m_nRowNum; i++)
	{
		strInsert += m_strPzbh;
		strInsert += CHARFLAG;
		strInsert += m_sXiaoshoubumen;
		strInsert += CHARFLAG;
		strInsert += m_sChangming;
		strInsert += CHARFLAG;
		strInsert += m_sRiqi;
		strInsert += CHARFLAG;

		for(j = 0; j < iCol; j++)
		{
			strInsert += m_ctrMSFlexGrid.GetTextMatrix(i,j);
			strInsert += CHARFLAG;
		}

		if(i == 1)
		{
			strInsert += m_sHeji;
			strInsert += CHARFLAG;
			strInsert += "";//正常销售没有已付定金
			strInsert += CHARFLAG;
			strtemp.Format("%.2f",m_fYufujine);
			strInsert += strtemp;
			strInsert += CHARFLAG;
			strtemp.Format("%.2f",m_fWeifuweikuan);
			strInsert += strtemp;
			strInsert += CHARFLAG;
			strInsert += "";//已付尾款为0
			strInsert += CHARFLAG;
			strInsert += m_sShouyingyuan;//预付款收银员
			strInsert += CHARFLAG;
			strInsert += "";//尾款收银员为空
			strInsert += CHARFLAG;
			strInsert += "";//付尾款日期为空
			strInsert += CHARFLAG;
			strInsert += m_sYingyeyuan;
			strInsert += CHARFLAG;	
			strInsert += "";
			strInsert += CHARFLAG;
		}
		else
		{
			strInsert += "";
			strInsert += CHARFLAG;
			strInsert += "";//正常销售没有已付定金
			strInsert += CHARFLAG;
//			strtemp.Format("%.2f",m_fYufujine);
			strInsert += "";
			strInsert += CHARFLAG;
//			strtemp.Format("%.2f",m_fWeifuweikuan);
			strInsert += "";
			strInsert += CHARFLAG;
			strInsert += "";//已付尾款为0
			strInsert += CHARFLAG;
			strInsert += "";//预付款收银员
			strInsert += CHARFLAG;
			strInsert += "";//尾款收银员为空
			strInsert += CHARFLAG;
			strInsert += "";//付尾款日期为空
			strInsert += CHARFLAG;
			strInsert += "";
			strInsert += CHARFLAG;
			strInsert += "";
			strInsert += CHARFLAG;
		}
	}
	if(pDoc->ConnectToServer())
	{

		pDoc->SendMsg(strInsert,1322);//发送存储"收款凭据"请求
	}
	else
		return;

	/*/////////////////////
	添加打印函数
	*/////////////////////
b:	if (pDoc->m_b2322)
	{
		pDoc->m_b2322 = FALSE;
		m_bSave = TRUE;

		OnZcxsSkpjStat();
		SendMessage(WM_COMMAND,ID_FILE_PRINT_PREVIEW);
		for(i=1;i<5;i++)
		{
			for(j=0;j<9;j++)
			{
				m_ctrMSFlexGrid.SetTextMatrix(i,j,"");
			}
		}	
	}
	else
	{
		pDoc->ProcessReadMessage();
		goto b;
	}
	
}

void CDlgZCXS_SKPJ::OnZcxsSkpjStat()
{
	m_pView->m_CMSFlexGrid = &m_ctrMSFlexGrid;
	m_pView->m_iRows = 0;
	for (int i=1; i<5; i++)
	{
		if (m_ctrMSFlexGrid.GetTextMatrix(i,0) != "")
		{
			m_pView->m_iRows++;
		}
		else
		{
			break;
		}
	}

	if (m_pView->m_strPrtArray.GetSize() != 0)
	{
		m_pView->m_strPrtArray.RemoveAll();
	}
	
	CString str;
	m_pView->m_strPrtArray.SetSize(6);
	m_pView->m_strPrtArray.SetAt(0,m_strPzbh);
	str = "顾客姓名 ";
	str += m_sChangming;
	m_pView->m_strPrtArray.SetAt(1,str);
	m_pView->m_strPrtArray.SetAt(2,m_sRiqi);
	str.Format("%.2f",m_fHeji);
	m_pView->m_strPrtArray.SetAt(3,str);
	str.Format("已付: %.2f",m_fYufujine);
	m_pView->m_strPrtArray.SetAt(4,str);
	m_pView->m_strPrtArray.SetAt(5,m_sShouyingyuan);
}

void CDlgZCXS_SKPJ::OnChangeYufujine() 
{
	UpdateData();
	float Heji = (float)atof(m_sHeji);
	m_fWeifuweikuan = Heji - m_fYufujine;
	CString str;
	str.Format("%.2f",m_fWeifuweikuan);
	m_ctrWeifuweikuan.SetWindowText(str);
}


void CDlgZCXS_SPMX::OnKillfocusBm() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CMainFrame* pwnd=(CMainFrame*)AfxGetApp()->m_pMainWnd;
	CFALCON_JXCView* pView=(CFALCON_JXCView*)pwnd->GetActiveView();
	CFALCON_JXCDoc* pDoc = pView->GetDocument();


	CString strRequest;
	if(m_sBianma == "")
	{
		AfxMessageBox("请输入商品编码!");
		return;
	}
	else
		strRequest = m_sBianma;
	
	if(pDoc->ConnectToServer())
	{

		pDoc->SendMsg(strRequest,1212);//发送根据关键字查询商品资料的请求
	}
	else
		return;


a: 
	if(pDoc->m_b2212)
	{
		if(pDoc->m_pMsg->ShortMessage != "")
		{
			m_sBianma = pDoc->m_StrArray.GetAt(0);
			m_sMingcheng = pDoc->m_StrArray.GetAt(1);
			m_sDanwei = pDoc->m_StrArray.GetAt(2);
			m_sGuige = pDoc->m_StrArray.GetAt(3);
			m_sYuanjia = pDoc->m_StrArray.GetAt(8);
			m_fYouhuijia = atof(m_sYuanjia);
			m_sGonghuoshang = pDoc->m_StrArray.GetAt(5);
			m_sShengchanchangshang = pDoc->m_StrArray.GetAt(6);
			UpdateData(FALSE);
		}
		else 
		{
			AfxMessageBox("没有该编码的商品!");
//			((CButton*)GetDlgItem( IDOK ))->EnableWindow( FALSE );
			m_sBianma = "";
			m_sMingcheng = "";
			m_sDanwei = "";
			m_sGuige = "";
			m_sYuanjia = "";
			m_sGonghuoshang = "";
			m_sShengchanchangshang = "";
			UpdateData(FALSE);
		}
		pDoc->m_b2212=false;
	}
	else
	{
		pDoc->ProcessReadMessage();
		goto a;
	}

}

BEGIN_EVENTSINK_MAP(CDlgZCXS_SKPJ, CDialog)
    //{{AFX_EVENTSINK_MAP(CDlgZCXS_SKPJ)
	ON_EVENT(CDlgZCXS_SKPJ, IDC_MSFLEXGRID1, -600 /* Click */, OnClickMsflexgrid1, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CDlgZCXS_SKPJ::OnClickMsflexgrid1() 
{
	// TODO: Add your control notification handler code here
	m_iSelectRow = m_ctrMSFlexGrid.GetRow();
}

void CDlgZCXS_SKPJ::OnOK() 
{
	//Dummy OnOk function!
}

void CDlgZCXS_SKPJ::OnCancel() 
{
	//Dummy OnCancel function!
}

void CDlgZCXS_SKPJ::OnTuichu() 
{
	// TODO: Add your control notification handler code here
	if (m_bSave == FALSE && AfxMessageBox("尚未出单!是否退出?", MB_YESNO | MB_ICONQUESTION) == IDNO)
	{
		return;
	}
	else
	{
		m_pView->m_iPrtItem = -1;
		DestroyWindow();
	}	
}

void CDlgZCXS_SPMX::OnOK() 
{
	//Dummy OnOk function!
	CDialog::OnOK();
}

void CDlgZCXS_SPMX::OnCancel() 
{
	//Dummy OnCancel function!
}

void CDlgZCXS_SPMX::OnTuichu() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}


⌨️ 快捷键说明

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