LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

A mai oktatóanyagban bemutatom, hogyan automatizálhatja az egyik oszlop másik oszlop szerinti rendezését a LuckyTemplates és az SSAS vagy SQL szerver elemzési szolgáltatásokon belül. Az oktatóanyag teljes videóját a blog alján tekintheti meg.

Ebben a példában a Dátumok táblázat több oszlopot tartalmaz. Néhány oszlop az egész rész, amelyet el fogunk rejteni; és néhány oszlop a karakterlánc része, amelyet meg fogunk mutatni a végfelhasználónak.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Tehát megvan a naptári év, a naptári év hónap és a hónap oszlop. Amit szeretnénk, az az, hogy automatizáljuk ennek a három oszlopnak a rendezését egész szám szerint. A naptári évet a naptári év száma, a naptári év hónapját a naptári év hónapszáma szerint, valamint a hónapot a hónap száma szerint rendezem.

De ezt nem egyenként fogjuk megtenni. Futtatunk egy szkriptet, amely automatikusan rendezi az adott táblázathoz. Abban az esetben, ha több oszlopa van több táblához, használhatja ezt a szkriptet azokon a táblakészleteken.

Használni fogjuka C# kód megírására, de egyelőre a Tabular Editor nem rendelkezik IntelliSense-vel a C# nyelvhez. A könnyebbé tétel érdekében a Visual Studio-t (VS) használjuk , ahol van az IntelliSense for C# nyelv, és használhatunk VS-kódot is.

Tartalomjegyzék

Oszlopok rendezése LuckyTemplates és SSAS-ban C# használatával

Először is létre kell hoznunk egy új projektet a Visual Studión belül, amely a Console App (.Net Framework) lesz a C# nyelvhez. Válassza ki azt, kattintson a Tovább gombra.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Ezután bármilyen nevet megadhatunk a projektnek. Ezt SortBy-nek fogom hívni , és rákattintok a Létrehozás gombra.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Most láthatja, hogy megvan a kód. Miután a kód működik, egyszerűen kimásoljuk és beillesztjük a Táblázatszerkesztőbe.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

De ahhoz, hogy a kód működjön a Visual Studióban, be kell állítanunk egy hivatkozást egy könyvtárra. Ehhez egyszerűen kattintson a Referenciákra , és válassza a NuGet-csomagok kezelése opciót a böngészőben.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

A tallózás opción belül írnunk kell. Ezután a rendelkezésre álló lehetőségek közül ki kell választanunk a másodikat, és kattintson a Telepítés gombra. Megkezdi a telepítést, és eltart néhány másodpercig, amíg a telepítés befejeződik.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Ezután be kell írnunk a kódba a Using Microsoft.AnalysisServices.Tabular parancsot , majd írnunk kell egy pontosvesszőt. Létre fogunk hozni egy szerverobjektumot, így egyszerűen kiírhatjuk a Szerver -t , és a szerverobjektum neve maga lesz a Szerver , és az Új szerver -et fogjuk írni .

Tehát alapvetően egy új objektumot hozunk létre a memóriában. A szervernek a LuckyTemplates fájlhoz való csatlakoztatásához a szerverobjektum metódusát fogjuk használni. Tehát írjuk a server.Connect szót , és itt megadjuk azt a portszámot, amelyen a LuckyTemplates AnalysisServices figyel.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

A portszám megtalálásához lépjünk a Külső eszközökbe, kattintsunk a ikonra, és az alsó részben megkeressük a helyi gazdagépet. Ez az a kódszám, amelyen a LuckyTemplates-en belül található SQL szerverelemző szolgáltatásaink figyelik a LuckyTemplates vagy bármely más külső eszközön keresztül küldött változtatásokat.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

A szerver egy dolog, de egy szervernek több modellje is lehet SSAS esetén. De jelenleg a LuckyTemplatesben csak egy modellünk van. Tehát kihirdetjük ezt a modellt. Ide írjuk a Model egyenlő (=) server.Databases , és elérjük a szerveren belül a legelső adatbázist, így a .Modelt írjuk .

Most teszteljük, hogy a kódnak ez a része működik-e vagy sem. Ehhez egyszerűen kinyomtatjuk az adatmodellben található összes tábla listáját. Tehát itt írjuk be mindegyikhez (Table t a model.Tables-ben) , nyissuk ki a zárójelet, és nyomjuk meg az enter billentyűt.

Ezt követően beírjuk a Console.WriteLine (t.Name) parancsot . Annak biztosítására, hogy az ablak ne zárjon be automatikusan, miután kinyomtatja a táblák nevét, a következőt írjuk: Console.ReadLine , nyitó és bezárás zárójelben, valamint pontosvesszővel. Most már csak annyit kell tennünk, hogy rákattintunk a Start lehetőségre, és várjuk meg, amíg végrehajtja.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Látható, hogy ki tudjuk nyomtatni azoknak a tábláknak a nevét, amelyek az adatmodellben vannak. Megvan a dátum, a termék, az ügyfél és az üzlet. Ez megerősíti, hogy az általunk létrehozott beállítás működik.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Tehát most már ténylegesen belevághatunk a kód lényegébe, és elkezdhetjük létrehozni azt a kódot, amely segít nekünk az oszlop egész szám szerinti megfelelője szerinti rendezésében.

