#include "FinanceBook.h"
#include "AccountDaily.h"
// CAccountDaily 對話框
IMPLEMENT_DYNAMIC(CAccountDaily, CDialog)
CAccountDaily::CAccountDaily(CWnd* pParent /*=NULL*/)
: CDialog(CAccountDaily::IDD, pParent)
{
EnableAutomation();
}
CAccountDaily::~CAccountDaily()
{
}
void CAccountDaily::OnFinalRelease()
{
// 釋放了對自動化對象的最後壹個引用後,將調用
// OnFinalRelease。基類將自動
// 刪除該對象。在調用該基類之前,請添加您的
// 對象所需的附加清理代碼。
CDialog::OnFinalRelease();
}
void CAccountDaily::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAccountDaily, CDialog)
ON_BN_CLICKED(IDOK, &CAccountDaily::OnBnClickedOk)
END_MESSAGE_MAP()
BEGIN_DISPATCH_MAP(CAccountDaily, CDialog)
END_DISPATCH_MAP()
// 註意: 我們添加 IID_IAccountDaily 支持
// 以支持來自 VBA 的類型安全綁定。此 IID 必須同附加到 .IDL 文件中的
// 調度接口的 GUID 匹配。
// {535CE23C-51E3-4FD9-96FB-DB8A8C13BE92}
static const IID IID_IAccountDaily =
{ 0x535CE23C, 0x51E3, 0x4FD9, { 0x96, 0xFB, 0xDB, 0x8A, 0x8C, 0x13, 0xBE, 0x92 } };
BEGIN_INTERFACE_MAP(CAccountDaily, CDialog)
INTERFACE_PART(CAccountDaily, IID_IAccountDaily, Dispatch)
END_INTERFACE_MAP()
// CAccountDaily 消息處理程序
BOOL CAccountDaily::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加額外的初始化
CButton *pRadioButton = (CButton*)GetDlgItem(IDC_PAYOUT);
pRadioButton->SetCheck(true);
CButton *pCheckBox = (CButton*)GetDlgItem(IDC_FORMAT_DAILY);
pCheckBox->SetCheck(true);
return TRUE; // return TRUE unless you set the focus to a control
// 異常: OCX 屬性頁應返回 FALSE
}
void CAccountDaily::CheckEnter()
{
//該函數的作用是檢查輸入格式,判斷RadioButton和CheckBox的狀態
CButton *pRadioButton = (CButton*)GetDlgItem(IDC_PAYOUT);
CButton *pCheckBox = (CButton*)GetDlgItem(IDC_FORMAT_DAILY);
int IsRadioButtonChecked = pRadioButton->GetCheck(),
IsCheckBox = pCheckBox->GetCheck();
GetDlgItemText(IDC_DATE_DAILY,dateTime);
GetDlgItemText(IDC_RESUME,resume);
GetDlgItemText(IDC_AMOUNT_DAILY,amount);
GetDlgItemText(IDC_REMARK_DAILY,remark);
if(!resume.GetLength())
{
MessageBox(L"費用摘要 不能為空! ",L"重要提示",MB_ICONWARNING);
GetDlgItem(IDC_RESUME)->SetFocus();
}
else if(!amount.GetLength())
{
MessageBox(L"發生金額 不能為空! ",L"重要提示",MB_ICONWARNING);
GetDlgItem(IDC_AMOUNT_DAILY)->SetFocus();
}
else
{
if(IsRadioButtonChecked)
type = L"支出";
else
type = L"收入";
int dot = 0, space = 0, ch = 0;
CString str;
for(int index = 0; index != amount.GetLength(); ++index)
{
if(amount.GetAt(index) == '.')
dot++;
if(amount.GetAt(index) == ' ')
space++;
if(amount.GetAt(index) < '0' || amount.GetAt(index) > '9')
{
str = amount.GetAt(index);
ch++;
}
}
if(ch > 0)
{
/***BUG:當字串中有其他字符,形如“a.6”時,會認為格式正確。***/
if(str != '.' && str != ' ' || (space > 0 || dot > 1) )
{
MessageBox(L"金額格式有誤,請您檢查輸入! ",L"重要提示",MB_ICONWARNING);
amountIsRigth = false;
GetDlgItem(IDC_AMOUNT_DAILY)->SetFocus();
}
else
amountIsRigth = true;
}
if(IsCheckBox)
amount = L"¥" + amount;
}
}
void CAccountDaily::OnBnClickedOk()
{
// TODO: 在此添加控件通知處理程序代碼
//OnOK();
CheckEnter();
if(resume.GetLength() && amount.GetLength() && amountIsRigth)
MessageBox(dateTime + L"\n\n" + resume + L"\n\n" + type + L"\n\n" + amount + L"\n\n" + remark);
}