public csRptNewPageResult newPage()
{
cReportPage page = m_pages.add(null, "");
page.setPageNumber(m_pages.count());
// if the user has canceled we return an error
//
if (!OnProgress("", m_pages.count(), 0, 0))
{
return csRptNewPageResult.CSRPTNPERROR;
}
// if it is the first page we evaluate the headers of the report
//
if (m_pages.count() == 1)
{
evalFunctions(C_IDX_GROUP_REPORTHEADER, csRptWhenEval.CSRPTEVALPRE);
}
// only formulas located in header sections
//
evalFunctions(C_IDX_GROUP_HEADER, csRptWhenEval.CSRPTEVALPRE);
// add field from every header to the page
//
addFieldToNewPage(m_headers, page, C_HEADERS);
// only formulas located in header sections
//
evalFunctions(C_IDX_GROUP_HEADER, csRptWhenEval.CSRPTEVALPOST);
// if it is the first page we evaluate the headers of the report
//
if (m_pages.count() == 1)
{
evalFunctions(C_IDX_GROUP_REPORTHEADER, csRptWhenEval.CSRPTEVALPOST);
}
// we need to set height of headears an footers
//
page.setHeaderBottom(getHeightHeader());
page.setFooterTop(getTopFooter());
if (m_rows == null)
{
return csRptNewPageResult.CSRPTNPEND;
}
else if (m_iRow > m_lastRowIndex)
{
return csRptNewPageResult.CSRPTNPEND;
}
// if there are group headers which need to be reprinted
// in the new page
//
if (m_bExistsGrpToRePrintInNP)
{
m_bHaveToRePrintGroup = true;
// set on the flag to know we need to re-print group headers
//
pMarkGroupHeadersToReprint();
}
return csRptNewPageResult.CSRPTNPSUCCESS;
}