📄 diancai.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 + -