📄 repairmandlg.cpp
字号:
// RepairManDlg.cpp : implementation file
//
#include "stdafx.h"
#include "AssetsMan.h"
#include "RepairManDlg.h"
#include "Repair.h"
#include "RepairEditDlg.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
/////////////////////////////////////////////////////////////////////////////
// CRepairManDlg dialog
CRepairManDlg::CRepairManDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRepairManDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRepairManDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CRepairManDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRepairManDlg)
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(CRepairManDlg, CDialog)
//{{AFX_MSG_MAP(CRepairManDlg)
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_FINISH_BUTTON, OnFinishButton)
ON_CBN_SELCHANGE(IDC_TYPE_COMBO, OnSelchangeTypeCombo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRepairManDlg message handlers
void CRepairManDlg::Refreshdata()
{
// 刷新记录
CString csql,cSts;
int iSel;
csql = "SELECT r.Id, r.Aid AS 资产编号, a.Aname AS 资产名称, t.TypeName AS 类别,";
csql += " r.RepairDate AS 维修日期, r.Unit AS 维修单位,";
csql += " (CASE WHEN r.Status=0 Then '已经送修' Else '维修完毕' END) AS 状态,";
csql += " r.Total AS 维修费用, r.PostDate AS 提交日期, r.Reason, r.Result, r.Status ";
csql += " FROM Repair r, Assets a, Type t ";
csql += "WHERE r.Aid=a.Aid AND a.TypeId = t.TypeId";
if(m_Type.GetCurSel()!=0)
{
iSel = m_Type.GetCurSel()-1;
cSts.Format("%d",iSel);
csql += " And r.Status="+cSts;
}
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(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(80);
vIndex = long(6);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(50);
vIndex = long(7);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(50);
vIndex = long(8); // 费用
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(60);
vIndex = long(9); // 原因
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex = long(10); // 结果
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex = long(11); // 状态值
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
EnableButton();
}
void CRepairManDlg::EnableButton()
{
// 如果状态值为1或不存在记录,则不能修改、删除和更改记录状态
if (m_Adodc.GetRecordset().GetEof())
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_FINISH_BUTTON)->EnableWindow(FALSE);
}
else
if (atoi(m_DataGrid.GetItem(11)) == 1)
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(FALSE);
GetDlgItem(IDC_FINISH_BUTTON)->EnableWindow(FALSE);
}
else
{
GetDlgItem(IDC_MODI_BUTTON)->EnableWindow(TRUE);
GetDlgItem(IDC_DEL_BUTTON)->EnableWindow(TRUE);
GetDlgItem(IDC_FINISH_BUTTON)->EnableWindow(TRUE);
}
}
BOOL CRepairManDlg::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 CRepairManDlg::OnAddButton()
{
CRepairEditDlg dlg;
// 变量cRId=""表示添加新的记录
dlg.cId = "";
// 设置提交时间
CTime t = CTime::GetCurrentTime(); //读取系统时间
CString cPdate;
cPdate.Format("%04d-%02d-%02d",t.GetYear(),t.GetMonth(),t.GetDay());
dlg.m_PostDate = cPdate;
dlg.m_RepairDate = t; //设置维修日期为当天
dlg.m_Status = "已经送修";
if(dlg.DoModal()==IDOK)
Refreshdata();
}
void CRepairManDlg::OnModiButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("请选择要修改的数据");
return;
}
// 变量cRId表示记录编号
CRepairEditDlg dlg;
dlg.cId = m_DataGrid.GetItem(0); //维修记录编号
dlg.m_Aid = m_DataGrid.GetItem(1); //固定资产编号
dlg.m_Aname = m_DataGrid.GetItem(2); //固定资产名称
dlg.m_PostDate = m_DataGrid.GetItem(8); //提交日期
// 字符串转换为日期
int yy, mm, dd;
yy=atoi(m_DataGrid.GetItem(4).Left(4)); //维修日期
mm=atoi(m_DataGrid.GetItem(4).Mid(6,2));
dd=atoi(m_DataGrid.GetItem(4).Right(2));
CTime tt(yy,mm,dd,0,0,0);
dlg.m_RepairDate = tt;
dlg.m_Unit = m_DataGrid.GetItem(5); //维修单位
dlg.m_Status = m_DataGrid.GetItem(6); //当前状态
dlg.m_Total = atof(m_DataGrid.GetItem(7)); //维修费用
dlg.m_Reason = m_DataGrid.GetItem(9); //维修原因
dlg.m_Result = m_DataGrid.GetItem(10); //维修结果
if(dlg.DoModal()==IDOK)
Refreshdata();
}
void CRepairManDlg::OnDelButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("请选择要删除的数据");
return;
}
if (MessageBox("是否删除当前记录?","请确认", MB_YESNO) == IDYES)
{
CRepair obj;
obj.sql_Delete(m_DataGrid.GetItem(0));
Refreshdata();
}
}
void CRepairManDlg::OnFinishButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("请选择数据");
return;
}
if (MessageBox("维修完毕后记录将不能更改?","请确认", MB_YESNO) == IDYES)
{
CRepair obj;
obj.UpdateStatus(m_DataGrid.GetItem(0));
Refreshdata();
}
}
void CRepairManDlg::OnSelchangeTypeCombo()
{
// 更改查询条件同时刷新记录
Refreshdata();
}
BEGIN_EVENTSINK_MAP(CRepairManDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CRepairManDlg)
ON_EVENT(CRepairManDlg, IDC_DATAGRID1, -600 /* Click */, OnClickDatagrid1, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CRepairManDlg::OnClickDatagrid1()
{
EnableButton();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -