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. Але ви можете розширити цей список, додавши більше стовпців, а потім перевірити іншу таблицю.

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

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


Поле пошуку PowerApps: як додати та налаштувати

Поле пошуку PowerApps: як додати та налаштувати

Дізнайтеся, як створити поле пошуку PowerApps з нуля та налаштувати його відповідно до загальної теми вашої програми.

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Збирайте або фіксуйте значення в мірі для повторного використання в іншій мірі для динамічних обчислень за допомогою SELECTEDVALUE DAX у LuckyTemplates.

Історія версій у списках SharePoint

Історія версій у списках SharePoint

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

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

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

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Ви можете легко відобразити діапазон дат як роздільник у своєму звіті за допомогою таблиці періодів. Використовуйте M-код, щоб створити динамічний роздільник дат у LuckyTemplates.

Таблиці пропорцій і частот в Excel

Таблиці пропорцій і частот в Excel

Збирався зануритися в частотні таблиці в Excel, а також у таблиці пропорцій. Добре подивіться, що це таке і коли їх використовувати.

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Дізнайтеся, як завантажити та інсталювати DAX Studio та Tabular Editor 3 і як налаштувати їх для використання в LuckyTemplates і Excel.

Візуалізація карти форми LuckyTemplates для просторового аналізу

Візуалізація карти форми LuckyTemplates для просторового аналізу

Цей блог містить візуалізацію Shape Map для просторового аналізу в LuckyTemplates. Я покажу вам, як ви можете ефективно використовувати цю візуалізацію з її функціями та елементами.

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

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

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Створіть показники DAX у LuckyTemplates, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.