📄 issuermanager.cpp
字号:
// IssuerManager.cpp : implementation file
//
#include "stdafx.h"
#include "OIL.h"
#include "IssuerManager.h"
#include "IssuerAdd.h"
#include "function.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern COILApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CIssuerManager dialog
CIssuerManager::CIssuerManager(CWnd* pParent /*=NULL*/)
: CDialog(CIssuerManager::IDD, pParent)
{
//{{AFX_DATA_INIT(CIssuerManager)
m_strCustomer = _T("");
m_nCondition = -1;
//}}AFX_DATA_INIT
}
void CIssuerManager::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CIssuerManager)
DDX_Control(pDX, IDC_UNSEND, m_ButtonValid);
DDX_Control(pDX, IDC_DATETIMEPICKER_START, m_dtcStart);
DDX_Control(pDX, IDC_DATETIMEPICKER_END, m_dtcEnd);
DDX_Control(pDX, IDC_LIST_ISSUER, m_listIssuer);
DDX_CBString(pDX, IDC_COMBO_CUSTOMER, m_strCustomer);
DDX_Radio(pDX, IDC_UNSEND, m_nCondition);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CIssuerManager, CDialog)
//{{AFX_MSG_MAP(CIssuerManager)
ON_BN_CLICKED(IDC_ISSUER_ADD, OnIssuerAdd)
ON_BN_CLICKED(IDC_ISSUER_EDIT, OnIssuerEdit)
ON_BN_CLICKED(IDC_ISSUER_DEL, OnIssuerDel)
ON_BN_CLICKED(IDC_ISSUER_DIV, OnIssuerDiv)
ON_BN_CLICKED(IDC_ISSUER_PRINT, OnIssuerPrint)
ON_BN_CLICKED(IDC_ISSUER_ISSUE, OnIssuerIssue)
ON_BN_CLICKED(IDC_RADIO_VALID, OnRadio)
ON_CBN_SELCHANGE(IDC_COMBO_CUSTOMER, OnSelchangeComboCustomer)
ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER_END, OnDatetimechangeDatetimepickerEnd)
ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER_START, OnDatetimechangeDatetimepickerStart)
ON_BN_CLICKED(IDC_RADIO_ALL, OnRadio)
ON_BN_CLICKED(IDC_UNSEND, OnRadio)
ON_BN_CLICKED(IDC_SENDED, OnRadio)
ON_BN_CLICKED(IDC_ALL, OnRadio)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CIssuerManager message handlers
void CIssuerManager::OnOK()
{
// TODO: Add extra validation here
CDialog::OnOK();
}
void CIssuerManager::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
//初始化发油单管理框
BOOL CIssuerManager::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//默认为有效发油单
m_ButtonValid.SetCheck(1);
//设置List Control背景色及字体颜色
m_listIssuer.SetBkColor(RGB(240,247,233));;
m_listIssuer.SetTextColor(RGB(250,0,0));
//清空List控件的数据
for(int delcolumn=100;delcolumn>=0;delcolumn--)
m_listIssuer.DeleteColumn(delcolumn);
//设置List控件的列
DWORD dwStyle;
RECT rect;
LV_COLUMN lvc;
dwStyle = m_listIssuer.GetStyle();
dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ;
m_listIssuer.SetExtendedStyle(dwStyle);
m_listIssuer.GetClientRect(&rect);
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH |LVCF_FMT;
lvc.fmt=LVCFMT_LEFT;
lvc.iSubItem = 0;
lvc.pszText = _T("发油凭证");
lvc.cx = 120;
m_listIssuer.InsertColumn(1,&lvc);
lvc.iSubItem = 1;
lvc.pszText = _T("提油凭证");
lvc.cx = 100;
m_listIssuer.InsertColumn(2,&lvc);
lvc.iSubItem = 2;
lvc.pszText = _T("开票日期");
lvc.cx = 90;
m_listIssuer.InsertColumn(3,&lvc);
lvc.iSubItem = 3;
lvc.pszText = _T("发油日期");
lvc.cx = 90;
m_listIssuer.InsertColumn(4,&lvc);
lvc.iSubItem = 4;
lvc.pszText = _T("收货单位");
lvc.cx = 120;
m_listIssuer.InsertColumn(5,&lvc);
lvc.iSubItem = 5;
lvc.pszText = _T("油品名");
lvc.cx = 60;
m_listIssuer.InsertColumn(6,&lvc);
lvc.iSubItem = 6;
lvc.pszText = _T("发油总量");
lvc.cx = 80;
m_listIssuer.InsertColumn(7,&lvc);
lvc.iSubItem = 7;
lvc.pszText = _T("车牌号");
lvc.cx = 60;
m_listIssuer.InsertColumn(8,&lvc);
lvc.iSubItem = 8;
lvc.pszText = _T("门卫");
lvc.cx = 60;
m_listIssuer.InsertColumn(9,&lvc);
lvc.iSubItem = 9;
lvc.pszText = _T("开票操作员");
lvc.cx = 100;
m_listIssuer.InsertColumn(10,&lvc);
lvc.iSubItem = 10;
lvc.pszText = _T("发油操作员");
lvc.cx = 100;
m_listIssuer.InsertColumn(11,&lvc);
lvc.iSubItem = 11;
lvc.pszText = _T("收方");
lvc.cx = 100;
m_listIssuer.InsertColumn(12,&lvc);
lvc.iSubItem = 12;
lvc.pszText = _T("经办人");
lvc.cx = 80;
m_listIssuer.InsertColumn(13,&lvc);
lvc.iSubItem = 13;
lvc.pszText = _T("分缸数");
lvc.cx = 60;
m_listIssuer.InsertColumn(14,&lvc);
lvc.iSubItem = 14;
lvc.pszText = _T("是否已发");
lvc.cx = 80;
m_listIssuer.InsertColumn(15,&lvc);
//初始化客户列表
CString sql="select CustomerName from customer";
ReadtoComBoBox((CComboBox *)GetDlgItem(IDC_COMBO_CUSTOMER),sql);
((CComboBox *)GetDlgItem(IDC_COMBO_CUSTOMER))->AddString("所有客户");
((CComboBox *)GetDlgItem(IDC_COMBO_CUSTOMER))->SelectString(0,"所有客户");
//显示数据
OnRadio();
//设置选取行
int nItem=0;
DispListCtrlRow(&m_listIssuer,nItem);
return false;
//return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//新开发油单
void CIssuerManager::OnIssuerAdd()
{
// TODO: Add your control notification handler code here
CIssuerAdd m_dlgIssuerAdd;
m_dlgIssuerAdd.m_nDoWhat=ADD; //新增发油单
//参数传送
m_dlgIssuerAdd.DoModal();
//刷新显示
}
//修改发油单
void CIssuerManager::OnIssuerEdit()
{
// TODO: Add your control notification handler code here
CIssuerAdd m_dlgIssuerAdd;
m_dlgIssuerAdd.m_nDoWhat=EDIT; //修改发油单
//参数传送
m_dlgIssuerAdd.DoModal();
//刷新显示
}
//删除发油单
void CIssuerManager::OnIssuerDel()
{
// TODO: Add your control notification handler code here
CString sql;
POSITION pos = m_listIssuer.GetFirstSelectedItemPosition();
//如果选中一行,则生成动态的sql语句
if(pos)
{
if(!(AfxMessageBox("你真的要删除此计录?",MB_YESNO)==IDYES))
return;
m_nItem = m_listIssuer.GetNextSelectedItem(pos);
sql="delete fayoudan where FydID ='"+m_listIssuer.GetItemText(m_nItem,1)+"'";
//执行此sql语句
_variant_t RecordsAffected;
theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
//更新数据
OnRadio();
//标识所选行
if(m_nItem==0)
{
m_nItem=0;
}
else
{
m_nItem--;
}
DispListCtrlRow(&m_listIssuer,m_nItem);
}
else
AfxMessageBox("请选择一行数据!");
}
//发油单分罐
void CIssuerManager::OnIssuerDiv()
{
// TODO: Add your control notification handler code here
CIssuerAdd m_dlgIssuerAdd;
m_dlgIssuerAdd.m_nDoWhat=DIV; //发油单分罐
//参数传送
m_dlgIssuerAdd.DoModal();
}
//打印发油单
void CIssuerManager::OnIssuerPrint()
{
// TODO: Add your control notification handler code here
}
//发油单发油
void CIssuerManager::OnIssuerIssue()
{
// TODO: Add your control notification handler code here
}
void CIssuerManager::OnRadio()
{
// TODO: Add your control notification handler code here
UpdateData();
CString sql;
//得到时间变量
CString m_strTimeStart,m_strTimeEnd;
CTime m_Timestart, m_TimeEnd;
m_dtcStart.GetTime(m_Timestart);
m_dtcEnd.GetTime(m_TimeEnd);
m_strTimeStart.Format("%04d-%02d-%02d",m_Timestart.GetYear(),m_Timestart.GetMonth(),m_Timestart.GetDay());
m_strTimeEnd.Format("%04d-%02d-%02d",m_TimeEnd.GetYear(),m_TimeEnd.GetMonth(),m_TimeEnd.GetDay());
switch(m_nCondition)
{
case 0: //未发油的发油单
sql="select FydID,a.TydID,invoiceDate,SendDate,customername,oilname,TotalQuantity,trackmark,GuarderName,invoicename,sendoutname,receiver,a.handler,jaramount,sended \
from fayoudan as a,tiyoudan as b,customer as c\
where (a.tydid=b.tydid) and (c.customerid=b.customerid) and sended='F' and\
invoiceDate >='" + m_strTimeStart + "'and invoiceDate <='" + m_strTimeEnd + "'";
break;
case 1: //已发油的发油单
sql="select FydID,a.TydID,invoiceDate,SendDate,customername,oilname,TotalQuantity,trackmark,GuarderName,invoicename,sendoutname,receiver,a.handler,jaramount,sended \
from fayoudan as a,tiyoudan as b,customer as c\
where (a.tydid=b.tydid) and (c.customerid=b.customerid) and sended='T' and\
invoiceDate >='" + m_strTimeStart + "'and invoiceDate <='" + m_strTimeEnd + "'";
break;
case 2: //所有的发油单
sql="select FydID,a.TydID,invoiceDate,SendDate,customername,oilname,TotalQuantity,trackmark,GuarderName,invoicename,sendoutname,receiver,a.handler,jaramount,sended \
from fayoudan as a,tiyoudan as b,customer as c\
where (a.tydid=b.tydid) and (c.customerid=b.customerid) and \
invoiceDate >='" + m_strTimeStart + "'and invoiceDate <='" + m_strTimeEnd + "'";
break;
default:
AfxMessageBox("error!");
return;
}
//显示指定用户数据
CComboBox * m_pComboBox;
m_pComboBox=(CComboBox *)GetDlgItem(IDC_COMBO_CUSTOMER);
int index=((CComboBox *)m_pComboBox)->GetCurSel();
m_pComboBox->GetLBText(index,m_strCustomer);//strContent中就是选中的内容
//GetDlgItemText(IDC_COMBO_CUSTOMER,m_strCustomer);
if(m_strCustomer!="所有客户")
{
sql=sql+" and CustomerName='"+m_strCustomer+"'";
}
//根据上面的动态生成的sql语句列出数据
ReadtoListCtrl((CListCtrl *)GetDlgItem(IDC_LIST_ISSUER),sql);
//设置选取行
int nItem=0;
DispListCtrlRow(&m_listIssuer,nItem);
}
void CIssuerManager::OnSelchangeComboCustomer()
{
// TODO: Add your control notification handler code here
OnRadio();
}
void CIssuerManager::OnDatetimechangeDatetimepickerEnd(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
OnRadio();
*pResult = 0;
}
void CIssuerManager::OnDatetimechangeDatetimepickerStart(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
OnRadio();
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -