예제 #1
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     base.AppendCommentAndIndent(mdx, f, indent, comma);
     mdx.Append(f.Keyword("SCOPE "));
     this.m_Scope.AppendMDX(mdx, f, f.Indent(indent));
     mdx.Append(";");
     this.m_Script.AppendMDX(mdx, f, f.Indent(indent));
     this.m_EndScope.AppendMDX(mdx, f, indent);
 }
예제 #2
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     base.AppendCommentAndIndent(mdx, f, indent, comma);
     mdx.AppendFormat("CELL CALCULATION {0} ", base.Name.GetMDX(f, -1));
     f.AppendIndent(mdx, f.Indent(indent));
     mdx.AppendFormat("FOR {0} ", this.m_Scope);
     f.AppendIndent(mdx, f.Indent(indent));
     mdx.Append(f.Keyword("AS "));
     base.Exp.AppendMDX(mdx, f, f.Indent(f.Indent(indent)));
 }
예제 #3
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     f.AppendIndent(mdx, indent, comma);
     mdx.Append("DRILLTHROUGH ");
     this.m_Select.AppendMDX(mdx, f, f.Indent(indent));
     if (this.m_ReturnAttrs != null)
     {
         f.AppendIndent(mdx, f.Indent(indent));
         mdx.Append("RETURN ");
         this.m_ReturnAttrs.AppendMDX(mdx, f, f.Indent(f.Indent(indent)));
     }
 }
예제 #4
0
        internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
        {
            base.AppendCommentAndIndent(mdx, f, indent, comma);
            string str = (base.IsBuiltin && f.Options.ColorFunctionNames) ? f.Keyword(base.m_Function) : base.m_Function;

            mdx.Append(str);
            bool   flag = false;
            string mDX  = null;

            if (base.m_Arguments.Count != 0)
            {
                if (base.m_Arguments.Count == 1)
                {
                    mDX = base.m_Arguments[0].GetMDX(f, -1);
                    if ((indent >= 0) && ((mDX.Length + indent) > 70))
                    {
                        f.AppendIndent(mdx, indent);
                        flag = true;
                    }
                }
                else
                {
                    f.AppendIndent(mdx, indent);
                    flag = true;
                }
            }
            mdx.Append("(");
            bool flag2 = true;

            foreach (MDXExpNode node in base.m_Arguments)
            {
                f.AppendCommaAtTheEndOfLine(mdx, !flag2);
                if (base.m_Arguments.Count > 1)
                {
                    node.AppendMDX(mdx, f, f.Indent(indent), !flag2);
                }
                else if (flag)
                {
                    node.AppendMDX(mdx, f, f.Indent(indent));
                }
                else
                {
                    mdx.Append(mDX);
                }
                flag2 = false;
            }
            if (flag)
            {
                f.AppendIndent(mdx, indent);
            }
            mdx.Append(")");
        }
예제 #5
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     f.AppendIndent(mdx, indent, comma);
     if (indent < 0)
     {
         mdx.Append(" ");
     }
     mdx.AppendFormat("{0} {1} ", f.Keyword("WHEN"), this.m_When.GetMDX(f, f.Indent(indent)));
     f.AppendIndent(mdx, indent);
     if (indent < 0)
     {
         mdx.Append(" ");
     }
     mdx.AppendFormat("{0} {1}", f.Keyword("THEN"), this.m_Then.GetMDX(f, f.Indent(indent)));
 }
예제 #6
0
        internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
        {
            base.AppendComment(mdx, f, indent);
            this.m_Exp.AppendMDX(mdx, f, indent, comma);
            if (this.m_Having != null)
            {
                mdx.AppendFormat(" HAVING {0}", this.m_Having.GetMDX(f, indent));
            }
            if (this.m_DimProps != null)
            {
                f.AppendIndent(mdx, indent);
                mdx.Append("DIMENSION PROPERTIES ");
                string mDX = this.m_DimProps.GetMDX(f, -1);
                if (this.m_DimProps.Count > 1)
                {
                    this.m_DimProps.AppendMDX(mdx, f, f.Indent(indent));
                    f.AppendIndent(mdx, indent);
                }
                else
                {
                    mdx.AppendFormat("{0} ", mDX);
                }
            }
            string s = String.Format(" ON {0}", this.m_Name.ToUpper());

            mdx.Append(f.Keyword(s));
        }
