📄 paramset.cpp
字号:
// ParamSet.cpp : implementation file
//
#include "stdafx.h"
#include "GateAgent.h"
#include "ParamSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CParamSet dialog
CParamSet::CParamSet(CWnd* pParent /*=NULL*/)
: CDialog(CParamSet::IDD, pParent)
{
//{{AFX_DATA_INIT(CParamSet)
m_congration = _T("");
m_strNoDiv = _T("*");
//}}AFX_DATA_INIT
}
void CParamSet::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CParamSet)
DDX_Control(pDX, IDC_CHECK_WITHCARD, m_chkCard);
DDX_Control(pDX, IDC_CHECK_BACK, m_chkBack);
DDX_Control(pDX, IDC_CHECK_NODE, m_chkNode);
DDX_Control(pDX, IDC_CHECK_TYPE, m_type);
DDX_Control(pDX, IDC_CBO_SENDNUM, m_cboSendNum);
DDX_Control(pDX, IDC_CBO_LOG, m_cboLog);
DDX_Text(pDX, IDC_EDIT_CONGRATION, m_congration);
DDV_MaxChars(pDX, m_congration, 30);
DDX_Text(pDX, IDC_EDIT_CARDDIV, m_strNoDiv);
DDV_MaxChars(pDX, m_strNoDiv, 2);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CParamSet, CDialog)
//{{AFX_MSG_MAP(CParamSet)
ON_BN_CLICKED(IDC_BTN_SYS_SAVE, OnBtnSysSave)
// ON_BN_CLICKED(IDC_CHECK_PROMPT, OnCheckPrompt)
// ON_BN_CLICKED(IDC_CHECK_REPORT, OnCheckReport)
ON_BN_CLICKED(IDC_BTN_EXIT, OnBtnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CParamSet message handlers
int CParamSet::OnReadAllFromCfg()
{
CString m_sDBServer;
CString m_sDBUser;
CString m_sDBPwd;
CString m_sDataBaseName;
if(!m_cfgFile.OnReadCfg("DATABASE", "Server", m_sDBServer))
{
AfxMessageBox("读取数据库服务器名称失败!");
return -1;
}
if(!m_cfgFile.OnReadCfg("DATABASE", "User", m_sDBUser))
{
AfxMessageBox("读取数据库用户名称失败!");
return -1;
}
if(!m_cfgFile.OnReadCfg("DATABASE", "DatabaseName", m_sDataBaseName))
{
AfxMessageBox("读取数据库名失败!");
return -1;
}
if(!m_cfgFile.OnReadCfg("DATABASE", "Password", m_sDBPwd))
{
AfxMessageBox("读取数据库密码名称失败!");
return -1;
}
char chErr[100]={0};
if (!m_sqlDB.OnDBInit(m_sDBServer.GetBuffer(0),m_sDBUser.GetBuffer(0),m_sDBPwd.GetBuffer(0),2,m_sDataBaseName.GetBuffer(0),chErr))
{
AfxMessageBox("连接数据库失败!");
return -1;
}
if (OnReadSysCfg()<0) //从数据库当中读写配置文件
{
AfxMessageBox("读取相关配置文件失败!");
return -1;
}
m_cboSendNum.SetCurSel(m_nSendNum-1);
if (m_nWrite==0)
{
m_cboLog.SetWindowText(NOWRITELOG);
}
else
{
m_cboLog.SetWindowText(WRITELOG);
}
m_type.SetCheck(!m_nSmsType);
m_chkNode.SetCheck(m_nIsNode);
m_chkBack.SetCheck(m_nIsBack);
m_chkCard.SetCheck(m_nIsCard);
m_congration=m_strBkInfo;
UpdateData(FALSE);
return 0;
}
void CParamSet::OnBtnSysSave()
{
CString strTmp;
UpdateData(true);
m_cboSendNum.GetWindowText(strTmp);
m_nSendNum=atoi(strTmp.GetBuffer(0));
m_nSmsType=!m_type.GetCheck();
m_nIsBack=m_chkBack.GetCheck();
m_nIsNode=m_chkNode.GetCheck();
m_nIsCard=m_chkCard.GetCheck();
m_cboLog.GetWindowText(strTmp);
if (m_nIsCard==SMS_ISCARD)
{
m_strNoDiv.TrimRight();
if (OnCheckCard(m_strNoDiv)<0)
{
return ;
}
}
if (strTmp.Compare(NOWRITELOG)==0)
{
m_nWrite=0;
}
else if (strTmp.Compare(WRITELOG)==0)
{
m_nWrite=1;
}
else
{
AfxMessageBox("没有该种类型,您日志类型选择错误!");
return ;
}
m_strBkInfo=m_congration;
st_Rec stRec;
bool bLeaveRecord = false;
char chMsg[1000] = {0};
char chSQLCmd[500]={0};
int iRet = -10;
memset(&stRec, 0x00, sizeof(st_Rec));
stRec.iRecStart = 0;
stRec.iRecNum = 100;
_snprintf(chSQLCmd, 450,"update ba_systemConfig set chIsSameSalesPrice='%d' ,chIsWithNode='%d',chIsWriteLog='%d',\
chAgainSendNum='%d',vcBackText='%s',chIsSucceedBack='%d',chNoDiv='%s',chIsCard='%d'",\
m_nSmsType,m_nIsNode,m_nWrite,m_nSendNum,m_strBkInfo,m_nIsBack,m_strNoDiv,m_nIsCard);
iRet = m_sqlDB.OnExecSql(chSQLCmd, &stRec, bLeaveRecord, chMsg);
if(iRet<0)
{
AfxMessageBox("更新配置文件的语句失败");
m_sqlDB.OnFreeRec(&stRec);
return ;
}
m_sqlDB.OnFreeRec(&stRec);
int iNumRun=0;
if(!m_cfgFile.OnReadCfg("SYSTEM", "NumRuns", &iNumRun))
{
MessageBox("读取第一次运行时间失败!","终端零售通",0);
return ;
}
if (iNumRun==0)
{
MessageBox("修改系统参数成功!","恭喜",0);
return ;
}
MessageBox("修改系统参数成功!系统重新启动后配置才生效,请重新启动!","恭喜",0);
}
BOOL CParamSet::OnInitDialog()
{
CDialog::OnInitDialog();
m_cboLog.AddString(WRITELOG);
m_cboLog.AddString(NOWRITELOG);
// m_cboSendNum.AddString("0");
m_cboSendNum.AddString("1");
m_cboSendNum.AddString("2");
m_cboSendNum.AddString("3");
m_cboSendNum.AddString("4");
m_cboSendNum.AddString("5");
OnReadAllFromCfg();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CParamSet::OnBtnExit()
{
this->OnCancel();
}
//读取系统配置
int CParamSet::OnReadSysCfg()
{
st_Rec stRec;
bool bLeaveRecord = false;
char chMsg[1000] = {0};
char chSQLCmd[SQLLENGTH]={0};
int iRet = -10;
CString strTmp;
memset(&stRec, 0x00, sizeof(st_Rec));
stRec.iRecStart = 0;
stRec.iRecNum = 100;
_snprintf(chSQLCmd, SQLLENGTH-1,"select chIsSameSalesPrice,chIsWithNode,chIsWriteLog,\
chAgainSendNum,chReportTime,chPromptTime,chDiv,vcBackText,chIsSucceedBack,chNoDiv,chIsCard from ba_systemConfig");
iRet = m_sqlDB.OnExecSql(chSQLCmd, &stRec, bLeaveRecord, chMsg);
if(iRet<0)
{
strTmp.Format("查询语句%s失败",chSQLCmd);
AfxMessageBox(strTmp.GetBuffer(0));
m_sqlDB.OnFreeRec(&stRec);
return -1;
}
if (stRec.iRecNum==0)
{
AfxMessageBox("查找配置文件失败!");
return -1;
}
m_nSmsType=m_CPubBase.OnAtoi(m_CPubBase.OnDoStr(0,2,stRec.pchRecVal).GetBuffer(0));
m_nIsNode=m_CPubBase.OnAtoi(m_CPubBase.OnDoStr(2,2,stRec.pchRecVal).GetBuffer(0));
m_nWrite=m_CPubBase.OnAtoi(m_CPubBase.OnDoStr(4,2,stRec.pchRecVal).GetBuffer(0));
m_nSendNum=m_CPubBase.OnAtoi(m_CPubBase.OnDoStr(6,2,stRec.pchRecVal).GetBuffer(0));
//m_strTimeReport=m_CPubBase.OnDoStr(8,10,stRec.pchRecVal);
//m_strTimePrompt=m_CPubBase.OnDoStr(18,10,stRec.pchRecVal);
CString m_sDiv=m_CPubBase.OnDoStr(28,2,stRec.pchRecVal);
m_strBkInfo=m_CPubBase.OnDoStr(30,40,stRec.pchRecVal);
m_nIsBack=m_CPubBase.OnAtoi(m_CPubBase.OnDoStr(70,2,stRec.pchRecVal).GetBuffer(0));
m_strNoDiv=m_CPubBase.OnDoStr(72,2,stRec.pchRecVal).GetBuffer(0); //卡号的客户
UpdateData(FALSE);
CString strIsCard=m_CPubBase.OnDoStr(74,2,stRec.pchRecVal).GetBuffer(0); //卡号的客户
if (atoi(strIsCard.GetBuffer(0))==0) //带有卡号码
{
m_nIsCard=SMS_NOCARD; //不带有客户卡号
}
else
{
m_nIsCard=SMS_ISCARD; //带有客户卡号
}
m_sqlDB.OnFreeRec(&stRec);
return 0;
}
void CParamSet::PostNcDestroy()
{
m_sqlDB.OnDBClose();
CDialog::PostNcDestroy();
}
int CParamSet::OnCheckCard(CString strCheck)
{
if (strCheck.IsEmpty())
{
AfxMessageBox("您录入的[m_strNoDiv]客户编号不能为空!");
return -1;
}
if (strCheck.GetLength()>1)
{
AfxMessageBox("您录入的[m_strNoDiv]客户编号长度只能为一位!");
return -1;
}
m_CPubBase.OnCheckInputValidAndReplace(strCheck);
if ((strCheck.Right(1).Compare("#")==0)|| (strCheck.Right(1).Compare(".")==0)||(strCheck.Right(1).Compare(",")==0)||\
(strCheck.Right(1).Compare("=")==0)||(strCheck.Right(1).Compare("!")==0)|| \
(strCheck.Right(1).Compare("@")==0)||(strCheck.Right(1).Compare("/")==0)|| (strCheck.Right(1).Compare("&")==0))
{
AfxMessageBox("您录入的[m_strNoDiv]客户编号分隔符错误!不能含‘@#$%&!/.,’其中任一种符号");
return -1;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -