📄 distributemandlg.cpp
字号:
// DistributeManDlg.cpp : implementation file
//
#include "stdafx.h"
#include "AssetsMan.h"
#include "DistributeManDlg.h"
#include "columns.h"
#include "column.h"
#include "COMDEF.H"
#include "_recordset.h"
#include "DistributeEditDlg.h"
#include "Distribute.h"
#include "Assets.h"
extern CUsers curUser;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDistributeManDlg dialog
CDistributeManDlg::CDistributeManDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDistributeManDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDistributeManDlg)
//}}AFX_DATA_INIT
}
void CDistributeManDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDistributeManDlg)
DDX_Control(pDX, IDC_TYPE_COMBO, m_type);
DDX_Control(pDX, IDC_ADODC1, m_adodc1);
DDX_Control(pDX, IDC_ADODC2, m_adodc2);
DDX_Control(pDX, IDC_SEARCH_DATACOMBO, m_search);
DDX_Control(pDX, IDC_DATAGRID1, m_DataGrid);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDistributeManDlg, CDialog)
//{{AFX_MSG_MAP(CDistributeManDlg)
ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
ON_CBN_SELCHANGE(IDC_TYPE_COMBO, OnSelchangeTypeCombo)
ON_BN_CLICKED(IDC_MODI_BUTTON, OnModiButton)
ON_BN_CLICKED(IDC_DEL_BUTTON, OnDelButton)
ON_BN_CLICKED(IDC_AUDIT_BUTTON, OnAuditButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDistributeManDlg message handlers
// 刷新DataGrid数据,显示所有固定资产信息
void CDistributeManDlg::RefreshData()
{
UpdateData(TRUE);
CString csql;
csql = "SELECT a.Aid AS 资产编号,a.Aname AS 资产名称, d1.DepName AS 分配部门,"
" d.EmpName AS 负责人, d.CreateDate AS 创建日期, a.Status AS 状态, d1.DepId"
" FROM Assets a,Departments d1,Types t, Distribute d "
" WHERE a.TypeId=t.TypeId AND d.DepId=d1.DepId AND d.Aid=a.Aid And a.IsAudit=1";
// 判断查询条件
if (cSearchValue == "")
cSearchValue = "0";
if(m_type.GetCurSel() == 1) //按类别查询
csql = csql + " AND a.TypeId=" + cSearchValue;
else if(m_type.GetCurSel() == 2) //按部门查询
csql = csql + " AND d.DepId=" + cSearchValue;
//设置记录源
m_adodc1.SetRecordSource(csql);
m_adodc1.Refresh();
//设置列宽度
_variant_t vIndex;
vIndex = long(0);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(1);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(2);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(3);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(4);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(5);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(6);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
//根据当前记录的状态决定按钮控件的情况
ButtonEnable();
}
void CDistributeManDlg::ButtonEnable()
{
// 如果此记录已经审批,则编辑、删除和审核功能失效
// 如果此记录已经变更,则编辑和删除功能失效
if (!m_adodc1.GetRecordset().GetEof())
{
if(m_DataGrid.GetItem(5)=="未使用")
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(TRUE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(TRUE);
GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(TRUE);
}
else if(m_DataGrid.GetItem(5)=="使用中")
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(FALSE);
}
}
else
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(FALSE);
}
// 普通用户没有审核权限
if(curUser.UserType == "普通用户")
GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(FALSE);
}
void CDistributeManDlg::OnAddButton()
{
// 定义固定资产对象并设置变量cId为空字符串
CDistributeEditDlg dlg;
dlg.cAid = "";
if(dlg.DoModal()==IDOK)
RefreshData();
}
BOOL CDistributeManDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 显示全部固定资产信息
m_type.SetCurSel(0);
// 全部情况下隐藏列表
GetDlgItem(IDC_SEARCH_DATACOMBO)->ShowWindow(SW_HIDE);
// 刷新列表
RefreshData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDistributeManDlg::OnSelchangeTypeCombo()
{
UpdateData(TRUE);
int iSel;
iSel = m_type.GetCurSel(); //读取选择的查询类别
// 置查询列表初始为空
m_search.SetText("");
if (iSel == 1) // 按类别查询
{
// 设置数据源(为查询列表提供数据源)
m_adodc2.SetRecordSource("SELECT * FROM Types");
m_adodc2.Refresh();
// 设置显示列和绑定列
m_search.SetListField("TypeName");
m_search.SetBoundColumn("TypeId");
m_search.Refresh();
// 显示列表
GetDlgItem(IDC_SEARCH_DATACOMBO)->ShowWindow(SW_SHOW);
}
else if (iSel == 2) // 按部门查询
{
// 设置数据源(为查询列表提供数据源)
m_adodc2.SetRecordSource("SELECT * FROM Departments");
m_adodc2.Refresh();
// 设置显示列和绑定列
m_search.SetListField("DepName");
m_search.SetBoundColumn("DepId");
m_search.Refresh();
GetDlgItem(IDC_SEARCH_DATACOMBO)->ShowWindow(SW_SHOW);
}
else // 显示全部资产记录
{
// 隐藏列表
GetDlgItem(IDC_SEARCH_DATACOMBO)->ShowWindow(SW_HIDE);
}
cSearchValue = m_search.GetBoundText();
UpdateData(FALSE);
//刷新记录
RefreshData();
}
void CDistributeManDlg::OnModiButton()
{
if (m_adodc1.GetRecordset().GetEof())
{
MessageBox("没有数据");
return;
}
// 定义固定资产分配对话框对象并设置成员变量
CDistributeEditDlg dlg;
dlg.cAid = m_DataGrid.GetItem(0); // 记录编号
dlg.m_aid = m_DataGrid.GetItem(0);
dlg.cDepId = m_DataGrid.GetItem(6); // 部门编号
dlg.cDepName = m_DataGrid.GetItem(2); // 部门名称
dlg.m_assets = m_DataGrid.GetItem(1); // 资产名称
dlg.m_name = m_DataGrid.GetItem(3); // 负责人
dlg.cDate = m_DataGrid.GetItem(4); // 创建日期
if(dlg.DoModal()==IDOK)
RefreshData();
}
void CDistributeManDlg::OnDelButton()
{
if (m_adodc1.GetRecordset().GetEof())
{
MessageBox("请选择要删除的数据");
return;
}
//要求用户确认是否删除记录
if (MessageBox("是否删除当前记录?","请确认", MB_YESNO) == IDYES)
{
CDistribute dis;
dis.sql_Delete(m_DataGrid.GetItem(0));
RefreshData();
}
}
void CDistributeManDlg::OnAuditButton()
{
if (m_adodc1.GetRecordset().GetEof())
{
MessageBox("请选择要审核的数据");
return;
}
// 将记录状态更新为使用中
CAssets ast;
ast.Status = "使用中";
ast.sql_Status(m_DataGrid.GetItem(0));
RefreshData();
}
BEGIN_EVENTSINK_MAP(CDistributeManDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CDistributeManDlg)
ON_EVENT(CDistributeManDlg, IDC_DATAGRID1, -600 /* Click */, OnClickDatagrid1, VTS_NONE)
ON_EVENT(CDistributeManDlg, IDC_SEARCH_DATACOMBO, -600 /* Click */, OnClickSearchDatacombo, VTS_I2)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CDistributeManDlg::OnClickDatagrid1()
{
// TODO: Add your control notification handler code here
ButtonEnable();
}
void CDistributeManDlg::OnClickSearchDatacombo(short Area)
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
cSearchValue = m_search.GetBoundText();
RefreshData();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -