/// <summary> /// print the lowest level (has no child levels) /// </summary> /// <param name="row"></param> /// <returns></returns> protected override Boolean PrintLowestLevel(TResult row) { Boolean ReturnValue; String descr0 = ""; String descr1 = ""; if (!FPrinter.ValidYPos()) { // not enoughSpace ReturnValue = false; FNextElementToPrint = row.childRow; FNextElementLineToPrint[row.depth] = eStageElementPrinting.eDetails; } else { // can either print descr or header if ((row.descr != null) && (row.descr[0].ToString().Length > 0)) { descr0 = row.descr[0].ToString(); } else if ((row.header != null) && (row.header[0].ToString().Length > 0)) { descr0 = row.header[0].ToString(); } if ((row.descr != null) && (row.descr[1].ToString().Length > 0)) { descr1 = row.descr[1].ToString(); } else if ((row.header != null) && (row.header[1].ToString().Length > 0)) { descr1 = row.header[1].ToString(); } FPrinter.PrintString(descr0, eFont.eDefaultFont, GetPosition(ReportingConsts.COLUMNLEFT + 1, row.depth, FPrinter.Cm(COLUMNLEFT1_POS)), GetWidth(ReportingConsts.COLUMNLEFT + 1, row.depth, FPrinter.Cm(1)), GetAlignment(ReportingConsts.COLUMNLEFT + 1, row.depth, eAlignment.eLeft)); FPrinter.PrintString(descr1, eFont.eDefaultFont, GetPosition(ReportingConsts.COLUMNLEFT + 2, row.depth, FPrinter.Cm(COLUMNLEFT2_POS)), GetWidth(ReportingConsts.COLUMNLEFT + 2, row.depth, FPrinter.Cm(3)), GetAlignment(ReportingConsts.COLUMNLEFT + 2, row.depth, eAlignment.eLeft)); PrintColumns(row); FNextElementLineToPrint[row.depth] = eStageElementPrinting.eFinished; ReturnValue = true; } return(ReturnValue); }
/// <summary> /// can either print or simulate /// </summary> /// <returns>s the current y position after printing or simulating /// </returns> protected override double PrintNormalLevelFooter(TResult row) { Boolean linePrinted; linePrinted = false; // footer if (FParameters.Get("SpaceLineAbove", -1, row.depth, eParameterFit.eExact).ToBool() == true) { FPrinter.LineSpaceFeed(eFont.eDefaultFont); } if (FParameters.Get("FullLineAbove", -1, row.depth, eParameterFit.eExact).ToBool() == true) { FPrinter.DrawLine(FPrinter.LeftMargin, FPrinter.Width, eLinePosition.eAbove, eFont.eDefaultFont); FPrinter.LineSpaceFeed(eFont.eDefaultFont); } FPrinter.PrintString(row.descr[0].ToString(), eFont.eDefaultFont, GetPosition(ReportingConsts.COLUMNLEFT + 1, row.depth, FPrinter.Cm(COLUMNLEFT1_POS)), GetWidth(ReportingConsts.COLUMNLEFT + 1, row.depth, FPrinter.Cm(3)), GetAlignment(ReportingConsts.COLUMNLEFT + 1, row.depth, eAlignment.eLeft)); PrintColumns(row); linePrinted = FPrinter.PrintString(row.descr[1].ToString(), eFont.eDefaultFont, GetPosition(ReportingConsts.COLUMNLEFT + 1, row.depth, FPrinter.Cm(COLUMNLEFT1_POS)), GetWidth(ReportingConsts.COLUMNLEFT + 1, row.depth, FPrinter.Cm(3)), GetAlignment(ReportingConsts.COLUMNLEFT + 1, row.depth, eAlignment.eLeft)); if (linePrinted) { FPrinter.LineFeed(eFont.eDefaultFont); } if (FParameters.Get("FullLineBelow", -1, row.depth, eParameterFit.eExact).ToBool() == true) { FPrinter.DrawLine(FPrinter.LeftMargin, FPrinter.Width, eLinePosition.eAbove, eFont.eDefaultFont); FPrinter.LineSpaceFeed(eFont.eDefaultFont); } if (FParameters.Get("SpaceLineBelow", -1, row.depth, eParameterFit.eExact).ToBool() == true) { FPrinter.LineSpaceFeed(eFont.eDefaultFont); } FNextElementLineToPrint[row.depth] = eStageElementPrinting.eFinished; return(FPrinter.CurrentYPos); }
/// <summary> /// print the header of a normal level /// </summary> /// <param name="row"></param> /// <returns></returns> protected override Boolean PrintNormalLevelHeader(TResult row) { Boolean ReturnValue; Boolean linePrinted; if (!FPrinter.ValidYPos()) { // not enoughSpace FNextElementToPrint = row.childRow; FNextElementLineToPrint[row.depth] = eStageElementPrinting.eHeader; ReturnValue = false; } else { linePrinted = FPrinter.PrintString(row.header[0].ToString(), eFont.eDefaultFont, GetPosition(ReportingConsts.HEADERCOLUMN + 1, row.depth, FPrinter.Cm(COLUMNLEFT1_POS)), GetWidth(ReportingConsts.HEADERCOLUMN + 1, row.depth, FPrinter.Cm(3)), GetAlignment(ReportingConsts.HEADERCOLUMN + 1, row.depth, eAlignment.eLeft)); linePrinted = FPrinter.PrintString(row.header[1].ToString(), eFont.eDefaultFont, GetPosition(ReportingConsts.HEADERCOLUMN + 2, row.depth, FPrinter.Cm(COLUMNLEFT2_POS)), GetWidth(ReportingConsts.HEADERCOLUMN + 2, row.depth, FPrinter.Cm(3)), GetAlignment(ReportingConsts.HEADERCOLUMN + 1, row.depth, eAlignment.eLeft)) || linePrinted; if (linePrinted) { FPrinter.LineFeed(eFont.eDefaultFont); } ReturnValue = true; } FNextElementLineToPrint[row.depth] = eStageElementPrinting.eDetails; return(ReturnValue); }