private Column InternalInfer(string columnName, Type columnDataType) { var column = new Column(columnName); if (IsSimpleType(columnDataType)) { if (IsShortNumeric(columnDataType)) { column.Width = 5; column.Style.Alignment = TextAlignment.Center; } else if (IsLongNumeric(columnDataType)) { column.Width = 10; column.Style.Alignment = TextAlignment.Right; } else if (IsCurrency(columnDataType)) { column.Width = 10; column.FormatString = "R$ {0:0.00}"; column.Style.Alignment = TextAlignment.Right; } else if (IsDate(columnDataType)) { column.Width = 10; column.FormatString = "{0:dd/MM/yyyy}"; column.Style.Alignment = TextAlignment.Center; } else if (IsBoolean(columnDataType)) { column.Width = 5; column.MapValue("", "--"); column.MapValue("True", "Sim"); column.MapValue("False", "Não"); column.Style.Alignment = TextAlignment.Center; } } if (mdHelper != null) { mdHelper.ComplementStyle(column); } return(column); }
/// <summary> /// Complementa o estilo de uma coluna, baseado nos metadados. /// </summary> /// <param name="column">A coluna</param> public void ComplementStyle(Column column) { var xpath = String.Format("/ReportMetadata/Fields/Field[@Name='{0}']", column.Expression); var el = doc.SelectSingleNode(xpath) as XmlElement; if (el != null) { var caption = el.GetAttributeNode("Caption"); var width = el.GetAttributeNode("Width"); var format = el.GetAttributeNode("FormatString"); var nullValue = el.GetAttributeNode("NullValue"); var textAlign = el.GetAttributeNode("TextAlignment"); var headerAlign = el.GetAttributeNode("HeaderAlignment"); if (caption != null) { column.Header.Contents = caption.Value; } if (width != null) { column.Width = Convert.ToDouble(width.Value, CultureInfo.InvariantCulture); } if (format != null) { column.FormatString = format.Value; } if (nullValue != null) { column.NullValue = nullValue.Value; } if (textAlign != null) { column.Style.Alignment = (TextAlignment)Enum.Parse(typeof(TextAlignment), textAlign.Value, true); } if (headerAlign != null) { column.Header.Style.Alignment = (TextAlignment)Enum.Parse(typeof(TextAlignment), headerAlign.Value, true); } foreach (XmlElement map in el.SelectNodes("Map")) { column.MapValue(map.GetAttribute("Value"), map.GetAttribute("To")); } } else { throw new ArgumentException(String.Format("Report Metadata for column named {0} not found.", column.Expression)); } }
/// <summary> /// Complementa o estilo de uma coluna, baseado nos metadados. /// </summary> /// <param name="column">A coluna</param> public void ComplementStyle(Column column) { var xpath = String.Format("/ReportMetadata/Fields/Field[@Name='{0}']", column.Expression); var el = doc.SelectSingleNode(xpath) as XmlElement; if (el != null) { var caption = el.GetAttributeNode("Caption"); var width = el.GetAttributeNode("Width"); var format = el.GetAttributeNode("FormatString"); var nullValue = el.GetAttributeNode("NullValue"); var textAlign = el.GetAttributeNode("TextAlignment"); var headerAlign = el.GetAttributeNode("HeaderAlignment"); if (caption != null) column.Header.Contents = caption.Value; if (width != null) column.Width = Convert.ToDouble(width.Value, CultureInfo.InvariantCulture); if (format != null) column.FormatString = format.Value; if (nullValue != null) column.NullValue = nullValue.Value; if (textAlign != null) column.Style.Alignment = (TextAlignment) Enum.Parse(typeof(TextAlignment), textAlign.Value, true); if (headerAlign != null) column.Header.Style.Alignment = (TextAlignment) Enum.Parse(typeof(TextAlignment), headerAlign.Value, true); foreach (XmlElement map in el.SelectNodes("Map")) column.MapValue(map.GetAttribute("Value"), map.GetAttribute("To")); } else throw new ArgumentException(String.Format("Report Metadata for column named {0} not found.", column.Expression)); }
private Column InternalInfer(string columnName, Type columnDataType) { var column = new Column(columnName); if (IsSimpleType(columnDataType)) { if (IsShortNumeric(columnDataType)) { column.Width = 5; column.Style.Alignment = TextAlignment.Center; } else if (IsLongNumeric(columnDataType)) { column.Width = 10; column.Style.Alignment = TextAlignment.Right; } else if (IsCurrency(columnDataType)) { column.Width = 10; column.FormatString = "R$ {0:0.00}"; column.Style.Alignment = TextAlignment.Right; } else if (IsDate(columnDataType)) { column.Width = 10; column.FormatString = "{0:dd/MM/yyyy}"; column.Style.Alignment = TextAlignment.Center; } else if (IsBoolean(columnDataType)) { column.Width = 5; column.MapValue("", "--"); column.MapValue("True", "Sim"); column.MapValue("False", "Não"); column.Style.Alignment = TextAlignment.Center; } } if (mdHelper != null) mdHelper.ComplementStyle(column); return column; }