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