📄 docmandlg.cpp
字号:
// DocManDlg.cpp : implementation file
//
#include "stdafx.h"
#include "HosptialMan.h"
#include "DocManDlg.h"
#include "DocEditDlg.h"
#include "Doctor.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
/////////////////////////////////////////////////////////////////////////////
// CDocManDlg dialog
CDocManDlg::CDocManDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDocManDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDocManDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CDocManDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDocManDlg)
DDX_Control(pDX, IDC_SEL_COMBO, m_Sel);
DDX_Control(pDX, IDC_ADODC1, m_Adodc);
DDX_Control(pDX, IDC_ADODC2, m_AdoDept);
DDX_Control(pDX, IDC_DATACOMBO1, m_Dept);
DDX_Control(pDX, IDC_DATAGRID1, m_DataGrid);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDocManDlg, CDialog)
//{{AFX_MSG_MAP(CDocManDlg)
ON_CBN_SELCHANGE(IDC_SEL_COMBO, OnSelchangeSelCombo)
ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
ON_BN_CLICKED(IDC_EDIT_BUTTON, OnEditButton)
ON_BN_CLICKED(IDC_DELT_BUTTON, OnDeltButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDocManDlg message handlers
void CDocManDlg::RefreshData()
{
// 刷新记录
CString cSql;
cSql = "SELECT d.Id, d.Name AS 姓名, d.Sex AS 性别, d.Age AS 年龄,";
cSql += " b.TypeName AS 科室, d.DeptId,d.Title AS 职务 ";
cSql += "FROM Doctor d,BaseType b WHERE b.TypeId=1 AND d.DeptId=b.Id";
// 查询条件(科室)是否为空
CString cDeptId;
if(m_Sel.GetCurSel()==1)
{
cDeptId = m_Dept.GetBoundText();
if(cDeptId!="")
cSql += " AND d.DeptId=" + cDeptId;
}
// MessageBox(cSql);
m_Adodc.SetRecordSource((LPCTSTR)(_bstr_t)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(50);
vIndex = long(3); // 年龄
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(50);
vIndex = long(4); // 科室
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(80);
vIndex = long(5);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(0);
vIndex = long(6); // 职务
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(120);
}
BOOL CDocManDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置查询条件为全部医生信息
m_Sel.SetCurSel(0);
// 当查询条件为全部医生信息时,不显示科室信息
GetDlgItem(IDC_DATACOMBO1)->ShowWindow(SW_HIDE);
RefreshData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDocManDlg::OnSelchangeSelCombo()
{
// 选择全部时,则显示后面的组合框,否则将其隐藏
if(m_Sel.GetCurSel()==0)
GetDlgItem(IDC_DATACOMBO1)->ShowWindow(SW_HIDE);
else
GetDlgItem(IDC_DATACOMBO1)->ShowWindow(SW_SHOW);
//数据刷新
RefreshData();
}
BEGIN_EVENTSINK_MAP(CDocManDlg, CDialog)
//{{AFX_EVENTSINK_MAP(CDocManDlg)
ON_EVENT(CDocManDlg, IDC_DATACOMBO1, -600 /* Click */, OnClickDatacombo1, VTS_I2)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CDocManDlg::OnClickDatacombo1(short Area)
{
// 得到选择的列值,刷新记录
if(m_Dept.GetBoundText()!="")
RefreshData();
}
void CDocManDlg::OnAddButton()
{
CDocEditDlg dlg;
dlg.cDId = "";
if(dlg.DoModal()==IDOK)
RefreshData();
}
void CDocManDlg::OnEditButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("没有数据");
return;
}
// 定义固定资产对象并设置变量cId为空字符串
CDocEditDlg dlg;
dlg.cDId = m_DataGrid.GetItem(0); //编号
dlg.m_Name = m_DataGrid.GetItem(1); //姓名
dlg.cSex = m_DataGrid.GetItem(2); //性别
dlg.m_Age = atoi(m_DataGrid.GetItem(3)); //年龄
dlg.cDeptId = m_DataGrid.GetItem(5); //部门编号
dlg.m_Title = m_DataGrid.GetItem(6); //职务
if(dlg.DoModal()==IDOK)
RefreshData();
}
void CDocManDlg::OnDeltButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("请选择要删除的数据");
return;
}
if (MessageBox("是否删除当前记录?","请确认", MB_YESNO) == IDYES)
{
CDoctor doct;
doct.sql_Delete(m_DataGrid.GetItem(0));
RefreshData();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -