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

📄 dlgstockapply.cpp

📁 连接SQL数据库的系统源码,对于初学者十分有参考价值哦
💻 CPP
字号:
// DlgStockApply.cpp : implementation file
//

#include "stdafx.h"
#include "MerchandiseStore.h"
#include "DlgStockApply.h"

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

#include "Database.h"
//-------------global 
extern CDatabase m_hDatabase ;
//------------end

/////////////////////////////////////////////////////////////////////////////
// CDlgStockApply dialog


CDlgStockApply::CDlgStockApply(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgStockApply::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgStockApply)
	//}}AFX_DATA_INIT
}


void CDlgStockApply::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgStockApply)
	DDX_Control(pDX, IDC_TAB_StockApply, m_hTabStockApply);
	DDX_Control(pDX, IDC_LIST_StockApply, m_hListStockApply);
	DDX_Control(pDX, IDOK, m_hBtnOk);
	DDX_Control(pDX, IDC_EDIT_unitprice, m_hEditUnitprice);
	DDX_Control(pDX, IDC_EDIT_SUM, m_hEditSum);
	DDX_Control(pDX, IDC_EDIT_StockName, m_hEditStockname);
	DDX_Control(pDX, IDC_EDIT_Rebate, m_hEditRebate);
	DDX_Control(pDX, IDC_EDIT_purpose, m_hEditPurpose);
	DDX_Control(pDX, IDC_EDIT_providerid, m_hEditProviderid);
	DDX_Control(pDX, IDC_EDIT_proposer, m_hEditProposer);
	DDX_Control(pDX, IDC_EDIT_Paymoney, m_hEditPaymoney);
	DDX_Control(pDX, IDC_EDIT_orderform, m_hEditOrderform);
	DDX_Control(pDX, IDC_EDIT_merchandiseID, m_hEditMerchandiseID);
	DDX_Control(pDX, IDC_EDIT_MEMO, m_hEditMemo);
	DDX_Control(pDX, IDC_EDIT_billmaker, m_hEditBillmaker);
	DDX_Control(pDX, IDC_EDIT_APPID, m_hEditAppid);
	DDX_Control(pDX, IDC_DTP_AppDate, m_hDtpAppdate);
	DDX_Control(pDX, IDC_DTP_BestTime, m_hDtpBesttime);
	DDX_Control(pDX, IDC_CMB_DEPARTMENT, m_hCmbDepartment);
	DDX_Control(pDX, IDC_BTN_SAVE, m_hBtnSave);
	DDX_Control(pDX, IDC_BTN_MOD, m_hBtnMod);
	DDX_Control(pDX, IDC_BTN_DEL, m_hBtnDel);
	DDX_Control(pDX, IDC_BTN_ADD, m_hBtnAdd);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgStockApply, CDialog)
	//{{AFX_MSG_MAP(CDlgStockApply)
	ON_BN_CLICKED(IDC_BTN_ADD, OnBtnAdd)
	ON_BN_CLICKED(IDC_BTN_DEL, OnBtnDel)
	ON_BN_CLICKED(IDC_BTN_MOD, OnBtnMod)
	ON_BN_CLICKED(IDC_BTN_SAVE, OnBtnSave)
	ON_NOTIFY(NM_CLICK, IDC_LIST_StockApply, OnClickLISTStockApply)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_StockApply, OnDblclkLISTStockApply)
	ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_StockApply, OnSelchangeTABStockApply)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgStockApply message handlers

BOOL CDlgStockApply::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	InitCtrlData() ;

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

