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

📄 diancai.cpp

📁 wince无线点菜软件,具备常规点菜的所有功能,可直接使用
💻 CPP
字号:
// Diancai.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "Diancai.h"
#include "Leibie.h"
#include "database.h"
#include "list.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDiancai dialog


CDiancai::CDiancai(CWnd* pParent /*=NULL*/)
	: CDialog(CDiancai::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDiancai)
	m_beizhu = _T("");
	m_bianhao = _T("");
	m_caoming = _T("");
	m_danjia = _T("");
	m_danwei = _T("");
	m_kouwei = _T("");
	m_shuliang = _T("1");
	m_zhujima = _T("");
	m_tingcai = FALSE;
	m_kouwei=L"标准";
	//}}AFX_DATA_INIT
}


void CDiancai::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDiancai)
	DDX_Control(pDX, IDC_EDIT_DANJIA, m_cdanjia);
	DDX_Control(pDX, IDC_EDIT_ZHUJIMA, m_czhujima);
	DDX_Control(pDX, IDC_EDIT_KOUWEI, m_ckouwei);
	DDX_Control(pDX, IDC_EDIT_BIANHAO, m_cbianhao);
	DDX_Text(pDX, IDC_EDIT_BEIZHU, m_beizhu);
	DDV_MaxChars(pDX, m_beizhu, 50);
	DDX_Text(pDX, IDC_EDIT_BIANHAO, m_bianhao);
	DDV_MaxChars(pDX, m_bianhao, 10);
	DDX_Text(pDX, IDC_EDIT_CAIMING, m_caoming);
	DDV_MaxChars(pDX, m_caoming, 20);
	DDX_Text(pDX, IDC_EDIT_DANJIA, m_danjia);
	DDV_MaxChars(pDX, m_danjia, 10);
	DDX_Text(pDX, IDC_EDIT_DANWEI, m_danwei);
	DDV_MaxChars(pDX, m_danwei, 20);
	DDX_Text(pDX, IDC_EDIT_KOUWEI, m_kouwei);
	DDV_MaxChars(pDX, m_kouwei, 50);
	DDX_Text(pDX, IDC_EDIT_SHULIANG, m_shuliang);
	DDV_MaxChars(pDX, m_shuliang, 10);
	DDX_Text(pDX, IDC_EDIT_ZHUJIMA, m_zhujima);
	DDV_MaxChars(pDX, m_zhujima, 10);
	DDX_Check(pDX, IDC_CHECK_TINGCAI, m_tingcai);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDiancai, CDialog)
	//{{AFX_MSG_MAP(CDiancai)
	ON_BN_CLICKED(IDC_BUTTON_LEIBIE, OnButtonLeibie)
	ON_BN_CLICKED(IDC_BUTTON_OKEY, OnButtonOkey)
	ON_BN_CLICKED(IDC_BUTTON_CANCEL, OnButtonCancel)
	ON_BN_CLICKED(IDC_BUTTON_ZIDIAN, OnButtonZidian)
	ON_EN_KILLFOCUS(IDC_EDIT_ZHUJIMA, OnKillfocusEditZhujima)
	ON_EN_KILLFOCUS(IDC_EDIT_BIANHAO, OnKillfocusEditBianhao)
	ON_EN_CHANGE(IDC_EDIT_BIANHAO, OnChangeEditBianhao)
	ON_BN_CLICKED(IDC_BUTTON_KOUWEI, OnButtonKouwei)
	ON_BN_CLICKED(IDC_BUTTON_BEIZHU, OnButtonBeizhu)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDiancai message handlers

