void SetFieldValue(XmlNode node, PatternFieldType type, object value) { var element = (XmlElement)node; if (type == PatternFieldType.FDate) // && node.Attributes ["office:date-value"] != null) { node.Attributes["office:string-value"].Value = value != null ? ((DateTime)value).ToLongDateString() : String.Empty; } //node.Attributes ["office:date-value"].Value = field.value != DBNull.Value ? XmlConvert.ToString ((DateTime)field.value, XmlDateTimeSerializationMode.Unspecified) : ""; else if (type == PatternFieldType.FCurrency) { decimal valueDec = value != null ? (decimal)value : Decimal.Zero; string fieldName = node.Attributes["text:name"].Value; if (fieldName.EndsWith(".Число")) { ((XmlElement)node).SetAttribute("value-type", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", "currency"); ((XmlElement)node).SetAttribute("value", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", XmlConvert.ToString(valueDec)); string curr = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol; ((XmlElement)node).SetAttribute("currency", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", curr); } if (fieldName.EndsWith(".Пропись")) { string val = RusCurrency.Str((int)valueDec, true, "рубль", "рубля", "рублей", "", "", ""); node.Attributes["office:string-value"].Value = val; } } else if (type == PatternFieldType.FNumber) { element.SetAttribute("value", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", value?.ToString()); } else { element.SetAttribute("string-value", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", value?.ToString()); //value != null ? value.ToString () : String.Empty); } }
public PatternTable <TDoc, TRow> AddColumn(Expression <Func <TRow, object> > sourceProperty, Expression <Func <TRow, object> > nameFromProperty, PatternFieldType fieldType) { var name = PatternField.GetFieldName(nameFromProperty); return(AddColumn(sourceProperty, name, fieldType)); }
public PatternTable <TDoc, TRow> AddColumn(Expression <Func <TRow, object> > sourceProperty, string fieldName, PatternFieldType fieldType) { var field = new PatternTableFieldGeneric <TRow>( this, sourceProperty.Compile(), String.Format("{0}.{1}", Name, fieldName), fieldType ); ColunmsGeneric.Add(field); return(this); }
protected void AddField(Expression <Func <TDoc, object> > sourceProperty, Expression <Func <TDoc, object> > nameFromProperty, PatternFieldType fieldType) { var name = PatternField.GetFieldName(nameFromProperty); AddField(sourceProperty, name, fieldType); }
protected void AddField(Expression <Func <TDoc, object> > sourceProperty, string name, PatternFieldType fieldType) { var field = new PatternField(); field.Name = name; field.Type = fieldType; if (RootObject != null) { try{ field.Value = sourceProperty.Compile().Invoke(RootObject); } catch (NullReferenceException ex) { logger.Warn(ex, "При получении значения поля {0}, произошло исключение NullReferenceException.", name); } } fieldsList.Add(field); FieldsHasValues = RootObject != null; }
public PatternTableFieldGeneric(IPatternDataTable <TRow> table, Func <TRow, object> getValueFunc, string name, PatternFieldType type) : base(name, type) { MyTable = table; GetValueFunc = getValueFunc; }
public PatternField(string name, PatternFieldType type) { Name = name; Type = type; }
void SetFieldVariableValue(XmlNode node, PatternFieldType type, object value) { var element = (XmlElement)node; if (type == PatternFieldType.FDate) throw new NotImplementedException(); //node.Attributes["office:string-value"].Value = value != null ? ((DateTime)value).ToLongDateString() : String.Empty; //node.Attributes ["office:date-value"].Value = field.value != DBNull.Value ? XmlConvert.ToString ((DateTime)field.value, XmlDateTimeSerializationMode.Unspecified) : ""; else if (type == PatternFieldType.FCurrency) { decimal valueDec = value != null ? (decimal)value : Decimal.Zero; string fieldName = node.Attributes["text:name"].Value; if (fieldName.EndsWith(".Число")) { ((XmlElement)node).SetAttribute("value-type", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", "currency"); ((XmlElement)node).SetAttribute("value", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", XmlConvert.ToString(valueDec)); string curr = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol; ((XmlElement)node).SetAttribute("currency", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", curr); } if (fieldName.EndsWith(".Пропись")) { string val = RusCurrency.Str((int)valueDec, true, "рубль", "рубля", "рублей", "", "", ""); node.Attributes["office:string-value"].Value = val; } } else if(type == PatternFieldType.FAutoRowNumber) { element.SetAttribute("value", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", value?.ToString()); //value != null ? value.ToString () : String.Empty); element.InnerText = value?.ToString(); } else { element.SetAttribute("string-value", "urn:oasis:names:tc:opendocument:xmlns:office:1.0", value?.ToString()); //value != null ? value.ToString () : String.Empty); element.InnerText = value?.ToString(); } }