예제 #1
0
        public void WhereTest()
        {
            var builder = new MdxWhereElement()
                          .Set(
                new List <IMdxElement>
            {
                new MdxHierarchy("[Ent FirstLevels - Name]")
                .Value("Мотовилов Андрей Александрович"),
                new MdxHierarchy("[Ent Goods].[Ent Group NMK - Name]")
                .Value("1. КИСЛОМОЛОЧНАЯ группа")
            }
                );

            var dc = new MdxDrawContext();

            builder.Draw(dc);
            var mdxQuery = dc.ToString();

            var expectedQuery =
                @"WHERE
(
    [Ent FirstLevels - Name].&[Мотовилов Андрей Александрович],
    [Ent Goods].[Ent Group NMK - Name].&[1. КИСЛОМОЛОЧНАЯ группа]
)";

            Assert.AreEqual(expectedQuery, mdxQuery, "Запрос по измерениям должен совпадать с образцом");
        }
예제 #2
0
        public string Build()
        {
            if (_where != null)
            {
                PreBuild();
            }

            _dc = new MdxDrawContext();

            if (_with != null)
            {
                _with.Draw(_dc);
            }

            _dc.AppendLine("SELECT");

            if (_columns != null)
            {
                _columns.Draw(_dc);
            }
            else
            {
                _dc.AppendLine("{}");
                _dc.AppendLine("ON COLUMNS,");
            }

            if (_columns != null && _rows != null && !_rows.IsEmpty())
            {
                _dc.AppendLine(",");
            }
            else
            {
                _dc.EndOfLine();
            }

            if (_rows != null)
            {
                _rows.Draw(_dc);
            }

            DrawFrom();

            if (_where != null && _where.GetChildren().Any())
            {
                _dc.EndOfLine();

                _where.Draw(_dc);
            }

            return(_dc.ToString());
        }
예제 #3
0
        public void HierarchyValueTest()
        {
            var builder = new MdxHierarchy("[Ent Contacts].[Ent MainManagers - Id]")
                          .Value("175");

            var dc = new MdxDrawContext();

            builder.Draw(dc);
            var mdxQuery = dc.ToString();

            var expectedQuery = "[Ent Contacts].[Ent MainManagers - Id].&[175]";

            Assert.AreEqual(expectedQuery, mdxQuery, "Запрос по измерениям должен совпадать с образцом");
        }
예제 #4
0
        public void NonEmptyHierarchyTest()
        {
            var builder = new MdxHierarchy("[Ent Contacts].[Ent MainManagers - Id]")
                          .NotEmpty();

            var dc = new MdxDrawContext();

            builder.Draw(dc);
            var mdxQuery = dc.ToString();

            var expectedQuery = @"NON EMPTY (
[Ent Contacts].[Ent MainManagers - Id])";

            Assert.AreEqual(expectedQuery, mdxQuery, "Запрос по измерениям должен совпадать с образцом");
        }
예제 #5
0
 public void Draw(MdxDrawContext dc)
 {
     _mdxValueElement.Draw(dc);
 }