Exemplo n.º 1
0
        private static void ApplyProgressFormat(ReportColumn column, IEnumerable <ReportConditionalFormatRule> rules)
        {
            if (column.ColumnFormattingRule != null)
            {
                column.ColumnFormattingRule.AsWritable().Delete();
            }
            ReportConditionalFormatRule rule = rules.First();
            decimal min;

            if (!decimal.TryParse(rule.PercentageBounds.LowerBounds.ToString(), out min))
            {
                min = 0;
            }
            int max;

            if (!int.TryParse(rule.PercentageBounds.UpperBounds.ToString(), out max))
            {
                max = 0;
            }
            BarFormattingRule formattingRule = new BarFormattingRule
            {
                BarColor = rule.ForegroundColor != null?rule.ForegroundColor.ToColourString() : null,
                               BarMinValue = ReportConditionHelper.ArgumentForConditionType(column.ColumnExpression.ReportExpressionResultType, rule.PercentageBounds.LowerBounds.ToString()),
                               BarMaxValue = ReportConditionHelper.ArgumentForConditionType(column.ColumnExpression.ReportExpressionResultType, rule.PercentageBounds.UpperBounds.ToString())
            };

            formattingRule.Save();
            column.ColumnFormattingRule = formattingRule.As <FormattingRule>();
        }
Exemplo n.º 2
0
        private static ReportCondition ReportConditionFromRule(ReportConditionalFormatRule rule, ReportColumn column)
        {
            ReportCondition reportCondition = new ReportCondition();

            if (rule.Operator.HasValue && rule.Operator != ConditionType.Unspecified)
            {
                string alias = "oper" + rule.Operator.ToString();
                reportCondition.Operator = Entity.Get <OperatorEnum>(new EntityRef(alias));
            }

            Parameter parameter = reportCondition.ConditionParameter != null?reportCondition.ConditionParameter.AsWritable <Parameter>() : new Parameter();

            // Clear the old parameter
            if (parameter.ParamTypeAndDefault != null)
            {
                parameter.ParamTypeAndDefault.AsWritable().Delete();
            }
            // Force entity resource list for argument if we have entities
            ActivityArgument activityArgument = null;

            if (rule.Values != null && rule.Values.Count > 0)
            {
                ResourceListArgument resourceList = new ResourceListArgument();
                foreach (KeyValuePair <long, string> valuePair in rule.Values)
                {
                    Resource resource = Entity.Get <Resource>(valuePair.Key);
                    if (resource != null)
                    {
                        resourceList.ResourceListParameterValues.Add(resource);
                    }
                }
                TypedArgument argumentType = column.ColumnExpression.ReportExpressionResultType.As <TypedArgument>();
                resourceList.ConformsToType = argumentType.ConformsToType;
                activityArgument            = resourceList.As <ActivityArgument>();
                activityArgument.Save();
            }
            else if (rule.Operator.HasValue)
            {
                int operatorCount = ConditionTypeHelper.GetArgumentCount(rule.Operator.Value);
                if (operatorCount > 0)
                {
                    activityArgument = ReportConditionHelper.ArgumentForConditionType(column.ColumnExpression.ReportExpressionResultType, rule.Operator.Value, rule.Value);
                    activityArgument.Save();
                }
            }
            parameter.ParamTypeAndDefault = activityArgument;
            parameter.Save();
            reportCondition.ConditionParameter = parameter;
            return(reportCondition);
        }