internal bool EmptyRow(RPLMeasurement[] repItemColl, bool ignoreLines, int rowIndex, bool renderHeight, ref int skipHeight)
        {
            int           i             = m_firstVisibleColumn;
            bool          result        = true;
            PageTableCell pageTableCell = null;

            for (; i < NrCols; i++)
            {
                pageTableCell = GetCell(i + rowIndex);
                if (!pageTableCell.InUse)
                {
                    continue;
                }
                RPLMeasurement measurement = pageTableCell.Measurement;
                if (measurement != null || !ignoreLines)
                {
                    result = false;
                    if (!renderHeight && skipHeight < pageTableCell.RowSpan)
                    {
                        skipHeight = pageTableCell.RowSpan;
                    }
                    break;
                }
            }
            return(result);
        }
        private bool FindRItemCell(RPLMeasurement currReportItem, ref int xCellFound, ref int yCellFound, double delta)
        {
            bool flag = false;
            int  num  = 0;
            int  num2 = 0;

            while (!flag && num < m_nrRows)
            {
                if (m_tableGrid[m_nrCols * num].YValue == (float)((double)currReportItem.Top - delta))
                {
                    for (num2 = 0; num2 <= m_nrCols - 1; num2++)
                    {
                        if (m_tableGrid[num2 + m_nrCols * num].XValue == currReportItem.Left)
                        {
                            flag       = true;
                            xCellFound = num2;
                            yCellFound = num;
                            break;
                        }
                    }
                }
                num++;
            }
            return(flag);
        }
        private void AttachVerticalBorder(int xCellFound, int yCellFound, RPLMeasurement measurement, RPLLine currReportItem, bool leftBorder)
        {
            int           num           = yCellFound;
            PageTableCell pageTableCell = m_tableGrid[xCellFound + num * m_nrCols];
            double        num2          = pageTableCell.DYValue.Value;

            if (leftBorder)
            {
                pageTableCell.BorderLeft = currReportItem;
            }
            else
            {
                pageTableCell.BorderRight = currReportItem;
            }
            while ((double)measurement.Height - num2 > 0.0001)
            {
                num++;
                if (num < m_nrRows)
                {
                    pageTableCell = m_tableGrid[xCellFound + num * m_nrCols];
                    num2         += (double)pageTableCell.DYValue.Value;
                    if (leftBorder)
                    {
                        pageTableCell.BorderLeft = currReportItem;
                    }
                    else
                    {
                        pageTableCell.BorderRight = currReportItem;
                    }
                    continue;
                }
                break;
            }
        }
示例#4
0
 internal static RectangleF GetMeasurementRectangle(RPLMeasurement measurement, RectangleF bounds)
 {
     if (measurement != null)
     {
         return(new RectangleF(measurement.Left + bounds.Left, measurement.Top + bounds.Top, measurement.Width, measurement.Height));
     }
     return(bounds);
 }
 public RPLItemMeasurement(RPLMeasurement measurement)
 {
     base.m_top    = measurement.Top;
     base.m_left   = measurement.Left;
     base.m_height = measurement.Height;
     base.m_width  = measurement.Width;
     base.m_state  = measurement.State;
     base.m_zindex = measurement.ZIndex;
 }
