📄 dlgxsjz.cpp
字号:
// DlgXSJZ.cpp : implementation file
//
#include "stdafx.h"
#include "a1.h"
#include "DlgXSJZ.h"
#include "DlgXSINFO.h"
#include "DlgXSTHINFO.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgXSJZ dialog
CDlgXSJZ::CDlgXSJZ(int state,CWnd* pParent /*=NULL*/)
: CDialog(CDlgXSJZ::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgXSJZ)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_iState=state;
m_bSetUnChangeValue=false;
}
void CDlgXSJZ::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgXSJZ)
DDX_Control(pDX, IDC_BUTTON1, m_btnOk);
DDX_Control(pDX, IDC_EDIT11, m_editIsJq);
DDX_Control(pDX, IDC_EDIT10, m_editSy);
DDX_Control(pDX, IDC_DATETIMEPICKER1, m_tcRq);
DDX_Control(pDX, IDC_COMBO2, m_comboJsr);
DDX_Control(pDX, IDC_COMBO1, m_comboSkfs);
DDX_Control(pDX, IDC_EDIT14, m_editBz);
DDX_Control(pDX, IDC_EDIT9, m_editPh);
DDX_Control(pDX, IDC_EDIT8, m_editSkJe);
DDX_Control(pDX, IDC_EDIT7, m_editWs);
DDX_Control(pDX, IDC_EDIT6, m_editSs);
DDX_Control(pDX, IDC_EDIT5, m_editYs);
DDX_Control(pDX, IDC_EDIT4, m_editKhName);
DDX_Control(pDX, IDC_EDIT3, m_editKhId);
DDX_Control(pDX, IDC_EDIT2, m_editJsfs);
DDX_Control(pDX, IDC_EDIT1, m_editXsPh);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgXSJZ, CDialog)
//{{AFX_MSG_MAP(CDlgXSJZ)
ON_EN_CHANGE(IDC_EDIT8, OnChangeEdit8)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgXSJZ message handlers
void CDlgXSJZ::OnOK()
{
// TODO: Add extra validation here
//CDialog::OnOK();
}
BOOL CDlgXSJZ::OnInitDialog()
{
switch(this->m_iState)
{
case XS:
if(!GetXSINFO())
{
this->EndDialog(0);
return FALSE;
}
break;
case XSTH:
if(!GetXSTHINFO())
{
this->EndDialog(0);
return FALSE;
}
break;
case RK:
if(!GetRKINFO())
{
this->EndDialog(0);
return FALSE;
} break;
case RKTH:
if(!GetRKTHINFO())
{
this->EndDialog(0);
return FALSE;
} break;
break;
}
CDialog::OnInitDialog();
InitJZ();
InitPH();
m_editSkJe.SetFocus();
// ::PostMessage(this->m_editSkJe.GetSafeHwnd(),WM_ACTIVATE ,WA_CLICKACTIVE,0);
return false; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CDlgXSJZ::PreTranslateMessage(MSG* pMsg)
{
const HWND hwnd =(pMsg!=NULL)? pMsg->hwnd:NULL;
if(hwnd==NULL)goto a;
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)
if(hwnd!=this->m_btnOk.GetSafeHwnd())
{
this->SetTheFocus();
}
else
{
// ::PostMessage(m_btnOk.GetSafeHwnd(),BN_CLICKED,0,0);
this->OnButton1();
}
if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_TAB)
if(hwnd==this->m_btnOk.GetSafeHwnd())
this->SetTheFocus();
if(pMsg->message==WM_CHAR&&hwnd==this->m_editSkJe.GetSafeHwnd())
{
if((pMsg->wParam>=0x30&&pMsg->wParam<=0x39)||pMsg->wParam==0x2E||pMsg->wParam==0x08)
{
;
}
else
{
pMsg->wParam=VK_CONTROL;
}
}
a:
return CDialog::PreTranslateMessage(pMsg);
}
void CDlgXSJZ::SetTheFocus()
{
HWND hwnd=::GetFocus();
int iID=::GetDlgCtrlID(hwnd);
switch(iID)
{
case IDC_EDIT8:
{
this->m_comboSkfs.SetFocus();
break;
}
case IDC_COMBO1:
{
this->m_comboJsr.SetFocus();
break;
}
case IDC_COMBO2:
{
this->m_editBz.SetFocus();
break;
}
case IDC_EDIT14:
{
this->m_btnOk.SetFocus();
m_btnOk.SetActiveWindow();
// ::PostMessage(this->m_btnOk.GetSafeHwnd(),WM_SETFOCUS ,0,0);
break;
}
case IDC_BUTTON1:
{
// this->m_editSkJe.SetFocus();
// ::PostMessage(m_editSkJe.GetSafeHwnd(),WM_SETFOCUS,(UINT)hwnd,0);
::PostMessage(this->m_editSkJe.GetSafeHwnd(),WM_ACTIVATE ,WA_CLICKACTIVE,0);
break;
}
}
}
void CDlgXSJZ::OnChangeEdit8()
{ if(m_bSetUnChangeValue)return;
CString str;
this->m_editSkJe.GetWindowText(str);
this->m_dSFk_BC=atof(str);
this->m_dLeft=this->m_dWsfk-m_dSFk_BC;
if(m_dLeft<=0.000001)
{
CString a;
a.Format("%f",this->m_dWsfk);
SetUnChangeValue(a);
m_editSkJe.SetSel(0,-1);
m_editSy.SetWindowText("0元");
m_editIsJq.SetWindowText("已结清");
this->m_dSsfk=this->m_dYsfk;m_dLeft=0.0;
// this->m_dWsfk=0;
}
else
{
CString a;
a.Format("%0.2f",m_dLeft);
m_editSy.SetWindowText(a+"元");
m_editIsJq.SetWindowText("未结清");
//this->m_dLeft=this->m_dWsfk-m_dSFk_BC;
//m_dws=m_dLeft;
}
// 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
}
void CDlgXSJZ::OnButton1()
{
if(!this->CheckAll())return;
is_jq=0;
if(m_dLeft<=0.00001)is_jq=-1;
CString ph,fs,rq,czy,jsr,bz,sql;
this->m_editPh.GetWindowText(ph);
this->m_comboJsr.GetWindowText(jsr);
this->m_comboSkfs.GetWindowText(fs);
this->m_editBz.GetWindowText(bz);
this->m_tcRq.GetWindowText(rq);
CA1App * app=(CA1App*)AfxGetApp();
czy=app->m_sUserName;
sql.Format("update %s set s%s=%f,w%s=%f,is_jq=%d where %s='%s'"
,this->m_strTablePh,
this->m_strsf,this->m_dYsfk-m_dLeft,
this->m_strsf,m_dLeft,is_jq,
this->m_strPhKeyField,this->m_strdataPh);
this->m_runsql.RunSQL(sql);
sql.Format("INSERT INTO %s(%s,%s,je,fs,rq,czy,jsr,bz) VALUES('%s','%s',%f,'%s',#%s#,'%s','%s','%s')"
,this->m_strTableJz,
this->m_strJzKeyField,this->m_strPhKeyField,
ph,m_strdataPh,this->m_dSFk_BC,fs,rq,czy,jsr,bz);
this->m_runsql.RunSQL(sql);
MessageBox("OK","医药管理系统");
this->EndDialog(0);
}
bool CDlgXSJZ::CheckAll()
{
CString skje;this->m_editSkJe.GetWindowText(skje);
double d_skje=0;
d_skje=atof(skje);
if(d_skje<=0.00001)
return false;
else return true;
}
CString CDlgXSJZ::ChanShengPh()
{
this->UpdateData();
CString sql;
_bstr_t sql_;
_variant_t value;
CString s_value;
CString s_date;
CString ph;
CTime m_tRq;
this->m_tcRq.GetTime(m_tRq);
this->m_tcRq.GetWindowText(s_date);
CString y_date,m_date,d_date;
y_date=m_tRq.Format("%Y");
m_date.Format("%d",m_tRq.GetMonth());
d_date.Format("%d",m_tRq.GetDay());
if(m_date.GetLength()==1)
m_date=CString("0")+m_date;
if(d_date.GetLength()==1)
d_date=CString("0")+d_date;
ph=y_date+"-"+m_date+"-"+d_date;
switch(m_iState)
{
case XSJZ: ph=ph+"xsj";break;
case XSTHJZ: ph=ph+"xtj";break;
case RKJZ: ph=ph+"rkj";break;
case RKTHJZ: ph=ph+"rtj";break;
}
sql.Format("select %s from %s where rq=#%s# order by %s desc",
this->m_strJzKeyField,this->m_strTableJz,s_date,this->m_strJzKeyField);
if(m_runsql.CheckSQLResult(sql))
{
value=m_runsql.m_recordset->GetCollect(m_strJzKeyField.GetBuffer(10));//
if(value.vt!=NULL)
{
s_value=(char*)(_bstr_t)value;
s_value=s_value.Mid(s_value.GetLength()-4,4);
}
}
else
{
s_value="0";
}
long l_value=atoi(s_value)+1;
s_value.Format("%d",l_value);
for(int i=s_value.GetLength();i<4;i++)
{
s_value="0"+s_value;
}
ph=ph+s_value;
return ph;
}
void CDlgXSJZ::OnCancel()
{
if(MessageBox("确定退出结帐模块?","注意",MB_YESNO)==IDYES)
{
if(MessageBox("是否保存结帐?","注意",MB_YESNO)==IDNO)
CDialog::OnCancel();
else
this->OnButton1();
}
return;
}
bool CDlgXSJZ::GetXSINFO()
{
CDlgXSINFO dlg;
while(dlg.xs_ph=="")
{
if(MessageBox("请选择销售票号","注意",MB_YESNO)!=IDYES)
return false;
if(dlg.DoModal()!=IDOK)
return false;
}
this->SetWindowText("销售结账");
this->m_strdataPh= dlg.m_strdataPh;
this->m_strdataId= dlg.m_strdataId;
this->m_strdataName=dlg.m_strdataName;
this->m_strdataYsf= dlg.m_strdataYsf;
this->m_strdataSsf= dlg.m_strdataSsf;
this->m_strdataWsf= dlg.m_strdataWsf;
this->m_strdataJsfs=dlg.m_strdataJsfs;
CString jq= dlg.jq;
short is_jq=atoi(jq);
if(is_jq)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -