LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

У сьогоднішньому підручнику я покажу, як можна автоматизувати процес сортування одного стовпця за іншим у службах аналізу LuckyTemplates і SSAS або SQL Server. Ви можете переглянути повне відео цього підручника внизу цього блогу.

У цьому прикладі ми маємо таблицю Дати з кількома стовпцями. Деякі стовпці є цілочисельною частиною, яку ми збираємося приховати; і деякі стовпці є частиною рядка, яку ми збираємося показати кінцевому користувачеві.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Отже, у нас є стовпці Календарний рік, Календарний рік, Місяць і Місяць. Ми хочемо автоматизувати сортування цих трьох стовпців за цілою частиною. Я сортую календарний рік за номером календарного року, місяць календарного року за номером місяця календарного року, а також місяць за номером місяця.

Але ми не будемо робити це поодинці. Ми запустимо сценарій, який автоматично відсортує це для цієї конкретної таблиці. Якщо у вас є кілька стовпців для кількох таблиць, ви можете використовувати цей сценарій для цих наборів таблиць.

Ми збираємося використовуватидля написання цього коду C#, але наразі табличний редактор не має IntelliSense для мови C#. Щоб зробити це простіше, ми будемо використовувати Visual Studio (VS), де у нас є мова IntelliSense для C#, і ви також можете використовувати код VS.

Зміст

Сортування стовпців у LuckyTemplates і SSAS за допомогою C#

По-перше, нам потрібно створити новий проект у Visual Studio, який буде консольним додатком (.Net Framework) для мови C#. Давайте виберемо, що натисніть «Далі».

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Тоді ми можемо надати будь-яку назву проекту. Я збираюся назвати це SortBy і натиснути «Створити».

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Тепер ви бачите, що у нас є код. Коли код запрацює, ми просто скопіюємо та вставимо його в табличний редактор.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Але щоб код працював у Visual Studio, нам потрібно встановити посилання на бібліотеку. І для цього ми можемо просто натиснути посилання та вибрати опцію керування пакетами NuGet у браузері.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Всередині опції перегляду нам потрібно написати. Потім у доступних варіантах нам потрібно вибрати другий і натиснути «Встановити». Почнеться інсталяція, і для її завершення знадобиться кілька секунд.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Далі нам потрібно написати в коді за допомогою Microsoft.AnalysisServices.Tabular , а потім написати крапку з комою. Ми збираємося створити об’єкт server, тож ми можемо просто написати Server , і ім’я об’єкта server буде самим Server , і ми збираємося написати New Server .

Таким чином, ми створюємо новий об’єкт у пам’яті. І щоб підключити цей сервер до файлу LuckyTemplates, ми будемо використовувати метод об’єкта сервера. Отже, давайте напишемо server.Connect і тут ми надамо номер порту, на якому прослуховує AnalysisServices у LuckyTemplates.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Щоб знайти цей номер порту, ми переходимо до Зовнішніх інструментів, натискаємо , і в нижній частині ми знаходимо локальний хост. Це номер коду, за яким служби аналізу SQL-сервера, які ми маємо в LuckyTemplates, слухають зміни, які ми надсилаємо через LuckyTemplates або будь-який інший зовнішній інструмент.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Сервер — це одне, але у випадку SSAS сервер може мати кілька моделей. Але зараз у LuckyTemplates ми маємо лише одну модель. Отже, ми збираємося оголосити цю модель. Ми пишемо тут Модель дорівнює (=) server.Databases , і ми отримаємо доступ до найпершої бази даних на цьому сервері, тому напишемо .Model .

Тепер давайте перевіримо, чи працює ця частина коду чи ні. Для цього ми просто надрукуємо список усіх таблиць, які є в цій моделі даних. Отже, ми введемо тут для кожного (Таблиця t у model.Tables) , відкриємо квадратні дужки та натиснемо enter.

Після цього ми вводимо Console.WriteLine (t.Name) . Щоб переконатися, що вікно не закривається автоматично після друку назви таблиць, ми напишемо Console.ReadLine , відкриваючу та закриваючу дужки та крапку з комою. Тепер все, що нам потрібно зробити, це натиснути опцію «Пуск» і дочекатися її виконання.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Ви бачите, що ми можемо надрукувати назви таблиць, які є в моделі даних. У нас є дати, продукт, клієнт і магазин. Це підтверджує, що налаштування, які ми створили, працюють.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Тож тепер ми можемо поглинути суть коду та почати створювати код, який допоможе нам сортувати цей стовпець за відповідником цілого числа.

Давайте позбудемося всього, що ми створили з частини ForEach . Ми збираємося залишити сервер і модель як є. Давайте оголосимо змінну, яка буде містити назву таблиці, яку ми хочемо повторити. Я назву її DatesTable , а назва таблиці буде в основному Dates .

Далі ми матимемо foreach var t у model.Tables , потім ми збираємося використати речення where , щоб ми могли сказати, де T переходить до t. Name має дорівнювати DatesTable . Якщо ми зараз виконуємо ітерацію в DatesTable, ми збираємося ініціювати ще один цикл над усіма стовпцями цієї DatesTable. Для цього ми можемо написати foreach var c у t.Columns .