示例#6
0
 public void AddToPage(RPLPageContent rplPageContent, out RPLMeasurement measurement)
 {
     measurement        = new RPLMeasurement();
     measurement.Left   = 0f;
     measurement.Top    = (float)this.m_itemPageSizes.Top;
     measurement.Width  = (float)this.m_pageSettings.UsablePageWidth;
     measurement.Height = (float)this.m_itemPageSizes.Height;
     rplPageContent.AddReportSection(this.m_rplElement);
 }
            private void WriteImpl()
            {
                Version   rPLVersion = new Version(10, 6, 0);
                RPLReport rPLReport  = new RPLReport();

                rPLReport.ReportName        = base.Report.Name;
                rPLReport.Description       = base.Report.Description;
                rPLReport.Author            = base.Report.Author;
                rPLReport.AutoRefresh       = base.Report.AutoRefresh;
                rPLReport.ExecutionTime     = base.Report.ExecutionTime;
                rPLReport.Location          = base.Report.Location.ToString();
                rPLReport.Language          = Microsoft.ReportingServices.Rendering.HPBProcessing.Report.GetReportLanguage(base.Report);
                rPLReport.RPLVersion        = rPLVersion;
                rPLReport.RPLPaginatedPages = new RPLPageContent[1];
                base.RplWriter.Report       = rPLReport;
                RPLReportSection rPLReportSection = new RPLReportSection(1);

                rPLReportSection.ID          = base.ReportSection.ID;
                rPLReportSection.ColumnCount = 1;
                RPLBody            rPLBody            = new RPLBody();
                RPLItemMeasurement rPLItemMeasurement = new RPLItemMeasurement();

                rPLItemMeasurement.Left          = 0f;
                rPLItemMeasurement.Top           = 0f;
                rPLItemMeasurement.Width         = base.Width;
                rPLItemMeasurement.Height        = base.Height;
                rPLItemMeasurement.ZIndex        = 0;
                rPLItemMeasurement.State         = 0;
                rPLItemMeasurement.Element       = rPLBody;
                rPLReportSection.Columns[0]      = rPLItemMeasurement;
                rPLReportSection.BodyArea        = new RPLMeasurement();
                rPLReportSection.BodyArea.Top    = 0f;
                rPLReportSection.BodyArea.Height = base.Height;
                m_pageItem.WriteStartItemToStream(base.RplWriter, base.PageContext);
                RPLItemMeasurement[] array2 = rPLBody.Children = new RPLItemMeasurement[1];
                array2[0] = m_pageItem.WritePageItemSizes();
                RPLPageLayout rPLPageLayout = new RPLPageLayout();

                rPLPageLayout.PageHeight = base.Height;
                rPLPageLayout.PageWidth  = base.Width;
                rPLPageLayout.Style      = new RPLElementStyle(null, null);
                RPLPageContent rPLPageContent = new RPLPageContent(1, rPLPageLayout);
                RPLMeasurement rPLMeasurement = new RPLMeasurement();

                rPLMeasurement.Left   = 0f;
                rPLMeasurement.Top    = 0f;
                rPLMeasurement.Width  = base.Width;
                rPLMeasurement.Height = base.Height;
                rPLPageContent.ReportSectionSizes[0] = rPLMeasurement;
                rPLPageContent.AddReportSection(rPLReportSection);
                base.RplWriter.Report.RPLPaginatedPages[0] = rPLPageContent;
            }
        private void ComputeColRowSpan(RPLMeasurement reportItem, int xCellFound, int yCellFound, ref int colSpans, ref int rowSpans)
        {
            float num   = 0f;
            float num2  = 0f;
            int   num3  = 0;
            int   num4  = 0;
            int   num5  = yCellFound * m_nrCols;
            int   index = xCellFound + num5;

            num      = m_tableGrid[index].DXValue.Value;
            num3     = xCellFound;
            colSpans = 1;
            for (; (double)(reportItem.Width - num) > 0.0001; num += m_tableGrid[num3 + num5].DXValue.Value)
            {
                num3++;
                if (num3 >= m_nrCols)
                {
                    break;
                }
                colSpans++;
            }
            num2     = m_tableGrid[index].DYValue.Value;
            num4     = yCellFound;
            rowSpans = 1;
            for (; (double)(reportItem.Height - num2) > 0.0001; num2 += m_tableGrid[xCellFound + m_nrCols * num4].DYValue.Value)
            {
                num4++;
                if (num4 >= m_nrRows)
                {
                    break;
                }
                rowSpans++;
            }
            for (int i = yCellFound; i < yCellFound + rowSpans; i++)
            {
                for (int j = xCellFound; j < xCellFound + colSpans; j++)
                {
                    PageTableCell cell = GetCell(i, j);
                    cell.FirstHorzMerge = (j == xCellFound && colSpans > 1);
                    cell.FirstVertMerge = (i == yCellFound && rowSpans > 1);
                    cell.HorzMerge      = (j > xCellFound);
                    cell.VertMerge      = (i > yCellFound);
                }
            }
        }