void CDlgStockApply::InitCtrlData()
{
//Init tab ctrl 
	m_hTabStockApply.InsertItem(0, "采购申请基本信息") ;
	m_hTabStockApply.InsertItem(1, "采购申请信息列表") ;
	m_hTabStockApply.ShowWindow(TRUE) ;

	m_hListStockApply.InsertColumn(0, "申请单号", LVCFMT_CENTER, 50) ;
	m_hListStockApply.InsertColumn(1, "使用部门", LVCFMT_CENTER, 100) ;
	m_hListStockApply.InsertColumn(2, "申请人", LVCFMT_CENTER, 50) ;
	m_hListStockApply.InsertColumn(3, "制表人", LVCFMT_CENTER, 50) ;
	m_hListStockApply.InsertColumn(4, "备注", LVCFMT_CENTER, 60) ;
	m_hListStockApply.InsertColumn(5, "商品编号", LVCFMT_CENTER, 50) ;
	m_hListStockApply.InsertColumn(6, "单价", LVCFMT_CENTER, 50) ;
	m_hListStockApply.InsertColumn(7, "数量", LVCFMT_CENTER, 50) ;
	m_hListStockApply.InsertColumn(8, "金额", LVCFMT_CENTER, 50) ;
	m_hListStockApply.InsertColumn(9, "折扣", LVCFMT_CENTER, 50) ;
	m_hListStockApply.InsertColumn(10, "用途", LVCFMT_CENTER, 100) ;
	m_hListStockApply.InsertColumn(11, "供应商", LVCFMT_CENTER, 100) ;
	m_hListStockApply.InsertColumn(12, "订单号", LVCFMT_CENTER, 100) ;
	m_hListStockApply.InsertColumn(13, "库存名称", LVCFMT_CENTER, 100) ;
	m_hListStockApply.SetExtendedStyle(m_hListStockApply.GetStyle() | LVS_EX_FULLROWSELECT);

///INIT BUTTON CTRL
	m_hBtnOk.SetIcon(IDI_ICON_CLOSE);
	m_hBtnOk.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
	m_hBtnOk.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0));

	m_hBtnSave.SetIcon(IDI_ICON_OK);
	m_hBtnSave.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
	m_hBtnSave.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0));
	m_hBtnSave.EnableWindow(FALSE) ;

	m_hBtnDel.SetIcon(IDI_ICON_DEL);
	m_hBtnDel.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
	m_hBtnDel.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0));

	m_hBtnAdd.SetIcon(IDI_ICON_ADD);
	m_hBtnAdd.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
	m_hBtnAdd.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0));

	m_hBtnMod.SetIcon(IDI_ICON_MOD);
	m_hBtnMod.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, shBtnColor);
	m_hBtnMod.SetColor(CButtonST::BTNST_COLOR_FG_IN, RGB(0, 128, 0));

///
	TabCtrlOfSelect(1) ;
	m_hDatabase.InitEmployeeData(&m_hCmbDepartment) ;
}

void CDlgStockApply::TabCtrlOfSelect(int m_nSelected)
{
	switch(m_nSelected)
	{
	case 0:
		{
			m_hTabStockApply.SetCurSel(0) ;
			//---
			m_hEditUnitprice.ShowWindow(TRUE) ;
			m_hEditSum.ShowWindow(TRUE) ;
			m_hEditStockname.ShowWindow(TRUE) ;
			m_hEditRebate.ShowWindow(TRUE) ;
			m_hEditPurpose.ShowWindow(TRUE) ;
			m_hEditProviderid.ShowWindow(TRUE) ;
			m_hEditProposer.ShowWindow(TRUE) ;
			m_hEditPaymoney.ShowWindow(TRUE) ;
			m_hEditOrderform.ShowWindow(TRUE) ;
			m_hEditMerchandiseID.ShowWindow(TRUE) ;
			m_hEditMemo.ShowWindow(TRUE) ;
			m_hEditBillmaker.ShowWindow(TRUE) ;
			m_hEditAppid.ShowWindow(TRUE) ;
			m_hCmbDepartment.ShowWindow(TRUE) ;
			
			m_hListStockApply.ShowWindow(FALSE) ;
			m_hEditAppid.SetFocus() ;
			break ;
		}
	case 1:
		{
			m_hTabStockApply.SetCurSel(1) ;

			m_hEditUnitprice.ShowWindow(FALSE) ;
			m_hEditSum.ShowWindow(FALSE) ;
			m_hEditStockname.ShowWindow(FALSE) ;
			m_hEditRebate.ShowWindow(FALSE) ;
			m_hEditPurpose.ShowWindow(FALSE) ;
			m_hEditProviderid.ShowWindow(FALSE) ;
			m_hEditProposer.ShowWindow(FALSE) ;
			m_hEditPaymoney.ShowWindow(FALSE) ;
			m_hEditOrderform.ShowWindow(FALSE) ;
			m_hEditMerchandiseID.ShowWindow(FALSE) ;
			m_hEditMemo.ShowWindow(FALSE) ;
			m_hEditBillmaker.ShowWindow(FALSE) ;
			m_hEditAppid.ShowWindow(FALSE) ;
			m_hCmbDepartment.ShowWindow(FALSE) ;
			
			m_hListStockApply.ShowWindow(TRUE) ;
			break ;
		}
	}
	m_hDatabase.ListStockApplyToCtrl(&m_hListStockApply) ;
}

void CDlgStockApply::OnBtnAdd() 
{
	// TODO: Add your control notification handler code here
	switch(m_hTabStockApply.GetCurSel())
	{
	case 0:
		{
			break ;
		}
	case 1:
		{
			TabCtrlOfSelect(0) ;
			break ;
		}
	}
	m_hEditUnitprice.SetWindowText("") ;
	m_hEditSum.SetWindowText("") ;
	m_hEditStockname.SetWindowText("") ;
	m_hEditRebate.SetWindowText("") ;
	m_hEditPurpose.SetWindowText("") ;
	m_hEditProviderid.SetWindowText("") ;
	m_hEditProposer.SetWindowText("") ;
	m_hEditPaymoney.SetWindowText("") ;
	m_hEditOrderform.SetWindowText("") ;
	m_hEditMerchandiseID.SetWindowText("") ;
	m_hEditMemo.SetWindowText("") ;
	m_hEditBillmaker.SetWindowText("") ;
	m_hEditAppid.SetWindowText("") ;

	m_hEditAppid.SetFocus() ;
	m_hBtnSave.EnableWindow() ;
}