Szabaduljunk meg mindentől, amit a ForEach részből hoztunk létre. A szervert és a modellt úgy fogjuk tartani, ahogy van. Deklaráljunk egy olyan változót, amely tartalmazza annak a táblának a nevét, amelyen ismételni szeretnénk. Dátumtáblázatnak nevezem el , és a tábla neve alapvetően Dátumok lesz .

Ezután a model.Tables-ben a foreach var t lesz , majd egy where záradékot fogunk használni , így meg tudjuk mondani, hogy hol megy T a t-hez. A Name egyenlőnek kell lennie a DatesTable -vel . Ha jelenleg a DatesTable-n iterálunk, akkor egy újabb ciklust fogunk kezdeményezni a DatesTable összes oszlopán. Tehát ehhez beírhatjuk a foreach var c-t a t.Columns-ba .

Annak tesztelésére, hogy csak a DatesTable felett iterálunk, és hozzáférünk-e a DatesTable összes oszlopához, egyszerűen kinyomtathatjuk a Console.WriteLine -t , és ki fogjuk mondani a c.Name parancsot .

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Ha megnyomom az F5-öt, láthatod, hogy hozzáférünk az oszlopokhoz.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Most folytathatjuk tovább és írhatunk több kódot.

Létre fogunk hozni egy listát a sorokról, amelyek három oszloppal többet tartalmaznak. Az egyik oszlop lesz a céloszlop. A második oszlop az az oszlop lesz, amelyen keresztül a céloszlopot szeretnénk rendezni, a harmadik oszlop pedig egyszerűen igaz vagy hamis lesz, függetlenül attól, hogy el akarjuk-e rejteni azt az oszlopot, amelyen keresztül valójában rendezünk.

Tegyük fel, hogy a naptári év oszlopot a naptári év száma szerint szeretnénk rendezni. Az első oszlopban a naptári év, a második oszlopban a naptári év száma, a harmadik oszlopban pedig el kell dönteni, hogy a rendezés befejezése után el akarjuk-e rejteni a naptári év száma oszlopot vagy sem.

És ehhez térjünk vissza a Visual Studio-hoz, ahol egy új változót fogunk létrehozni. Bármilyen nevet adhatsz neki. Ebben a példában colOperationsnek fogom hívni . Ezután írunk újat , majd létrehozunk egy listát, és megírjuk az oszlopok típusát (string, string és bool). Ezt követően létrehozzuk a sorokat.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Tehát alapvetően egyszerűen létrehozunk egy három oszlopból álló listát, és három oszlophoz két sort biztosítunk. Most a foreach cikluson belül egy for ciklust fogunk kezdeményezni . Tehát alapvetően azt mondjuk, hogy minden iterációban deklaráljunk egy i- vel kezdődő változót. Ha i kisebb, mint colOperations.Count, akkor egyszerűen növelje azt .

Ezután egy IF utasítást fogunk írni . A c.Name annak az oszlopnak a nevéhez tartozik, amelyben éppen tartózkodunk. Ezután megvan a colOperations i . Az i alapvetően egy adott sor elérését teszi lehetővé. És amikor azt írjuk, hogy .Item1 , akkor elérhetjük az első oszlopot, a második oszlopot vagy a harmadik oszlopot.

Tehát először az Item1 oszlopot fogjuk használni . Ha ez igaz, akkor egyszerűen azt írjuk, hogy c.SortByColumn egyenlőnek kell lennie a t.Columns értékkel . Ne feledje, hogy t a táblázat objektuma. Ezután az adott táblázat oszlopait érjük el. Azt akarjuk, hogy a colOperations , a sor, amelyen jelenleg az oszlopműveletek vannak, és az oszlop alapvetően az Item2 objektum.

Végül, hogy elrejtse azt az oszlopot, amelyen keresztül a rendezést alkalmazzuk, írunk egy utolsó kódsort.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Tehát most, hogy megírtuk a fő kódot, amelyet a táblázatos modellünkhöz fogunk végrehajtani, egyszerűen kimásolhatjuk a kódot a var colOperations-ből , és átvihetjük a Tabular Editorba, majd végrehajtjuk ugyanazt a kódot.

Oszlopok rendezése a LuckyTemplates és SSAS-ban a táblázatos szerkesztő segítségével

Nem fogjuk használni a szervert vagy a modellobjektumot, mert a színfalak mögött a Tabular Editor automatikusan tudni fogja, hogy melyik LuckyTemplates modellhez vagy az elemzési szolgáltatások modelljéhez kell csatlakoznia. Tehát nem kell használnunk ezeket a változókat, mert ez már az a feladata, hogy azonosítsa, hogyan akar kapcsolódni ezekhez a modellekhez.

Visszatérve a LuckyTemplateshez, elindítjuk a Tabular Editor 3-at vagy a Tabular Editor 2-t. Bármelyiket használhatja. Ebben az esetben válasszuk a Tabular Editor 3-at.