示例#9
0
        public void WriteEndItemToStream(RPLWriter rplWriter, List <ReportSection> sectionsOnPage)
        {
            BinaryWriter binaryWriter = rplWriter.BinaryWriter;

            if (binaryWriter != null)
            {
                rplWriter.BinaryWriter.Write((byte)255);
                Stream baseStream = binaryWriter.BaseStream;
                long   position   = baseStream.Position;
                binaryWriter.Write((byte)16);
                binaryWriter.Write(this.m_pageOffset);
                int count = sectionsOnPage.Count;
                binaryWriter.Write(count);
                for (int i = 0; i < count; i++)
                {
                    sectionsOnPage[i].WriteMeasurement(binaryWriter);
                }
                this.m_pageOffset = baseStream.Position;
                binaryWriter.Write((byte)254);
                binaryWriter.Write(position);
                binaryWriter.Write((byte)255);
                position = baseStream.Position;
                binaryWriter.Write((byte)18);
                binaryWriter.Write(this.m_offset);
                binaryWriter.Write(1);
                binaryWriter.Write(this.m_pageOffset);
                binaryWriter.Write((byte)254);
                binaryWriter.Write(position);
                binaryWriter.Write((byte)255);
            }
            else
            {
                int            count2         = sectionsOnPage.Count;
                ReportSection  reportSection  = sectionsOnPage[0];
                RPLPageLayout  pageLayout     = reportSection.WritePageLayout(rplWriter, this.m_pageContext);
                RPLPageContent rPLPageContent = new RPLPageContent(count2, pageLayout);
                for (int j = 0; j < count2; j++)
                {
                    RPLMeasurement rPLMeasurement = null;
                    sectionsOnPage[j].AddToPage(rPLPageContent, out rPLMeasurement);
                    rPLPageContent.ReportSectionSizes[j] = rPLMeasurement;
                }
                rplWriter.Report.RPLPaginatedPages[0] = rPLPageContent;
            }
        }
示例#10
0
        private void AttachHorizontalBorder(int xCellFound, int yCellFound, RPLMeasurement measurement, RPLLine currReportItem, bool topBorder)
        {
            double        num           = 0.0;
            int           num2          = 0;
            int           num3          = 0;
            PageTableCell pageTableCell = null;
            int           num4          = 1;

            num2          = xCellFound;
            num3          = yCellFound * m_nrCols;
            pageTableCell = m_tableGrid[num2 + num3];
            num           = pageTableCell.DXValue.Value;
            if (topBorder)
            {
                pageTableCell.BorderTop = currReportItem;
            }
            else
            {
                pageTableCell.BorderBottom = currReportItem;
            }
            while ((double)measurement.Width - num > 0.0001)
            {
                num2++;
                if (num2 < m_nrCols)
                {
                    pageTableCell = m_tableGrid[num2 + num3];
                    num          += (double)pageTableCell.DXValue.Value;
                    num4++;
                    if (topBorder)
                    {
                        pageTableCell.BorderTop = currReportItem;
                    }
                    else
                    {
                        pageTableCell.BorderBottom = currReportItem;
                    }
                    continue;
                }
                break;
            }
        }
示例#11
0
 private static float ReportItemBottomValue(RPLMeasurement currReportItem)
 {
     return(currReportItem.Top + currReportItem.Height);
 }
示例#12
0
 private static float ReportItemRightValue(RPLMeasurement currReportItem)
 {
     return(currReportItem.Left + currReportItem.Width);
 }
 public static RectangleF GetMeasurementRectangle(RPLMeasurement measurement, RectangleF bounds)
 {
     return(new RectangleF(measurement.Left + bounds.Left, measurement.Top + bounds.Top, measurement.Width, measurement.Height));
 }
示例#14
0
 public RPLMeasurement(RPLMeasurement measures)
     : base(measures.Top, measures.Left, measures.Height, measures.Width)
 {
     m_state  = measures.State;
     m_zindex = measures.ZIndex;
 }