Exemple #1
0
 protected void RenderLine(RPLLine reportItem, RPLElementProps rplProps, RPLLinePropsDef rplPropsDef, RPLItemMeasurement measurement, bool renderId, StyleContext styleContext)
 {
     if (this.html5Renderer.IsLineSlanted(measurement))
     {
         if (renderId)
         {
             this.html5Renderer.RenderNavigationId(rplProps.UniqueName);
         }
         if (this.html5Renderer.m_deviceInfo.BrowserMode == BrowserMode.Quirks)
         {
             this.RenderVMLLine(reportItem, measurement, styleContext);
         }
     }
     else
     {
         bool flag = measurement.Height == 0.0;
         this.html5Renderer.WriteStream(HTMLElements.m_openSpan);
         if (renderId)
         {
             this.html5Renderer.RenderReportItemId(rplProps.UniqueName);
         }
         int    num = 0;
         object obj = rplProps.Style[10];
         if (obj != null)
         {
             this.html5Renderer.OpenStyle();
             if (flag)
             {
                 this.html5Renderer.WriteStream(HTMLElements.m_styleHeight);
             }
             else
             {
                 this.html5Renderer.WriteStream(HTMLElements.m_styleWidth);
             }
             this.html5Renderer.WriteStream(obj);
             this.html5Renderer.WriteStream(HTMLElements.m_semiColon);
         }
         obj = rplProps.Style[0];
         if (obj != null)
         {
             this.html5Renderer.OpenStyle();
             this.html5Renderer.WriteStream(HTMLElements.m_backgroundColor);
             this.html5Renderer.WriteStream(obj);
         }
         this.html5Renderer.RenderReportItemStyle(reportItem, measurement, ref num);
         this.html5Renderer.CloseStyle(true);
         this.html5Renderer.WriteStream(HTMLElements.m_closeBracket);
         this.html5Renderer.WriteStream(HTMLElements.m_closeSpan);
     }
 }
        private void FillAndFindOverlap(RPLItemMeasurement[] repItemCollection, double delta)
        {
            bool               flag               = false;
            int                num                = -1;
            int                num2               = -1;
            int                colSpans           = 0;
            int                rowSpans           = 0;
            int                num3               = 0;
            PageTableCell      pageTableCell      = null;
            int                num4               = 0;
            RPLItemMeasurement rPLItemMeasurement = null;
            RPLElement         rPLElement         = null;

            while (num4 < repItemCollection.Length)
            {
                num  = -1;
                num2 = -1;
                flag = false;
                rPLItemMeasurement = repItemCollection[num4];
                if (SkipReportItem(rPLItemMeasurement))
                {
                    num4++;
                    continue;
                }
                rPLElement = rPLItemMeasurement.Element;
                flag       = FindRItemCell(rPLItemMeasurement, ref num, ref num2, delta);
                if (!flag && !(rPLElement is RPLLine))
                {
                    num4++;
                    continue;
                }
                RPLLine rPLLine = rPLElement as RPLLine;
                if (rPLLine != null)
                {
                    RPLLinePropsDef rPLLinePropsDef = rPLLine.ElementPropsDef as RPLLinePropsDef;
                    float           width           = rPLItemMeasurement.Width;
                    if ((width >= 0f && width < 0.01f) || (width < 0f && width > -0.01f))
                    {
                        if (!flag)
                        {
                            int  num5  = 0;
                            bool flag2 = true;
                            while (flag2 && num5 < m_nrRows)
                            {
                                if (m_tableGrid[num5 * m_nrCols].YValue == (float)((double)rPLItemMeasurement.Top - delta))
                                {
                                    num2  = num5;
                                    flag2 = false;
                                }
                                num5++;
                            }
                            num = m_nrCols - 1;
                            if (!flag2)
                            {
                                AttachVerticalBorder(num, num2, rPLItemMeasurement, (RPLLine)rPLElement, leftBorder: false);
                            }
                        }
                        else
                        {
                            AttachVerticalBorder(num, num2, rPLItemMeasurement, (RPLLine)rPLElement, leftBorder: true);
                        }
                        num4++;
                        continue;
                    }
                    width = rPLItemMeasurement.Height;
                    if ((width >= 0f && width < 0.01f) || (width < 0f && width > -0.01f))
                    {
                        if (!flag)
                        {
                            int  num6  = 0;
                            bool flag3 = true;
                            while (flag3 && num6 < m_nrCols)
                            {
                                if (m_tableGrid[num6].XValue == rPLItemMeasurement.Left)
                                {
                                    num   = num6;
                                    flag3 = false;
                                }
                                num6++;
                            }
                            num2 = m_nrRows - 1;
                            AttachHorizontalBorder(num, num2, rPLItemMeasurement, (RPLLine)rPLElement, topBorder: false);
                        }
                        else
                        {
                            AttachHorizontalBorder(num, num2, rPLItemMeasurement, (RPLLine)rPLElement, topBorder: true);
                        }
                        num4++;
                        continue;
                    }
                }
                num3          = num + m_nrCols * num2;
                pageTableCell = m_tableGrid[num3];
                if ((pageTableCell.InUse || pageTableCell.Eaten) && rPLElement is RPLLine && rPLItemMeasurement.Width != 0f && rPLItemMeasurement.Height != 0f)
                {
                    num4++;
                    continue;
                }
                ComputeColRowSpan(rPLItemMeasurement, num, num2, ref colSpans, ref rowSpans);
                AttachRItem(num, num2, colSpans, rowSpans, rPLItemMeasurement);
                num4++;
            }
        }