예제 #7
0
        internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
        {
            base.AppendCommentAndIndent(mdx, f, indent, comma);
            int num = f.Indent(indent);

            if (this.m_List.Count == 1)
            {
                string mDX = this.m_List[0].GetMDX(f, -1);
                if (mDX.Length < 60)
                {
                    mdx.AppendFormat("{0}{1}{2}", f.OpenBrace(), mDX, f.CloseBrace());
                    return;
                }
            }
            mdx.Append(f.OpenBrace());
            bool flag = true;

            if (this.m_List != null)
            {
                foreach (object obj2 in this.m_List)
                {
                    f.AppendCommaAtTheEndOfLine(mdx, !flag);
                    ((MDXNode)obj2).AppendMDX(mdx, f, num, !flag);
                    flag = false;
                }
            }
            if (this.m_List.Count != 0)
            {
                f.AppendIndent(mdx, indent);
            }
            mdx.Append(f.CloseBrace());
        }
예제 #8
0
        internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
        {
            base.AppendComment(mdx, f, indent);
            int num = indent;

            if ((this.m_Prop != null) && this.m_Prop.Equals("LANGUAGE", StringComparison.CurrentCultureIgnoreCase))
            {
                num = -1;
            }
            if (this.m_Prop != null)
            {
                f.AppendIndent(mdx, indent, comma);
                mdx.Append(this.m_Prop);
                f.AppendIndent(mdx, num);
                mdx.Append("(");
            }
            this.m_LValue.AppendMDX(mdx, f, num);
            if (this.m_Prop != null)
            {
                f.AppendIndent(mdx, num);
                mdx.Append(")");
            }
            mdx.Append(" = ");
            this.m_RValue.AppendMDX(mdx, f, f.Indent(num));
        }
예제 #9
0
        internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
        {
            int num = indent;

            if (this.m_List.Count > 1)
            {
                base.AppendCommentAndIndent(mdx, f, indent, comma);
                num = f.Indent(indent);
            }
            else if (comma)
            {
                base.AppendCommentAndIndent(mdx, f, indent, comma);
            }
            mdx.Append("(");
            bool flag = true;

            foreach (object obj2 in this.m_List)
            {
                f.AppendCommaAtTheEndOfLine(mdx, !flag);
                ((MDXNode)obj2).AppendMDX(mdx, f, num, !flag);
                flag = false;
            }
            if (this.m_List.Count > 1)
            {
                f.AppendIndent(mdx, indent);
            }
            mdx.Append(")");
        }
예제 #10
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     f.AppendIndent(mdx, indent, comma);
     mdx.Append(f.Keyword("CASE "));
     foreach (MDXWhenNode node in this.m_WhenList)
     {
         node.AppendMDX(mdx, f, f.Indent(indent));
     }
     if (this.m_Else != null)
     {
         f.AppendIndent(mdx, f.Indent(indent));
         mdx.AppendFormat("{0} {1}", f.Keyword("ELSE"), this.m_Else.GetMDX(f, f.Indent(f.Indent(indent))));
     }
     f.AppendIndent(mdx, indent);
     mdx.Append(f.Keyword("END"));
 }
예제 #11
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     base.AppendComment(mdx, f, indent);
     if (this.m_Withs.Count > 0)
     {
         this.m_Withs.AppendComment(mdx, f, indent);
         f.AppendIndent(mdx, indent, comma);
         mdx.Append(f.Keyword("WITH "));
         this.m_Withs.AppendMDX(mdx, f, f.Indent(indent));
     }
     f.AppendIndent(mdx, indent, comma);
     mdx.Append(f.Keyword("SELECT "));
     this.m_Axes.AppendMDX(mdx, f, f.Indent(indent));
     f.AppendIndent(mdx, indent, comma);
     mdx.Append(f.Keyword("FROM "));
     if (this.m_Subselect != null)
     {
         f.AppendIndent(mdx, indent, comma);
         mdx.Append("(");
         this.m_Subselect.AppendMDX(mdx, f, f.Indent(indent));
         f.AppendIndent(mdx, indent, comma);
         mdx.Append(")");
     }
     else
     {
         mdx.Append(this.m_Cube);
     }
     if (this.m_Where != null)
     {
         this.m_Where.AppendComment(mdx, f, indent);
         f.AppendIndent(mdx, indent, comma);
         mdx.AppendFormat("{0} {1}", f.Keyword("WHERE"), this.m_Where.GetMDX(f, f.Indent(indent)));
     }
     if (this.m_CellProps != null)
     {
         f.AppendIndent(mdx, indent, comma);
         mdx.Append(f.Keyword("CELL PROPERTIES "));
         if (this.m_CellProps.Count == 1)
         {
             this.m_CellProps.AppendMDX(mdx, f, -1);
         }
         else
         {
             this.m_CellProps.AppendMDX(mdx, f, f.Indent(indent));
         }
     }
 }
예제 #12
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     base.AppendCommentAndIndent(mdx, f, indent, comma);
     if (this.m_Op == "-")
     {
         mdx.AppendFormat("-{0}", this.m_Exp.GetMDX(f, f.Indent(indent)));
     }
     else
     {
         mdx.AppendFormat("({0} {1})", f.Keyword(this.m_Op), this.m_Exp.GetMDX(f, f.Indent(indent)));
     }
 }
예제 #13
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     base.AppendComment(mdx, f, indent);
     if (this.m_Withs.Count > 0)
     {
         this.m_Withs.AppendComment(mdx, f, indent);
         f.AppendIndent(mdx, indent, comma);
         mdx.Append(f.Keyword("CREATE "));
         if (this.m_Hidden)
         {
             mdx.Append(f.Keyword("HIDDEN "));
         }
         this.m_Withs.AppendMDX(mdx, f, f.Indent(indent));
     }
 }
예제 #14
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     base.AppendCommentAndIndent(mdx, f, indent, comma);
     if (!base.m_NewSyntax)
     {
         mdx.AppendFormat("{0} {1} {2} {3} ", new object[] { f.Keyword("MEMBER"), base.Name.GetLabel(), f.Keyword("AS"), base.Exp.GetMDX(f, f.Indent(indent)) });
         if ((base.CalcProps != null) && (base.CalcProps.Count > 0))
         {
             f.AppendCommaAtTheEndOfLine(mdx, true);
             base.CalcProps.AppendMDX(mdx, f, f.Indent(indent), true);
         }
     }
     else if ((base.Exp.GetType() == typeof(MDXIDNode)) && (base.Exp as MDXIDNode).GetLabel().Equals("NULL", StringComparison.InvariantCultureIgnoreCase))
     {
         mdx.AppendFormat("{0} ", base.Name.GetLabel());
     }
     else
     {
         mdx.AppendFormat("{0} = {1}", base.Name.GetLabel(), base.Exp.GetMDX(f, f.Indent(indent)));
     }
 }
예제 #15
0
        internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
        {
            bool flag = false;

            if (this.m_UpstreamOp != null)
            {
                int precedence = GetPrecedence(this.m_UpstreamOp);
                int num2       = GetPrecedence(this.m_Op);
                if ((precedence < 0) || (num2 < 0))
                {
                    flag = true;
                }
                else
                {
                    flag = precedence > num2;
                }
            }
            if (flag || comma)
            {
                f.AppendIndent(mdx, indent, comma);
            }
            MDXExpListNode exps = new MDXExpListNode();

            this.FlattenCJ(exps);
            if (exps.Count > 2)
            {
                bool flag2 = true;
                foreach (MDXExpNode node2 in exps)
                {
                    if (!flag2)
                    {
                        mdx.Append("*");
                    }
                    node2.AppendMDX(mdx, f, f.Indent(indent));
                    flag2 = false;
                }
            }
            else
            {
                string str  = (this.m_Op.Length > 2) ? f.Keyword(this.m_Op) : this.m_Op;
                string mDX  = this.m_Exp1.GetMDX(f, -1);
                string str3 = this.m_Exp2.GetMDX(f, -1);
                if ((indent >= 0) && ((mDX.Length + str3.Length) > 70))
                {
                    if (flag)
                    {
                        mdx.Append("(");
                    }
                    this.m_Exp1.AppendMDX(mdx, f, f.Indent(indent));
                    base.AppendCommentAndIndent(mdx, f, indent, false);
                    mdx.AppendFormat("{0} ", str);
                    this.m_Exp2.AppendMDX(mdx, f, f.Indent(indent));
                    if (flag)
                    {
                        f.AppendIndent(mdx, indent);
                        mdx.Append(")");
                    }
                }
                else
                {
                    base.AppendCommentAndIndent(mdx, f, indent, false);
                    if (flag)
                    {
                        mdx.AppendFormat("({0} {1} {2})", mDX, str, str3);
                    }
                    else
                    {
                        mdx.AppendFormat("{0} {1} {2}", mDX, str, str3);
                    }
                }
            }
        }
예제 #16
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     f.AppendIndent(mdx, indent, comma);
     mdx.AppendFormat("CREATE SUBCUBE {0} AS ", this.m_Name);
     this.m_Select.AppendMDX(mdx, f, f.Indent(indent));
 }
예제 #17
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     base.AppendCommentAndIndent(mdx, f, indent, comma);
     mdx.AppendFormat("{0} {1} {2} {3} ", new object[] { f.Keyword("SET"), base.Name.GetMDX(f, -1), f.Keyword("AS"), base.Exp.GetMDX(f, f.Indent(indent)) });
 }
예제 #18
0
 internal override void AppendMDX(StringBuilder mdx, Formatter f, int indent, bool comma)
 {
     f.AppendIndent(mdx, indent, comma);
     mdx.Append("NON EMPTY ");
     this.m_Set.AppendMDX(mdx, f, f.Indent(indent));
 }