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

📄 dlgzcxs_shhy.cpp

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

#include "stdafx.h"
#include "falcon_jxc.h"
#include "DlgZCXS_SHHY.h"
#include "FALCON_JXCView.h"
#include "message.h"
#include "dlgspmx.h"
#include "Chbmxg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgZCXS_SHHY dialog


CDlgZCXS_SHHY::CDlgZCXS_SHHY(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgZCXS_SHHY::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgZCXS_SHHY)
	m_sAnzhuangren = _T("");
	m_sShangwuxiawu = _T("");
	m_iDelXuhao = 0;
	m_sDianhua = _T("");
	m_sKehuxingming = _T("");
	m_sLouceng = _T("");
	m_fQita = 0.0f;
	m_sRiqi = _T("");
	m_sShijian = _T("");
	m_sXiangxidizhi = _T("");
	m_sYingyeyuan = _T("");
	m_fYunfei = 0.0f;
	m_fXiaoji = 0.0f;
	m_fHeji = 0.0f;
	m_strShoukuandanhao = _T("");
	//}}AFX_DATA_INIT
	m_nRowNum = 1;
	m_iSelectRow = 0;
	m_bSave = FALSE;
//Andrew--------------------------------------------------
	m_pView = NULL;
}

CDlgZCXS_SHHY::CDlgZCXS_SHHY(CFALCON_JXCView * pView)
{
	m_sAnzhuangren = _T("");
	m_sShangwuxiawu = _T("");
	m_iDelXuhao = 0;
	m_sDianhua = _T("");
	m_sKehuxingming = _T("");
	m_sLouceng = _T("");
	m_fQita = 0.0f;
	m_sRiqi = _T("");
	m_sShijian = _T("");
	m_sXiangxidizhi = _T("");
	m_sYingyeyuan = _T("");
	m_fYunfei = 0.0f;
	m_fXiaoji = 0.0f;
	m_fHeji = 0.0f;
	m_strShoukuandanhao = _T("");
	m_nRowNum = 1;
	m_iSelectRow = 0;
	m_bSave = FALSE;

	m_pView = pView;
}

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


void CDlgZCXS_SHHY::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgZCXS_SHHY)
	DDX_Control(pDX, IDC_HEJI, m_ctrHeji);
	DDX_Control(pDX, IDC_COMBO1, m_ctrShijian);
	DDX_Text(pDX, IDC_ANZHUANGREN, m_sAnzhuangren);
	DDX_CBString(pDX, IDC_COMBO1, m_sShangwuxiawu);
	DDX_Text(pDX, IDC_DELXUHAO2, m_iDelXuhao);
	DDX_Text(pDX, IDC_DIANHUA, m_sDianhua);
	DDX_Text(pDX, IDC_KEHUXINGMING, m_sKehuxingming);
	DDX_Text(pDX, IDC_LOUCENG, m_sLouceng);
	DDX_Control(pDX, IDC_MSFLEXGRID1, m_ctrMSFlexGrid);
	DDX_Text(pDX, IDC_QITA, m_fQita);
	DDX_Text(pDX, IDC_RIQI, m_sRiqi);
	DDX_Text(pDX, IDC_SHIJIAN, m_sShijian);
	DDX_Text(pDX, IDC_XIANGXIDIZHI, m_sXiangxidizhi);
	DDX_Text(pDX, IDC_YINGYEYUAN, m_sYingyeyuan);
	DDX_Text(pDX, IDC_YUNFEI, m_fYunfei);
	DDX_Text(pDX, IDC_XIAOJI, m_fXiaoji);
	DDX_Text(pDX, IDC_HEJI, m_fHeji);
	DDX_Text(pDX, IDC_SHOUKUANDANHAO, m_strShoukuandanhao);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgZCXS_SHHY, CDialog)
	//{{AFX_MSG_MAP(CDlgZCXS_SHHY)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_EN_CHANGE(IDC_YUNFEI, OnChangeYunfei)
	ON_BN_CLICKED(IDC_DEL, OnDel)
	ON_BN_CLICKED(IDC_QUEDING, OnQueding)
	ON_BN_CLICKED(IDC_TUICHU, OnTuichu)
	ON_BN_CLICKED(IDC_CHAXUN, OnChaxun)
	ON_BN_CLICKED(IDC_XIUGAI, OnXiugai)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgZCXS_SHHY message handlers

