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

📄 addorderform.cpp

📁 使用短信猫可以实现短信的群发
💻 CPP
字号:
// AddOrderForm.cpp : implementation file
//

#include "stdafx.h"
#include "SMS.h"
#include "AddOrderForm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAddOrderForm dialog


CAddOrderForm::CAddOrderForm(CWnd* pParent /*=NULL*/)
	: CDialog(CAddOrderForm::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAddOrderForm)
	m_EndDate = COleDateTime::GetCurrentTime();
	m_EndTime = COleDateTime::GetCurrentTime();
	m_StartDate = COleDateTime::GetCurrentTime();
	m_StartTime = COleDateTime::GetCurrentTime();
	m_OrderFormContent = _T("");
	//}}AFX_DATA_INIT
}


void CAddOrderForm::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddOrderForm)
	DDX_DateTimeCtrl(pDX, IDC_END_DATE, m_EndDate);
	DDX_DateTimeCtrl(pDX, IDC_END_TIME, m_EndTime);
	DDX_DateTimeCtrl(pDX, IDC_START_DATE, m_StartDate);
	DDX_DateTimeCtrl(pDX, IDC_START_TIME, m_StartTime);
	DDX_Text(pDX, IDC_ORDER_FORM_CONTENT, m_OrderFormContent);
	DDV_MaxChars(pDX, m_OrderFormContent, 140);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAddOrderForm, CDialog)
	//{{AFX_MSG_MAP(CAddOrderForm)
	ON_BN_CLICKED(IDC_LOAD_PHONE_NUMBER, OnLoadPhoneNumber)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAddOrderForm message handlers

void CAddOrderForm::OnLoadPhoneNumber() 
{
	// TODO: Add your control notification handler code here
	static char filter[]="PhoneNumber File (*.txt)|*.txt|All Files(*.*)|*.*";
	CFileDialog fileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,filter,this);
	int errCount=0;
	int result=fileDialog.DoModal();
	
	if(IDOK==result)
	{
		m_PhoneNumberList.clear();
		CString path=fileDialog.GetPathName();
		TRACE("%s\n",path);
		CLoadPhoneNumber m_loadPhonenumber;
		m_loadPhonenumber.Open(path);
		BOOL isLoad=m_loadPhonenumber.LoadAllPhoneNumber(m_PhoneNumberList,errCount);
		m_loadPhonenumber.Close();

		if(FALSE==isLoad)
		{
			AfxMessageBox("该文件无效");
			return;
		}
		else
		{
			CString messageContent;
			messageContent.Format("成功加载了%d,加载失败%d",m_PhoneNumberList.size(),errCount);
			AfxMessageBox(messageContent);
		}

	}
}

void CAddOrderForm::OnAdd() 
{
	// TODO: Add your control notification handler code here

	UpdateData(); //将窗口的内容更新到于之关连的对象或值中去 
	COleDateTime startDateTime(m_StartDate.GetYear(),
								m_StartDate.GetMonth(),
								m_StartDate.GetDay(),
								m_StartTime.GetHour(),
								m_StartTime.GetMinute(),
								m_StartTime.GetSecond());

	COleDateTime endDateTime(m_EndDate.GetYear(),
								m_EndDate.GetMonth(),
								m_EndDate.GetDay(),
								m_EndTime.GetHour(),
								m_EndTime.GetMinute(),
								m_EndTime.GetSecond());


	
	


	TRACE("Start %d %d %d %d %d %d",m_StartDate.GetYear(),m_StartDate.GetMonth(),m_StartDate.GetDay(),\
		m_StartTime.GetHour(),m_StartTime.GetMinute(),m_StartTime.GetSecond());

	TRACE("End %d %d %d %d %d %d",m_EndDate.GetYear(),m_EndDate.GetMonth(),m_EndDate.GetDay(),\
		m_EndTime.GetHour(),m_EndTime.GetMinute(),m_EndTime.GetSecond());
	
	if(startDateTime >= endDateTime)
	{
		AfxMessageBox("结束时间必须大于开始时间");
		return;
	}

	if(m_PhoneNumberList.size()<=0)
	{
		AfxMessageBox("未将号码导入\n请导入");
		return;
	}
	
	if(m_OrderFormContent.IsEmpty())
	{
		AfxMessageBox("订单内容不能为空!\n请填写订单内容");
		return;
	}

	if(m_OrderFormContent.GetLength()>140)
	{
		AfxMessageBox("内容不能超过140个字节");
		return;
	}
	
// 	//这里判断最后一个字节是否是中文字符的半个字节
// 	if(m_OrderFormContent.GetLength()==140)
// 	{
// 		int length=m_OrderFormContent.GetLength();
// 		int count=0;//统计ascii码大于127的字节个数,因为汉字字符中
// 		for(;length>0;length--)
// 		{
// 			if(IsDBCSLeadByte(m_OrderFormContent[length]))
// 			{
// 				count++;
// 			}
// 			else
// 			{
// 				break;
// 			}
// 		}
// 		//当count为奇数的时候,说明最后一个字节为汉字中的半个字节,因此这样发送会照成乱码
// 		if(1==count%2)
// 		{
// 			AfxMessageBox("内容不能超过140个字节");
// 			return;
// 		}
// 	}


	//////////////////////////////////////////////////////////////////////////
	///数据库操作
	//////////////////////////////////////////////////////////////////////////
	CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
	CSMSADO &Ado=pCSMSApp->m_SMSAdo;
	
	//这里判断数据连接是否连接成功
	if(!Ado.IsConnection())
	{
		MessageBox("连接数据库出错\n请重新设置Oracle相关信息");
		return;
	}
	
	
	CString sql;
	long isRecordSet=0;
	
	sql.Empty();//清空查询语句
	//插入定单
	sql.Format("INSERT INTO orders VALUES(orderseq.nextval,\
		to_Date('%d-%d-%d %d:%d:%d','YYYY-MM-DD HH24:MI:SS'),\
		to_Date('%d-%d-%d %d:%d:%d','YYYY-MM-DD HH24:MI:SS'),'%s')",\
		startDateTime.GetYear(),startDateTime.GetMonth(),startDateTime.GetDay(),
		startDateTime.GetHour(),startDateTime.GetMinute(),startDateTime.GetSecond(),
		endDateTime.GetYear(),endDateTime.GetMonth(),endDateTime.GetDay(),
		endDateTime.GetHour(),endDateTime.GetMinute(),endDateTime.GetSecond(),
		m_OrderFormContent);
	
		
		
	int isSuccess=Ado.ExecuteWithoutRecordset(sql);
	if(!isSuccess)
	{
		MessageBox("插入数据出错,请查看是否以连接数据库");
		return;
	}

	sql.Empty();//清掉原来查询语句
	sql.Format("SELECT orderseq.currval as id FROM dual");//这个句语是查询出当前最新的定单ID号
	SQLRECORDSET rs=Ado.ExecuteWithRecordset(sql);
	if(NULL==rs)
	{
		TRACE("没有结果集返回");
		return;
	}
	int id=Ado.GetIntegerFieldVal(rs,"id");

	std::vector<CString>::iterator it= m_PhoneNumberList.begin();
	for(;it<m_PhoneNumberList.end();it++)
	{
		sql.Empty();//清掉原来的查询语句
		sql.Format("INSERT INTO phonenumber VALUES(PNUMBERSEQ.NEXTVAL,%d,'%s')",id,*it);
		Ado.ExecuteWithoutRecordset(sql);
	}

	((COrderFormManager *)(GetParent()->GetParent()))->ShowOrderFormList();
	m_OrderFormContent.Empty();
	m_PhoneNumberList.clear();

	UpdateData(FALSE);//将变量的内容更新到于之关加的窗口上

}

BOOL CAddOrderForm::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if (pMsg->message == WM_KEYDOWN)
	{	
		if (pMsg->wParam == VK_RETURN)	return TRUE;
		if (pMsg->wParam == VK_ESCAPE)	return TRUE;
	} 
	return CDialog::PreTranslateMessage(pMsg);
}

⌨️ 快捷键说明

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