LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

For dagens veiledning skal jeg vise hvordan du kan automatisere prosessen med å sortere en kolonne etter en annen kolonne inne i LuckyTemplates og SSAS- eller SQL-serveranalysetjenester. Du kan se hele videoen av denne opplæringen nederst på denne bloggen.

I dette eksemplet har vi Datoer-tabellen med flere kolonner. Noen kolonner er heltallsdelen, som vi skal skjule; og noen kolonner er strengdelen, som vi skal vise til sluttbrukeren.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Så vi har kolonnene Kalenderår, Kalenderår Måned og Måned. Det vi ønsker å gjøre er å automatisere sorteringen av disse tre kolonnene etter deres heltallsdel. Jeg sorterer kalenderåret etter kalenderårsnummeret, kalenderårsmåneden etter kalenderårets månedsnummer, samt måned etter månedsnummeret.

Men vi vil ikke gjøre det én etter én. Vi kjører et skript som automatisk sorterer det for denne tabellen. I tilfelle du har flere kolonner for flere tabeller, kan du bruke det skriptet på disse tabellsettene.

Vi skal brukefor å skrive den C#-koden, men foreløpig har ikke Tabular Editor en IntelliSense for C#-språket. For å gjøre det enklere bruker vi Visual Studio (VS), hvor vi har IntelliSense for C#-språket og du kan også bruke VS-kode.

Innholdsfortegnelse

Sortere kolonner i LuckyTemplates og SSAS ved hjelp av C#

Først må vi lage et nytt prosjekt inne i Visual Studio, som vil være konsollappen (.Net Framework) for C#-språket. La oss velge det klikk på Neste.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Deretter kan vi gi et hvilket som helst navn til prosjektet. Jeg skal kalle dette SortBy , og klikk på Opprett.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Nå kan du se at vi har koden. Når koden fungerer, skal vi ganske enkelt kopiere og lime den inn i Tabular Editor.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Men for at koden skal fungere i Visual Studio, må vi sette en referanse til et bibliotek. Og for det kan vi ganske enkelt klikke på referansene og velge alternativet Administrer NuGet-pakker i nettleseralternativet.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Inne i bla-alternativet må vi skrive. Og så, i alternativene som er tilgjengelige, må vi velge den andre og klikke på Installer. Det vil starte installasjonen og det vil ta noen sekunder før installasjonen er fullført.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Deretter må vi skrive innenfor koden, ved å bruke Microsoft.AnalysisServices.Tabular og deretter skrive et semikolon. Vi skal lage et serverobjekt, så vi kan ganske enkelt skrive Server , og navnet på serverobjektet vil være Server selv, og vi skal skrive New Server .

Så i utgangspunktet lager vi et nytt objekt inne i minnet. Og for å koble den serveren til LuckyTemplates-filen, skal vi bruke en metode for serverobjektet. Så la oss skrive server.Connect , og her gir vi portnummeret som AnalysisServices inne i LuckyTemplates lytter til.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

For å finne det portnummeret, går vi til Eksterne verktøy, klikker på , og nederst finner vi den lokale verten. Det er kodenummeret som SQL-serveranalysetjenester som vi har inne i LuckyTemplates lytter til endringene vi sender gjennom LuckyTemplates eller et annet eksternt verktøy.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Serveren er én ting, men en server kan ha flere modeller også når det gjelder SSAS. Men akkurat nå, i LuckyTemplates, har vi bare én modell. Så, vi kommer til å erklære den modellen. Vi skriver her Modellen er lik (=) server.Databaser , og vi får tilgang til den aller første databasen inne i den serveren, så vi skriver .Model .

La oss nå teste om den delen av koden fungerer eller ikke. For å gjøre det, vil vi ganske enkelt skrive ut listen over alle tabellene vi har i den datamodellen. Så vi skriver inn her, for hver (Tabell t i model.Tables) , åpne parentes og trykk enter.

Etter det skriver vi inn Console.WriteLine (t.Name) . For å sikre at vinduet ikke lukkes automatisk når det skriver ut navnet på tabellene, skriver vi at Console.ReadLine , åpner og lukker parenteser og et semikolon. Nå er alt vi trenger å gjøre å klikke på Start- alternativet og vente på at det skal utføres.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Du kan se at vi kan skrive ut navnet på tabellene som vi har inne i datamodellen. Vi har datoer, produkt, kunde og butikk. Det bekrefter at oppsettet vi har laget fungerer.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Så nå kan vi faktisk komme inn i kjøttet av koden og begynne å lage koden som vil hjelpe oss med å sortere den kolonnen etter heltallsmotstykket.