BOOL CDlgZCXS_SHHY::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CFALCON_JXCDoc* pDoc=	m_pView->GetDocument();
	   
	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,"折扣率");	
	m_ctrMSFlexGrid.SetTextArray(9,"金额");	
	m_ctrMSFlexGrid.SetTextArray(10,"备注");	

	CString str;

	CTime time=CTime::GetCurrentTime();
	int yy,mm,dd;
	yy=time.GetYear();
	mm=time.GetMonth();
	dd=time.GetDay();
	str.Format("%d-%d-%d",yy,mm,dd);
	m_sRiqi = str;

	m_ctrShijian.AddString("上");
	m_ctrShijian.AddString("下");
	m_ctrShijian.SetCurSel(0);
	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgZCXS_SHHY::OnAdd() 
{
	// TODO: Add your control notification handler code here
//	UpdateData();
//	CDlgSPMX dlg;
//	if(dlg.DoModal() == IDOK)
//	{
//		m_nRowNum++;
//		if(m_nRowNum > 5)	return;
//		CString str,strYuanjia;
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,1,dlg.m_sBianma);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,2,dlg.m_sName);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,3,dlg.m_sGuige);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,4,dlg.m_sDanwei);
//		str.Format("%d",dlg.m_iShuliang);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,5,str);
//		strYuanjia.Format("%.2f",dlg.m_fJiage);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,6,strYuanjia);
//		str.Format("%.2f",dlg.m_fZhekoujia);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,7,str);
//
//		m_fZhekoulv = dlg.m_fZhekoujia/dlg.m_fJiage;
//		str.Format("%.2f",m_fZhekoulv);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,8,str);
//		
//		str.Format("%.2f",dlg.m_iShuliang*dlg.m_fZhekoujia);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,9,str);
//		m_ctrMSFlexGrid.SetTextMatrix(m_nRowNum-1,10,dlg.m_sBeizhu);
//
//		m_fXiaoji += (float)atof(str);
//		m_fHeji = m_fXiaoji + m_fYunfei;
//		UpdateData(FALSE);
//	}

}

void CDlgZCXS_SHHY::OnChangeYunfei() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
	UpdateData();
	m_fHeji = m_fXiaoji + m_fYunfei;
	CString str;
	str.Format("%.2f",m_fHeji);
	m_ctrHeji.SetWindowText(str);	
//	UpdateData(FALSE);
}

void CDlgZCXS_SHHY::OnDel() 
{
	// TODO: Add your control notification handler code here
/*	UpdateData();
	m_ctrMSFlexGrid.RemoveItem(m_iDelXuhao);
	m_nRowNum--;
	m_ctrMSFlexGrid.SetRows(5);
	CString str;
	for(int i = 1; i < 5; i++)
	{
		str.Format("%d",i);
		m_ctrMSFlexGrid.SetTextMatrix(i,0,str);
	}
	m_ctrMSFlexGrid.Refresh();
*/
//	UpdateData();
//	CString str;
//
//	if (m_iSelectRow >0)
//	{	
//		str.Format("是否删除第%d条记录?",m_iSelectRow);
//		if(AfxMessageBox(str,MB_YESNO) == IDYES)
//		{
//			m_fXiaoji -= (float)atof(m_ctrMSFlexGrid.GetTextMatrix(m_iSelectRow,9));
//			m_fHeji = m_fXiaoji + m_fYunfei;
//			UpdateData(FALSE);
//
//			m_ctrMSFlexGrid.RemoveItem(m_iSelectRow);
//			m_nRowNum--;
//			m_ctrMSFlexGrid.SetRows(5);
//			for(int i = 1; i < 5; i++)
//			{
//				str.Format("%d",i);
//				m_ctrMSFlexGrid.SetTextMatrix(i,0,str);
//			}
//			m_ctrMSFlexGrid.Refresh();
//		}
//	}
//	else 
//	{
//		AfxMessageBox("请选择要删除的记录!");
//		return;
//	}

}

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

	UpdateData();

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

	if(pDoc->ConnectToServer())
	{

		pDoc->SendMsg("",13111);
	}
	else
		return;
