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; } }
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; }
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); } } }
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; } }
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; } }
private static float ReportItemBottomValue(RPLMeasurement currReportItem) { return(currReportItem.Top + currReportItem.Height); }
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)); }
public RPLMeasurement(RPLMeasurement measures) : base(measures.Top, measures.Left, measures.Height, measures.Width) { m_state = measures.State; m_zindex = measures.ZIndex; }