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

📄 dlgxsjz.cpp

📁 这是一个信息管理系统的源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -