예제 #1
0
        /// <summary>
        ///    This method generates an expression labelling intervals of values with lables.
        /// </summary>
        /// <remarks>
        ///    Intervals are [-Inf;L1[,[L1;L2[,[L2;L3[,..,[Ln-1;Ln[,[Ln;Inf].
        /// </remarks>
        public override string GetExpression()
        {
            if (Limits == null || Items == null)
            {
                return(string.Empty);
            }

            var expression = new StringBuilder();

            var i      = 0;
            var labels = Labels.ToList();

            foreach (var limit in Limits)
            {
                expression.AppendFormat("iif([{0}] < {1}, '{2}', ", FieldName, limit.ConvertedTo <string>(), labels[i++]);
            }

            expression.AppendFormat("'{0}'", labels[i]);
            for (var j = 0; j < Limits.Count(); j++)
            {
                expression.Append(")");
            }

            return(expression.ToString());
        }