a:
	if(pDoc->m_b23111)
	{
	   m_strHybh=pDoc->m_pMsg->ShortMessage;
	   pDoc->m_b23111 = FALSE;
	}
	else
	{
		pDoc->ProcessReadMessage();
		goto a;
	}

	CString strInsert,str;
	
	int iTemp = atoi(m_strHybh);
	iTemp++;
	m_strHybh.Format("%d",iTemp);
	strInsert = m_strHybh;
	strInsert+=CHARFLAG;
	strInsert+=m_sKehuxingming;
	strInsert+=CHARFLAG;
	strInsert+=m_sDianhua;
	strInsert+=CHARFLAG;
	strInsert+=m_sLouceng;
	strInsert+=CHARFLAG;
	strInsert+=m_sXiangxidizhi;
	strInsert+=CHARFLAG;
	strInsert+=m_sRiqi;
	strInsert+=CHARFLAG;

	int Index = m_ctrShijian.GetCurSel();
	if(Index != CB_ERR)
	{
		m_ctrShijian.GetLBText(Index,m_sShangwuxiawu);
	}
	strInsert+=m_sShangwuxiawu;
	strInsert+=CHARFLAG;
	strInsert+=m_sShijian;
	strInsert+=CHARFLAG;
	for(int i=1;i<5;i++)
	{
		for(int j=0;j<11;j++)
		{
			strInsert+=m_ctrMSFlexGrid.GetTextMatrix(i,j);
			strInsert+=CHARFLAG;
		}

	}
	str.Format("%.2f",m_fXiaoji);
	strInsert+=str;
	strInsert+=CHARFLAG;
	str.Format("%.2f",m_fYunfei);
	strInsert+=str;
	strInsert+=CHARFLAG;
	str.Format("%.2f",m_fHeji);
	strInsert+=str;
	strInsert+=CHARFLAG;
	str.Format("%.2f",m_fQita);
	strInsert+=str;
	strInsert+=CHARFLAG;
	strInsert+="";
	strInsert+=CHARFLAG;
	strInsert+="";
	strInsert+=CHARFLAG;
	strInsert+="";//开始时间
	strInsert+=CHARFLAG;
	strInsert+="";//结束时间
	strInsert+=CHARFLAG;
	strInsert+=m_sAnzhuangren;
	strInsert+=CHARFLAG;
	strInsert+=m_sYingyeyuan;
	strInsert+=CHARFLAG;

	if(pDoc->ConnectToServer())
	{

		pDoc->SendMsg(strInsert,1311);//发送存储"送货单"请求
	}
	else
		return;

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


		OnZcxsShhyStat();
		SendMessage(WM_COMMAND,ID_FILE_PRINT);
		for(i=1;i<5;i++)
		{
			for(int j=0;j<11;j++)
			{
				m_ctrMSFlexGrid.SetTextMatrix(i,j,"");
			}
		}
		m_sKehuxingming = "";
		m_sDianhua = "";
		m_sLouceng = "";
		m_sXiangxidizhi = "";
		m_strShoukuandanhao = "";
		m_fXiaoji=0;
		m_fYunfei=0;
		m_fHeji=0;
		m_fQita=0;
		m_sAnzhuangren = "";
		m_sYingyeyuan = "";
		UpdateData(FALSE);
	}
	else
	{
		pDoc->ProcessReadMessage();
		goto b;
	}

}

