示例#1
0
        internal static DVConstraint CreateDVConstraint(DVRecord dvRecord, IFormulaRenderingWorkbook book)
        {
            switch (dvRecord.DataType)
            {
            case ValidationType.ANY:
                return(new DVConstraint(ValidationType.ANY, dvRecord.ConditionOperator, null, null, double.NaN, double.NaN, null));

            case ValidationType.INTEGER:
            case ValidationType.DECIMAL:
            case ValidationType.DATE:
            case ValidationType.TIME:
            case ValidationType.TEXT_LENGTH:
                FormulaValuePair pair1 = toFormulaString(dvRecord.Formula1, book);
                FormulaValuePair pair2 = toFormulaString(dvRecord.Formula2, book);
                return(new DVConstraint(dvRecord.DataType, dvRecord.ConditionOperator, pair1.formula(),
                                        pair2.formula(), pair1.Value, pair2.Value, null));

            case ValidationType.LIST:
                if (dvRecord.ListExplicitFormula)
                {
                    String values = toFormulaString(dvRecord.Formula1, book).AsString();
                    if (values.StartsWith("\""))
                    {
                        values = values.Substring(1);
                    }
                    if (values.EndsWith("\""))
                    {
                        values = values.Substring(0, values.Length - 1);
                    }
                    String[] explicitListValues = values.Split("\0".ToCharArray());
                    return(CreateExplicitListConstraint(explicitListValues));
                }
                else
                {
                    String listFormula = toFormulaString(dvRecord.Formula1, book).AsString();
                    return(CreateFormulaListConstraint(listFormula));
                }

            case ValidationType.FORMULA:
                return(CreateCustomFormulaConstraint(toFormulaString(dvRecord.Formula1, book).AsString()));

            default:
                throw new InvalidOperationException(string.Format("validationType={0}", dvRecord.DataType));
            }
        }
示例#2
0
        private static FormulaValuePair toFormulaString(Ptg[] ptgs, IFormulaRenderingWorkbook book)
        {
            FormulaValuePair pair = new FormulaValuePair();

            if (ptgs != null && ptgs.Length > 0)
            {
                String aString = FormulaRenderer.ToFormulaString(book, ptgs);
                if (ptgs.Length == 1 && ptgs[0].GetType() == typeof(NumberPtg))
                {
                    pair._value = aString;
                }
                else
                {
                    pair._formula = aString;
                }
            }
            return(pair);
        }
示例#3
0
 private static FormulaValuePair toFormulaString(Ptg[] ptgs, IFormulaRenderingWorkbook book)
 {
     FormulaValuePair pair = new FormulaValuePair();
     if (ptgs != null && ptgs.Length > 0)
     {
         String aString = FormulaRenderer.ToFormulaString(book, ptgs);
         if (ptgs.Length == 1 && ptgs[0].GetType() == typeof(NumberPtg))
         {
             pair._value = aString;
         }
         else
         {
             pair._formula = aString;
         }
     }
     return pair;
 }