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

📄 dlgjbzl_sp.cpp

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

#include "stdafx.h"
#include "falcon_jxc.h"
#include "DlgJBZL_SP.h"
#include "DlgJBZL_SP_TJ.h"
#include "mainfrm.h"
#include "FALCON_JXCView.h"
#include "message.h"
#include "DlgJBZL_ZKL.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgJBZL_SP dialog


CDlgJBZL_SP::CDlgJBZL_SP(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgJBZL_SP::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgJBZL_SP)
	m_sGuanjianzi = _T("");
	m_sChaxuntiaojian = _T("");
	m_sChaxuntiaojian1 = _T("");
	m_sGuanjianzi1 = _T("");
	//}}AFX_DATA_INIT
	m_iRow = 1;
	m_iDelRow = 0;
	m_iColNum = 11;//数据库的列数
	m_bSave = FALSE;
}


void CDlgJBZL_SP::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgJBZL_SP)
	DDX_Control(pDX, IDC_CHAXUNTIAOJIAN1, m_ctrChaxuntiaojian1);
	DDX_Control(pDX, IDC_CHAXUNTIAOJIAN, m_ctrChaxuntiaojian);
	DDX_Control(pDX, IDC_MSFLEXGRID1, m_ctrMSFlexGrid);
	DDX_Text(pDX, IDC_GUANJIANZI, m_sGuanjianzi);
	DDX_CBString(pDX, IDC_CHAXUNTIAOJIAN, m_sChaxuntiaojian);
	DDX_CBString(pDX, IDC_CHAXUNTIAOJIAN1, m_sChaxuntiaojian1);
	DDX_Text(pDX, IDC_GUANJIANZI1, m_sGuanjianzi1);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgJBZL_SP, CDialog)
	//{{AFX_MSG_MAP(CDlgJBZL_SP)
	ON_BN_CLICKED(IDC_TIANJIA, OnTianjia)
	ON_BN_CLICKED(IDC_SHANCHU, OnShanchu)
	ON_BN_CLICKED(IDC_QUEDING, OnQueding)
	ON_BN_CLICKED(IDC_CHAXUN, OnChaxun)
	ON_BN_CLICKED(IDC_JIAGEZHEKOU, OnJiagezhekou)
	ON_BN_CLICKED(ID_TUICHU, OnTuichu)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgJBZL_SP message handlers

void CDlgJBZL_SP::OnTianjia() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CDlgJBZL_SP_TJ dlg;
	CString str;
	if(dlg.DoModal() == IDOK)
	{
		if (dlg.m_sShangpinbianma == "")
		{
			return;
		}

		if (m_iRow != 1)
		{
			for(int i = 1; i < m_iRow; i++)
			{
				if(dlg.m_sShangpinbianma == m_ctrMSFlexGrid.GetTextMatrix(i,0))
				{
					AfxMessageBox("该编码商品已存在!");
					return;
				}
			}
		}
		m_iRow++;
		m_ctrMSFlexGrid.SetRows(m_iRow);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,0,dlg.m_sShangpinbianma);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,1,dlg.m_sMingcheng);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,2,dlg.m_sDanwei);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,3,dlg.m_sGuige);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,4,dlg.m_sXinghao);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,5,dlg.m_sGonghuoshang);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,6,dlg.m_sShengchanshang);
		str.Format("%.2f",dlg.m_fJinjia);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,7,str);
		str.Format("%.2f",dlg.m_fShoujia);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,8,str);
		str.Format("%d",dlg.m_iZuixiaokucun);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,9,str);
		m_ctrMSFlexGrid.SetTextMatrix(m_iRow-1,10,dlg.m_sBeizhu);
	}
}

