?? regmandlg.cpp
字號:
// RegManDlg.cpp : implementation file
//
#include "stdafx.h"
#include "HosptialMan.h"
#include "RegManDlg.h"
#include "RegEditDlg.h"
#include "Registration.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
/////////////////////////////////////////////////////////////////////////////
// CRegManDlg dialog
CRegManDlg::CRegManDlg(CWnd* pParent /*=NULL*/)
: CDialog(CRegManDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CRegManDlg)
m_RegDate = 0;
//}}AFX_DATA_INIT
}
void CRegManDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRegManDlg)
DDX_Control(pDX, IDC_ADODC1, m_Adodc);
DDX_DateTimeCtrl(pDX, IDC_REGDATE_DATETIMEPICKER, m_RegDate);
DDX_Control(pDX, IDC_REGISTRATION_DATAGRID, m_DataGrid);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRegManDlg, CDialog)
//{{AFX_MSG_MAP(CRegManDlg)
ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRegManDlg message handlers
void CRegManDlg::RefreshData()
{
CString cSql;
cSql = "SELECT r.RegId AS 單號, p.Name AS 患者姓名, b.TypeName AS 門診科室, d.Name AS 醫生, ps.SumReg AS 實收金額,";
cSql += " r.RegDate AS 登記日期 FROM Registration r, Patient p, Doctor d, BaseType b,";
cSql += " (SELECT RegId,Sum(PNum*Price) AS SumReg FROM PayItems GROUP BY RegId) ps";
cSql += " WHERE ps.RegId=r.RegId AND r.PatId=p.Id AND r.DocId=d.Id AND d.Id=b.Id ";
cSql += " AND b.TypeId=1 ORDER BY r.RegDate DESC";
m_Adodc.SetRecordSource(cSql);
m_Adodc.Refresh();
// 設置列寬度
_variant_t vIndex;
vIndex = long(0);
m_DataGrid.GetColumns().GetItem(vIndex).SetWidth(40);
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);
}
BOOL CRegManDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CTime t = CTime::GetCurrentTime();
m_RegDate = t; //設置登記日期為當天
UpdateData(false);
RefreshData(); //刷新記錄
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CRegManDlg::OnAddButton()
{
CRegEditDlg dlg;
// 取得表Registration中最大值作為這次門診登記的編號
CRegistration cReg;
RegistrationID.Format("%d",cReg.GetMaxId()); //插入一條空記錄
dlg.m_RegId = RegistrationID; //傳遞記錄編號
if(dlg.DoModal()==IDOK)
RefreshData();
}
void CRegManDlg::OnDeleteButton()
{
if (m_Adodc.GetRecordset().GetEof())
{
MessageBox("請選擇要刪除的記錄");
return;
}
if (MessageBox("是否刪除當前門診信息及收費記錄?","請確認", MB_YESNO) == IDYES)
{
CRegistration cReg;
cReg.sql_Delete(RegistrationID);
CDialog::OnCancel();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -