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

📄 paramset.cpp

📁 PDA通讯网关服务器源码程序
💻 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 + -