void CDiancai::OnButtonLeibie() 
{
	CLeibie dlg;
	int nResponse = dlg.DoModal();
	if (nResponse == IDOK)
	{
		char RecordBuf[257],*ptchar,field[257];
 		WCHAR wcCode[257];
		HANDLE hFile;

 		m_caoming=dlg.m_caiming;
 		if (m_caoming.GetLength()==0) return;
		hFile = CreateFile(DB_CAIPU, GENERIC_READ, FILE_SHARE_READ,
			  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 		if (hFile==INVALID_HANDLE_VALUE) return;
 		while(fGetRecord(hFile,RecordBuf))
 		{
			ptchar=RecordBuf;
			ptchar=fGetField(ptchar,field,1);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			if (!m_caoming.Compare(wcCode))
 			{
				ptchar=RecordBuf;
 				ptchar=fGetField(ptchar,field,0);
 				MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 				m_bianhao=wcCode;
				ptchar=RecordBuf;
 				ptchar=fGetField(ptchar,field,2);
 				MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 				m_zhujima=wcCode;
				ptchar=RecordBuf;
 				ptchar=fGetField(ptchar,field,6);
 				MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 				m_danwei=wcCode;
 				ptchar=fGetaField(ptchar,field);
 				MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 				m_danjia=wcCode;
 				UpdateData(FALSE);
 				m_ckouwei.SetFocus();
				CloseHandle(hFile);
 				return;
 			}
 		}
		CloseHandle(hFile);
	}		
	
}

void CDiancai::OnButtonOkey() 
{
	char LiuShuiHao[11],XuHao[5],CaiPuBianHao[11],CaiMing[21],ShuLiang[11],JiLiangDanWei[21],
		DanJia[11],JiaGongZhuangTai[11],ShiFouJiFei[5],KouWei[51],ShiFouJiaoqi[5],BeiZhu[51];
	char RecordBuf[257];
	HANDLE hFile;
	unsigned long len;
	WCHAR wcCode[257];

	UpdateData(TRUE);
	if (m_bianhao.GetLength()==0)
	{
		MessageBox(L"菜谱编号不能为空");
		return;
	}
	if (m_shuliang.GetLength()==0)
	{
		MessageBox(L"数量不能为空");
		return;
	}
	if (m_danjia.GetLength()==0)
	{
		MessageBox(L"单价不能为空");
		return;
	}
	hFile = CreateFile(m_taihao, GENERIC_WRITE,FILE_SHARE_WRITE,
		  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 	if (hFile==INVALID_HANDLE_VALUE) 
	{
		hFile = CreateFile(m_taihao, GENERIC_WRITE,FILE_SHARE_WRITE,
		  NULL,CREATE_ALWAYS , FILE_ATTRIBUTE_NORMAL, NULL);
		if (hFile==INVALID_HANDLE_VALUE) return;
	}
	WideCharToMultiByte(CP_ACP,0,m_liushuihao,-1,LiuShuiHao,255,NULL,NULL);
	sprintf(XuHao,"%2d",m_xuhao);
	if (XuHao[0]==0x20) XuHao[0]=0x30;
	MultiByteToWideChar(CP_ACP,0,XuHao,-1,wcCode,255);
	WideCharToMultiByte(CP_ACP,0,m_bianhao,-1,CaiPuBianHao,255,NULL,NULL);
	WideCharToMultiByte(CP_ACP,0,m_caoming,-1,CaiMing,255,NULL,NULL);
	WideCharToMultiByte(CP_ACP,0,m_shuliang,-1,ShuLiang,255,NULL,NULL);
	WideCharToMultiByte(CP_ACP,0,m_danwei,-1,JiLiangDanWei,255,NULL,NULL);
	WideCharToMultiByte(CP_ACP,0,m_danjia,-1,DanJia,255,NULL,NULL);
	JiaGongZhuangTai[0]=0;
	strcpy(ShiFouJiFei,"是");
	WideCharToMultiByte(CP_ACP,0,m_kouwei,-1,KouWei,255,NULL,NULL);
	if (m_tingcai)
		strcpy(ShiFouJiaoqi,"是");
	else
		strcpy(ShiFouJiaoqi,"否");
	WideCharToMultiByte(CP_ACP,0,m_beizhu,-1,BeiZhu,255,NULL,NULL);
	SetFilePointer(hFile,0,0,FILE_END);
	sprintf(RecordBuf,"%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%s%c%c%c",
		'n',LiuShuiHao,0x1b,XuHao,0x1b,CaiPuBianHao,0x1b,CaiMing,0x1b,ShuLiang,0x1b
		,JiLiangDanWei,0x1b,DanJia,0x1b,JiaGongZhuangTai,0x1b,ShiFouJiFei,0x1b,KouWei,
		0x1b,ShiFouJiaoqi,0x1b,BeiZhu,0x1b," ",0x1b,0x0d,0x0a);
	WriteFile(hFile,RecordBuf,strlen(RecordBuf),&len,NULL);
	CloseHandle(hFile);
	m_beizhu=L"";
	m_bianhao=L"";
	m_caoming=L"";
	m_danjia=L"";
	m_danwei=L"";
	m_kouwei=L"";
	m_shuliang=L"1";
	m_tingcai=FALSE;
	m_xuhao++;
	m_zhujima=L"";
	m_kouwei=L"标准";
	m_cbianhao.EnableWindow(TRUE);
	m_czhujima.EnableWindow(TRUE);
	m_cdanjia.EnableWindow(FALSE);
	UpdateData(FALSE);
	m_cbianhao.SetFocus();
}

void CDiancai::OnButtonCancel() 
{
	// TODO: Add your control notification handler code here
	EndDialog(IDCANCEL);
}

void CDiancai::OnButtonZidian() 
{
	m_cbianhao.EnableWindow(FALSE);
	m_czhujima.EnableWindow(FALSE);
	m_cdanjia.EnableWindow(TRUE);
	m_bianhao=L"";
	for(int i=0;i<caipulen;i++)
		m_bianhao+=L"0";
	m_zhujima=L"zd";
	m_caoming=L"自点";
	m_shuliang=L"1";
	m_danwei=L"份";
	m_kouwei=L"标准";
	UpdateData(FALSE);
 	m_cdanjia.SetFocus();
}

void CDiancai::OnKillfocusEditZhujima() 
{
	char RecordBuf[257],*ptchar,field[257];
 	WCHAR wcCode[257];
	HANDLE hFile;
 
 	UpdateData(TRUE);
 	if (m_zhujima.GetLength()==0) return;
	hFile = CreateFile(DB_CAIPU, GENERIC_READ, FILE_SHARE_READ,
          NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 	if (hFile==INVALID_HANDLE_VALUE) return;
 	while(fGetRecord(hFile,RecordBuf))
 	{
		ptchar=RecordBuf;
		ptchar=fGetField(ptchar,field,2);
 		MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
//	MessageBox(wcCode);
//	MessageBox(m_zhujima);
 		if (!m_zhujima.Compare(wcCode))
 		{
//MessageBox(L"ok");
			ptchar=RecordBuf;
 			ptchar=fGetField(ptchar,field,0);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_bianhao=wcCode;
 			ptchar=fGetaField(ptchar,field);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_caoming=wcCode;
			ptchar=RecordBuf;
 			ptchar=fGetField(ptchar,field,6);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_danwei=wcCode;
 			ptchar=fGetaField(ptchar,field);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_danjia=wcCode;
			m_kouwei=L"标准";
 			UpdateData(FALSE);
 			m_ckouwei.SetFocus();
			CloseHandle(hFile);
 			return;
 		}
 	}
	CloseHandle(hFile);
}

void CDiancai::OnKillfocusEditBianhao() 
{
	
	char RecordBuf[257],*ptchar,field[257];
 	WCHAR wcCode[257];
	HANDLE hFile;

 	UpdateData(TRUE);
 	if (m_bianhao.GetLength()==0) return;
	hFile = CreateFile(DB_CAIPU, GENERIC_READ, FILE_SHARE_READ,
          NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 	if (hFile==INVALID_HANDLE_VALUE) return;
 	while(fGetRecord(hFile,RecordBuf))
 	{
		ptchar=RecordBuf;
		ptchar=fGetaField(ptchar,field);
 		MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 		if (!m_bianhao.Compare(wcCode))
 		{
 			ptchar=fGetaField(ptchar,field);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_caoming=wcCode;
 			ptchar=fGetaField(ptchar,field);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_zhujima=wcCode;
			ptchar=RecordBuf;
 			ptchar=fGetField(ptchar,field,6);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_danwei=wcCode;
 			ptchar=fGetaField(ptchar,field);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_danjia=wcCode;
			m_kouwei=L"标准";
 			UpdateData(FALSE);
 			m_ckouwei.SetFocus();
			CloseHandle(hFile);
 			return;
 		}
 	}
	CloseHandle(hFile);
}

BOOL CDiancai::OnInitDialog() 
{
	CDialog::OnInitDialog();
	HANDLE hFile;
	unsigned long len;

	hFile = CreateFile(CONFIGFILE, GENERIC_READ, FILE_SHARE_READ,
		  NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 	if (hFile==INVALID_HANDLE_VALUE) 
	{
		MessageBox(TEXT("打开配置文件失败,请点“配置”按钮重新配置"));
		return FALSE;
	}
	ReadFile(hFile,&SAddr,4,&len,NULL);
	ReadFile(hFile,&portid,2,&len,NULL);
	ReadFile(hFile,&taiweilen,4,&len,NULL);
	ReadFile(hFile,&caipulen,4,&len,NULL);
	ReadFile(hFile,oprid,20,&len,NULL);
	CloseHandle(hFile);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDiancai::OnChangeEditBianhao() 
{
	UpdateData(TRUE);
	if (m_bianhao.GetLength()<caipulen) return;
	char RecordBuf[257],*ptchar,field[257];
 	WCHAR wcCode[257];
	HANDLE hFile;

 	UpdateData(TRUE);
 	if (m_bianhao.GetLength()==0) return;
	hFile = CreateFile(DB_CAIPU, GENERIC_READ, FILE_SHARE_READ,
          NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 	if (hFile==INVALID_HANDLE_VALUE) return;
 	while(fGetRecord(hFile,RecordBuf))
 	{
		ptchar=RecordBuf;
		ptchar=fGetaField(ptchar,field);
 		MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 		if (!m_bianhao.Compare(wcCode))
 		{
 			ptchar=fGetaField(ptchar,field);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_caoming=wcCode;
 			ptchar=fGetaField(ptchar,field);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_zhujima=wcCode;
			ptchar=RecordBuf;
 			ptchar=fGetField(ptchar,field,6);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_danwei=wcCode;
 			ptchar=fGetaField(ptchar,field);
 			MultiByteToWideChar(CP_ACP,0,field,-1,wcCode,255);
 			m_danjia=wcCode;
			m_kouwei=L"标准";
 			UpdateData(FALSE);
 			m_ckouwei.SetFocus();
			CloseHandle(hFile);
 			return;
 		}
 	}
	CloseHandle(hFile);
}

void CDiancai::OnButtonKouwei() 
{
	Clist dlg(this);
	dlg.dbname=DB_KOUWEI;
	int nResponse = dlg.DoModal();
	//	CString strCode,itemtext;
	if (nResponse == IDOK)
	{
		m_kouwei+=dlg.m_list;
		UpdateData(FALSE);
	}
}

void CDiancai::OnButtonBeizhu() 
{
	Clist dlg(this);
	dlg.dbname=DB_BEIZHU;
	int nResponse = dlg.DoModal();
	//	CString strCode,itemtext;
	if (nResponse == IDOK)
	{
		m_beizhu+=dlg.m_list;
		UpdateData(FALSE);
	}
}

⌨️ 快捷键说明

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