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

📄 orderformmanager.cpp

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

#include "stdafx.h"
#include "SMS.h"
#include "OrderFormManager.h"

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

/////////////////////////////////////////////////////////////////////////////
// COrderFormManager dialog


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


void COrderFormManager::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(COrderFormManager)
	DDX_Control(pDX, IDC_ORDER_FORM_Tab, m_OrderFormTab);
	DDX_Control(pDX, IDC_ORDER_FORM_LIST, m_OrderForm_List);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(COrderFormManager, CDialog)
	//{{AFX_MSG_MAP(COrderFormManager)
	ON_NOTIFY(TCN_SELCHANGE, IDC_ORDER_FORM_Tab, OnSelchangeOrderFormTab)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_ORDER_FORM_LIST, OnItemchangedOrderFormList)
	ON_NOTIFY(NM_CLICK, IDC_ORDER_FORM_LIST, OnClickOrderFormList)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COrderFormManager message handlers

BOOL COrderFormManager::OnInitDialog() 
{
	CDialog::OnInitDialog();
	//////////////////////////////////////////////////////////////////////////
	//对订单对话框中的List控件添加列
	//////////////////////////////////////////////////////////////////////////

	m_OrderForm_List.InsertColumn(0,"订单ID",LVCFMT_LEFT,60);
 	m_OrderForm_List.InsertColumn(1,"开始日期",LVCFMT_LEFT,90);
 	m_OrderForm_List.InsertColumn(2,"结束日期",LVCFMT_LEFT,90);
 	m_OrderForm_List.InsertColumn(3,"开始时段",LVCFMT_LEFT,90);
 	m_OrderForm_List.InsertColumn(4,"结束时段",LVCFMT_LEFT,90);
 	m_OrderForm_List.InsertColumn(5,"订单内容",LVCFMT_LEFT,100);
	m_OrderForm_List.SetExtendedStyle(LVS_REPORT | LVS_EX_FULLROWSELECT);//为表格添加附加属性 让表格有方格线
	
	//////////////////////////////////////////////////////////////////////////
	//对订单对话框中的Tab控件添加控件项标题
	//////////////////////////////////////////////////////////////////////////

	m_OrderFormTab.InsertItem(0,"添加新订单");
	m_OrderFormTab.InsertItem(1,"修改/删除订单");
	m_OrderFormTab.InsertItem(2,"订单查询");

 	m_OrderFormTab.SetCurSel(0);//设置这个用来指定,默认选中了第0项 Tab控件从第0项开始算的
	
	//////////////////////////////////////////////////////////////////////////
	//将对话框类对象跟具体的对话框关连起来
	//////////////////////////////////////////////////////////////////////////
	m_AddOrderForm.Create(IDD_ADD_ORDER_FORM,&m_OrderFormTab);
	m_ModifyDeleteOrderForm.Create(IDD_MODIFY_DELETE_ORDER_FORM,&m_OrderFormTab);
	m_QueryOrderForm.Create(IDD_QUERY_ORDER_FORM,&m_OrderFormTab);

	DoTab(0);//通过调用这个函数将Tab控件里的第一个该选项关连的对话框显示出来
	ShowOrderFormList();
	// TODO: Add extra initialization here
	



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

void COrderFormManager::OnSelchangeOrderFormTab(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nSelect = m_OrderFormTab.GetCurSel();
	if (nSelect >= 0)
		DoTab(nSelect);
	*pResult = 0;
}

void COrderFormManager::DoTab(int nTab)
{
	if (nTab>2) nTab = 2;		// 确定nTab值不能超过范围
	if (nTab<0) nTab = 0;
	BOOL bTab[3];
	bTab[0] = bTab[1] = bTab[2] = FALSE;
	bTab[nTab] = TRUE;			
	// 切换对话框的显示和隐藏
 	SetDlgState(&m_AddOrderForm, bTab[0]);
 	SetDlgState(&m_ModifyDeleteOrderForm, bTab[1]);
 	SetDlgState(&m_QueryOrderForm, bTab[2]);

}

void COrderFormManager::SetDlgState(CWnd *pWnd, BOOL bShow)
{
	pWnd->EnableWindow(bShow);	
	if (bShow) 
	{	
		pWnd->ShowWindow(SW_SHOW);
		pWnd->CenterWindow();	// 居中显示
	}
	else	
		pWnd->ShowWindow(SW_HIDE);
}

void COrderFormManager::ShowOrderFormList()
{
	if(m_OrderForm_List.GetItemCount()>0)
	{
		m_OrderForm_List.DeleteAllItems();
	}
	CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
	CSMSADO &Ado=pCSMSApp->m_SMSAdo;
	
	//这里判断数据连接是否连接成功
	if(!Ado.IsConnection())
	{
		MessageBox("连接数据库出错\n请重新设置Oracle相关信息");
		return;
	}
	
	CString sql;
	long isRecordSet=0;
	
	sql.Format("SELECT * FROM orders order by ID ASC");
	
	//判断是否查询到记录  查找到就返回真 没查找到就返回假
	//isRecordSet=Ado.ExecuteWithRecordset(sql);
	SQLRECORDSET rs=Ado.ExecuteWithRecordset(sql);
	//int authority=Ado.GetIntegerFieldVal(rs,"authority");
	
	if(rs->BOF)
	{
		MessageBox("没有订单内容");
		return;
	}
	
	int i=0;
	int item;
	TRACE("取出了---------%d条记录",rs->RecordCount);
	CString userName;
	int id;
	CString cstrID;
	DBDATETIME orderStart;
	DBDATETIME orderEnd;
	CString content;
	
	CString startDate;
	CString startTime;
	CString endDate;
	CString endTime;
	
	while(!rs->rsEOF)
	{
		
		id=Ado.GetIntegerFieldVal(rs,"id");
		orderStart=Ado.GetDateTimeFeildVal(rs,"orderstart");
		orderEnd=Ado.GetDateTimeFeildVal(rs,"orderend");
		content=Ado.GetTextFieldVal(rs,"content");
		
		cstrID.Format("%d",id);//将整型的id转换成字符串型
		startDate.Format("%d-%d-%d",orderStart.wYear,orderStart.wMonth,orderStart.wDay);
		startTime.Format("%d:%d",orderStart.wHour,orderStart.wMinute);

		endDate.Format("%d-%d-%d",orderEnd.wYear,orderEnd.wMonth,orderEnd.wDay);
		endTime.Format("%d:%d",orderEnd.wHour,orderEnd.wMinute);

		item=m_OrderForm_List.InsertItem(i,cstrID);
		
		m_OrderForm_List.SetItemText(i,1,startDate);
		m_OrderForm_List.SetItemText(i,2,endDate);
		m_OrderForm_List.SetItemText(i,3,startTime);
		m_OrderForm_List.SetItemText(i,4,endTime);
		m_OrderForm_List.SetItemText(i,5,content);
		i++;
		rs->MoveNext();//不要忘了加这一句,将游标向下移动
	}
}

void COrderFormManager::OnItemchangedOrderFormList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	

	//TRACE("%d",m_UserList.GetHotItem());
	
// 	//取得被被选中行的位置
// 	POSITION pos=m_OrderForm_List.GetFirstSelectedItemPosition();
// 	//取得指定位置的Item号
// 	int nItem = m_OrderForm_List.GetNextSelectedItem(pos);
// 	TRACE1("Item %d was selected!\n", nItem);
	// you could do your own processing on nItem here
	
	//取得当前所选项中第0列中的订单ID
// 	CString strID=m_OrderForm_List.GetItemText(nItem,0);
// 	//取得当前所选项中第1列中的开始日期
// 	CString startDate=m_OrderForm_List.GetItemText(nItem,1);
// 	//取得当前所选项中第2列中的结束日期
// 	CString endDate=m_OrderForm_List.GetItemText(nItem,2);
// 	//取得当前所选项中第3列中的开始时段
// 	CString startTime=m_OrderForm_List.GetItemText(nItem,3);
// 	//取得当前所选项中第4列中的结束时段
// 	CString endTime=m_OrderForm_List.GetItemText(nItem,4);
// 	//取得当前所选项中第5列中的订单内容
// 	CString content=m_OrderForm_List.GetItemText(nItem,5);
// 
// 	int year,month,day,hour,minute;
// 	
// 	//////////////////////////////////////////////////////////////////////////
// 	//将选中的list项中的内容设置到控件中去
// 	sscanf(startDate,"%d-%d-%d",&year,&month,&day);
// 	m_ModifyDeleteOrderForm.m_StartDate.ParseDateTime(startDate);
// 	sscanf(startTime,"%d:%d",&hour,&minute);
// 	m_ModifyDeleteOrderForm.m_StartTime.ParseDateTime(startTime);
// 
// 	sscanf(endDate,"%d-%d-%d",&year,&month,&day);
// 	m_ModifyDeleteOrderForm.m_EndDate.ParseDateTime(endDate);
// 	sscanf(endTime,"%d:%d",&hour,&minute);
// 	m_ModifyDeleteOrderForm.m_EndTime.ParseDateTime(endTime);
// 
// 	m_ModifyDeleteOrderForm.m_OrderFormContent=content;
// 
// 
// 
//  	m_ModifyDeleteOrderForm.UpdateData(FALSE);
// 	m_ModifyUserPassword.UpdateData(FALSE);


	*pResult = 0;
}

