public void addSectionLine() {
cReportSection sec = null;
CSReportPaint.cReportPaintObject paintObj = null;
cReportAspect aspect = null;
bool isGroup = false;
sec = pGetSection(out isGroup);
if (sec == null) { return; }
switch (sec.getTypeSection()) {
// in footers we add from top
// it means that the first section line is the last one
//
case csRptTypeSection.CSRPTTPSCFOOTER:
case csRptTypeSection.CSRPTTPMAINSECTIONFOOTER:
aspect = sec.getSectionLines().add(null, "", 1).getAspect();
aspect.setHeight(cGlobals.C_HEIGHT_NEW_SECTION);
aspect.setWidth(sec.getAspect().getWidth());
// for new sections the top is the top of the previous section
// plus cGlobals.C_HEIGHT_NEW_SECTION
//
aspect.setTop(sec.getSectionLines().item(1).getAspect().getTop() - cGlobals.C_HEIGHT_NEW_SECTION);
break;
default:
// because the height of the sections is calculated
// in pChangeHeightSection which is called by moveSection
// which is called by pAddSectionLinesAux, and on this
// function, the height of the section line is set with
// the result of substract to the height of the section
// the sum of every section line except the height of the
// last one section line, if we don't modify the height
// of the section the new section line will have an height
// of zero (actually the minimum height is 1 pixel).
//
// for this reazon we change the height of the section
// but this will fail because the moveSection function
// get the height of the section line from the difference
// between the height of the section and the new height
// which results of moving the section.
//
// To solve the problem we have this member variable
// which is used to instruct moveSection to add
// to the section height the size of the new section line
//
m_newSecLineOffSet = cGlobals.C_HEIGHT_NEW_SECTION;
aspect = sec.getSectionLines().add().getAspect();
aspect.setHeight(cGlobals.C_HEIGHT_NEW_SECTION);
aspect.setWidth(sec.getAspect().getWidth());
break;
}
aspect = sec.getAspect();
aspect.setHeight(aspect.getHeight() + cGlobals.C_HEIGHT_NEW_SECTION);
pAddSectionLinesAux(sec, paintObj);
// we reset this variable to zero
//
m_newSecLineOffSet = 0;
}