Curso de C++ diseño de sistema de información de gestión de pequeños hoteles
#include "stdafx.h"
#include "FinanceBook.h"
#include "AccountDaily.h"
/ / Cuadro de diálogo CAccountDaily
IMPLEMENT_DYNAMIC(CAccountDaily, CDialog)
CAccountDaily::CAccountDaily(CWnd* pParent /*=NULL*/)
: CDialog(CAccountDaily ::IDD, pParent)
{
EnableAutomation();
}
CAccountDaily::~CAccountDaily()
{
}
void CAccountDaily::OnFinalRelease()
{
// Libera la retención de la automatización objeto Después de la última referencia,
// Se llamará a OnFinalRelease. La clase base automáticamente
// eliminará el objeto. Antes de llamar a esta clase base, agregue cualquier código de limpieza adicional necesario para su
// objeto.
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()
// Nota: agregamos soporte IID_IAccountDaily
// Para admitir el enlace con seguridad de tipos desde VBA. Este IID debe coincidir con el GUID adjunto a la interfaz de envío
// en el archivo .IDL.
// {535CE23C-51E3-4FD9-96FB-DB8A8C13BE92}
const estática 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()
// Controlador de mensajes CAccountDaily
BOOL CAccountDaily::OnInitDialog()
{
CDialog::OnInitDialog( ) ;
// TODO: Agregue inicialización adicional aquí
CButton *pRadioButton = (CButton*)GetDlgItem(IDC_PAYOUT);
pRadioButton->SetCheck (true) ;
CButton *pCheckBox = (CButton*)GetDlgItem(IDC_FORMAT_DAILY);
pCheckBox->SetCheck(true);
devuelve VERDADERO / / devuelve VERDADERO; a menos que establezca el foco en un control
// Excepción: la página de propiedades OCX debería devolver FALSE
}
void CAccountDaily::CheckEnter()
{
//La función de esta función es verificar el formato de entrada y determinar el estado de RadioButton y 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,cantidad); p >
GetDlgItemText(IDC_REMARK_DAILY,remark);
if(!resume.GetLength())
{
MessageBox(L"El resumen de costos ¡No puede ser nulo! ",L"IMPORTANTE",MB_ICONWARNING);
GetDlgItem(IDC_RESUME)->SetFocus();
}
else if(!amount.GetLength ( ))
{
MessageBox(L"¡El monto no puede estar vacío!",L"Recordatorio importante",MB_ICONWARNING);
GetDlgItem(IDC_AMOUNT_DAILY) - >SetFocus();
}
else
{
if(IsRadioButtonChecked)
tipo = L "gasto";
else
tipo = L"ingreso";
int punto = 0, espacio = 0, ch = 0;
CString str;
for(int index = 0; index != cantidad.GetLength(); ++index)
{
if ( cantidad.GetAt(index) == '.')
dot++;
if(amount.GetAt(index) == ' ')
espacio++ ;
if(amount.GetAt(index) < '0' || monto.GetAt(index) > '9')
{
str = monto .GetAt(index);
ch++;
}
}
if(ch > 0)
{
/***ERROR: Cuando hay otros caracteres en la cadena, como "a.6", el formato se considerará correcto ***/
si (str != '.' && str != ' ' || (espacio > 0 || punto > 1) )
{
MessageBox(L"El formato de la cantidad es . incorrecto, verifique su entrada ",L"IMPORTANT",MB_ICONWARNING);
cantidadIsRigth = false;
GetDlgItem(IDC_AMOUNT_DAILY)->SetFocus();
}
else
importeIsRigth = true;
}
if(IsCheckBox)
importe = L "¥" + monto;
}
}
void CAccountDaily::OnBnClickedOk()
{
// TODO: Agregue el código del controlador de notificación de control aquí
//OnOK();
CheckEnter();
if(resume.GetLength() && cantidad.GetLength() && cantidadIsRigth)
MessageBox(dateTime + L"\n\n" + currículum + L"\n\n" + tipo + L"\n\n" + cantidad + L"\n\n" + comentario);
}