Lépjünk a Fájl fülre, kattintsunk az Új C# kód elemre, és zárjuk be a Tulajdonságok opciót. Ezután beilleszthetjük a kódot ide. Az egyetlen dolog, amiről meg kell győződnünk, hogy a modellváltozó használata helyett a modellobjektumot használjuk . Tehát használjuk a nagy M betűt , és hajtsuk végre a kódot.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

Most, hogy a szkript sikeresen lefutott, és azt is mondja, hogy három modellmódosítást mutat, a változtatásokat vissza fogjuk vinni az adatmodellbe. Mindent elmentünk, amit ezekre az oszlopokra alkalmaztunk.

Visszatérve a LuckyTemplatesbe, láthatja, hogy a hónap száma el van rejtve. Ha a Hónap oszlopra kattintok, és belépek az Oszlopeszközökbe és a Rendezés oszlopba , akkor láthatja, hogy az adott oszlop a hónap száma szerint van rendezve. Ugyanez vonatkozik a naptári év hónapszámára is.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával

A naptári év önmagában van rendezve, mert a C# kódon belül nem volt ez az oszlop. Tehát azt tehetjük, hogy visszaindítjuk a Tabular Editort, és létrehozunk egy újabb sort. És akkor még egyszer végrehajtjuk azt a szkriptet.

LuckyTemplates és SSAS – Oszlopok rendezése TE3 és C# használatával




Következtetés

Ilyen egyszerű automatizálni az egyik oszlop másik oszlop szerinti rendezésének folyamatátés SSAS. Ez egy nagyon egyszerű példa volt arra, hogyan hajthatja végre ezt a műveletet a Dátumok táblán belül. De gazdagíthatja ezt a listát, ha további oszlopokat ad hozzá, majd keres egy másik táblázatot.

Így csökkentheti azt az időt, amelyet az oszlopok rendezésére kell fordítania ugyanazokhoz a modellekhez, amelyeket újra és újra létre fog hozni.

Remélem, ezt hasznosnak találtad. Ha bármilyen kérdése van, csak tudassa velem a megjegyzések részben.


Arány- és gyakorisági táblázatok Excelben

Arány- és gyakorisági táblázatok Excelben

Az Excel gyakorisági táblázataiban, valamint az aránytáblázatokban készültek. Nos, nézze meg, mik ezek, és mikor kell használni őket.

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

A DAX Studio és a Tabular Editor telepítése a LuckyTemplates alkalmazásban

Ismerje meg, hogyan töltheti le és telepítheti a DAX Studio és a Tabular Editor 3 alkalmazást, és hogyan konfigurálhatja őket a LuckyTemplates és az Excel programban való használatra.

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

LuckyTemplates alakzattérkép-vizualizáció a térbeli elemzéshez

Ez a blog tartalmazza a Shape Map vizualizációt a LuckyTemplates térbeli elemzéséhez. Megmutatom, hogyan használhatja hatékonyan ezt a vizualizációt annak funkcióival és elemeivel.

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

LuckyTemplates pénzügyi jelentések: az eredmények hozzárendelése a sablonokhoz minden egyes sorban

Ebben az oktatóanyagban egy egyedülálló ötletet mutatok be a pénzügyi jelentésekkel kapcsolatban, amely az eredmények hozzárendelését jelenti a LuckyTemplates-en belüli táblázatsablonok előre meghatározásához.

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

DAX-mértékek a LuckyTemplates-ben mértékelágazás használatával

Hozzon létre DAX-mértékeket a LuckyTemplates alkalmazásban meglévő mértékek vagy képletek használatával. Ezt nevezem mértékelágazási technikának.

A legerősebb funkcióhívás a LuckyTemplatesben

A legerősebb funkcióhívás a LuckyTemplatesben

Ebben a blogban fedezze fel a LuckyTemplates adatkészletet, a leghatékonyabb függvényhívást, amely M- és DAX-függvények ezreit juttatja a keze ügyébe.

Adatmodellezési technikák a DAX-mérések megszervezéséhez

Adatmodellezési technikák a DAX-mérések megszervezéséhez

A mai oktatóanyagban megosztok néhány adatmodellezési technikát a DAX-mérések jobb rendszerezéséhez a hatékonyabb munkafolyamat érdekében.

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

LuckyTemplates pénzügyi irányítópult: Teljes táblázat testreszabási tippek

A LuckyTemplates egy nagyszerű eszköz a pénzügyi jelentésekhez. Itt található egy oktatóanyag, amely bemutatja, hogyan hozhat létre személyre szabott táblázatokat a LuckyTemplates pénzügyi irányítópultjához.

A Power Query nyelvi folyamatának bevált gyakorlatai

A Power Query nyelvi folyamatának bevált gyakorlatai

Ez az oktatóanyag megvitatja a Power Query nyelvi folyamatot, és azt, hogyan segíthet zökkenőmentes és hatékony adatjelentések létrehozásában.

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

LuckyTemplates egyéni ikonok | PBI vizualizációs technika

Az egyik kedvenc technikámról fogok beszélni a LuckyTemplates egyéni ikonok körül, amely dinamikusan használja az egyéni ikonokat a LuckyTemplates vizualizációkban.