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

📄 dpay.cpp

📁 用VC+SQL实现的物流管理系统 “RxMediaPlayer” 文件夹中存放《物流综合管理系统》中《媒体播放平台》源程序 “数据库设置”文件夹中存放《物流综合管理系统》辅助工具《数据库设置》源程
💻 CPP
字号:
// DPay.cpp : implementation file
//

#include "stdafx.h"
#include "MyProject.h"
#include "DPay.h"
#include "ExternDllHeader.h"
#include "DDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDPay dialog


CDPay::CDPay(CWnd* pParent /*=NULL*/)
	: CDialog(CDPay::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDPay)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CDPay::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDPay)
	DDX_Control(pDX, IDC_EDTNOPAY, m_EdtNoPay);
	DDX_Control(pDX, IDC_EDTPAY, m_EdtPay);
	DDX_Control(pDX, IDC_STAJE, m_StaJE);
	DDX_Control(pDX, IDC_STADXJE, m_StaDXJE);
	DDX_Control(pDX, IDC_LIST1, m_Grid);
	DDX_Control(pDX, IDC_EDTKH, m_EdtKH);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDPay, CDialog)
	//{{AFX_MSG_MAP(CDPay)
	ON_BN_CLICKED(IDC_BUTQUERY, OnButquery)
	ON_BN_CLICKED(IDC_BUTJK, OnButjk)
	ON_BN_CLICKED(IDC_BUTEXIT, OnButexit)
	ON_EN_CHANGE(IDC_EDTPAY, OnChangeEdtpay)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDPay message handlers

void CDPay::OnOK() 
{
	// TODO: Add extra validation here
	
	//CDialog::OnOK();
}

void CDPay::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

BOOL CDPay::OnInitDialog() 
{
	CDialog::OnInitDialog();
	RxRecordset rst;
	rst.Open("SELECT * FROM 往来单位信息表 WHERE 类型='客户'",adCmdText);
	this->m_EdtKH.Initialize(this->GetParent());
	this->m_EdtKH.SetRecordset(rst);
	this->m_EdtKH.SetSelectField("全称");
	this->m_Grid.m_bReadOnly=true;
	this->m_Grid.InsertColumn(0,"客户全称");
	this->m_Grid.InsertColumn(1,"挂账日期");
	this->m_Grid.InsertColumn(2,"合计欠款金额");
	this->m_Grid.SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER );
	this->m_Grid.SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER );
	this->m_Grid.SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER );

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDPay::OnButquery() 
{
	CString sName,sID;
	m_EdtKH.GetWindowText(sName);
	sID=ado.FieldToOtherField("往来单位信息表","全称",sName,"编号",1);
	RxRecordset rst;
	CString sSQL;
	sSQL.Format("SELECT c.全称 AS 客户全称,a.挂帐日期,a.未付金额 AS 未付金额  FROM 销售挂帐表 a inner join 销售记录表 b on a.销售票号=b.销售票号 inner join 往来单位信息表 c on b.客户编号=c.编号   WHERE b.客户编号='%s' AND a.偿还否=0",sID);	
	rst.Open(sSQL,adCmdText);
	if(rst.GetRecordCount()<1)
	{
		MessageBox("此客户并没有欠款!","系统提示",MB_OK|MB_ICONINFORMATION);
		return;
	}
	this->m_Grid.AddCellValue(rst);
	sSQL.Format("select c.全称 AS 客户全称,sum(a.未付金额) AS 合计未付金额 FROM 销售挂帐表 a inner join 销售记录表 b on a.销售票号=b.销售票号 inner join 往来单位信息表 c on b.客户编号=c.编号   WHERE b.客户编号='%s' AND a.偿还否=0 GROUP BY c.全称",sID);
	rst.Open(sSQL,adCmdText);
	CString sSum;
	sSum=rst.GetFieldValue("合计未付金额");
	this->m_StaJE.SetWindowText(sSum);
	this->m_StaDXJE.SetWindowText(MoneyToChineseCode(sSum));
	this->m_EdtNoPay.SetWindowText(sSum);
	this->m_EdtPay.IsMoneyOnly(true);
	this->m_EdtPay.SetFocus();
}

void CDPay::OnButjk() 
{
	if(MessageBox("确定要结款吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION)!=1)
		return;
	CString sName,sID,sSQL;
	RxRecordset rst;
	m_EdtKH.GetWindowText(sName);
	sID=ado.FieldToOtherField("往来单位信息表","全称",sName,"编号",1);

	CString sPay;
	this->m_EdtPay.GetWindowText(sPay);
	int nPay,nMem;
	nPay=atoi(sPay);
	if(nPay>0)
	{
		CDDlg dlg;
		dlg.DoModal();
		CTime time;
		time=time.GetCurrentTime();
		CString sDate;
		sDate=CTimeToCString(time);
		//决定那条记录没有付清
		sSQL.Format("SELECT b.销售票号,a.未付金额 FROM 销售挂帐表 a inner join 销售记录表 b on a.销售票号=b.销售票号 inner join 往来单位信息表 c on b.客户编号=c.编号   WHERE b.客户编号='%s' AND a.偿还否=0",sID);	
		rst.Open(sSQL,adCmdText);
		if(rst.GetRecordCount()<1)
			return;
		RxRecordset ForRst;
		for(int i=0;i<rst.GetRecordCount();i++)
		{
			rst.Move(i);
			nMem=atoi(rst.GetFieldValue("未付金额"));
			sID=rst.GetFieldValue("销售票号");
			if(nMem>nPay)
			{
				sSQL.Format("UPDATE 销售挂帐表 SET 偿还否=1 WHERE 销售票号='%s'",rst.GetFieldValue("销售票号"));
				ForRst.Open(sSQL,adCmdText);
				nPay=nMem-nPay;
			}
		}
		sSQL.Format("INSERT INTO 销售挂帐表 VALUES('%s','%s','%s',%d,0)",sID,sDate,dlg.m_Time,nPay);
		rst.Open(sSQL,adCmdText);
		this->m_EdtKH.IsShowing=true;
		this->m_EdtKH.SetWindowText("");
		this->m_EdtKH.IsShowing=false;
		this->m_Grid.DeleteAllItems();
		this->m_EdtPay.SetWindowText("0");
		this->m_EdtNoPay.SetWindowText("0");
		this->m_StaDXJE.SetWindowText("零元");
		this->m_StaJE.SetWindowText("0");
		this->m_EdtKH.SetFocus();

	}
	else
	{
		MessageBox("请填入结款金额!","系统提示",MB_OK|MB_ICONSTOP);
		this->m_EdtPay.SetFocus();
	}
}

void CDPay::OnButexit() 
{
	this->OnCancel();	
}

void CDPay::OnChangeEdtpay() 
{
	CString sPay,sNoPay,sGive;
	this->m_StaJE.GetWindowText(sNoPay);
	this->m_EdtPay.GetWindowText(sPay);
	if(sPay.IsEmpty())
	{
		MessageBox("请输入结款金额!","系统提示",MB_OK|MB_ICONSTOP);
		return;
	}
	int nPay,nNoPay;
	nPay=atoi(sPay);
	nNoPay=atoi(sNoPay);
	sGive.Format("%d",nNoPay-nPay);
	this->m_EdtNoPay.SetWindowText(sGive);

}

⌨️ 快捷键说明

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