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