// Define static class members
int CMortCalcDlg::month(1);
int CMortCalcDlg::year(1);
// not shown: vTitleLine(ostream &stream, void *data, int page_num)
// ...
void CMortCalcDlg::vPaymentLine(ostream &stream, void *data)
{
LoanPayment *payment = (LoanPayment *)data;
stream << "<TR align=right>" << endl;
stream <<"<TD>" << "Year " << year << " Month " << month
<< "</TD>" <<endl;
stream << "<TD>" << payment->dPrincipal << "</TD>" << endl;
stream << "<TD>" << payment->dInterest << "</TD>" << endl;
stream << "<TD>" << payment->dAmountRemaining << "</TD>"
<< endl;
stream << "</TR>" << endl;
month++;
// Use static class members to keep track of the current month
// and year.
if (month == 12)
{
month = 1;
year++;
}
}
void CMortCalcDlg::vTotalLine(ostream &stream, void *data)
{
CMortTotal *total = (CMortTotal *)data;
stream << "<TR align=right>" << endl;
stream <<"<TH>" << total->GetPaymentInfo() << "</TH>" <<endl;
stream << "<TH>" << total->GetTotalPrincipal() << "</TH>"
<< endl;
stream << "<TH>" << total->GetTotalInterest() << "</TH>"
<< endl;
stream << "<TH>" << "" << "</TH>" << endl;
stream << "</TR>" << endl;
}
void
CMortCalcDlg::vFooterLine(ostream &stream,
void *data, int page_num)
{
// There is no Footer for this report
}