private int UpdateCSSTable(string style) { int i = FCSSStyles.IndexOf(style); if (i == -1) { i = FCSSStyles.Count; FCSSStyles.Add(style); } return(i); }
private void ExportHTMLPageLayered(HTMLThreadData d) { float MaxWidth = 0, MaxHeight = 0; if (!FSinglePage) { FCSSStyles.Clear(); } doPageBreak = (FSinglePage && d.PageNumber > 1 && FPageBreaks); using (ReportPage reportPage = GetPage(d.ReportPage)) { StringBuilder CSS = new StringBuilder(256); StringBuilder Page = new StringBuilder(2048); Page = ExportHTMLPageStart(Page, d.PageNumber, d.CurrentPage); pageAncor = HTMLGetAncor(d.PageNumber.ToString()); if (reportPage.Watermark.Enabled && !reportPage.Watermark.ShowImageOnTop) { Watermark(Page, reportPage, false); } if (reportPage.Watermark.Enabled && !reportPage.Watermark.ShowTextOnTop) { Watermark(Page, reportPage, true); } foreach (Base c in reportPage.AllObjects) { if (c is ReportComponentBase) { ReportComponentBase obj = c as ReportComponentBase; float val = obj.AbsTop + obj.Height; if (val > MaxHeight) { MaxHeight = val; } val = obj.AbsLeft + obj.Width; if (val > MaxWidth) { MaxWidth = val; } if (obj is CellularTextObject) { obj = (obj as CellularTextObject).GetTable(); } if (obj is TableCell) { continue; } else if (obj is TableBase) { TableBase table = obj as TableBase; if (table.ColumnCount > 0 && table.RowCount > 0) { using (TextObject tableback = new TextObject()) { tableback.Border = table.Border; tableback.Fill = table.Fill; tableback.FillColor = table.FillColor; tableback.Left = table.AbsLeft; tableback.Top = table.AbsTop; float tableWidth = 0; float tableHeight = 0; for (int i = 0; i < table.ColumnCount; i++) { tableWidth += table[i, 0].Width; } for (int i = 0; i < table.RowCount; i++) { tableHeight += table.Rows[i].Height; } tableback.Width = (tableWidth < table.Width) ? tableWidth : table.Width; tableback.Height = tableHeight; LayerText(Page, tableback); } LayerTable(Page, table); } } else if (IsMemo(obj)) { LayerText(Page, obj as TextObject); } else if (obj is BandBase) { LayerBack(Page, obj, String.Empty); } else if (obj is LineObject) { LayerPicture(Page, obj, String.Empty); } else { LayerBack(Page, obj, String.Empty); LayerPicture(Page, obj, String.Empty); } } } if (reportPage.Watermark.Enabled && reportPage.Watermark.ShowImageOnTop) { Watermark(Page, reportPage, false); } if (reportPage.Watermark.Enabled && reportPage.Watermark.ShowTextOnTop) { Watermark(Page, reportPage, true); } ExportPageStylesLayers(CSS, d.PageNumber); if (FSinglePage) { FHPos += MaxHeight; FPrevStyleListIndex = FCSSStyles.Count; } ExportHTMLPageFinal(CSS, Page, d, MaxWidth, MaxHeight); } if (!FSinglePage && FThreaded) { if (d.PageNumber == 1) { FFirstPageEvent.Set(); } } }