internal string GetFormattedString(RowField field) { object internalValue = _internalData[field]; if (internalValue == null) { return(string.Empty); } if (internalValue is string && string.IsNullOrEmpty((string)internalValue)) { return(string.Empty); } if (field.DataType == typeof(bool) || field.DataType == typeof(bool?)) { if (field.Report.RenderHints.BooleansAsYesNo) { return(internalValue as bool? == true ? "Yes" : "No"); } } if (field.FormatAsDelegate != null) { return((string)field.FormatAsDelegate.DynamicInvoke(internalValue)); } return(string.Format(field.DataFormatString, internalValue)); }
private void AddFieldTotal <T>(RowField field, Nullable <T> value) where T : struct { var numericValue = value != null ? value.Value : default(T); if (_totals.ContainsKey(field)) { Func <T, T, T> lambda; if (!_lambdas.ContainsKey(typeof(T))) { var firstParam = Expression.Parameter(typeof(T), "x"); var secondParam = Expression.Parameter(typeof(T), "y"); lambda = Expression.Lambda <Func <T, T, T> >(Expression.Convert(Expression.Add(firstParam, secondParam), typeof(T)), firstParam, secondParam).Compile(); _lambdas.Add(typeof(T), lambda); } else { lambda = (Func <T, T, T>)_lambdas[typeof(T)]; } var currentValue = (T)_totals[field]; object result = (object)lambda(currentValue, numericValue); _totals[field] = result; } else { _totals[field] = numericValue; } }
public object this[RowField field] { get { return(_internalData[field]); } set { //if (value != null) //{ // field.DataType = value.GetType(); _internalData[field] = value; //} } }
internal string GetUrlString(RowField field) { object dataItem = field.Row.DataItem; if (dataItem == null) { return(null); } if (field.UrlDelegate != null) { return((string)field.UrlDelegate.DynamicInvoke(dataItem)); } return(null); }