BOOL CDlgJBZL_SP::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_ctrMSFlexGrid.SetCols(11);
	m_ctrMSFlexGrid.SetRows(m_iRow);
	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,"商品分类");

	m_ctrChaxuntiaojian.AddString("商品编码");
	m_ctrChaxuntiaojian.AddString("供货商");
	m_ctrChaxuntiaojian.AddString("商品名称");
	m_ctrChaxuntiaojian.AddString("生产厂商");
	m_ctrChaxuntiaojian.SetCurSel(0);
	   
	m_ctrChaxuntiaojian1.AddString("商品名称");
	m_ctrChaxuntiaojian1.AddString("供货商");
	m_ctrChaxuntiaojian1.AddString("商品编码");
	m_ctrChaxuntiaojian1.AddString("生产厂商");
	m_ctrChaxuntiaojian1.SetCurSel(0);
	
	CMainFrame* pwnd=(CMainFrame*)AfxGetApp()->m_pMainWnd;
	CFALCON_JXCView* pView=(CFALCON_JXCView*)pwnd->GetActiveView();
	CFALCON_JXCDoc* pDoc=	pView->GetDocument();

	if(pDoc->ConnectToServer())
	{

		pDoc->SendMsg("",1910);
	}
	else
		return FALSE;

a:
	if(pDoc->m_b2910)
	{
		if (pDoc->m_pMsg->ShortMessage != "")
		{
			m_iRow += pDoc->m_iRow;
			m_ctrMSFlexGrid.SetRows(m_iRow);
			CString str;
			int n = 0;
			for(int i = 1; i <= pDoc->m_iRow; i++)
			{
				str = pDoc->m_StrArray[n];
				m_ctrMSFlexGrid.SetTextMatrix(i,0,str);
				str = pDoc->m_StrArray[n+1];
				m_ctrMSFlexGrid.SetTextMatrix(i,1,str);
				str = pDoc->m_StrArray[n+2];
				m_ctrMSFlexGrid.SetTextMatrix(i,2,str);
				str = pDoc->m_StrArray[n+3];
				m_ctrMSFlexGrid.SetTextMatrix(i,3,str);
				str = pDoc->m_StrArray[n+4];
				m_ctrMSFlexGrid.SetTextMatrix(i,4,str);
				str = pDoc->m_StrArray[n+5];
				m_ctrMSFlexGrid.SetTextMatrix(i,5,str);
				str = pDoc->m_StrArray[n+6];
				m_ctrMSFlexGrid.SetTextMatrix(i,6,str);
				str = pDoc->m_StrArray[n+7];
				m_ctrMSFlexGrid.SetTextMatrix(i,7,str);
				str = pDoc->m_StrArray[n+8];
				m_ctrMSFlexGrid.SetTextMatrix(i,8,str);
				str = pDoc->m_StrArray[n+9];
				m_ctrMSFlexGrid.SetTextMatrix(i,9,str);
				str = pDoc->m_StrArray[n+10];
				m_ctrMSFlexGrid.SetTextMatrix(i,10,str);
				n += m_iColNum;
			}
		}
		pDoc->m_b2910=false;
	}
	else
	{
		pDoc->ProcessReadMessage();
		goto a;
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

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

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

void CDlgJBZL_SP::OnShanchu() 
{
	// 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 str,strDel;
	
	if (m_iDelRow >0)
	{	
		str.Format("是否删除商品 %s 的资料?",m_ctrMSFlexGrid.GetTextMatrix(m_iDelRow,0));
		if(AfxMessageBox(str,MB_YESNO) == IDYES)
		{
			//删除数据库内容
			strDel = m_ctrMSFlexGrid.GetTextMatrix(m_iDelRow,0);
			if(pDoc->ConnectToServer())
			{
				pDoc->SendMsg(strDel,1913);//发送删除"商品基本资料"请求
			}
			else
			{
				AfxMessageBox("连接数据库失败!");
				return;
			}
			//刷新显示

			if(m_iRow > 2)
			{
				m_ctrMSFlexGrid.RemoveItem(m_iDelRow);
				m_iRow--;
				m_ctrMSFlexGrid.SetRows(m_iRow);
			}
			else
			{
				m_iRow--;
				m_ctrMSFlexGrid.SetRows(m_iRow);
			}
		}
	}
	else 
	{
		AfxMessageBox("请选择要删除的记录!");
		return;
	}

}

void CDlgJBZL_SP::OnQueding() 
{
	// 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 strInsert,str;

	str.Format("%d",m_iRow-1);
	strInsert = str;
	strInsert+=CHARFLAG;
	str.Format("%d",m_iColNum);
	strInsert += str;
	strInsert+=CHARFLAG;
	for(int i = 1; i < m_iRow; i++)
	{
		for(int j = 0; j < m_iColNum; j++)
		{
			strInsert += m_ctrMSFlexGrid.GetTextMatrix(i,j);
			strInsert+=CHARFLAG;
		}
	}

	if(pDoc->ConnectToServer())
	{

		pDoc->SendMsg(strInsert,1911);//发送存储"商品基本资料"请求
//		m_ctrMSFlexGrid.SetRows(1);   //是否清屏?
	}
	else
		return;

	/*/////////////////////
	添加打印函数
	*/////////////////////
	m_bSave = TRUE;
//	OnOK();
	
}

void CDlgJBZL_SP::OnChaxun() 
{
	// 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();

	if(m_sGuanjianzi == "" && m_sGuanjianzi1 =="")
	{
		AfxMessageBox("请输入关键字!");
		return;
	}

	CString strRequest;
	strRequest = m_sChaxuntiaojian;
	strRequest += CHARFLAG;
	strRequest += m_sGuanjianzi;
	strRequest += CHARFLAG;
	strRequest += m_sChaxuntiaojian1;
	strRequest += CHARFLAG;
	strRequest += m_sGuanjianzi1;
	strRequest += CHARFLAG;
	
	if(pDoc->ConnectToServer())
	{

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


a: 
	if(pDoc->m_b2912)
	{
		if(pDoc->m_pMsg->ShortMessage != "")
		{
			m_iRow = pDoc->m_iRow+1;
			m_ctrMSFlexGrid.SetRows(m_iRow);
			CString str;
			for(int i = 1; i < m_iRow; i++)
			{
				for(int j = 0; j < m_iColNum; j++)
				{
					str = pDoc->m_StrArray[j+(i-1)*m_iColNum];
					m_ctrMSFlexGrid.SetTextMatrix(i,j,str);
				}
				UpdateData(FALSE);
			}
		}
		else 
		{
			m_iRow = 1;
			m_ctrMSFlexGrid.SetRows(m_iRow);
			UpdateData(FALSE);
			AfxMessageBox("查询结果为0!");
					
		}
		pDoc->m_b2912=false;
	}
	else
	{
		pDoc->ProcessReadMessage();
		goto a;
	}
	
}

void CDlgJBZL_SP::OnJiagezhekou() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CDlgJBZL_ZKL dlg;
	if(dlg.DoModal() == IDOK)
	{
		CString str;
		float fShoujia;
		for(int i = 1; i < m_iRow; i++)
		{
			int j = 8;//售价在第八列
			str = m_ctrMSFlexGrid.GetTextMatrix(i,j);
			fShoujia = (float)atof(str);
			fShoujia *= dlg.m_fZhekoulv /10; 
			str.Format("%.2f",fShoujia);
			m_ctrMSFlexGrid.SetTextMatrix(i,j,str);
			UpdateData(FALSE);
				
		}

	}
}


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

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

void CDlgJBZL_SP::OnTuichu() 
{
	// TODO: Add your control notification handler code here
	if (m_bSave == FALSE && AfxMessageBox("尚未更新!是否退出?", MB_YESNO | MB_ICONQUESTION) == IDNO)
	{
		return;
	}
	else
	{
		CDialog::OnOK();

	}	
}

⌨️ 快捷键说明

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