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

📄 discardmandlg.cpp

📁 固定资产管理系统,VC++做的,很有参考价值,源码也说明文档都有.
💻 CPP
字号:
// DiscardManDlg.cpp : implementation file
//

#include "stdafx.h"
#include "AssetsMan.h"
#include "DiscardManDlg.h"
#include "Assets.h"
#include "columns.h"
#include "column.h"
#include "COMDEF.H"
#include "_recordset.h"
#include "DiscardEditDlg.h"
#include "Discard.h"

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

extern CUsers curUser;
/////////////////////////////////////////////////////////////////////////////
// CDiscardManDlg dialog


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


void CDiscardManDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDiscardManDlg)
	DDX_Control(pDX, IDC_TYPE_COMBO, m_type);
	DDX_Control(pDX, IDC_ADODC1, m_Adodc);
	DDX_Control(pDX, IDC_DATAGRID1, m_DataGrid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDiscardManDlg, CDialog)
	//{{AFX_MSG_MAP(CDiscardManDlg)
	ON_BN_CLICKED(IDC_DISCARD_BUTTON, OnDiscardButton)
	ON_BN_CLICKED(IDC_AUDIT_BUTTON, OnAuditButton)
	ON_CBN_SELCHANGE(IDC_TYPE_COMBO, OnSelchangeTypeCombo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDiscardManDlg message handlers

BOOL CDiscardManDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// 显示审核和变更的固定资产信息
	m_type.SetCurSel(0);
	// 刷新列表
	RefreshData();	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDiscardManDlg::RefreshData()
{
	// 根据选择的类型设置SELECT语句
	CString csql;
	if(m_type.GetCurSel() == 0) // 正常使用
	{
		csql = "SELECT a.AId AS 资产编号,a.AName AS 资产名称,d.DepName AS 所属部门,"
	          "d1.EmpName AS 负责人, a.Status AS 状态, '' AS 报废状态, 0 AS 折算金额,"
			  "'' AS 报废原因, '' AS 申请人, '' AS 申请日期, '' AS 审批人, '' AS 审批日期"
			  " FROM Assets a,Departments d, Distribute d1 "
			  " Where a.Aid=d1.Aid AND d1.DepId=d.DepId AND a.IsAudit<>0"
			  " AND a.Aid NOT IN (SELECT Aid FROM Discard)";
	}
	else if(m_type.GetCurSel() == 1) // 申请报废
	{
		csql = "SELECT a.AId AS 资产编号,a.AName AS 资产名称,d.DepName AS 所属部门,"
	          "d1.EmpName AS 负责人, a.Status AS 状态, dd.Status AS 报废状态, dd.DSum AS 折算金额,"
			  "dd.Reason AS 报废原因, dd.EmpName AS 申请人, dd.CreateDate AS 申请日期,"
			  "dd.Checker AS 审批人, dd.CheckDate AS 审批日期"
			  " FROM Assets a,Departments d, Distribute d1, Discard dd "
			  " Where a.Aid=d1.Aid AND d1.DepId=d.DepId AND a.Aid=dd.Aid"
			  " AND dd.Status='申请' AND a.IsAudit<>0";
	}
	else if(m_type.GetCurSel() == 2) // 已经报废
	{
		csql = "SELECT a.AId AS 资产编号,a.AName AS 资产名称,d.DepName AS 所属部门,"
	          "d1.EmpName AS 负责人, a.Status AS 状态, dd.Status AS 报废状态, dd.DSum AS 折算金额,"
			  "dd.Reason AS 报废原因, dd.EmpName AS 申请人, dd.CreateDate AS 申请日期,"
			  "dd.Checker AS 审批人, dd.CheckDate AS 审批日期"
			  " FROM Assets a,Departments d, Distribute d1, Discard dd "
			  " Where a.Aid=d1.Aid AND d1.DepId=d.DepId AND a.Aid=dd.Aid"
			  " AND dd.Status='报废' AND a.IsAudit<>0";
	}
	m_Adodc.SetRecordSource(csql);
	m_Adodc.Refresh();
	// 设置列宽度
	_variant_t vIndex;
	vIndex = long(0);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(1);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(2);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(3);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(4);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(5);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(6);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(7);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(8);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(9);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(10);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	vIndex = long(11);
	m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
	// 设置按钮状态
	ButtonEnable();
}

void CDiscardManDlg::ButtonEnable()
{
	// 如果此记录已经审核,则审核功能失效
	if(m_type.GetCurSel() == 0)
	{
		GetDlgItem(IDC_DISCARD_BUTTON)->EnableWindow(TRUE);
 		GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(FALSE);
	}
	else if(m_type.GetCurSel() ==1) 
	{
		GetDlgItem(IDC_DISCARD_BUTTON)->EnableWindow(FALSE);
 		GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(TRUE);
	}
	else if(m_type.GetCurSel() == 2) 
	{
		GetDlgItem(IDC_DISCARD_BUTTON)->EnableWindow(FALSE);
 		GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(FALSE);
	}
	// 普通用户没有审核权限
	if(curUser.UserType == "普通用户")
		GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(FALSE);
	UpdateData(FALSE);
}


void CDiscardManDlg::OnDiscardButton() 
{
	if (m_Adodc.GetRecordset().GetEof()) 
	{
		MessageBox("没有数据");
		return;
	}
	CDiscardEditDlg dlg;
	dlg.m_aid = m_DataGrid.GetItem(0);
	dlg.m_aname = m_DataGrid.GetItem(1);
	dlg.m_dsum = atof(m_DataGrid.GetItem(6));
	dlg.m_reason = m_DataGrid.GetItem(7);
	dlg.m_empname = curUser.EmpName;
	CTime t = CTime::GetCurrentTime();
	dlg.m_createdate.Format("%4d-%2d-%2d", t.GetYear(), t.GetMonth(), t.GetDay());
	if(dlg.DoModal() == IDOK)
		RefreshData();
}

void CDiscardManDlg::OnAuditButton() 
{
	if (m_Adodc.GetRecordset().GetEof() == 1) 
	{
		MessageBox("没有数据");
		return;
	}
	// 审核固定资产报废信息,更改数据库表Assets中字段状态值为报废
	CDiscard dis;
	dis.Checker = curUser.EmpName;
	CTime t = CTime::GetCurrentTime();
	dis.CheckDate.Format("%4d-%2d-%2d", t.GetYear(), t.GetMonth(), t.GetDay());
	dis.sql_UpdateApproval(m_DataGrid.GetItem(0));
	RefreshData();
}

BEGIN_EVENTSINK_MAP(CDiscardManDlg, CDialog)
    //{{AFX_EVENTSINK_MAP(CDiscardManDlg)
	ON_EVENT(CDiscardManDlg, IDC_DATAGRID1, -600 /* Click */, OnClickDatagrid1, VTS_NONE)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CDiscardManDlg::OnSelchangeTypeCombo() 
{
	// TODO: Add your control notification handler code here
	RefreshData();	
}

void CDiscardManDlg::OnClickDatagrid1() 
{
	// TODO: Add your control notification handler code here
	ButtonEnable();
}

⌨️ 快捷键说明

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