?? assetsdlg.cpp
字號:
// AssetsDlg.cpp : implementation file
//
#include "stdafx.h"
#include "AssetsMan.h"
#include "AssetsDlg.h"
#include "AssetsEditDlg.h"
#include "Assets.h"
#include "columns.h"
#include "column.h"
#include "COMDEF.H"
#include "_recordset.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAssetsDlg dialog
CAssetsDlg::CAssetsDlg(CWnd* pParent /*=NULL*/)
: CDialog(CAssetsDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CAssetsDlg)
//}}AFX_DATA_INIT
}
void CAssetsDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAssetsDlg)
DDX_Control(pDX, IDC_TYPE_COMBO, m_type);
DDX_Control(pDX, IDC_ADODC1, m_Adodc);
DDX_Control(pDX, IDC_DATAGRID1, m_DataGrid);
DDX_Control(pDX, IDC_ADODC2, m_AdoSch);
DDX_Control(pDX, IDC_SEARCH_DATACOMBO, m_search);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAssetsDlg, CDialog)
//{{AFX_MSG_MAP(CAssetsDlg)
ON_CBN_SELCHANGE(IDC_TYPE_COMBO, OnSelchangeTypeCombo)
ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
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()
/////////////////////////////////////////////////////////////////////////////
// CAssetsDlg message handlers
// 刷新DataGrid數據,顯示資產信息
void CAssetsDlg::RefreshData()
{
CString csql;
csql = "SELECT a.Id AS 編號,a.Aid AS 資產編號,a.Aname AS 資產名稱,a.TypeId,";
csql += "t.TypeName AS 類型,a.Status AS 狀態,a.Model AS 型號,a.Producer AS 生產廠商,";
csql += "a.UseDate AS 使用日期,a.UsedYear AS 使用年限,a.OrgPrice AS 原值,a.Ratio AS 殘值率,";
csql += "a.DeptId, d.DeptName AS 使用部門,a.RepPerson AS 負責人,";
csql += "a.AddWay AS 增加方式,a.PostDate AS 提交日期,";
csql += "a.IsAudit,(CASE WHEN a.IsAudit=0 THEN '未審核' WHEN a.IsAudit=1 THEN '審核' WHEN a.IsAudit=2 THEN '變更' END) AS 是否審核";
csql += " FROM Assets a,Departments d,Type t ";
csql += " WHERE a.TypeId=t.TypeId AND a.DeptId=d.DeptId";
// 判斷查詢條件
if (m_SearchValue == "")
m_SearchValue = "0";
if(m_type.GetCurSel() == 1) //按類別查詢
csql = csql + " AND a.TypeId=" + m_SearchValue;
else if(m_type.GetCurSel() == 2) //按部門查詢
csql = csql + " AND a.DeptId=" + m_SearchValue;
//設置記錄源
m_Adodc.SetRecordSource(csql);
m_Adodc.Refresh();
//設置列寬度
_variant_t vIndex;
vIndex = long(0);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex = long(1);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex = long(2);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(3);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
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(100);
vIndex = long(8);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(70);
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);
vIndex = long(12);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex = long(13);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(14);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex = long(15);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex = long(16);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(70);
vIndex = long(17);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex = long(18);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
//根據當前記錄的狀態決定按鈕控件的情況
ButtonEnable();
}
void CAssetsDlg::ButtonEnable()
{
// 如果此記錄已經審批,則編輯、刪除和審核功能失效
// 如果此記錄已經變更,則編輯和刪除功能失效
if (!m_Adodc.GetRecordset().GetEof())
{
if(m_DataGrid.GetItem(17)=="0")
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(TRUE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(TRUE);
GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(TRUE);
}
else if(m_DataGrid.GetItem(17)=="1")
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(FALSE);
}
else if(m_DataGrid.GetItem(17)=="2")
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(TRUE);
}
}
else
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_AUDIT_BUTTON)->EnableWindow(FALSE);
}
}
BEGIN_EVENTSINK_MAP(CAssetsDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CAssetsDlg)
ON_EVENT(CAssetsDlg, IDC_DATAGRID1, -600 /* Click */, OnClickDatagrid1, VTS_NONE)
// ON_EVENT(CAssetsDlg, IDC_SEARCH_DATACOMBO, -600 /* Click */, OnClickSearchDatacombo, VTS_I2)
ON_EVENT(CAssetsDlg, IDC_SEARCH_DATACOMBO, 1 /* Change */, OnChangeSearchDatacombo, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CAssetsDlg::OnClickDatagrid1()
{
// TODO: Add your control notification handler code here
ButtonEnable();
}
BOOL CAssetsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 顯示全部資產信息
m_type.SetCurSel(0);
// 全部情況下隱藏DATACOMBO
m_search.ShowWindow(SW_HIDE);
// 刷新列表
RefreshData();
return TRUE;
}
// 更改查詢條件時刷新數據列表中內容
void CAssetsDlg::OnSelchangeTypeCombo()
{
int iSel;
iSel = m_type.GetCurSel(); //讀取選擇的查詢類別
// 置查詢列表初始為空
m_search.SetText("");
if (iSel == 1) // 按類別查詢
{
// 設置數據源(為查詢列表提供數據源)
m_AdoSch.SetRecordSource("SELECT * FROM Type");
m_AdoSch.Refresh();
// 設置顯示列和綁定列
m_search.SetListField("TypeName");
m_search.SetBoundColumn("TypeId");
m_search.Refresh();
// 顯示列表
GetDlgItem(IDC_SEARCH_DATACOMBO)->ShowWindow(SW_SHOW);
}
else if (iSel == 2) // 按部門查詢
{
// 設置數據源(為查詢列表提供數據源)
m_AdoSch.SetRecordSource("SELECT * FROM Departments");
m_AdoSch.Refresh();
// 設置顯示列和綁定列
m_search.SetListField("DeptName");
m_search.SetBoundColumn("DeptId");
m_search.Refresh();
GetDlgItem(IDC_SEARCH_DATACOMBO)->ShowWindow(SW_SHOW);
}
else // 顯示全部資產記錄
{
// 隱藏列表
GetDlgItem(IDC_SEARCH_DATACOMBO)->ShowWindow(SW_HIDE);
}
UpdateData(FALSE);
//刷新記錄
RefreshData();
}
// 添加新的資產信息
void CAssetsDlg::OnAddButton()
{
// 定義資產編輯對話框并設置變量m_cId為空字符串
CAssetsEditDlg dlg;
dlg.m_cId = "";
if(dlg.DoModal()==IDOK)
RefreshData();
}
// 編輯資產信息
void CAssetsDlg::OnModiButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("沒有可以編輯的數據!");
return;
}
// 定義資產編輯對話框并當前記錄值給編輯對話框
CAssetsEditDlg dlg;
dlg.m_cId = m_DataGrid.GetItem(0);
CString aa;
aa=m_DataGrid.GetItem(1);
dlg.m_Aid = m_DataGrid.GetItem(1);
dlg.m_cAid = dlg.m_Aid;
dlg.m_Aname = m_DataGrid.GetItem(2);
dlg.m_cAname = dlg.m_Aname;
// 設置類別編號和狀態
dlg.m_strTypeId = m_DataGrid.GetItem(3);
dlg.m_strStatus = m_DataGrid.GetItem(5);
dlg.m_Model = m_DataGrid.GetItem(6);
dlg.m_Producer = m_DataGrid.GetItem(7);
// 設置使用日期
dlg.m_strUseDate = m_DataGrid.GetItem(8);
dlg.m_UseYear = atoi(m_DataGrid.GetItem(9));
dlg.m_OrgPrice = atof(m_DataGrid.GetItem(10));
dlg.m_Ratio = atof(m_DataGrid.GetItem(11));
// 設置部門編號
dlg.m_strDeptId = m_DataGrid.GetItem(12);
dlg.m_RepPerson = m_DataGrid.GetItem(14);
// 設置增加方式
dlg.m_strAddWay = m_DataGrid.GetItem(15);
dlg.m_PostDate = m_DataGrid.GetItem(16);
UpdateData(FALSE);
if(dlg.DoModal()==IDOK)
RefreshData();
}
// 刪除資產信息
void CAssetsDlg::OnDelButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("請選擇要刪除的數據");
return;
}
//要求用戶確認是否刪除記錄
if (MessageBox("是否刪除當前記錄?","請確認", MB_YESNO) == IDYES)
{
CAssets ast;
CString sss=m_DataGrid.GetItem(0);
ast.Delete(m_DataGrid.GetItem(0));
RefreshData();
}
}
// 審核資產信息
void CAssetsDlg::OnAuditButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("沒有待審核數據!");
return;
}
// 審核資產,更改數據庫表Assets中字段IsAudit為1
CAssets cAst;
cAst.Audit(m_DataGrid.GetItem(0));
m_SearchValue = "";
RefreshData();
ButtonEnable();
}
void CAssetsDlg::OnClickSearchDatacombo()
{
// 得到選擇的列值,刷新記錄
/* m_SearchValue = m_search.GetBoundText();
if(m_SearchValue != "")
RefreshData();*/
}
void CAssetsDlg::OnChangeSearchDatacombo()
{
m_SearchValue = m_search.GetBoundText();
if(m_SearchValue != "")
RefreshData();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -