Пример #1
0
        private void ConvertGroups(Report report)
        {
            var reportGroupings = new List <GroupExp>();

            foreach (var grouping in Base.GroupBy.Select().RowCast <GIGroupBy>()
                     .Where(g => g.IsActive == true && !String.IsNullOrEmpty(g.DataFieldName)))
            {
                var reportGrouping = new GroupExp(NormalizeFieldName(grouping.DataFieldName));
                reportGroupings.Add(reportGrouping);
            }

            if (reportGroupings.Count > 0)
            {
                var reportGroup = new Group()
                {
                    Name = "group1"
                };
                reportGroup.Headers.Add(new GroupHeaderSection()
                {
                    Name = "groupHeaderSection1"
                });
                reportGroup.Footers.Add(new GroupFooterSection()
                {
                    Name = "groupFooterSection1"
                });
                reportGroup.Grouping.AddRange(reportGroupings);
                report.Groups.Add(reportGroup);
            }
        }
 public void OnGroup(GroupExp exp)
 {
     exp.exp1.Visit(this);
     if (exp.exp1.IsNullable)
     {
         exp.exp2.Visit(this);
     }
 }
 public Expression OnGroup( GroupExp exp )
 {
     Expression r1 = builder.CreateSequence(exp.exp1.Visit(this),exp.exp2);
     if( exp.exp1.IsNullable )
     return builder.CreateChoice( r1, exp.exp2.Visit(this) );
     else
     return r1;
 }
Пример #4
0
        private static Exp ParseGroup(dynamic obj)
        {
            var group = new GroupExp();
            group.Op = obj.op;
            group.Children =
                ((IEnumerable<dynamic>)obj.children)
                .Select(ParseExp)
                .ToList();

            return group;
        }
Пример #5
0
        public Expression OnGroup(GroupExp exp)
        {
            Expression r1 = builder.CreateSequence(exp.exp1.Visit(this), exp.exp2);

            if (exp.exp1.IsNullable)
            {
                return(builder.CreateChoice(r1, exp.exp2.Visit(this)));
            }
            else
            {
                return(r1);
            }
        }
        public override Expression OnGroup(GroupExp exp)
        {
            Expression e1 = exp.exp1.Visit(this);
            Expression e2 = exp.exp2.Visit(this);

            if (e1 == Expression.NotAllowed)
            {
                return(builder.CreateSequence(exp.exp1, e2));
            }
            if (e2 == Expression.NotAllowed)
            {
                return(builder.CreateSequence(e1, exp.exp2));
            }

            return(builder.CreateChoice(
                       builder.CreateSequence(exp.exp1, e2),
                       builder.CreateSequence(e1, exp.exp2)));
        }
Пример #7
0
 private static Dictionary<string, object> SerializeGroup(GroupExp g)
 {
     return new Dictionary<string, object>
     {
         { "type", 0 },
         { "op", g.Op },
         { "children", g.Children.Select(SerializeExpr) }
     };
 }
Пример #8
0
        public void T1()
        {
            var c1 = new ConditionExp
            {
                Field = new Field
                {
                    Name = "Id"
                },
                Op = FieldOp.Gt,
                Value = 1
            };
            var c2 = new ConditionExp
            {
                Field = new Field
                {
                    Name = "Name"
                },
                Op = FieldOp.Contains,
                Value = "shai"
            };

            var c3 = new ConditionExp
            {
                Field = new ForeignField
                {
                    Name = "Invitations",
                    ForeignFieldName = "Date"
                },
                Op = FieldOp.Eq,
                Value = DateTime.Now.Date
            };
            var group = new GroupExp
            {
                Op = LogicalOp.And,
                Children = new List<Exp> { c1, c2, c3 }
            };
            var tbl = new TableExp
            {
                Name = "Person",
                Exp = group
            };

            var db = new DB(ConString);
            var queryableData = db.Persons.AsQueryable();

            var results = queryableData.From(tbl).ToArray();
        }
 public virtual Expression OnGroup(GroupExp exp)
 {
     return(builder.CreateSequence(
                exp.exp1.Visit(this), exp.exp2.Visit(this)));
 }
 public void OnGroup( GroupExp exp )
 {
     OnBinExp(exp,",");
 }