void CDlgZCXS_SHHY::OnZcxsShhyStat()
{
	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(14);
	m_pView->m_strPrtArray.SetAt(0,m_strHybh);
	m_pView->m_strPrtArray.SetAt(1,m_sKehuxingming);
	m_pView->m_strPrtArray.SetAt(2,m_sDianhua);
	m_pView->m_strPrtArray.SetAt(3,m_sLouceng);
	m_pView->m_strPrtArray.SetAt(4,m_sXiangxidizhi);
	m_pView->m_strPrtArray.SetAt(5,m_sRiqi);
	m_pView->m_strPrtArray.SetAt(6,m_sShangwuxiawu);
	m_pView->m_strPrtArray.SetAt(7,m_sShijian);
	str.Format("%.2f",m_fXiaoji);
	m_pView->m_strPrtArray.SetAt(8,str);
	str.Format("%.2f",m_fYunfei);
	m_pView->m_strPrtArray.SetAt(9,str);
	str.Format("%.2f",m_fHeji);
	m_pView->m_strPrtArray.SetAt(10,str);
	str.Format("%.2f",m_fQita);
	m_pView->m_strPrtArray.SetAt(11,str);
	m_pView->m_strPrtArray.SetAt(12,m_sYingyeyuan);
	m_pView->m_strPrtArray.SetAt(13,m_sAnzhuangren);
}

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

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

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

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

void CDlgZCXS_SHHY::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_SHHY::OnChaxun() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CFALCON_JXCDoc* pDoc = m_pView->GetDocument();

	if(m_strShoukuandanhao == "")	
	{
		AfxMessageBox("请输入收款单号!");
		return;
	}

	CString strRequest;

	strRequest = m_strShoukuandanhao;
	
	if(pDoc->ConnectToServer())
	{

		pDoc->SendMsg(strRequest,1312);//发送查询"收款凭证"请求
	}
	else
		return;

a: 
	if(pDoc->m_b2312)
	{
		if(pDoc->m_pMsg->ShortMessage != "")
		{
			CString str;
			m_nRowNum = pDoc->m_StrArray.GetSize()/13 +1;
			m_sKehuxingming = pDoc->m_StrArray[0];
			m_fXiaoji = (float)atof(pDoc->m_StrArray[11]);
			m_sYingyeyuan = pDoc->m_StrArray[12];
			m_fHeji = m_fXiaoji;
			
			for(int i = 1; i < m_nRowNum; i++)
			{
				str.Format("%d",i);
				m_ctrMSFlexGrid.SetTextMatrix(i,0,str);
				for (int j=1; j<11; j++)
				{
					str = pDoc->m_StrArray[(i-1)*13+j];
					m_ctrMSFlexGrid.SetTextMatrix(i,j,str);
				}
			}

			UpdateData(FALSE);
			
		}
		else
		{
			AfxMessageBox("未查到相符记录!");
		}
		pDoc->m_b2312 = FALSE;
	}
	else
	{  
		
		pDoc->ProcessReadMessage();
		goto a;
	}	
}

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

	if (m_iSelectRow >0 && m_ctrMSFlexGrid.GetTextMatrix(m_iSelectRow,0) != "")
	{	
		str.Format("是否修改第%d条记录的出货点(备注)?",m_iSelectRow);
		if(AfxMessageBox(str,MB_YESNO) == IDYES)
		{
			CChbmxg dlg;
			dlg.m_nXuhao = m_iSelectRow;
			if (dlg.DoModal() == IDOK)
			{
				str = dlg.m_strChuhuobumen;
				m_ctrMSFlexGrid.SetTextMatrix(m_iSelectRow,10,str);
				m_ctrMSFlexGrid.Refresh();
			}
		}
		UpdateData(FALSE);
	}
	m_iSelectRow=0;
}

⌨️ 快捷键说明

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