예제 #1
0
        public void AddTextbox(Textbox reportItem, string value, Row row)
        {
            if (reportItem.InPageHeaderOrFooter())
            {
                return;
            }

            if (reportItem.IsTableOrMatrixCell(Report) ||
                reportItem.Top == null || reportItem.Left == null ||
                reportItem.Height == null || reportItem.Width == null)
            {
                return;
            }


            float topPosition  = reportItem.Top.Points;
            float leftPosition = reportItem.Left.Points;
            float height       = reportItem.CanGrow ? reportItem.RunTextCalcHeight(Report, g, row) : reportItem.Height.Points;
            float width        = reportItem.Width.Points;

            FillAbsolutePosition(reportItem, ref topPosition, ref leftPosition);
            float OriginalBottomPosition = topPosition + reportItem.Height.Points;
            float bottomPosition         = topPosition + height;
            float rightPosition          = leftPosition + width;

            topPosition = GetCellAboveRelativePosition(topPosition);

            var currentRow    = AddRow(topPosition, height);
            var currentColumn = AddColumn(leftPosition, width);

            ExcelCell currentCell = new ExcelCell(reportItem, value, currentRow, currentColumn);

            currentCell.OriginalBottomPosition = OriginalBottomPosition;
            SetCellStyle(currentCell, reportItem, row);
            Cells.Add(currentCell);
            currentCell.OriginalHeight       = height;
            currentCell.GrowedBottomPosition = topPosition + height;
        }