Щоб перевірити, чи виконуємо ми ітерацію лише по DatesTable і чи маємо ми доступ до всіх стовпців DatesTable, ми можемо просто надрукувати Console.WriteLine і скажемо c.Name .

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Якщо я натисну F5, ви побачите, що ми отримуємо доступ до стовпців.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Тепер ми можемо продовжити і написати більше коду.

Ми збираємося створити список кортежів, який міститиме ще три стовпці. Один із стовпців буде цільовим. Другий стовпець буде стовпцем, за яким ми хочемо відсортувати цільовий стовпець, а третій стовпець просто матиме значення true або false, незалежно від того, чи хочемо ми приховати стовпець, за яким ми фактично сортуємо.

Припустімо, ми хочемо відсортувати стовпець «Календарний рік» за номером календарного року. Перший стовпець міститиме календарний рік, другий стовпець буде для номера календарного року, а третій стовпець вирішуватиме, чи хочемо ми приховати стовпець календарного року після завершення сортування чи ні.

І для цього давайте повернемося до Visual Studio, де ми збираємося створити нову змінну. Ви можете назвати його як завгодно. У цьому прикладі я назву це colOperations . Далі ми напишемо new , а потім створимо список і напишемо тип стовпців (string, string і bool). Після цього створюємо кортежі.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Отже, по суті, ми просто створюємо список із трьох стовпців, і для трьох стовпців ми передбачили два рядки. Тепер у нашому циклі foreach ми збираємося запустити цикл for . По суті, ми маємо на увазі те, що оголошуємо змінну, яка починається з i на кожній ітерації. Якщо i менше colOperations.Count, просто збільште це .

Далі ми напишемо оператор IF . c.Name належить назві стовпця, у якому ми зараз перебуваємо. Потім у нас є colOperations i . I фактично дозволяє нам отримати доступ до одного конкретного рядка . І коли ми пишемо .Item1 , ми можемо отримати доступ до першого стовпця, другого стовпця або третього стовпця.

Тож спочатку ми використаємо стовпець Item1 . Якщо це правда, ми просто пишемо, що c.SortByColumn має дорівнювати t.Columns . Пам’ятайте, що t є об’єктом таблиці. Потім ми отримуємо доступ до стовпців цієї таблиці. Нам потрібні colOperations , рядок, у якому ми зараз перебуваємо в операціях зі стовпцями, а стовпець, по суті, є об’єктом Item2 .

Нарешті, щоб приховати той конкретний стовпець, через який ми застосовуємо сортування, ми пишемо останній рядок коду.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Отже, тепер, коли ми написали основний код, який ми збираємося виконати з нашою табличною моделлю, ми можемо просто скопіювати код з var colOperations і перенести його в табличний редактор, а потім ми збираємося виконати той самий код.

Сортування стовпців у LuckyTemplates і SSAS за допомогою табличного редактора

Ми не будемо використовувати сервер або об’єкт моделі, тому що за сценою Tabular Editor автоматично знатиме, до якої моделі LuckyTemplates або моделі служб аналізу він має підключитися. Отже, нам не потрібно використовувати ці змінні, тому що це вже завдання визначити, як він хоче підключитися до цих моделей.

Повернувшись до LuckyTemplates, ми збираємося запустити табличний редактор 3 або табличний редактор 2. Ви можете використовувати будь-який із них. У цьому випадку скористаємося табличним редактором 3.

Переходимо на вкладку «Файл», натискаємо «Новий код C#» і закриваємо параметр «Властивості». Тоді ми можемо вставити код сюди. Єдине, що нам потрібно переконатися, це те, що замість використання змінної моделі потрібно використовувати об’єкт моделі . Отже, давайте використаємо велику M і виконаємо цей код.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Тепер, коли сценарій успішно виконано, і він також показує три зміни моделі, ми збираємося зафіксувати зміни назад у модель даних. Ми збережемо все, що ми застосували до цих стовпців.

У LuckyTemplates ви можете побачити, що номер місяця приховано. Якщо я клацну стовпець «Місяць» і перейду до « Інструментів для стовпців » і «Сортувати за стовпцем» , ви побачите, що цей конкретний стовпець відсортовано за номером місяця. Те саме стосується номера місяця календарного року.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#

Календарний рік сортується сам по собі, оскільки ми не мали цього стовпця в коді C#. Отже, ми можемо знову запустити табличний редактор і створити інший кортеж. А потім ще раз виконуємо цей сценарій.

LuckyTemplates і SSAS – сортування стовпців за допомогою TE3 і C#




Висновок

Ось як легко можна автоматизувати процес сортування одного стовпця за іншимі SSAS. Це був простий приклад того, як ви можете виконати цю операцію всередині таблиці Dates. Але ви можете розширити цей список, додавши більше стовпців, а потім перевірити іншу таблицю.

Таким чином ви можете скоротити кількість часу, який вам доведеться витрачати на сортування цих стовпців для тих самих моделей, які ви збираєтеся створювати знову і знову.

Сподіваюся, ви знайшли це корисним. Якщо у вас виникли запитання, просто дайте мені знати в розділі коментарів.


Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.