void CDlgStockApply::OnBtnDel() 
{
	// TODO: Add your control notification handler code here
	if(m_hListStockApply.GetSelectionMark() == -1)
	{//未被选中
		MessageBox("请选择欲删除条目!") ;
		return ;
	}
	char m_szID[30+1] ;
	m_hListStockApply.GetItemText(m_hListStockApply.GetSelectionMark(), 0, m_szID, sizeof(m_szID)) ;
	m_hDatabase.DeleteDataWhere(SAP, m_szID) ;
	TabCtrlOfSelect(1) ;	
}

void CDlgStockApply::OnBtnMod() 
{
	// TODO: Add your control notification handler code here
	switch(m_hTabStockApply.GetCurSel())
	{
	case 0:
		{
			break ;
		}
	case 1:
		{
			if(m_hListStockApply.GetSelectionMark() == -1)
			{//未被选中
				MessageBox("请选择欲修改条目!") ;
				return ;
			}
			break ;
		}
	}
	TabCtrlOfSelect(0) ;
	m_hBtnSave.EnableWindow() ;
	m_hEditAppid.SetFocus() ;	
}

void CDlgStockApply::OnBtnSave() 
{
	// TODO: Add your control notification handler code here
	char Department[30+1], unitprice[10+1], sum[30+1], StockName[30+1], Rebate[20+1], Purpose[100+1], 
		providerid[30+1], orderform[30+1], proposer[30+1], Paymoney[10+1], merchandiseID[30+1],
		memo[100+1], Billmaker[30+1], Appid[30+1];
	m_hCmbDepartment.GetWindowText(Department, sizeof(Department)) ;
	m_hEditUnitprice.GetWindowText(unitprice, sizeof(unitprice)) ;
	m_hEditSum.GetWindowText(sum, sizeof(sum)) ;
	m_hEditStockname.GetWindowText(StockName, sizeof(StockName)) ;
	m_hEditRebate.GetWindowText(Rebate, sizeof(Rebate)) ;
	m_hEditPurpose.GetWindowText(Purpose, sizeof(Purpose)) ;
	m_hEditProviderid.GetWindowText(providerid, sizeof(providerid)) ;
	m_hEditProposer.GetWindowText(proposer, sizeof(proposer)) ;
	m_hEditPaymoney.GetWindowText(Paymoney, sizeof(Paymoney)) ;
	m_hEditOrderform.GetWindowText(orderform, sizeof(orderform)) ;
	m_hEditMerchandiseID.GetWindowText(merchandiseID, sizeof(merchandiseID)) ;
	m_hEditMemo.GetWindowText(memo, sizeof(memo)) ;
	m_hEditBillmaker.GetWindowText(Billmaker, sizeof(Billmaker)) ;
	m_hEditAppid.GetWindowText(Appid, sizeof(Appid)) ;

	//保存修改,更新数据库
	m_hDatabase.UpdateStockApplyData(Department,unitprice,sum,StockName,Rebate,Purpose,providerid,orderform,
		proposer,Paymoney,merchandiseID,memo,Billmaker,Appid) ;

	m_hBtnSave.EnableWindow(FALSE) ;
}

void CDlgStockApply::OnClickLISTStockApply(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	char m_szAppid[30+1] ;
	m_hListStockApply.GetItemText(m_hListStockApply.GetSelectionMark(), 0, m_szAppid, sizeof(m_szAppid)) ;

	m_hDatabase.EditStockApplyToCtrl(m_szAppid, &m_hCmbDepartment,&m_hEditUnitprice,&m_hEditSum,&m_hEditStockname,&m_hEditRebate,&m_hEditPurpose,&m_hEditProviderid,&m_hEditProposer,&m_hEditPaymoney,&m_hEditOrderform,&m_hEditMerchandiseID,&m_hEditMemo,&m_hEditBillmaker,&m_hEditAppid) ;
	*pResult = 0;
}

void CDlgStockApply::OnDblclkLISTStockApply(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	TabCtrlOfSelect(0) ;

	*pResult = 0;
}

void CDlgStockApply::OnSelchangeTABStockApply(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	switch(m_hTabStockApply.GetCurSel())
	{
	case 0:
		{
			TabCtrlOfSelect(0) ;
			break ;
		}
	case 1:
		{			
			TabCtrlOfSelect(1) ;
			break ;
		}
	}
//	m_hDatabase.ListStockApplyToCtrl(&m_hListStockApply) ;	
	*pResult = 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -