Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        protected void AddField(Expression <Func <TDoc, object> > sourceProperty, Expression <Func <TDoc, object> > nameFromProperty, PatternFieldType fieldType)
        {
            var name = PatternField.GetFieldName(nameFromProperty);

            AddField(sourceProperty, name, fieldType);
        }
Exemple #5
0
        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;
        }
Exemple #6
0
 public PatternTableFieldGeneric(IPatternDataTable <TRow> table, Func <TRow, object> getValueFunc, string name, PatternFieldType type) : base(name, type)
 {
     MyTable      = table;
     GetValueFunc = getValueFunc;
 }
Exemple #7
0
 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();
            }
        }