void COrderFormManager::OnClickOrderFormList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	// TODO: Add your control notification handler code here
	
	
	//TRACE("%d",m_UserList.GetHotItem());
	
	//取得被被选中行的位置
	POSITION pos=m_OrderForm_List.GetFirstSelectedItemPosition();
	//取得指定位置的Item号
	int nItem = m_OrderForm_List.GetNextSelectedItem(pos);
	TRACE1("Item %d was selected!\n", nItem);
	// you could do your own processing on nItem here
	if(-1==nItem)
	{
		return;
	}
	//取得当前所选项中第0列中的订单ID
	CString strID=m_OrderForm_List.GetItemText(nItem,0);
	//取得当前所选项中第1列中的开始日期
	CString startDate=m_OrderForm_List.GetItemText(nItem,1);
	//取得当前所选项中第2列中的结束日期
	CString endDate=m_OrderForm_List.GetItemText(nItem,2);
	//取得当前所选项中第3列中的开始时段
	CString startTime=m_OrderForm_List.GetItemText(nItem,3);
	//取得当前所选项中第4列中的结束时段
	CString endTime=m_OrderForm_List.GetItemText(nItem,4);
	//取得当前所选项中第5列中的订单内容
	CString content=m_OrderForm_List.GetItemText(nItem,5);
	
	m_id=atoi(strID.GetBuffer(0));

	//////////////////////////////////////////////////////////////////////////
	//将选中的list项中的内容设置到控件中去

	m_ModifyDeleteOrderForm.m_StartDate.ParseDateTime(startDate);

	m_ModifyDeleteOrderForm.m_StartTime.ParseDateTime(startTime);
	
	m_ModifyDeleteOrderForm.m_EndDate.ParseDateTime(endDate);

	m_ModifyDeleteOrderForm.m_EndTime.ParseDateTime(endTime);
	
	m_ModifyDeleteOrderForm.m_OrderFormContent=content;
	
	
	
 	m_ModifyDeleteOrderForm.UpdateData(FALSE);
	*pResult = 0;
}


