コード例 #1
0
ファイル: GridBrowser.cs プロジェクト: schifflee/bcephal2
        private GrilleColumnFilter buildColumnFilter(String link, String name, String operation, String value)
        {
            GrilleColumn column = this.Grille.GetColumn(name);

            if (column != null)
            {
                GrilleColumnFilter filter = new GrilleColumnFilter();
                filter.column          = column;
                filter.filterOperation = link;
                filter.filterOperator  = operation;
                filter.filterValue     = value;
                return(filter);
            }
            return(null);
        }
コード例 #2
0
ファイル: GridBrowser.cs プロジェクト: schifflee/bcephal2
        private GrilleColumnFilter buildColumnFilters(CriteriaOperator criteria)
        {
            GrilleColumnFilter filter = new GrilleColumnFilter();

            if (criteria != null)
            {
                String link = "And";
                if (criteria is FunctionOperator)
                {
                    FunctionOperator function = (FunctionOperator)criteria;
                    if (function.Operands.Count == 3)
                    {
                        String operation = function.Operands[0].ToString();
                        String name      = ((OperandProperty)function.Operands[1]).PropertyName;
                        String value     = ((OperandValue)function.Operands[2]).Value.ToString();
                        filter = buildColumnFilter(link, name, operation, value);
                    }
                    else if (function.Operands.Count == 2)
                    {
                        String operation = function.OperatorType.ToString();
                        String name      = ((OperandProperty)function.Operands[0]).PropertyName;
                        String value     = ((OperandValue)function.Operands[1]).Value.ToString();
                        filter = buildColumnFilter(link, name, operation, value);
                    }
                    else if (function.Operands.Count == 1)
                    {
                        String operation = function.OperatorType.ToString();
                        String name      = ((OperandProperty)function.Operands[0]).PropertyName;
                        filter = buildColumnFilter(link, name, operation, null);
                    }
                }

                if (criteria is UnaryOperator)
                {
                    UnaryOperator function  = (UnaryOperator)criteria;
                    String        operation = function.OperatorType.ToString();
                    String        name      = null;
                    if (function.Operand is OperandProperty)
                    {
                        name   = ((OperandProperty)function.Operand).PropertyName;
                        filter = buildColumnFilter(link, name, operation, null);
                    }
                    else if (function.Operand is FunctionOperator)
                    {
                        FunctionOperator functionOperator = (FunctionOperator)function.Operand;
                        String           operation2       = functionOperator.OperatorType.ToString();
                        filter = buildColumnFilters(functionOperator);
                        filter.filterOperator = operation + filter.filterOperator;
                    }
                }

                if (criteria is BinaryOperator)
                {
                    BinaryOperator function  = (BinaryOperator)criteria;
                    String         operation = function.OperatorType.ToString();
                    String         name      = ((OperandProperty)function.LeftOperand).PropertyName;
                    String         value     = ((OperandValue)function.RightOperand).Value.ToString();
                    filter = buildColumnFilter(link, name, operation, value);
                }

                if (criteria is GroupOperator)
                {
                    GroupOperator function = (GroupOperator)criteria;
                    filter.isGroup         = true;
                    filter.filterOperation = function.OperatorType.ToString();
                    foreach (CriteriaOperator op in function.Operands)
                    {
                        GrilleColumnFilter item = buildColumnFilters(op);
                        if (item != null)
                        {
                            filter.items.Add(item);
                        }
                    }
                }
            }
            return(filter);
        }