La oss bli kvitt alt vi har laget fra ForEach -delen. Vi kommer til å beholde serveren og modellen som den er. La oss erklære en variabel som vil inneholde navnet på tabellen som vi ønsker å iterere på. Jeg kaller det DatesTable , og navnet på tabellen vil i utgangspunktet være Dates .

Deretter vil vi ha foreach var t i model.Tables , så skal vi bruke en where -ledd, slik at vi kan si hvor T går til t.Name skal være lik DatesTable . Hvis vi for øyeblikket itererer på DatesTable, kommer vi til å starte en ny loop over alle kolonnene i den DatesTable. Så for det kan vi skrive for hver var c i t.Columns .

For å teste om vi bare itererer over DatesTable og vi har tilgang til alle kolonnene i DatesTable, kan vi ganske enkelt skrive ut Console.WriteLine , og vi kommer til å si c.Name .

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Trykker jeg F5 ser du at vi får tilgang til kolonnene.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Nå kan vi fortsette videre og skrive mer kode.

Vi skal lage en liste over tuples som vil inneholde tre kolonner til. En av kolonnene vil være målkolonnen. Den andre kolonnen vil være kolonnen som vi ønsker å sortere målkolonnen gjennom, og den tredje kolonnen vil ganske enkelt holde sann eller usann, enten vi ønsker å skjule kolonnen som vi faktisk sorterer gjennom.

La oss si at vi ønsker å sortere kalenderår-kolonnen etter kalenderårsnummer. Den første kolonnen vil inneholde kalenderåret, den andre kolonnen vil være for kalenderårsnummeret, og den tredje kolonnen vil avgjøre om vi vil skjule kolonnen kalenderårnummer etter at vi har fullført sorteringen eller ikke.

Og for det, la oss gå tilbake til Visual Studio, hvor vi skal lage en ny variabel. Du kan navngi det hva du vil. I dette eksemplet vil jeg kalle det colOperations . Deretter skal vi skrive new , og så skal vi lage en liste og vi skriver typen kolonner (streng, streng og bool). Etter det lager vi tuplene.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Så i utgangspunktet lager vi bare en liste med tre kolonner, og for tre kolonner har vi gitt to rader. Nå inne i foreach- løkken vår skal vi starte en for-løkke . Så i utgangspunktet, det vi sier er at de erklærer en variabel som starter med i i hver iterasjon. Hvis i er mindre enn colOperations.Count, øker du bare det .

Deretter skal vi skrive en IF- setning. c.Name tilhører navnet på kolonnen vi er i. Da har vi colOperations i . I -en lar oss i utgangspunktet få tilgang til en bestemt rad. Og når vi skriver .Item1 , har vi tilgang til den første kolonnen, andre kolonnen eller tredje kolonnen.

Så først skal vi bruke vare1- kolonnen. Hvis det er sant, skriver vi ganske enkelt at c.SortByColumn skal være lik t.Columns . Husk at t er tabellobjektet. Deretter får vi tilgang til kolonnene fra den spesielle tabellen. Vi vil ha colOperations , raden som vi for øyeblikket er på kolonneoperasjonene, og kolonnen er i utgangspunktet Item2 -objektet.

Til slutt, for å skjule den spesielle kolonnen som vi bruker sorteringen gjennom, skriver vi en siste kodelinje.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Så nå som vi har skrevet hovedkoden som vi skal kjøre mot tabellmodellen vår, kan vi ganske enkelt kopiere koden fra var colOperations og ta den til Tabular Editor, og så skal vi kjøre den samme koden.

Sortering av kolonner i LuckyTemplates og SSAS ved hjelp av tabellredigering

Vi kommer ikke til å bruke serveren eller modellobjektet fordi bak scenen vil Tabular Editor automatisk vite hvilken LuckyTemplates-modell eller analysetjenestemodellen den må koble til. Så vi trenger ikke å bruke disse variablene fordi det allerede er jobben til den å identifisere hvordan den ønsker å koble til disse modellene.

Tilbake i LuckyTemplates skal vi lansere enten Tabular Editor 3 eller Tabular Editor 2. Du kan bruke hvilken du vil. I dette tilfellet, la oss gå med Tabular Editor 3.

Vi går til Fil-fanen, klikker på Ny C#-kode og lukker alternativet Egenskaper. Deretter kan vi lime inn koden her. Det eneste vi trenger å forsikre oss om er at i stedet for å bruke modellvariabelen er å bruke modellobjektet . Så la oss bruke den store M og kjøre den koden.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Nå som skriptet har blitt utført vellykket og det også sier viser tre modellendringer, skal vi forplikte endringene tilbake til datamodellen. Vi lagrer det vi har brukt på disse kolonnene.

Tilbake i LuckyTemplates kan du se at månedsnummeret er skjult. Hvis jeg klikker på månedskolonnen og går til kolonneverktøyene og til sorteringskolonnen , kan du se at den aktuelle kolonnen er sortert etter månedsnummeret. Det samme gjelder kalenderårsmånedsnummeret.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#

Kalenderåret er sortert av seg selv fordi vi ikke hadde den kolonnen inne i den C#-koden. Så det vi kan gjøre er å starte tabellredigereren og lage en annen tuppel. Og så, nok en gang, kjører vi det skriptet.

LuckyTemplates og SSAS – Sortering av kolonner ved hjelp av TE3 og C#




Konklusjon

Så enkelt er det å automatisere prosessen med å sortere en kolonne etter en annen kolonne iog SSAS. Dette var et veldig grunnleggende eksempel på hvordan du kan gjøre den operasjonen i Datoer-tabellen. Men du kan berike denne listen ved å legge til flere kolonner og deretter se etter en annen tabell.

På den måten kan du redusere tiden du må bruke på å sortere disse kolonnene for de samme modellene som du skal lage igjen og igjen.

Jeg håper du har funnet dette nyttig. Hvis du har spørsmål, bare gi meg beskjed i kommentarfeltet.


PowerApps-søkefelt: Slik legger du til og tilpasser

PowerApps-søkefelt: Slik legger du til og tilpasser

Lær hvordan du oppretter et PowerApps-søkefelt fra bunnen av og tilpasser det til å matche det overordnede temaet for appen din.

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

SELECTEDVALUE DAX-eksempel- Valg av høsteskive

Høst eller fang en verdi inne i et mål for å gjenbruke i et annet mål for dynamiske beregninger ved å bruke SELECTEDVALUE DAX i LuckyTemplates.

Versjonshistorikk i SharePoint-lister

Versjonshistorikk i SharePoint-lister

Oppdag hvordan versjonshistorikk i SharePoint kan hjelpe deg med å se utviklingen av bestemte data, og hvor mange endringer den har gjennomgått.

Hex-fargekodevelger for Lucky Templates-rapporter

Hex-fargekodevelger for Lucky Templates-rapporter

Her er et verktøy for å lage rapporter og grafikk, en sekskantkodevelger for farger som du kan bruke for enkelt å få fargene til LuckyTemplates-rapportene dine.

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Dynamisk datoskjærer i Lucky-maler ved hjelp av en periodetabell

Du kan enkelt vise en datoperiode som en slicer i rapporten ved hjelp av en periodetabell. Bruk en M-kode for å lage den dynamiske datoskjæreren i LuckyTemplates.

Proporsjons- og frekvenstabeller i Excel

Proporsjons- og frekvenstabeller i Excel

Skulle dykke ned i frekvenstabeller i Excel samt proporsjonstabeller. Se nærmere på hva de er og når du skal bruke dem.

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Slik installerer du DAX Studio & Tabular Editor i LuckyTemplates

Lær hvordan du laster ned og installerer DAX Studio og Tabular Editor 3 og hvordan du konfigurerer dem for bruk i LuckyTemplates og i Excel.

LuckyTemplates Shape Map Visualization for romlig analyse

LuckyTemplates Shape Map Visualization for romlig analyse

Denne bloggen inneholder Shape Map-visualiseringen for romlig analyse i LuckyTemplates. Jeg viser deg hvordan du kan bruke denne visualiseringen effektivt med dens funksjoner og elementer.

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

LuckyTemplates finansiell rapportering: Allokering av resultater til maler på hver enkelt rad

I denne opplæringen viser jeg frem en unik idé rundt finansiell rapportering, som tildeler resultater for å forhåndsbestemme tabellmaler inne i LuckyTemplates.

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

DAX-mål i LuckyTemplates ved hjelp av måleforgrening

Opprett DAX-mål i LuckyTemplates ved å bruke eksisterende mål eller formler. Dette er det jeg kaller tiltaket forgreningsteknikk.