예제 #1
0
 internal ExprCompileTimeInfo(Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo expression, ExpressionParser.ExpressionContext context)
 {
     ExpressionInfo    = expression;
     OwnerObjectType   = context.ObjectType;
     OwnerObjectName   = context.ObjectName;
     OwnerPropertyName = context.PropertyName;
     NumErrors         = 0;
     NumWarnings       = 0;
 }
예제 #2
0
 private void ProcessAggregateParam(Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo expression, ExpressionParser.ExpressionContext context)
 {
     if (expression != null && expression.Type == Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Types.Expression)
     {
         RegisterExpression(new ExprCompileTimeInfo(expression, context));
     }
 }
예제 #3
0
 private void ProcessAggregateParam(Microsoft.ReportingServices.ReportIntermediateFormat.DataAggregateInfo aggregate, ExpressionParser.ExpressionContext context)
 {
     if (aggregate != null && aggregate.Expressions != null)
     {
         for (int i = 0; i < aggregate.Expressions.Length; i++)
         {
             ProcessAggregateParam(aggregate.Expressions[i], context);
         }
     }
 }
예제 #4
0
 private void ProcessAggregateParams(Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo expression, ExpressionParser.ExpressionContext context)
 {
     if (expression.Aggregates != null)
     {
         for (int num = expression.Aggregates.Count - 1; num >= 0; num--)
         {
             ProcessAggregateParam(expression.Aggregates[num], context);
         }
     }
     if (expression.RunningValues != null)
     {
         for (int num2 = expression.RunningValues.Count - 1; num2 >= 0; num2--)
         {
             ProcessAggregateParam(expression.RunningValues[num2], context);
         }
     }
 }
예제 #5
0
 private void ProcessExpression(Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo expression, ExpressionParser.ExpressionContext context)
 {
     if (expression.Type == Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Types.Expression)
     {
         RegisterExpression(new ExprCompileTimeInfo(expression, context));
         ProcessAggregateParams(expression, context);
     }
     else if (expression.Type == Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Types.Aggregate)
     {
         ProcessAggregateParams(expression, context);
     }
     else if (expression.Type == Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo.Types.Field && context.Location == Microsoft.ReportingServices.ReportPublishing.LocationFlags.None)
     {
         if (m_reportLevelFieldReferences == null)
         {
             m_reportLevelFieldReferences = new ArrayList();
         }
         m_reportLevelFieldReferences.Add(new ExprCompileTimeInfo(expression, context));
     }
 }
예제 #6
0
 internal Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo ParseExpression(string expression, ExpressionParser.ExpressionContext context, ExpressionParser.EvaluationMode evaluationMode, out bool userCollectionReferenced)
 {
     Microsoft.ReportingServices.ReportIntermediateFormat.ExpressionInfo expressionInfo = m_langParser.ParseExpression(expression, context, evaluationMode, out userCollectionReferenced);
     ProcessExpression(expressionInfo, context);
     return(expressionInfo);
 }