📄 oderinfodlg.cpp
字号:
// OderInfoDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ordermanagement.h"
#include "OderInfoDlg.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// OderInfoDlg dialog
OderInfoDlg::OderInfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(OderInfoDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(OderInfoDlg)
m_nstr = _T("");
m_nSearch = -1;
m_nSort = -1;
//}}AFX_DATA_INIT
m_nSortType = 0;
m_ncurrSel = -1;
}
void OderInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(OderInfoDlg)
DDX_Control(pDX, IDC_KSORT_COMB, m_odSoCtr);
DDX_Control(pDX, IDC_KSEARCH_COMB, m_odSeCtr);
DDX_Control(pDX, IDC_LIST_ODER, m_listCtr);
DDX_Text(pDX, IDC_KEY_EDIT, m_nstr);
DDX_CBIndex(pDX, IDC_KSEARCH_COMB, m_nSearch);
DDX_CBIndex(pDX, IDC_KSORT_COMB, m_nSort);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(OderInfoDlg, CDialog)
//{{AFX_MSG_MAP(OderInfoDlg)
ON_BN_CLICKED(IDC_SEARCH_BTN, OnSearchBtn)
ON_BN_CLICKED(IDC_SORT_BTN, OnSortBtn)
ON_BN_CLICKED(IDC_REFRESH_BNT, OnRefreshBnt)
ON_BN_CLICKED(IDC_DEL_BNT, OnDelBnt)
ON_WM_CTLCOLOR()
ON_NOTIFY(NM_CLICK, IDC_LIST_ODER, OnClickListOder)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// OderInfoDlg message handlers
ADOConn conn3;
_bstr_t sSQL3;
BOOL OderInfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//初始化图标
m_imagelist.Create(16, 16,ILC_MASK,1,4);
HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON3);
m_imagelist.Add(hIcon);
//初始化列表框表头
m_listCtr.SetImageList(&m_imagelist,LVSIL_SMALL);
m_listCtr.InsertColumn(0, "订 单 ID", LVCFMT_LEFT,100);
m_listCtr.InsertColumn(1, "客 户 ID", LVCFMT_LEFT,80);
m_listCtr.InsertColumn(2, "客户名称", LVCFMT_LEFT,100);
m_listCtr.InsertColumn(3, "产 品 ID", LVCFMT_LEFT,80);
m_listCtr.InsertColumn(4, "产品名称", LVCFMT_LEFT,80);
m_listCtr.InsertColumn(5, "订购数量", LVCFMT_LEFT,80);
m_listCtr.InsertColumn(6, "公司联系人",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(7, "客户联系人",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(8, "送货地址", LVCFMT_LEFT,150);
m_listCtr.InsertColumn(9, "签订日期", LVCFMT_LEFT,80);
m_listCtr.InsertColumn(10, "有效截止期",LVCFMT_LEFT,80);
m_listCtr.InsertColumn(11, "备 注", LVCFMT_LEFT,200);
//-- 设置单列全选,显示网格 -- //
m_listCtr.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
//AfxMessageBox("over");
m_nSortType =0 ;
BindList();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void OderInfoDlg::BindList()
{
ADOConn conn;
_RecordsetPtr m_pRecordset;
_bstr_t vSQL;
int nItem;
CString sKey;
m_listCtr.DeleteAllItems();
try{
//如果Concection对象为空,则重新连接
if(conn.m_pConn == NULL)
conn.OnInitADOConn();
if(m_odSoCtr.GetCurSel() == 0)//确定排序方式
sort = "ASC";
else
sort = "DESC";
switch(m_nSortType)
{
case 0:
vSQL = "select * from OderFormMessage order by oderFormID "+sort;
m_pRecordset = conn.GetRecordSet(vSQL);
break;
case 1:
vSQL="select * from OderFormMessage where oderFormID='" +m_nstr+ "'order by oderFormID "+sort;
m_pRecordset = conn.GetRecordSet(vSQL);
break;
case 2:
vSQL= "select * from OderFormMessage where clientID='" +m_nstr+ "'order by oderFormID "+sort;
m_pRecordset = conn.GetRecordSet(vSQL);
break;
case 3:
vSQL= "select * from OderFormMessage where clientName like '%" +m_nstr+ "%' order by oderFormID "+sort;
m_pRecordset = conn.GetRecordSet(vSQL);
break;
case 4:
vSQL="select * from OderFormMessage where productID='" +m_nstr+ "'order by oderFormID "+sort;
m_pRecordset = conn.GetRecordSet(vSQL);
break;
case 5:
vSQL= "select * from OderFormMessage where productName='" +m_nstr+ "'order by oderFormID "+sort;
m_pRecordset = conn.GetRecordSet(vSQL);
break;
default:
vSQL = "select * from OderFormMessage order by oderFormID";
m_pRecordset = conn.GetRecordSet(vSQL);
break;
}
while(!m_pRecordset->adoEOF)
{
conn.vOID = m_pRecordset->GetCollect("oderFormID");
conn.vCID = m_pRecordset->GetCollect("clientID");
conn.vCN = m_pRecordset->GetCollect("clientName");
conn.vPID = m_pRecordset->GetCollect("productID");
conn.vPN = m_pRecordset->GetCollect("productName");
conn.vOPNUM = m_pRecordset->GetCollect("productNum");
conn.vCOP = m_pRecordset->GetCollect("companyContactPerson");
conn.vClP = m_pRecordset->GetCollect("clientContactPerson");
conn.vTRADD = m_pRecordset->GetCollect("consignmentAddress");//AfxMessageBox("ok");
conn.vFDATA = m_pRecordset->GetCollect("formDate");
conn.vEDATA = m_pRecordset->GetCollect("endDate");
conn.vREMARK = m_pRecordset->GetCollect("remark");
// -- 添加数据到列表控件中 -- //
nItem = m_listCtr.InsertItem(0xffff,(_bstr_t)conn.vOID,0);//;
m_listCtr.SetItemText(nItem,1,(_bstr_t)conn.vCID);
m_listCtr.SetItemText(nItem,2,(_bstr_t)conn.vCN);
m_listCtr.SetItemText(nItem,3,(_bstr_t)conn.vPID);
m_listCtr.SetItemText(nItem,4,(_bstr_t)conn.vPN);
m_listCtr.SetItemText(nItem,5,(_bstr_t)conn.vOPNUM);
m_listCtr.SetItemText(nItem,6,(_bstr_t)conn.vCOP);
m_listCtr.SetItemText(nItem,7,(_bstr_t)conn.vClP);
m_listCtr.SetItemText(nItem,8,(_bstr_t)conn.vTRADD);
m_listCtr.SetItemText(nItem,9,(_bstr_t)conn.vFDATA);
m_listCtr.SetItemText(nItem,10,(_bstr_t)conn.vEDATA);
m_listCtr.SetItemText(nItem,11,(_bstr_t)conn.vREMARK);
m_pRecordset->MoveNext();
}
// m_pRecordset->Close();
conn.ExitConnect();
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
}
void OderInfoDlg::OnSearchBtn()
{
UpdateData(true);
if(m_odSeCtr.GetCurSel() < 0)
m_nSortType =0;
else
{
switch(m_odSeCtr.GetCurSel())
{
case 0: m_nSortType =1;break;
case 1: m_nSortType =2;break;
case 2: m_nSortType =3;break;
case 3: m_nSortType =4;break;
case 4: m_nSortType =5;break;
default: break;
}
}
this->BindList();
}
void OderInfoDlg::OnSortBtn()
{
OnSearchBtn();
}
void OderInfoDlg::OnRefreshBnt()
{
m_nSearch = -1;
m_nSort = -1;
m_nstr = "";
UpdateData(false);
m_ncurrSel=-1;
m_nSortType = 0;
this->BindList();
}
void OderInfoDlg::OnDelBnt()
{
if(m_ncurrSel < 0)
AfxMessageBox("请在列表中选中要删除的项!");
else
{
if(MessageBox("是否确定删除?","请确认",MB_YESNO) == IDYES)
{
try
{
if(conn3.m_pConn == NULL)
conn3.OnInitADOConn();
OderFormDel(IID);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
}
}
void OderInfoDlg::OderFormDel(CString pID)
{
sSQL3 ="select * from consignmentForm where oderFormID ='"+pID+"'";
conn3.m_pRs =conn3.GetRecordSet(sSQL3);
if(!conn3.m_pRs->adoBOF)//若发货单中存在相应的订单ID则删除发货单
{
AfxMessageBox("该订单与发货单关联,不能删除!");
/* CString ssID;
ssID = (char *)(_bstr_t)conn.m_pRs->GetCollect("sendOderID");
SendFormDel(ssID);
*/ }
else
{
if(IsExist(pID))
{
sSQL3 = "DELETE FROM OderFormMessage WHERE oderFormID='"+pID+"'";// AND formDate <'"+strNow+"'";
if(conn3.ExecuteSQL(sSQL3))
{
AfxMessageBox("订单删除!");
m_nSortType = 0;
this->BindList();
}
}
else
AfxMessageBox("订单处于效时间内,不能进行删除!");
}
}
//判断订单是否已过有效期
bool OderInfoDlg::IsExist(CString pID)
{
//获取当前日期
COleDateTime dtNow = COleDateTime::GetCurrentTime();
CString strNow,date;
strNow.Format("%d-%d-%d" , dtNow.GetYear(), dtNow.GetMonth(), dtNow.GetDay());
//取相应订单的截止有效时间
sSQL3="select * from OderFormMessage where oderFormID='"+pID+"'";
conn3.m_pRs =conn3.GetRecordSet(sSQL3);
date = (char *)(_bstr_t)conn3.m_pRs->GetCollect("endDate");
//判断当前时间是否大于截止有效时间
if(strcmp(strNow,date) == 1)
return true; //大于返回真值
else
return false;
}
HBRUSH OderInfoDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
COLORREF backColor = RGB(231, 231, 231); //office 2003背景色
pDC->SetBkMode(TRANSPARENT); //设置控件背景透明
return CreateSolidBrush(backColor); //创建背景刷子
// TODO: Return a different brush if the default is not desired
//return hbr;
//HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
//pDC->SetBkMode(TRANSPARENT);
//return (HBRUSH)GetStockObject(NULL_BRUSH);
}
void OderInfoDlg::OnClickListOder(NMHDR* pNMHDR, LRESULT* pResult)
{
//m_ncurrSel = -1;
/* -- 获取当前记录编号 -- */
NM_LISTVIEW *pNMListView = (NM_LISTVIEW *)pNMHDR;
m_ncurrSel = pNMListView->iItem;//获当前行值m_ncurrSel
// m_ncurrSel = m_listCtr.GetSelectionMark();
if(m_ncurrSel >= 0)
{
IID = m_listCtr.GetItemText(m_ncurrSel,0);//取当前项的订单号,0表示列号
Date = m_listCtr.GetItemText(m_ncurrSel,10);//取当前项的截止有效时间
}
*pResult = 0;
}
void OderInfoDlg::OnCancel()
{
//if(MessageBox("是否确定退出?","请确认",MB_YESNO) == IDYES)
//{
CDialog::OnCancel();
//}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -