TitlePositionEnum _Position; // The position of the title; Default: center internal Title(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _Caption=null; _Style=null; _Position=TitlePositionEnum.Center; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "Caption": _Caption = new Expression(r, this, xNodeLoop, ExpressionType.String); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; case "Position": _Position = TitlePosition.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; default: // don't know this element - log it OwnerReport.rl.LogError(4, "Unknown Title element '" + xNodeLoop.Name + "' ignored."); break; } } }
MarkerTypeEnum _Type; // Defines the marker type for values. Default: none #endregion Fields #region Constructors // properties for the marker(s). internal Marker(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _Type=MarkerTypeEnum.None; _Size=null; _Style=null; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "Type": _Type = MarkerType.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; case "Size": _Size = new RSize(r, xNodeLoop); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; default: break; } } }
Style _Style; // Line style properties for the gridlines and tickmarks internal ChartGridLines(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _ShowGridLines=true; _Style=null; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "ShowGridLines": _ShowGridLines = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; default: // TODO // don't know this element - log it OwnerReport.rl.LogError(4, "Unknown ChartGridLines element '" + xNodeLoop.Name + "' ignored."); break; } } }
Style _Style; // border and background properties for series legend itmes and data points // when dynamic exprs are evaluated per group instance internal SeriesGrouping(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _DynamicSeries=null; _StaticSeries=null; _Style=null; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "DynamicSeries": _DynamicSeries = new DynamicSeries(r, this, xNodeLoop); break; case "StaticSeries": _StaticSeries = new StaticSeries(r, this, xNodeLoop); break; case "Style": _Style = new Style(OwnerReport, this, xNodeLoop); OwnerReport.rl.LogError(4, "Style element in SeriesGrouping is currently ignored."); // TODO break; default: // don't know this element - log it OwnerReport.rl.LogError(4, "Unknown SeriesGrouping element '" + xNodeLoop.Name + "' ignored."); break; } } }
Style _Style; // Defines border and background style #endregion Fields #region Constructors // appear in a data rendering. internal DataPoint(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _DataValues=null; _DataLabel=null; _Action=null; _Style=null; _Marker=null; _DataElementName=null; _DataElementOutput=DataElementOutputEnum.Output; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "DataValues": _DataValues = new DataValues(r, this, xNodeLoop); break; case "DataLabel": _DataLabel = new DataLabel(r, this, xNodeLoop); break; case "Action": _Action = new Action(r, this, xNodeLoop); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; case "Marker": _Marker = new Marker(r, this, xNodeLoop); break; case "DataElementName": _DataElementName = xNodeLoop.InnerText; break; case "DataElementOutput": _DataElementOutput = fyiReporting.RDL.DataElementOutput.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; default: // don't know this element - log it OwnerReport.rl.LogError(4, "Unknown DataPoint element '" + xNodeLoop.Name + "' ignored."); break; } } if (_DataValues == null) OwnerReport.rl.LogError(8, "DataPoint requires the DataValues element."); }
Style _Style; // Defines borders and background for the plot area internal PlotArea(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _Style=null; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "Style": _Style = new Style(r, this, xNodeLoop); break; default: // don't know this element - log it OwnerReport.rl.LogError(4, "Unknown PlotArea element '" + xNodeLoop.Name + "' ignored."); break; } } }
Style _Style; // Style information for the page header #endregion Fields #region Constructors internal PageHeader(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _Height=null; _PrintOnFirstPage=false; _PrintOnLastPage=false; _ReportItems=null; _Style=null; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "Height": _Height = new RSize(r, xNodeLoop); break; case "PrintOnFirstPage": _PrintOnFirstPage = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "PrintOnLastPage": _PrintOnLastPage = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "ReportItems": _ReportItems = new ReportItems(r, this, xNodeLoop); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; default: // don't know this element - log it OwnerReport.rl.LogError(4, "Unknown PageHeader element '" + xNodeLoop.Name + "' ignored."); break; } } if (_Height == null) OwnerReport.rl.LogError(8, "PageHeader Height is required."); }
Style _Style; // Default style information for the body internal Body(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _ReportItems = null; _Height = null; _Columns = 1; _ColumnSpacing=null; _Style=null; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "ReportItems": _ReportItems = new ReportItems(r, this, xNodeLoop); // need a class for this break; case "Height": _Height = new RSize(r, xNodeLoop); break; case "Columns": _Columns = XmlUtil.Integer(xNodeLoop.InnerText); break; case "ColumnSpacing": _ColumnSpacing = new RSize(r, xNodeLoop); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; default: // don't know this element - log it OwnerReport.rl.LogError(4, "Unknown Body element '" + xNodeLoop.Name + "' ignored."); break; } } if (_Height == null) OwnerReport.rl.LogError(8, "Body Height not specified."); }
DataElementOutputEnum _DataElementOutput; // Indicates whether the subtotal should appear in a data rendering. // Default: NoOutput internal Subtotal(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _ReportItems=null; _Style=null; _Position=SubtotalPositionEnum.After; _DataElementName="Total"; _DataElementOutput=DataElementOutputEnum.NoOutput; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "ReportItems": _ReportItems = new ReportItems(r, this, xNodeLoop); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; case "Position": _Position = SubtotalPosition.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; case "DataElementName": _DataElementName = xNodeLoop.InnerText; break; case "DataElementOutput": _DataElementOutput = fyiReporting.RDL.DataElementOutput.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; default: break; } } if (_ReportItems == null) OwnerReport.rl.LogError(8, "Subtotal requires the ReportItems element."); }
bool _InsidePlotArea; //Boolean If true, draw legend inside plot area, otherwise // draw outside plot area (default). internal Legend(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _Visible=false; _Style=null; _Position=LegendPositionEnum.RightTop; _Layout=LegendLayoutEnum.Column; _InsidePlotArea=false; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "Visible": _Visible = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; case "Position": _Position = LegendPosition.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; case "Layout": _Layout = LegendLayout.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; case "InsidePlotArea": _InsidePlotArea = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; default: break; } } }
int _Rotation; // Angle of rotation of the label text internal DataLabel(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _Style=null; _Value=null; _Visible=false; _Position=DataLabelPositionEnum.Auto; _Rotation=0; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "Style": _Style = new Style(r, this, xNodeLoop); break; case "Value": _Value = new Expression(r, this, xNodeLoop, ExpressionType.Variant); break; case "Visible": _Visible = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "Position": _Position = DataLabelPosition.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; case "Rotation": _Rotation = XmlUtil.Integer(xNodeLoop.InnerText); break; default: break; } } }
private string CssAdd(Style s, ReportLink rl, Row row) { return CssAdd(s, rl, row, false, float.MinValue, float.MinValue); }
protected Size DrawCategoryTitleMeasure(Report rpt, Graphics g, string t, Style a) { Size empty = Size.Empty; Row r = this.FirstChartRow(rpt); if ((t != null) && (t != "")) { if (a != null) { empty = a.MeasureString(rpt, g, t, t.GetTypeCode(), r, 0x7fffffff); } else { empty = Style.MeasureStringDefaults(rpt, g, t, t.GetTypeCode(), r, 0x7fffffff); } } return empty; }
//15052008WRP - Measure category title size protected Size DrawCategoryTitleMeasure(Report rpt, Graphics g, string t, Style a) { Size size = Size.Empty; Row r = FirstChartRow(rpt); if (t == null || t == "") return size; if (a != null) size = a.MeasureString(rpt, g, t, t.GetTypeCode(), r, int.MaxValue); else size = Style.MeasureStringDefaults(rpt, g, t, t.GetTypeCode(), r, int.MaxValue); return size; }
//15052008WRP - Draw category month labels protected void DrawCategoryLabel(Report rpt, Graphics g, string t, Style a, System.Drawing.Rectangle rect) { if (t == null) return; Row r = FirstChartRow(rpt); if (a != null) { a.DrawString(rpt, g, t, t.GetTypeCode(), r, rect); a.DrawBorder(rpt, g, r, rect); } else Style.DrawStringDefaults(g, t, rect); return; }
private void DoStyle(Style style, Row row) { if (style == null) return; StyleInfo si = style.GetStyleInfo(r, row); // tw.Write(@"\plain"); // reset current attributes // Handle the font if (!_Fonts.Contains(si.FontFamily)) _Fonts.Add(si.FontFamily); int fc = _Fonts.IndexOf(si.FontFamily); tw.Write(@"\f{0} ", fc); if (si.IsFontBold()) tw.Write(@"\b"); if (si.FontStyle== FontStyleEnum.Italic) tw.Write(@"\i"); switch (si.TextDecoration) { case TextDecorationEnum.Underline: tw.Write(@"\ul"); break; case TextDecorationEnum.LineThrough: tw.Write(@"\strike"); break; default: break; } tw.Write(@"\fs{0}", (int) Math.Round(si.FontSize * 2,0)); // font size // Handle the color int ic; if (!_Colors.Contains(si.Color)) _Colors.Add(si.Color); ic = _Colors.IndexOf(si.Color)+1; tw.Write(@"\cf{0} ", ic); }
// Format a string; passed a style but style may be null; static internal string GetFormatedString(Report rpt, Style s, Row row, object o, TypeCode tc) { string t = null; if (o == null) return ""; try { if (s != null && s.Format != null) { string format = s.Format.EvaluateString(rpt, row); if (format != null && format.Length > 0) { switch (tc) { case TypeCode.DateTime: t = ((DateTime)o).ToString(format); break; case TypeCode.Int16: t = ((short)o).ToString(format); break; case TypeCode.UInt16: t = ((ushort)o).ToString(format); break; case TypeCode.Int32: t = ((int)o).ToString(format); break; case TypeCode.UInt32: t = ((uint)o).ToString(format); break; case TypeCode.Int64: t = ((long)o).ToString(format); break; case TypeCode.UInt64: t = ((ulong)o).ToString(format); break; case TypeCode.String: t = (string)o; break; case TypeCode.Decimal: t = ((decimal)o).ToString(format); break; case TypeCode.Single: t = ((float)o).ToString(format); break; case TypeCode.Double: t = ((double)o).ToString(format); break; default: t = o.ToString(); break; } } else t = o.ToString(); // No format provided } else { // No style provided t = o.ToString(); } } catch { t = o.ToString(); // probably type mismatch from expectation } return t; }
private string CssPrefix(Style s, ReportLink rl) { string cssPrefix=null; ReportLink p; if (rl is Table || rl is Matrix || rl is Rectangle) { cssPrefix = "table#"; } else if (rl is Body) { cssPrefix = "body#"; } else if (rl is Line) { cssPrefix = "table#"; } else if (rl is List) { cssPrefix = ""; } else if (rl is Subreport) { cssPrefix = ""; } else if (rl is Chart) { cssPrefix = ""; } if (cssPrefix != null) return cssPrefix; // now find what the style applies to for (p=rl.Parent; p != null; p=p.Parent) { if (p is TableCell) { bool bHead = false; ReportLink p2; for (p2=p.Parent; p2 != null; p2=p2.Parent) { Type t2 = p2.GetType(); if (t2 == typeof(Header)) { if (p2.Parent is Table) bHead=true; break; } } if (bHead) cssPrefix = "th#"; else cssPrefix = "td#"; break; } else if (p is RowGrouping || p is MatrixCell || p is ColumnGrouping || p is Corner) { cssPrefix = "td#"; break; } } return cssPrefix == null? "": cssPrefix; }
private string CssAdd(Style s, ReportLink rl, Row row, bool bForceRelative, float h, float w) { string css; string prefix = CssPrefix(s, rl); if (_Asp && prefix == "table#") bForceRelative = true; if (s != null) css = prefix + "{" + CssPosition(rl, row, bForceRelative, h, w) + s.GetCSS(this.r, row, true) + "}"; else if (rl is Table || rl is Matrix) css = prefix + "{" + CssPosition(rl, row, bForceRelative, h, w) + "border-collapse:collapse;)"; else css = prefix + "{" + CssPosition(rl, row, bForceRelative, h, w) + "}"; CssCacheEntry cce = (CssCacheEntry) _styles[css]; if (cce == null) { string name = prefix + this.Prefix + "css" + cssId++.ToString(); cce = new CssCacheEntry(css, name); _styles.Add(cce.Css, cce); } int i = cce.Name.IndexOf('#'); if (i > 0) return cce.Name.Substring(i+1); else return cce.Name; }
private string CssAdd(Style s, ReportLink rl, Row row, bool bForceRelative) { return CssAdd(s, rl, row, bForceRelative, float.MinValue, float.MinValue); }
private int? GetStyleIndex(Style style,Row row, ref string value) { StyleInfo pt = GetStyle(style, row); // DocumentFormat.OpenXml.Spreadsheet.Fonts fonts1 = new DocumentFormat.OpenXml.Spreadsheet.Fonts() // { Count = (UInt32Value)1U, KnownFonts = true }; int? fontId = null; int? borderId = null; int? cellFormatId = null; DocumentFormat.OpenXml.Spreadsheet.Font font = new DocumentFormat.OpenXml.Spreadsheet.Font(); if (pt.IsFontBold()) font.Append(new DocumentFormat.OpenXml.Spreadsheet.Bold()); if (pt.FontStyle == FontStyleEnum.Italic) font.Append(new DocumentFormat.OpenXml.Spreadsheet.Italic()); font.Append(new DocumentFormat.OpenXml.Spreadsheet.FontSize() { Val = (Double)pt.FontSize }); font.Append(new DocumentFormat.OpenXml.Spreadsheet.FontName() { Val = pt.FontFamily }); //font.Append(new DocumentFormat.OpenXml.Spreadsheet.Color() // { Rgb=GetColor(si.Color) }); int id = 0; foreach (var fo in _styleSheet.Fonts) { if (fo.OuterXml.Equals(font.OuterXml)) { fontId = id; break; } id++; } if (fontId == null) { _styleSheet.Fonts.Append(font); _styleSheet.Fonts.Count = (uint)_styleSheet.Fonts.ChildElements.Count; fontId = _styleSheet.Fonts.ChildElements.Count - 1; } Border border = new Border(); if (pt.BStyleLeft != BorderStyleEnum.None) { border.LeftBorder = new LeftBorder() { Style = GetBorderStyle(pt.BStyleLeft) }; } if (pt.BStyleRight != BorderStyleEnum.None) { border.RightBorder = new RightBorder() { Style = GetBorderStyle(pt.BStyleRight) }; } if (pt.BStyleTop != BorderStyleEnum.None) { border.TopBorder = new TopBorder() { Style = GetBorderStyle(pt.BStyleTop) }; } if (pt.BStyleBottom != BorderStyleEnum.None) { border.BottomBorder = new BottomBorder() { Style = GetBorderStyle(pt.BStyleBottom) }; } id = 0; foreach (var bo in _styleSheet.Borders) { if (bo.OuterXml.Equals(border.OuterXml)) { borderId = id; break; } id++; } if (borderId == null) { _styleSheet.Borders.Append(border); _styleSheet.Borders.Count = (uint)_styleSheet.Borders.ChildElements.Count; borderId = _styleSheet.Borders.ChildElements.Count - 1; } value = NumericValue(value) ?? value; CellFormat cf = new CellFormat(); cf.NumberFormatId = (uint)StyleInfo.GetFormatCode(pt._Format); cf.FontId = (uint)fontId; cf.FillId = 0; cf.BorderId = (uint)borderId; // cf.FormatId = 0; id = 0; foreach (var cef in _styleSheet.CellFormats) { if (cef.OuterXml.Equals(cf.OuterXml)) { cellFormatId = id; break; } id++; } if (cellFormatId == null) { _styleSheet.CellFormats.Append(cf); _styleSheet.CellFormats.Count = (uint)_styleSheet.CellFormats.ChildElements.Count; cellFormatId = _styleSheet.CellFormats.ChildElements.Count - 1; } return cellFormatId; }
bool _InMatrix; // true if reportitem is in a matrix internal ReportItem(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _Name=null; _Style=null; _Action=null; _Top=null; _Left=null; _Height=null; _Width=null; _ZIndex=0; _Visibility=null; _ToolTip=null; _Label=null; _LinkToChild=null; _Bookmark=null; _RepeatWith=null; _Custom=null; _DataElementName=null; _DataElementOutput=DataElementOutputEnum.Auto; // Run thru the attributes foreach(XmlAttribute xAttr in xNode.Attributes) { switch (xAttr.Name) { case "Name": _Name = new Name(xAttr.Value); break; } } }
bool _LogScale; // Whether the axis is logarithmic. Default is false. internal Axis(ReportDefn r, ReportLink p, XmlNode xNode) : base(r, p) { _Visible =false; _Style = null; _Title = null; _Margin = false; _MajorTickMarks = AxisTickMarksEnum.None; _MinorTickMarks = AxisTickMarksEnum.None; _MajorGridLines = null; _MinorGridLines = null; _MajorInterval = null; _MinorInterval =null; _Reverse = false; _CrossAt = 0; _Interlaced = false; _Scalar=false; _Min=null; _Max=null; _LogScale=false; // Loop thru all the child nodes foreach(XmlNode xNodeLoop in xNode.ChildNodes) { if (xNodeLoop.NodeType != XmlNodeType.Element) continue; switch (xNodeLoop.Name) { case "Visible": _Visible = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "Style": _Style = new Style(r, this, xNodeLoop); break; case "Title": _Title = new Title(r, this, xNodeLoop); break; case "Margin": _Margin = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "MajorTickMarks": _MajorTickMarks = AxisTickMarks.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; case "MinorTickMarks": _MinorTickMarks = AxisTickMarks.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; case "MajorGridLines": _MajorGridLines = new ChartGridLines(r, this, xNodeLoop); break; case "MinorGridLines": _MinorGridLines = new ChartGridLines(r, this, xNodeLoop); break; case "MajorInterval": _MajorInterval = new Expression(OwnerReport, this, xNodeLoop, ExpressionType.Integer); OwnerReport.rl.LogError(4, "Axis element MajorInterval is currently ignored."); break; case "MinorInterval": _MinorInterval = new Expression(OwnerReport, this, xNodeLoop, ExpressionType.Integer); OwnerReport.rl.LogError(4, "Axis element MinorInterval is currently ignored."); break; case "Reverse": _Reverse = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "CrossAt": _CrossAt = XmlUtil.Integer(xNodeLoop.InnerText); break; case "Interlaced": _Interlaced = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "Scalar": _Scalar = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; case "Min": _Min = new Expression(OwnerReport, this, xNodeLoop, ExpressionType.Integer); break; case "Max": _Max = new Expression(OwnerReport, this, xNodeLoop, ExpressionType.Integer); break; case "LogScale": _LogScale = XmlUtil.Boolean(xNodeLoop.InnerText, OwnerReport.rl); break; default: // don't know this element - log it OwnerReport.rl.LogError(4, "Unknown Axis element '" + xNodeLoop.Name + "' ignored."); break; } } }
internal bool ReportItemElement(XmlNode xNodeLoop) { switch (xNodeLoop.Name) { case "Style": _Style = new Style(OwnerReport, this, xNodeLoop); break; case "Action": _Action = new Action(OwnerReport, this, xNodeLoop); break; case "Top": _Top = new RSize(OwnerReport, xNodeLoop); break; case "Left": _Left = new RSize(OwnerReport, xNodeLoop); break; case "Height": _Height = new RSize(OwnerReport, xNodeLoop); break; case "Width": _Width = new RSize(OwnerReport, xNodeLoop); break; case "ZIndex": _ZIndex = XmlUtil.Integer(xNodeLoop.InnerText); break; case "Visibility": _Visibility = new Visibility(OwnerReport, this, xNodeLoop); break; case "ToolTip": _ToolTip = new Expression(OwnerReport, this, xNodeLoop, ExpressionType.String); break; case "Label": _Label = new Expression(OwnerReport, this, xNodeLoop, ExpressionType.Variant); break; case "LinkToChild": _LinkToChild = xNodeLoop.InnerText; break; case "Bookmark": _Bookmark = new Expression(OwnerReport, this, xNodeLoop, ExpressionType.String); break; case "RepeatWith": _RepeatWith = xNodeLoop.InnerText; break; case "Custom": _Custom = new Custom(OwnerReport, this, xNodeLoop); break; case "DataElementName": _DataElementName = xNodeLoop.InnerText; break; case "DataElementOutput": _DataElementOutput = fyiReporting.RDL.DataElementOutput.GetStyle(xNodeLoop.InnerText, OwnerReport.rl); break; case "rd:DefaultName": break; // MS tag: we don't use but don't want to generate a warning default: return false; // Not a report item element } return true; }
private StyleInfo GetStyle(Style style, Row row) { if (style == null) return null; return style.GetStyleInfo(base.Report(), row); }