void COrderFormManager::ShowOrderFormListFromRecordset(SQLRECORDSET & rs)
{
	if(m_OrderForm_List.GetItemCount()>0)
	{
		m_OrderForm_List.DeleteAllItems();
	}
	CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
	CSMSADO &Ado=pCSMSApp->m_SMSAdo;
	
	if(rs->BOF)
	{
		MessageBox("没有订单内容");
		return;
	}
	
	int i=0;
	int item;
	TRACE("取出了---------%d条记录",rs->RecordCount);
	CString userName;
	int id;
	CString cstrID;
	DBDATETIME orderStart;
	DBDATETIME orderEnd;
	CString content;
	
	CString startDate;
	CString startTime;
	CString endDate;
	CString endTime;
	
	while(!rs->rsEOF)
	{
		
		id=Ado.GetIntegerFieldVal(rs,"id");
		orderStart=Ado.GetDateTimeFeildVal(rs,"orderstart");
		orderEnd=Ado.GetDateTimeFeildVal(rs,"orderend");
		content=Ado.GetTextFieldVal(rs,"content");
		
		cstrID.Format("%d",id);//将整型的id转换成字符串型
		startDate.Format("%d-%d-%d",orderStart.wYear,orderStart.wMonth,orderStart.wDay);
		startTime.Format("%d:%d",orderStart.wHour,orderStart.wMinute);
		
		endDate.Format("%d-%d-%d",orderEnd.wYear,orderEnd.wMonth,orderEnd.wDay);
		endTime.Format("%d:%d",orderEnd.wHour,orderEnd.wMinute);
		
		item=m_OrderForm_List.InsertItem(i,cstrID);
		
		m_OrderForm_List.SetItemText(i,1,startDate);
		m_OrderForm_List.SetItemText(i,2,endDate);
		m_OrderForm_List.SetItemText(i,3,startTime);
		m_OrderForm_List.SetItemText(i,4,endTime);
		m_OrderForm_List.SetItemText(i,5,content);
		i++;
		rs->MoveNext();//不要忘了加这一句,将游标向下移动
	}
}
BOOL COrderFormManager::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 + -