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

📄 issuermanager.cpp

📁 本人工作中的一个软件开发实例。里面包含了数据库
💻 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 + -